From: Guoqing Jiang <guoqing.jiang@linux.dev>
To: bmt@zurich.ibm.com, jgg@ziepe.ca, leon@kernel.org
Cc: linux-rdma@vger.kernel.org
Subject: [PATCH 1/5] RDMA/siw: Set siw_cm_wq to NULL after it is destroyed
Date: Thu, 27 Jul 2023 22:03:45 +0800 [thread overview]
Message-ID: <20230727140349.25369-2-guoqing.jiang@linux.dev> (raw)
In-Reply-To: <20230727140349.25369-1-guoqing.jiang@linux.dev>
In case siw module can't be inserted successfully, after that remove the module
from kernel, then both siw_cm_exit and the failure path in siw_init_module call
siw_cm_exit, which cause below issue.
[ 73.561312] BUG: unable to handle page fault for address: 000000040000004c
[ 73.561317] #PF: supervisor read access in kernel mode
[ 73.561319] #PF: error_code(0x0000) - not-present page
[ 73.561320] PGD 0 P4D 0
[ 73.561322] Oops: 0000 [#1] PREEMPT SMP NOPTI
[ 73.561324] CPU: 1 PID: 1693 Comm: modprobe Tainted: G OE 6.5.0-rc3+ #16
[ 73.561326] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.0-0-gd239552c-rebuilt.opensuse.org 04/01/2014
[ 73.561327] RIP: 0010:device_del+0x22/0x3d0
...
[ 73.561347] Call Trace:
[ 73.561348] <TASK>
[ 73.561350] ? show_regs+0x72/0x90
[ 73.561353] ? __die+0x25/0x80
[ 73.561355] ? page_fault_oops+0x154/0x4d0
[ 73.561357] ? lockdep_unlock+0x63/0xe0
[ 73.561361] ? do_user_addr_fault+0x381/0x8d0
[ 73.561363] ? rcu_is_watching+0x13/0x70
[ 73.561365] ? exc_page_fault+0x87/0x240
[ 73.561369] ? asm_exc_page_fault+0x27/0x30
[ 73.561373] ? device_del+0x22/0x3d0
[ 73.561374] ? __this_cpu_preempt_check+0x13/0x20
[ 73.561377] device_unregister+0x18/0x70
[ 73.561378] destroy_workqueue+0x33/0x2d0
[ 73.561381] siw_cm_exit+0x1a/0x30 [siw]
[ 73.561387] siw_exit_module+0x96/0x5a0 [siw]
So we need to set the workqueue to NULL after it is destroyed.
Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
---
drivers/infiniband/sw/siw/siw_cm.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/infiniband/sw/siw/siw_cm.c b/drivers/infiniband/sw/siw/siw_cm.c
index da530c0404da..758ac8a22f7a 100644
--- a/drivers/infiniband/sw/siw/siw_cm.c
+++ b/drivers/infiniband/sw/siw/siw_cm.c
@@ -1958,6 +1958,8 @@ int siw_cm_init(void)
void siw_cm_exit(void)
{
- if (siw_cm_wq)
+ if (siw_cm_wq) {
destroy_workqueue(siw_cm_wq);
+ siw_cm_wq = NULL;
+ }
}
--
2.34.1
next prev parent reply other threads:[~2023-07-27 14:10 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-27 14:03 [PATCH 0/5] Fix potential issues for siw Guoqing Jiang
2023-07-27 14:03 ` Guoqing Jiang [this message]
2023-07-27 14:03 ` [PATCH 2/5] RDMA/siw: Ensure siw_destroy_cpulist can be called more than once Guoqing Jiang
2023-07-27 14:03 ` [PATCH 3/5] RDMA/siw: Initialize siw_link_ops.list Guoqing Jiang
2023-07-27 14:03 ` [PATCH 4/5] RDMA/siw: Set siw_crypto_shash to NULL after it is freed Guoqing Jiang
2023-07-27 14:03 ` [PATCH 5/5] RDMA/siw: Don't call wake_up unconditionally in siw_stop_tx_thread Guoqing Jiang
2023-07-27 17:17 ` [PATCH 0/5] Fix potential issues for siw Bernard Metzler
2023-07-27 17:29 ` Jason Gunthorpe
2023-07-27 18:15 ` Bart Van Assche
2023-07-28 1:16 ` Guoqing Jiang
2023-07-28 2:29 ` Guoqing Jiang
2023-07-28 11:10 ` Bernard Metzler
2023-07-28 9:36 ` Bernard Metzler
2023-08-09 19:04 ` Jason Gunthorpe
2023-08-10 1:14 ` Guoqing Jiang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230727140349.25369-2-guoqing.jiang@linux.dev \
--to=guoqing.jiang@linux.dev \
--cc=bmt@zurich.ibm.com \
--cc=jgg@ziepe.ca \
--cc=leon@kernel.org \
--cc=linux-rdma@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.