drivers/scsi/sim710.c | 2 ++ 1 file changed, 2 insertions(+)
The driver calls ioport_map() to map I/O ports in sim710_probe_common()
but never calls ioport_unmap() to release the mapping. This causes
resource leaks in both the error path when request_irq() fails and in
the normal device removal path via sim710_device_remove().
Add ioport_unmap() calls in the out_release error path and in
sim710_device_remove().
Fixes: 56fece20086e ("[PATCH] finally fix 53c700 to use the generic iomem infrastructure")
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
---
drivers/scsi/sim710.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/scsi/sim710.c b/drivers/scsi/sim710.c
index e519df68d603..70c75ab1453a 100644
--- a/drivers/scsi/sim710.c
+++ b/drivers/scsi/sim710.c
@@ -133,6 +133,7 @@ static int sim710_probe_common(struct device *dev, unsigned long base_addr,
out_put_host:
scsi_host_put(host);
out_release:
+ ioport_unmap(hostdata->base);
release_region(base_addr, 64);
out_free:
kfree(hostdata);
@@ -148,6 +149,7 @@ static int sim710_device_remove(struct device *dev)
scsi_remove_host(host);
NCR_700_release(host);
+ ioport_unmap(hostdata->base);
kfree(hostdata);
free_irq(host->irq, host);
release_region(host->base, 64);
--
2.50.1.windows.1
On Wed, 29 Oct 2025 11:25:55 +0800, Haotian Zhang wrote:
> The driver calls ioport_map() to map I/O ports in sim710_probe_common()
> but never calls ioport_unmap() to release the mapping. This causes
> resource leaks in both the error path when request_irq() fails and in
> the normal device removal path via sim710_device_remove().
>
> Add ioport_unmap() calls in the out_release error path and in
> sim710_device_remove().
>
> [...]
Applied to 6.19/scsi-queue, thanks!
[1/1] sim710: Fix resource leak by adding missing ioport_unmap calls
https://git.kernel.org/mkp/scsi/c/acd194d9b5ba
--
Martin K. Petersen
© 2016 - 2026 Red Hat, Inc.