if (tid >= STA_TID_NUM)
                return -EINVAL;
 
-#ifdef CONFIG_MAC80211_HT_DEBUG
-       printk(KERN_DEBUG "Stop a BA session requested for %s tid %u\n",
-                               print_mac(mac, ra), tid);
-#endif /* CONFIG_MAC80211_HT_DEBUG */
-
        rcu_read_lock();
        sta = sta_info_get(local, ra);
        if (!sta) {
        spin_lock_bh(&sta->ampdu_mlme.ampdu_tx);
 
        if (*state != HT_AGG_STATE_OPERATIONAL) {
-#ifdef CONFIG_MAC80211_HT_DEBUG
-               printk(KERN_DEBUG "Try to stop Tx aggregation on"
-                               " non active TID\n");
-#endif /* CONFIG_MAC80211_HT_DEBUG */
                ret = -ENOENT;
                goto stop_BA_exit;
        }
 
+#ifdef CONFIG_MAC80211_HT_DEBUG
+       printk(KERN_DEBUG "Tx BA session stop requested for %s tid %u\n",
+                               print_mac(mac, ra), tid);
+#endif /* CONFIG_MAC80211_HT_DEBUG */
+
        ieee80211_stop_queue(hw, sta->tid_to_tx_q[tid]);
 
        *state = HT_AGG_STATE_REQ_STOP_BA_MSK |
                return;
        }
 
-       printk(KERN_DEBUG "Stop a BA session requested on DA %s tid %d\n",
+#ifdef CONFIG_MAC80211_HT_DEBUG
+       printk(KERN_DEBUG "Stopping Tx BA session for %s tid %d\n",
                                print_mac(mac, ra), tid);
+#endif /* CONFIG_MAC80211_HT_DEBUG */
 
        rcu_read_lock();
        sta = sta_info_get(local, ra);
 
                ret = local->ops->ampdu_action(hw, IEEE80211_AMPDU_RX_START,
                                               sta->addr, tid, &start_seq_num);
 #ifdef CONFIG_MAC80211_HT_DEBUG
-       printk(KERN_DEBUG "Rx A-MPDU on tid %d result %d", tid, ret);
+       printk(KERN_DEBUG "Rx A-MPDU request on tid %d result %d\n", tid, ret);
 #endif /* CONFIG_MAC80211_HT_DEBUG */
 
        if (ret) {
        struct ieee80211_hw *hw = &local->hw;
        struct sta_info *sta;
        int ret, i;
+       DECLARE_MAC_BUF(mac);
 
        rcu_read_lock();
 
        sta->ampdu_mlme.tid_state_rx[tid] =
                HT_AGG_STATE_REQ_STOP_BA_MSK |
                (initiator << HT_AGG_STATE_INITIATOR_SHIFT);
-               spin_unlock_bh(&sta->ampdu_mlme.ampdu_rx);
+       spin_unlock_bh(&sta->ampdu_mlme.ampdu_rx);
 
        /* stop HW Rx aggregation. ampdu_action existence
         * already verified in session init so we add the BUG_ON */
        BUG_ON(!local->ops->ampdu_action);
 
+#ifdef CONFIG_MAC80211_HT_DEBUG
+       printk(KERN_DEBUG "Rx BA session stop requested for %s tid %u\n",
+                               print_mac(mac, ra), tid);
+#endif /* CONFIG_MAC80211_HT_DEBUG */
+
        ret = local->ops->ampdu_action(hw, IEEE80211_AMPDU_RX_STOP,
                                        ra, tid, NULL);
        if (ret)