rtl8192u: Replace semaphore scan_sem with mutex
authorBinoy Jayan <binoy.jayan@linaro.org>
Thu, 2 Jun 2016 10:53:01 +0000 (16:23 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 19 Jun 2016 02:50:48 +0000 (19:50 -0700)
The semaphore 'scan_sem' in rtl8192u is a simple mutex, so it should
be written as one. Semaphores are going away in the future.

Signed-off-by: Binoy Jayan <binoy.jayan@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8192u/ieee80211/ieee80211.h
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c

index ef9ae22..09e9499 100644 (file)
@@ -1800,7 +1800,7 @@ struct ieee80211_device {
        short proto_started;
 
        struct mutex wx_mutex;
-       struct semaphore scan_sem;
+       struct mutex scan_mutex;
 
        spinlock_t mgmt_tx_lock;
        spinlock_t beacon_lock;
index 664664b..49db1b7 100644 (file)
@@ -427,7 +427,7 @@ void ieee80211_softmac_scan_syncro(struct ieee80211_device *ieee)
        short ch = 0;
        u8 channel_map[MAX_CHANNEL_NUMBER+1];
        memcpy(channel_map, GET_DOT11D_INFO(ieee)->channel_map, MAX_CHANNEL_NUMBER+1);
-       down(&ieee->scan_sem);
+       mutex_lock(&ieee->scan_mutex);
 
        while(1)
        {
@@ -475,13 +475,13 @@ void ieee80211_softmac_scan_syncro(struct ieee80211_device *ieee)
 out:
        if(ieee->state < IEEE80211_LINKED){
                ieee->actscanning = false;
-               up(&ieee->scan_sem);
+               mutex_unlock(&ieee->scan_mutex);
        }
        else{
        ieee->sync_scan_hurryup = 0;
        if(IS_DOT11D_ENABLE(ieee))
                DOT11D_ScanComplete(ieee);
-       up(&ieee->scan_sem);
+       mutex_unlock(&ieee->scan_mutex);
 }
 }
 EXPORT_SYMBOL(ieee80211_softmac_scan_syncro);
@@ -495,7 +495,7 @@ static void ieee80211_softmac_scan_wq(struct work_struct *work)
        memcpy(channel_map, GET_DOT11D_INFO(ieee)->channel_map, MAX_CHANNEL_NUMBER+1);
        if(!ieee->ieee_up)
                return;
-       down(&ieee->scan_sem);
+       mutex_lock(&ieee->scan_mutex);
        do{
                ieee->current_network.channel =
                        (ieee->current_network.channel + 1) % MAX_CHANNEL_NUMBER;
@@ -517,7 +517,7 @@ static void ieee80211_softmac_scan_wq(struct work_struct *work)
 
        schedule_delayed_work(&ieee->softmac_scan_wq, IEEE80211_SOFTMAC_SCAN_TIME);
 
-       up(&ieee->scan_sem);
+       mutex_unlock(&ieee->scan_mutex);
        return;
 out:
        if(IS_DOT11D_ENABLE(ieee))
@@ -525,7 +525,7 @@ out:
        ieee->actscanning = false;
        watchdog = 0;
        ieee->scanning = 0;
-       up(&ieee->scan_sem);
+       mutex_unlock(&ieee->scan_mutex);
 }
 
 
@@ -579,7 +579,7 @@ static void ieee80211_softmac_stop_scan(struct ieee80211_device *ieee)
 
        //ieee->sync_scan_hurryup = 1;
 
-       down(&ieee->scan_sem);
+       mutex_lock(&ieee->scan_mutex);
 //     spin_lock_irqsave(&ieee->lock, flags);
 
        if (ieee->scanning == 1) {
@@ -589,7 +589,7 @@ static void ieee80211_softmac_stop_scan(struct ieee80211_device *ieee)
        }
 
 //     spin_unlock_irqrestore(&ieee->lock, flags);
-       up(&ieee->scan_sem);
+       mutex_unlock(&ieee->scan_mutex);
 }
 
 void ieee80211_stop_scan(struct ieee80211_device *ieee)
@@ -2729,7 +2729,7 @@ void ieee80211_softmac_init(struct ieee80211_device *ieee)
 
 
        mutex_init(&ieee->wx_mutex);
-       sema_init(&ieee->scan_sem, 1);
+       mutex_init(&ieee->scan_mutex);
 
        spin_lock_init(&ieee->mgmt_tx_lock);
        spin_lock_init(&ieee->beacon_lock);