Do not schedule hw full reset if the device is not fully initialized
(e.g if the channel has not been configured yet). This patch fixes
the kernel crash reported below
[ 44.440266] mt7921e 0000:01:00.0: chip reset failed
[ 44.527575] Unable to handle kernel paging request at virtual address
ffffffc02f3e0000
[ 44.535771] Mem abort info:
[ 44.538646] ESR = 0x96000006
[ 44.541792] EC = 0x25: DABT (current EL), IL = 32 bits
[ 44.547268] SET = 0, FnV = 0
[ 44.550413] EA = 0, S1PTW = 0
[ 44.553648] Data abort info:
[ 44.556613] ISV = 0, ISS = 0x00000006
[ 44.560563] CM = 0, WnR = 0
[ 44.563619] swapper pgtable: 4k pages, 39-bit VAs, pgdp=
0000000000955000
[ 44.570530] [
ffffffc02f3e0000] pgd=
100000003ffff003, p4d=
100000003ffff003, pud=
100000003ffff003, pmd=
0000000000000000
[ 44.581489] Internal error: Oops:
96000006 [#1] SMP
[ 44.606406] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 5.13.0-rc1-espressobin-12875-g6dc7f82ebc26 #33
[ 44.617264] Hardware name: Globalscale Marvell ESPRESSOBin Board (DT)
[ 44.623905] pstate:
600000c5 (nZCv daIF -PAN -UAO -TCO BTYPE=--)
[ 44.630100] pc : __queue_work+0x1f0/0x500
[ 44.634249] lr : __queue_work+0x1e8/0x500
[ 44.638384] sp :
ffffffc010003d70
[ 44.641798] x29:
ffffffc010003d70 x28:
0000000000000000 x27:
ffffff8003989200
[ 44.649166] x26:
ffffffc010c08510 x25:
0000000000000002 x24:
ffffffc010ad90b0
[ 44.656533] x23:
ffffffc010c08508 x22:
0000000000000012 x21:
0000000000000000
[ 44.663899] x20:
ffffff8006385238 x19:
ffffffc02f3e0000 x18:
00000000000003c9
[ 44.671266] x17:
0000000000000000 x16:
0000000000000000 x15:
000009b1a8a3bf90
[ 44.678632] x14:
0098968000000000 x13:
0000000000000000 x12:
0000000000000325
[ 44.685998] x11:
ffffff803fda1928 x10:
0000000000000001 x9 :
ffffffc010003e98
[ 44.693365] x8 :
0000000000000032 x7 :
fff8000000000000 x6 :
0000000000000035
[ 44.700732] x5 :
0000000000000000 x4 :
0000000000000000 x3 :
ffffffc010adf700
[ 44.708098] x2 :
ffffff8006385238 x1 :
000000007fffffff x0 :
0000000000000000
[ 44.715465] Call trace:
[ 44.717982] __queue_work+0x1f0/0x500
[ 44.721760] delayed_work_timer_fn+0x18/0x20
[ 44.726167] call_timer_fn+0x2c/0x178
[ 44.729947] run_timer_softirq+0x488/0x5c8
[ 44.734172] _stext+0x11c/0x378
[ 44.737411] irq_exit+0x100/0x108
[ 44.740830] __handle_domain_irq+0x60/0xb0
[ 44.745059] gic_handle_irq+0x70/0x2b4
[ 44.748929] el1_irq+0xb8/0x13c
[ 44.752167] arch_cpu_idle+0x14/0x30
[ 44.755858] default_idle_call+0x38/0x168
[ 44.759994] do_idle+0x1fc/0x210
[ 44.763325] cpu_startup_entry+0x20/0x58
[ 44.767372] rest_init+0xb8/0xc8
[ 44.770703] arch_call_rest_init+0xc/0x14
[ 44.774841] start_kernel+0x408/0x424
[ 44.778623] Code:
aa1403e0 97fff54f aa0003f5 b5fff500 (
f9400275)
[ 44.784907] ---[ end trace
be73c3142d8c36a9 ]---
[ 44.789668] Kernel panic - not syncing: Oops: Fatal exception in interrupt
Fixes:
0c1ce9884607 ("mt76: mt7921: add wifi reset support")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>