am 17210605: am 173c6313: Minor wake_lock function cleanup

Merge commit '17210605ace5d9457add89c0a73aa084985db395'

* commit '17210605ace5d9457add89c0a73aa084985db395':
  Minor wake_lock function cleanup
diff --git a/wilink_6_1/platforms/os/linux/src/osapi.c b/wilink_6_1/platforms/os/linux/src/osapi.c
index fd99089..4ad5646 100644
--- a/wilink_6_1/platforms/os/linux/src/osapi.c
+++ b/wilink_6_1/platforms/os/linux/src/osapi.c
@@ -602,8 +602,8 @@
 	int ret = 0;
 	unsigned long flags;
 
-	spin_lock_irqsave(&drv->lock, flags);
 	if (drv) {
+		spin_lock_irqsave(&drv->lock, flags);
 		ret = drv->wl_packet;
 		if (drv->wl_packet) {
 			drv->wl_packet = 0;
@@ -611,8 +611,8 @@
 			wake_lock_timeout(&drv->wl_rxwake, (HZ >> 1));
 #endif
 		}
+		spin_unlock_irqrestore(&drv->lock, flags);
 	}
-	spin_unlock_irqrestore(&drv->lock, flags);
 	/* printk("%s: %d\n", __func__, ret); */
 	return ret;
 }
@@ -630,11 +630,13 @@
 {
 	TWlanDrvIfObj *drv = (TWlanDrvIfObj *)OsContext;
 	unsigned long flags;
-	int ret;
+	int ret = 0;
 
-	spin_lock_irqsave(&drv->lock, flags);
-	ret = drv->wl_packet = 1;
-	spin_unlock_irqrestore(&drv->lock, flags);
+	if (drv) {
+		spin_lock_irqsave(&drv->lock, flags);
+		ret = drv->wl_packet = 1;
+		spin_unlock_irqrestore(&drv->lock, flags);
+	}
 	return ret;
 }
 
@@ -653,16 +655,16 @@
 	int ret = 0;
 	unsigned long flags;
 
-	spin_lock_irqsave(&drv->lock, flags);
 	if (drv) {
+		spin_lock_irqsave(&drv->lock, flags);
 #ifdef CONFIG_HAS_WAKELOCK
 		if (!drv->wl_count)
 			wake_lock(&drv->wl_wifi);
 #endif
 		drv->wl_count++;
 		ret = drv->wl_count;
+		spin_unlock_irqrestore(&drv->lock, flags);
 	}
-	spin_unlock_irqrestore(&drv->lock, flags);
 	/* printk("%s: %d\n", __func__, ret); */
 	return ret;
 }
@@ -682,16 +684,18 @@
 	int ret = 0;
 	unsigned long flags;
 
-	spin_lock_irqsave(&drv->lock, flags);
-	if (drv && drv->wl_count) {
-		drv->wl_count--;
+	if (drv) {
+		spin_lock_irqsave(&drv->lock, flags);
+		if (drv->wl_count) {
+			drv->wl_count--;
 #ifdef CONFIG_HAS_WAKELOCK
-		if (!drv->wl_count)
-			wake_unlock(&drv->wl_wifi);
+			if (!drv->wl_count)
+				wake_unlock(&drv->wl_wifi);
 #endif
-		ret = drv->wl_count;
+			ret = drv->wl_count;
+		}
+		spin_unlock_irqrestore(&drv->lock, flags);
 	}
-	spin_unlock_irqrestore(&drv->lock, flags);
 	/* printk("%s: %d\n", __func__, ret); */
 	return ret;
 }