struct mwl8k_priv *priv = hw->priv;
        struct mwl8k_ampdu_stream *stream;
        u8 *addr = sta->addr;
+       struct mwl8k_sta *sta_info = MWL8K_STA(sta);
 
        if (!(hw->flags & IEEE80211_HW_AMPDU_AGGREGATION))
                return -ENOTSUPP;
                /* Release the lock before we do the time consuming stuff */
                spin_unlock(&priv->stream_lock);
                for (i = 0; i < MAX_AMPDU_ATTEMPTS; i++) {
+
+                       /* Check if link is still valid */
+                       if (!sta_info->is_ampdu_allowed) {
+                               spin_lock(&priv->stream_lock);
+                               mwl8k_remove_stream(hw, stream);
+                               spin_unlock(&priv->stream_lock);
+                               return -EBUSY;
+                       }
+
                        rc = mwl8k_check_ba(hw, stream);
 
                        /* If HW restart is in progress mwl8k_post_cmd will