Re: [PATCH] serial: icom: Disable the PCI device on final adapter release
From: Greg Kroah-Hartman
Date: Wed Sep 23 2026 - 06:25:25 EST
On Mon, Sep 14, 2026 at 08:59:59PM -0400, Myeonghun Pak wrote:
> icom_probe() enables the PCI device, but the final adapter release
> never disables it. Balance the enable after releasing the IRQ, mapping
> and PCI regions, while the adapter's PCI device pointer is still valid.
>
> The imbalance is already present in the initial Git import.
>
> This issue was identified during our ongoing static-analysis research
> while reviewing kernel code.
>
> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
> Cc: stable@xxxxxxxxxxxxxxx
> Assisted-by: LLM
> Co-developed-by: Ijae Kim <ae878000@xxxxxxxxx>
> Signed-off-by: Ijae Kim <ae878000@xxxxxxxxx>
> Signed-off-by: Myeonghun Pak <mhun512@xxxxxxxxx>
> ---
> drivers/tty/serial/icom.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/tty/serial/icom.c b/drivers/tty/serial/icom.c
> --- a/drivers/tty/serial/icom.c
> +++ b/drivers/tty/serial/icom.c
> @@ -1691,6 +1691,7 @@ static void icom_kref_release(struct kref *kref)
> free_irq(icom_adapter->pci_dev->irq, (void *) icom_adapter);
> iounmap(icom_adapter->base_addr);
> pci_release_regions(icom_adapter->pci_dev);
> + pci_disable_device(icom_adapter->pci_dev);
Are you sure this is correct? Lots of time disabling the device is not
what you want to do as it can cause hardware problems.
Have you tested this on the hardware? If not, I can't take it for
obvious reasons.
thanks,
greg k-h