On December 24, 2024 6:15:52 AM GMT+02:00, Jinjian Song <jinjian.song@xxxxxxxxxxx> wrote: >When driver processes the internal state change command, it use an >asynchronous thread to process the command operation. If the main >thread detects that the task has timed out, the asynchronous thread >will panic when executing the completion notification because the >main thread completion object has been released. > >BUG: unable to handle page fault for address: fffffffffffffff8 >PGD 1f283a067 P4D 1f283a067 PUD 1f283c067 PMD 0 >Oops: 0000 [#1] PREEMPT SMP NOPTI >RIP: 0010:complete_all+0x3e/0xa0 >[...] >Call Trace: > <TASK> > ? __die_body+0x68/0xb0 > ? page_fault_oops+0x379/0x3e0 > ? exc_page_fault+0x69/0xa0 > ? asm_exc_page_fault+0x22/0x30 > ? complete_all+0x3e/0xa0 > fsm_main_thread+0xa3/0x9c0 [mtk_t7xx (HASH:1400 5)] > ? __pfx_autoremove_wake_function+0x10/0x10 > kthread+0xd8/0x110 > ? __pfx_fsm_main_thread+0x10/0x10 [mtk_t7xx (HASH:1400 5)] > ? __pfx_kthread+0x10/0x10 > ret_from_fork+0x38/0x50 > ? __pfx_kthread+0x10/0x10 > ret_from_fork_asm+0x1b/0x30 > </TASK> >[...] >CR2: fffffffffffffff8 >---[ end trace 0000000000000000 ]--- > >Use the reference counter to ensure safe release as Sergey suggests: >https://lore.kernel.org/all/da90f64c-260a-4329-87bf-1f9ff20a5951@xxxxxxxxx/ > >Fixes: 13e920d93e37 ("net: wwan: t7xx: Add core components") >Signed-off-by: Jinjian Song <jinjian.song@xxxxxxxxxxx> Acked-by: Sergey Ryazanov <ryazanov.s.a@xxxxxxxxx>