carl9170: Remove redundant protection check
authorAndreea-Cristina Bernat <bernat.ada@gmail.com>
Fri, 22 Aug 2014 19:14:31 +0000 (22:14 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 28 Aug 2014 18:49:35 +0000 (14:49 -0400)
The carl9170_op_ampdu_action() function is used only by the mac80211
framework.
Since the mac80211 already takes care of checks and properly serializing
calls to the driver's function there is no need for the driver to do the same
thing.

Signed-off-by: Andreea-Cristina Bernat <bernat.ada@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/carl9170/main.c

index f8ded84b7be8c5e3b6038910a8829364a5e5ba1e..ef5b6dc7b7f17b52388ba45132e836aa0ff37bf4 100644 (file)
@@ -1430,18 +1430,10 @@ static int carl9170_op_ampdu_action(struct ieee80211_hw *hw,
                if (!sta_info->ht_sta)
                        return -EOPNOTSUPP;
 
-               rcu_read_lock();
-               if (rcu_dereference(sta_info->agg[tid])) {
-                       rcu_read_unlock();
-                       return -EBUSY;
-               }
-
                tid_info = kzalloc(sizeof(struct carl9170_sta_tid),
                                   GFP_ATOMIC);
-               if (!tid_info) {
-                       rcu_read_unlock();
+               if (!tid_info)
                        return -ENOMEM;
-               }
 
                tid_info->hsn = tid_info->bsn = tid_info->snx = (*ssn);
                tid_info->state = CARL9170_TID_STATE_PROGRESS;
@@ -1460,7 +1452,6 @@ static int carl9170_op_ampdu_action(struct ieee80211_hw *hw,
                list_add_tail_rcu(&tid_info->list, &ar->tx_ampdu_list);
                rcu_assign_pointer(sta_info->agg[tid], tid_info);
                spin_unlock_bh(&ar->tx_ampdu_list_lock);
-               rcu_read_unlock();
 
                ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
                break;