Impact:
Kernel freezes/panic when running wireless tests in regression
Test case:
1. Keep a wrong access-point name in sta.conf file and run the nmcli.
2. There will be continuous scan will be happen and do remove the module using rmmod.sh script.
3. When soft scan is happening in redpine driver, before connection. Some times, we have observed
a kernel panic. like below
[ 1171.913244] BUG: unable to handle page request at 00000000001067e38
[ 1171.913248] IP: cfg80211_scan_done+0xb0/0xc0 [cfg80211]
[ 1171.913971] __ieee80211_scan_completed+0xb1/0x390 [mac80211]
[ 1171.914078] ieee80211_scan_work+0x7e/0x480 [mac80211]
[ 1171.914098] process_one_work+0x142/0x3d0
[ 1171.914111] worker_thread+0x229/0x440
[ 1171.914122] kthread+0xf5/0x130
[ 1171.914132] ? process_one_work+0x3d0/0x3d0
[ 1171.914140] ? kthread_associate_blkcg+0x90/0x90
[ 1171.914152] ret_from_fork+0x35/0x40
Fix:
scan work function keeps running even after cancel_hw_scan() call.
Issue is resolved by calling cancel_work_sync().
Regression potential:
Ran driver_crash.sh for 100 times and didn't see the issue.
SRU Justification
-----------------
Impact:
Kernel freezes/panic when running wireless tests in regression
Test case: scan_done+ 0xb0/0xc0 [cfg80211] scan_completed+ 0xb1/0x390 [mac80211] scan_work+ 0x7e/0x480 [mac80211] one_work+ 0x142/0x3d0 thread+ 0x229/0x440 one_work+ 0x3d0/0x3d0 associate_ blkcg+0x90/ 0x90 fork+0x35/ 0x40
1. Keep a wrong access-point name in sta.conf file and run the nmcli.
2. There will be continuous scan will be happen and do remove the module using rmmod.sh script.
3. When soft scan is happening in redpine driver, before connection. Some times, we have observed
a kernel panic. like below
[ 1171.913244] BUG: unable to handle page request at 00000000001067e38
[ 1171.913248] IP: cfg80211_
[ 1171.913971] __ieee80211_
[ 1171.914078] ieee80211_
[ 1171.914098] process_
[ 1171.914111] worker_
[ 1171.914122] kthread+0xf5/0x130
[ 1171.914132] ? process_
[ 1171.914140] ? kthread_
[ 1171.914152] ret_from_
Fix:
scan work function keeps running even after cancel_hw_scan() call.
Issue is resolved by calling cancel_work_sync().
Regression potential:
Ran driver_crash.sh for 100 times and didn't see the issue.