staging: wilc1000: use mutex instead of struct semaphore hSemScanReq
authorChaehyun Lim <chaehyun.lim@gmail.com>
Mon, 28 Mar 2016 04:56:00 +0000 (13:56 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 29 Mar 2016 19:39:52 +0000 (12:39 -0700)
This patch replaces struct semaphore hSemScanReq with struct mutex
scan_req_lock. It is better to use mutex than semaphore.

Signed-off-by: Chaehyun Lim <chaehyun.lim@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
drivers/staging/wilc1000/wilc_wfi_netdevice.h

index f6aec474ff3ac82cc60219d65ddd52327cbccc9a..358632b9aa835a9c5a776c2e9c77278e17c7e99d 100644 (file)
@@ -451,7 +451,7 @@ static void CfgScanResult(enum scan_event scan_event,
                } else if (scan_event == SCAN_EVENT_DONE) {
                        refresh_scan(priv, 1, false);
 
-                       down(&(priv->hSemScanReq));
+                       mutex_lock(&priv->scan_req_lock);
 
                        if (priv->pstrScanReq) {
                                cfg80211_scan_done(priv->pstrScanReq, false);
@@ -459,9 +459,9 @@ static void CfgScanResult(enum scan_event scan_event,
                                priv->bCfgScanning = false;
                                priv->pstrScanReq = NULL;
                        }
-                       up(&(priv->hSemScanReq));
+                       mutex_unlock(&priv->scan_req_lock);
                } else if (scan_event == SCAN_EVENT_ABORTED) {
-                       down(&(priv->hSemScanReq));
+                       mutex_lock(&priv->scan_req_lock);
 
                        if (priv->pstrScanReq) {
                                update_scan_time();
@@ -471,7 +471,7 @@ static void CfgScanResult(enum scan_event scan_event,
                                priv->bCfgScanning = false;
                                priv->pstrScanReq = NULL;
                        }
-                       up(&(priv->hSemScanReq));
+                       mutex_unlock(&priv->scan_req_lock);
                }
        }
 }
@@ -2307,7 +2307,7 @@ int wilc_init_host_int(struct net_device *net)
 
        priv->bInP2PlistenState = false;
 
-       sema_init(&(priv->hSemScanReq), 1);
+       mutex_init(&priv->scan_req_lock);
        s32Error = wilc_init(net, &priv->hif_drv);
        if (s32Error)
                netdev_err(net, "Error while initializing hostinterface\n");
index 94a41b4a21a7d26a47c75c008a466028e8768ba5..3d0ca8e3ae24472c116b03774957824ea6796501 100644 (file)
@@ -130,7 +130,7 @@ struct wilc_priv {
        struct wilc_wfi_key *wilc_ptk[MAX_NUM_STA];
        u8 wilc_groupkey;
        /* semaphores */
-       struct semaphore hSemScanReq;
+       struct mutex scan_req_lock;
        /*  */
        bool gbAutoRateAdjusted;