]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
PCI: endpoint: pci-epf-vntb: Stop cmd_handler work in epf_ntb_epc_cleanup
authorKoichiro Den <den@valinux.co.jp>
Thu, 26 Feb 2026 08:41:40 +0000 (17:41 +0900)
committerManivannan Sadhasivam <mani@kernel.org>
Wed, 4 Mar 2026 06:39:59 +0000 (12:09 +0530)
Disable the delayed work before clearing BAR mappings and doorbells to
avoid running the handler after resources have been torn down.

  Unable to handle kernel paging request at virtual address ffff800083f46004
  [...]
  Internal error: Oops: 0000000096000007 [#1]  SMP
  [...]
  Call trace:
   epf_ntb_cmd_handler+0x54/0x200 [pci_epf_vntb] (P)
   process_one_work+0x154/0x3b0
   worker_thread+0x2c8/0x400
   kthread+0x148/0x210
   ret_from_fork+0x10/0x20

Fixes: e35f56bb0330 ("PCI: endpoint: Support NTB transfer between RC and EP")
Signed-off-by: Koichiro Den <den@valinux.co.jp>
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20260226084142.2226875-4-den@valinux.co.jp
drivers/pci/endpoint/functions/pci-epf-vntb.c

index 42c870ee39563966fb29628c02164397e877c631..80535352896738321be2c8701da555549e28ce29 100644 (file)
@@ -942,6 +942,7 @@ err_config_interrupt:
  */
 static void epf_ntb_epc_cleanup(struct epf_ntb *ntb)
 {
+       disable_delayed_work_sync(&ntb->cmd_handler);
        epf_ntb_mw_bar_clear(ntb, ntb->num_mws);
        epf_ntb_db_bar_clear(ntb);
        epf_ntb_config_sspad_bar_clear(ntb);