All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miao Wang via B4 Relay <devnull+shankerwangmiao.gmail.com@kernel.org>
To: Binbin Zhou <zhoubinbin@loongson.cn>,
	 Chong Qiao <qiaochong@loongson.cn>, Lee Jones <lee@kernel.org>,
	 Huacai Chen <chenhuacai@kernel.org>,
	Corey Minyard <corey@minyard.net>,
	 Linus Walleij <linusw@kernel.org>,
	Bartosz Golaszewski <brgl@kernel.org>
Cc: Xi Ruoyao <xry111@xry111.site>, WANG Xuerui <kernel@xen0n.name>,
	 Yinbo Zhu <zhuyinbo@loongson.cn>,
	Jiaxun Yang <jiaxun.yang@flygoat.com>,
	 mfd@lists.linux.dev, linux-kernel@vger.kernel.org,
	 linux-gpio@vger.kernel.org,
	openipmi-developer@lists.sourceforge.net,
	 Miao Wang <shankerwangmiao@gmail.com>
Subject: [PATCH RFC v9 4/8] mfd: ls2kbmc: Cancel the work queue on removal
Date: Tue, 11 Aug 2026 16:07:28 +0800	[thread overview]
Message-ID: <20260811-ls2kbmc-mod-v9-4-4fa9a5584406@gmail.com> (raw)
In-Reply-To: <20260811-ls2kbmc-mod-v9-0-4fa9a5584406@gmail.com>

From: Miao Wang <shankerwangmiao@gmail.com>

When the device is being removeed, the work queue should be canceled to
avoid any pending work to be executed after the device is removed.

Fixes: d952bba3fbb5 ("mfd: ls2kbmc: Add Loongson-2K BMC reset function support")
Signed-off-by: Miao Wang <shankerwangmiao@gmail.com>
---
 drivers/mfd/ls2k-bmc-core.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/mfd/ls2k-bmc-core.c b/drivers/mfd/ls2k-bmc-core.c
index 06ec8143d8cdbe2c8e5a141020d96c21b37fa699..5eea53f134215456e0c14345ae4ebc5b66bd433d 100644
--- a/drivers/mfd/ls2k-bmc-core.c
+++ b/drivers/mfd/ls2k-bmc-core.c
@@ -375,6 +375,12 @@ static void ls2k_bmc_save_pci_data(struct pci_dev *pdev, struct ls2k_bmc_ddata *
 	pci_read_config_dword(pdev, PCI_INTERRUPT_LINE, &ddata->bmc_pci_data.interrupt_line);
 }
 
+static void ls2k_bmc_cancel_wq(void *data)
+{
+	struct ls2k_bmc_ddata *ddata = data;
+	(void) cancel_work_sync(&ddata->bmc_reset_work);
+}
+
 static int ls2k_bmc_init(struct ls2k_bmc_ddata *ddata)
 {
 	struct pci_dev *pdev = to_pci_dev(ddata->dev);
@@ -385,6 +391,10 @@ static int ls2k_bmc_init(struct ls2k_bmc_ddata *ddata)
 
 	INIT_WORK(&ddata->bmc_reset_work, ls2k_bmc_events_fn);
 
+	ret = devm_add_action_or_reset(ddata->dev, ls2k_bmc_cancel_wq, ddata);
+	if (ret)
+		return ret;
+
 	ret = devm_request_irq(&pdev->dev, pdev->irq, ls2k_bmc_interrupt,
 			       IRQF_SHARED | IRQF_TRIGGER_FALLING, "ls2kbmc pcie", ddata);
 	if (ret) {

-- 
2.49.0



WARNING: multiple messages have this Message-ID (diff)
From: Miao Wang <shankerwangmiao@gmail.com>
To: Binbin Zhou <zhoubinbin@loongson.cn>,
	 Chong Qiao <qiaochong@loongson.cn>, Lee Jones <lee@kernel.org>,
	 Huacai Chen <chenhuacai@kernel.org>,
	Corey Minyard <corey@minyard.net>,
	 Linus Walleij <linusw@kernel.org>,
	Bartosz Golaszewski <brgl@kernel.org>
Cc: Xi Ruoyao <xry111@xry111.site>, WANG Xuerui <kernel@xen0n.name>,
	 Yinbo Zhu <zhuyinbo@loongson.cn>,
	Jiaxun Yang <jiaxun.yang@flygoat.com>,
	 mfd@lists.linux.dev, linux-kernel@vger.kernel.org,
	 linux-gpio@vger.kernel.org,
	openipmi-developer@lists.sourceforge.net,
	 Miao Wang <shankerwangmiao@gmail.com>
Subject: [PATCH RFC v9 4/8] mfd: ls2kbmc: Cancel the work queue on removal
Date: Tue, 11 Aug 2026 16:07:28 +0800	[thread overview]
Message-ID: <20260811-ls2kbmc-mod-v9-4-4fa9a5584406@gmail.com> (raw)
In-Reply-To: <20260811-ls2kbmc-mod-v9-0-4fa9a5584406@gmail.com>

When the device is being removeed, the work queue should be canceled to
avoid any pending work to be executed after the device is removed.

Fixes: d952bba3fbb5 ("mfd: ls2kbmc: Add Loongson-2K BMC reset function support")
Signed-off-by: Miao Wang <shankerwangmiao@gmail.com>
---
 drivers/mfd/ls2k-bmc-core.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/mfd/ls2k-bmc-core.c b/drivers/mfd/ls2k-bmc-core.c
index 06ec8143d8cdbe2c8e5a141020d96c21b37fa699..5eea53f134215456e0c14345ae4ebc5b66bd433d 100644
--- a/drivers/mfd/ls2k-bmc-core.c
+++ b/drivers/mfd/ls2k-bmc-core.c
@@ -375,6 +375,12 @@ static void ls2k_bmc_save_pci_data(struct pci_dev *pdev, struct ls2k_bmc_ddata *
 	pci_read_config_dword(pdev, PCI_INTERRUPT_LINE, &ddata->bmc_pci_data.interrupt_line);
 }
 
+static void ls2k_bmc_cancel_wq(void *data)
+{
+	struct ls2k_bmc_ddata *ddata = data;
+	(void) cancel_work_sync(&ddata->bmc_reset_work);
+}
+
 static int ls2k_bmc_init(struct ls2k_bmc_ddata *ddata)
 {
 	struct pci_dev *pdev = to_pci_dev(ddata->dev);
@@ -385,6 +391,10 @@ static int ls2k_bmc_init(struct ls2k_bmc_ddata *ddata)
 
 	INIT_WORK(&ddata->bmc_reset_work, ls2k_bmc_events_fn);
 
+	ret = devm_add_action_or_reset(ddata->dev, ls2k_bmc_cancel_wq, ddata);
+	if (ret)
+		return ret;
+
 	ret = devm_request_irq(&pdev->dev, pdev->irq, ls2k_bmc_interrupt,
 			       IRQF_SHARED | IRQF_TRIGGER_FALLING, "ls2kbmc pcie", ddata);
 	if (ret) {

-- 
2.49.0


  parent reply	other threads:[~2026-08-11  8:07 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-11  8:07 [PATCH RFC v9 0/8] mfd: ls2kbmc: multiple fixes for this driver Miao Wang via B4 Relay
2026-08-11  8:07 ` Miao Wang
2026-08-11  8:07 ` [PATCH RFC v9 1/8] mfd: ls2kbmc: Make a copy when parsing mode string Miao Wang via B4 Relay
2026-08-11  8:07   ` Miao Wang
2026-08-11  8:07 ` [PATCH RFC v9 2/8] mfd: ls2kbmc: Sanity check for the connected pci port Miao Wang via B4 Relay
2026-08-11  8:07   ` Miao Wang
2026-08-11  8:07 ` [PATCH RFC v9 3/8] mfd: ls2kbmc: Redraw using exported functions Miao Wang via B4 Relay
2026-08-11  8:07   ` Miao Wang
2026-08-11  8:07 ` Miao Wang via B4 Relay [this message]
2026-08-11  8:07   ` [PATCH RFC v9 4/8] mfd: ls2kbmc: Cancel the work queue on removal Miao Wang
2026-08-11  8:07 ` [PATCH RFC v9 5/8] ipmi: ls2k: adjust dependency to its mfd driver Miao Wang via B4 Relay
2026-08-11  8:07   ` Miao Wang
2026-08-11  8:07 ` [PATCH RFC v9 6/8] gpiolib: add gpio_device_get_fwnode() helper Miao Wang via B4 Relay
2026-08-11  8:07   ` Miao Wang
2026-08-11  8:07 ` [PATCH RFC v9 7/8] mfd: ls2kbmc: Capture the reset event of BMC through GPIO Miao Wang via B4 Relay
2026-08-11  8:07   ` Miao Wang
2026-08-11  8:07 ` [PATCH RFC v9 8/8] mfd: ls2kbmc: Able to be compiled as a module Miao Wang via B4 Relay
2026-08-11  8:07   ` Miao Wang
2026-08-11 13:47 ` [PATCH RFC v9 0/8] mfd: ls2kbmc: multiple fixes for this driver Bartosz Golaszewski
2026-08-11 14:12   ` Miao Wang
2026-08-13  8:54     ` Lee Jones
2026-08-13 12:09       ` Bartosz Golaszewski

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=20260811-ls2kbmc-mod-v9-4-4fa9a5584406@gmail.com \
    --to=devnull+shankerwangmiao.gmail.com@kernel.org \
    --cc=brgl@kernel.org \
    --cc=chenhuacai@kernel.org \
    --cc=corey@minyard.net \
    --cc=jiaxun.yang@flygoat.com \
    --cc=kernel@xen0n.name \
    --cc=lee@kernel.org \
    --cc=linusw@kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mfd@lists.linux.dev \
    --cc=openipmi-developer@lists.sourceforge.net \
    --cc=qiaochong@loongson.cn \
    --cc=shankerwangmiao@gmail.com \
    --cc=xry111@xry111.site \
    --cc=zhoubinbin@loongson.cn \
    --cc=zhuyinbo@loongson.cn \
    /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.