Bug 186281

Summary: iwlwlifi: 5300: fail to flush all tx fifo queues
Product: Drivers Reporter: laura (l.liberati.92)
Component: network-wirelessAssignee: DO NOT USE - assign "network-wireless-intel" component instead (linuxwifi)
Status: CLOSED WILL_NOT_FIX    
Severity: normal    
Priority: P1    
Hardware: All   
OS: Linux   
See Also: https://bugzilla.kernel.org/show_bug.cgi?id=56581
Kernel Version: 3.8.7 Subsystem:
Regression: No Bisected commit-id:

Description laura 2016-11-01 13:45:49 UTC
i have a intel galileo wich disconnect iwlwifi random with error fail to flush. 

i have patch the driver with better fix of emmanuel but not resolve
Comment 1 Emmanuel Grumbach 2016-11-01 17:46:05 UTC
Please share the patch you made.

Can you upgrade your kernel?
Comment 2 laura 2016-11-01 18:23:39 UTC
The problem is this... I can't upgrade the kernel unfortunally ...

I applyed this https://bugzilla.redhat.com/attachment.cgi?id=667944&action=diff and the connection was too slow ...

The second patch  https://bugzilla.redhat.com/attachment.cgi?id=670702&action=diff didn't resolve the bug
Comment 3 Emmanuel Grumbach 2016-11-01 19:12:30 UTC
Please check the bug in "See also".

You should cherry-pick:

commit a0855054e59b0c5b2b00237fdb5147f7bcc18efb
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Sun Oct 5 09:11:14 2014 +0300

    iwlwifi: dvm: drop non VO frames when flushing
Comment 4 laura 2016-11-01 21:42:55 UTC
this is for others kernel :(
Comment 5 Emmanuel Grumbach 2016-11-02 03:42:46 UTC
Yes of course, but you can try to apply it on your (very very old version of the) kernel.

you can also try to set drop to true always in that function.
Something like:
diff --git a/drivers/net/wireless/iwlwifi/dvm/mac80211.c b/drivers/net/wireless/iwlwifi/dvm/mac80211.c
index 3163e0f..9b7dfbd 100644
--- a/drivers/net/wireless/iwlwifi/dvm/mac80211.c
+++ b/drivers/net/wireless/iwlwifi/dvm/mac80211.c
@@ -1016,6 +1016,8 @@ static void iwlagn_mac_flush(struct ieee80211_hw *hw, bool drop)
                goto done;
        }
 
+       drop = true;
+
        /*
         * mac80211 will not push any more frames for transmit
         * until the flush is completed




Anyway, we can't do anything else for you since you run on an old kernel and this device is 9 years old.

Closing the bug.