Bug 88961
Summary: | iwlwifi: dvm: NMI_WDG since "drop non VO frames when flushing" - MWG100223326 | ||
---|---|---|---|
Product: | Drivers | Reporter: | Vasyl Demin (vasyl.demin) |
Component: | network-wireless | Assignee: | drivers_network-wireless (drivers_network-wireless) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | ilw, linville, vasyl.demin |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | https://bugzilla.kernel.org/show_bug.cgi?id=56581 | ||
Kernel Version: | 3.17.3 | Subsystem: | |
Regression: | Yes | Bisected commit-id: | |
Attachments: |
dmesg
trace-cmd record -e iwlwifi dmesg final version of the fix |
Description
Vasyl Demin
2014-11-27 21:06:13 UTC
The commit you point to is a work around for the bug you also mentioned (it is mentioned in the commit. This commit did help a lot for many of the reporters of bug. The specific comment you point to has nothing to do with your problem. You have a different firmware problem. I will try to see what I can do tomorrow - but I am afraid that reverting 989d3425e2b1ecf7f24635faa09f13d8a6e90085 is the only thing I can do and that seems unlikely because it did help a lot of users. Thanks for reply! Reverting is not necessary. Let's try to find another solution, I'm ready to provide any additional info. please run tracing while this is happening: sudo trace-cmd record -e iwlwifi You'll get a trace.dat file - this is the file I need. Leave it recording for a few seconds when you see at least one of the microcode error. You don't need to recompile anything for that - I can see that your driver is already compiled with TRACING enabled. Created attachment 159231 [details]
trace-cmd record -e iwlwifi
~10s before the error and ~10s after
Created attachment 159241 [details]
dmesg
Maybe it does not matter, but the error repeated exactly every 2 minutes, see new dmesg. can you please try this? diff --git a/drivers/net/wireless/iwlwifi/dvm/lib.c b/drivers/net/wireless/iwlwifi/dvm/lib.c index 02e4ede..96a79b1 100644 --- a/drivers/net/wireless/iwlwifi/dvm/lib.c +++ b/drivers/net/wireless/iwlwifi/dvm/lib.c @@ -140,7 +140,7 @@ int iwlagn_txfifo_flush(struct iwl_priv *priv, u32 scd_q_msk) struct iwl_txfifo_flush_cmd flush_cmd; struct iwl_host_cmd cmd = { .id = REPLY_TXFIFO_FLUSH, - .len = { sizeof(struct iwl_txfifo_flush_cmd), }, + .len = { sizeof(struct iwl_txfifo_flush_cmd) - 4, }, .data = { &flush_cmd, }, }; Sorry - bad patch. Please try this instead: diff --git a/drivers/net/wireless/iwlwifi/dvm/commands.h b/drivers/net/wireless/iwlwifi/dvm/commands.h index 751ae1d..ddc441f 100644 --- a/drivers/net/wireless/iwlwifi/dvm/commands.h +++ b/drivers/net/wireless/iwlwifi/dvm/commands.h @@ -1006,9 +1006,8 @@ struct iwl_rem_sta_cmd { * 2: Dump all FIFO */ struct iwl_txfifo_flush_cmd { - __le32 queue_control; + __le16 queue_control; __le16 flush_control; - __le16 reserved; } __packed; /* The last patch did the trick, no errors in dmesg and no wlan problems. Created attachment 159301 [details]
final version of the fix
Please test this final version of the fix
thank you.
I sorry to push here, but 3.19 will be cut very soon, and I'd like this one to make it :) Sorry, I was a little busy today. This patch works too. Emmanuel, thanks for your help! thank you for your time! |