* [PATCH 1/2] tty: moxa: unwind tty driver if PCI registration fails
@ 2026-07-31 16:18 Myeonghun Pak
2026-07-31 16:18 ` [PATCH 2/2] tty: moxa: use pcim_enable_device() Myeonghun Pak
0 siblings, 1 reply; 2+ messages in thread
From: Myeonghun Pak @ 2026-07-31 16:18 UTC (permalink / raw)
To: Greg Kroah-Hartman, Jiri Slaby
Cc: linux-serial, linux-kernel, stable, Myeonghun Pak, Ijae Kim
moxa_init() registers the tty driver before registering the PCI driver.
If pci_register_driver() fails, module initialization returns without
unregistering the tty driver or dropping its reference. moxa_exit() is
not called after a failed module initialization.
Unregister the tty driver and drop its reference before returning the
PCI registration error.
This issue was identified during our ongoing static-analysis research while
reviewing kernel code.
Fixes: a784bf7c195f ("[PATCH] Char: moxa, pci probing")
Cc: stable@vger.kernel.org
Co-developed-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
---
drivers/tty/moxa.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/tty/moxa.c b/drivers/tty/moxa.c
index 1bb2376af85c..680b2dd65462 100644
--- a/drivers/tty/moxa.c
+++ b/drivers/tty/moxa.c
@@ -1172,8 +1172,11 @@ static int __init moxa_init(void)
}
retval = pci_register_driver(&moxa_pci_driver);
- if (retval)
+ if (retval) {
printk(KERN_ERR "Can't register MOXA pci driver!\n");
+ tty_unregister_driver(moxaDriver);
+ tty_driver_kref_put(moxaDriver);
+ }
return retval;
}
--
2.47.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH 2/2] tty: moxa: use pcim_enable_device()
2026-07-31 16:18 [PATCH 1/2] tty: moxa: unwind tty driver if PCI registration fails Myeonghun Pak
@ 2026-07-31 16:18 ` Myeonghun Pak
0 siblings, 0 replies; 2+ messages in thread
From: Myeonghun Pak @ 2026-07-31 16:18 UTC (permalink / raw)
To: Greg Kroah-Hartman, Jiri Slaby
Cc: linux-serial, linux-kernel, stable, Myeonghun Pak, Ijae Kim
moxa_pci_probe() enables the PCI device with pci_enable_device(), but
its failure paths and remove callback do not disable it. Repeated bind
and unbind cycles can therefore leave the PCI enable count unbalanced.
Use pcim_enable_device() so the PCI core automatically disables the
device when probe fails or the driver detaches. Keep the existing
explicit BAR request and mapping cleanup unchanged.
This issue was identified during our ongoing static-analysis research while
reviewing kernel code.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Cc: stable@vger.kernel.org
Co-developed-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
---
drivers/tty/moxa.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/tty/moxa.c b/drivers/tty/moxa.c
index 680b2dd65462..02220ecf3b38 100644
--- a/drivers/tty/moxa.c
+++ b/drivers/tty/moxa.c
@@ -1063,7 +1063,7 @@ static int moxa_pci_probe(struct pci_dev *pdev,
int board_type = ent->driver_data;
int retval;
- retval = pci_enable_device(pdev);
+ retval = pcim_enable_device(pdev);
if (retval) {
dev_err(&pdev->dev, "can't enable pci device\n");
goto err;
--
2.47.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-31 16:18 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-31 16:18 [PATCH 1/2] tty: moxa: unwind tty driver if PCI registration fails Myeonghun Pak
2026-07-31 16:18 ` [PATCH 2/2] tty: moxa: use pcim_enable_device() Myeonghun Pak
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox