• Deren Wu's avatar
    wifi: mt76: mt7921e: fix rmmod crash in driver reload test · b5a62d61
    Deren Wu authored
    In insmod/rmmod stress test, the following crash dump shows up immediately.
    The problem is caused by missing mt76_dev in mt7921_pci_remove(). We
    should make sure the drvdata is ready before probe() finished.
    
    [168.862789] ==================================================================
    [168.862797] BUG: KASAN: user-memory-access in try_to_grab_pending+0x59/0x480
    [168.862805] Write of size 8 at addr 0000000000006df0 by task rmmod/5361
    [168.862812] CPU: 7 PID: 5361 Comm: rmmod Tainted: G           OE     5.19.0-rc6 #1
    [168.862816] Hardware name: Intel(R) Client Systems NUC8i7BEH/NUC8BEB, 05/04/2020
    [168.862820] Call Trace:
    [168.862822]  <TASK>
    [168.862825]  dump_stack_lvl+0x49/0x63
    [168.862832]  print_report.cold+0x493/0x6b7
    [168.862845]  kasan_report+0xa7/0x120
    [168.862857]  kasan_check_range+0x163/0x200
    [168.862861]  __kasan_check_write+0x14/0x20
    [168.862866]  try_to_grab_pending+0x59/0x480
    [168.862870]  __cancel_work_timer+0xbb/0x340
    [168.862898]  cancel_work_sync+0x10/0x20
    [168.862902]  mt7921_pci_remove+0x61/0x1c0 [mt7921e]
    [168.862909]  pci_device_remove+0xa3/0x1d0
    [168.862914]  device_remove+0xc4/0x170
    [168.862920]  device_release_driver_internal+0x163/0x300
    [168.862925]  driver_detach+0xc7/0x1a0
    [168.862930]  bus_remove_driver+0xeb/0x2d0
    [168.862935]  driver_unregister+0x71/0xb0
    [168.862939]  pci_unregister_driver+0x30/0x230
    [168.862944]  mt7921_pci_driver_exit+0x10/0x1b [mt7921e]
    [168.862949]  __x64_sys_delete_module+0x2f9/0x4b0
    [168.862968]  do_syscall_64+0x38/0x90
    [168.862973]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    Test steps:
    1. insmode
    2. do not ifup
    3. rmmod quickly (within 1 second)
    
    Fixes: 1c71e03a
    
     ("mt76: mt7921: move mt7921_init_hw in a dedicated work")
    Signed-off-by: default avatarDeren Wu <deren.wu@mediatek.com>
    Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
    b5a62d61
pci.c 13.8 KB