iwlwifi fails to work on 16 or more logical CPUs machines
Bug #1805088 reported by
AceLan Kao
This bug affects 3 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
HWE Next |
Fix Released
|
Undecided
|
Unassigned | ||
linux (Ubuntu) |
Fix Released
|
Undecided
|
AceLan Kao | ||
Bionic |
Fix Released
|
Undecided
|
Unassigned | ||
linux-oem (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Bionic |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
Got dmesg kernel BUG while loading iwlwifi driver on machines which has 16 or more logical CPUs
kernel: RIP: 0010:iwl_
And it leads to wifi can't scan any APs, and leads to system hangs while suspending.
[Fix]
Below commit contained in v4.17 fix the issue.
ab1068d6866e iwlwifi: pcie: compare with number of IRQs requested for, not number of CPUs
[Regression Potential]
Low.
CVE References
tags: | added: originate-from-1804367 somerville |
Changed in linux (Ubuntu): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Bionic): | |
status: | New → Incomplete |
status: | Incomplete → In Progress |
Changed in linux-oem (Ubuntu): | |
status: | New → Fix Released |
Changed in linux (Ubuntu Bionic): | |
status: | In Progress → Fix Committed |
tags: |
added: verification-done-bionic removed: verification-needed-bionic |
Changed in hwe-next: | |
status: | New → Fix Released |
Changed in linux (Ubuntu): | |
status: | Fix Committed → Fix Released |
Changed in linux (Ubuntu Bionic): | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
commit ab1068d6866e28b f6427ceaea681a3 81e5870a4a
Author: Hao Wei Tee <email address hidden>
Date: Tue May 29 10:25:17 2018 +0300
iwlwifi: pcie: compare with number of IRQs requested for, not number of CPUs
When there are 16 or more logical CPUs, we request for MAX_RX_ HW_QUEUES` (16) IRQs only as we limit to that number of online_ cpus+2 instead of max_irqs, the latter being what we
`IWL_
IRQs, but later on we compare the number of IRQs returned to
nr_
actually asked for. This ends up setting num_rx_queues to 17 which
causes lots of out-of-bounds array accesses later on.
Compare to max_irqs instead, and also add an assertion in case RX_HW_QUEUES.
num_rx_queues > IWM_MAX_
This fixes https:/ /bugzilla. kernel. org/show_ bug.cgi? id=199551
Fixes: 2e5d4a8f61dc ("iwlwifi: pcie: Add new configuration to enable MSIX")
Signed-off-by: Hao Wei Tee <email address hidden>
Tested-by: Sara Sharon <email address hidden>
Signed-off-by: Luca Coelho <email address hidden>
Signed-off-by: Kalle Valo <email address hidden>