* [PATCH] parport_pc: release IO region properly if unsupported ITE887x card is found
@ 2011-10-06 15:38 Jiri Kosina
2011-10-06 16:48 ` Niels de Vos
0 siblings, 1 reply; 2+ messages in thread
From: Jiri Kosina @ 2011-10-06 15:38 UTC (permalink / raw)
To: Bjorn Helgaas, Niels de Vos, Alan Cox, Greg Kroah-Hartman
Cc: Joe Krahn, Andrew Morton, Rich.Liu, linux-kernel
sio_ite_8872_probe() bails out if it detects no-parallel (1S, 2S) or unknown
card.
It doesn't call release_region() on the previously allocated resource though.
This causes
(a) leak of the resource
(b) kernel oops when parport module is removed and /proc/ioports is read. This
is because the string that has been associated to the IO port region
is a static char array inside the already removed module.
Let's call release_region() properly before baling out.
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
---
drivers/parport/parport_pc.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c
index d1cdb94..d0b597b 100644
--- a/drivers/parport/parport_pc.c
+++ b/drivers/parport/parport_pc.c
@@ -2595,14 +2595,17 @@ static int __devinit sio_ite_8872_probe(struct pci_dev *pdev, int autoirq,
break;
case 0x6:
printk(KERN_INFO "parport_pc: ITE8873 found (1S)\n");
+ release_region(inta_addr[i], 32);
return 0;
case 0x8:
printk(KERN_INFO "parport_pc: ITE8874 found (2S)\n");
+ release_region(inta_addr[i], 32);
return 0;
default:
printk(KERN_INFO "parport_pc: unknown ITE887x\n");
printk(KERN_INFO "parport_pc: please mail 'lspci -nvv' "
"output to Rich.Liu@ite.com.tw\n");
+ release_region(inta_addr[i], 32);
return 0;
}
--
1.7.3.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] parport_pc: release IO region properly if unsupported ITE887x card is found
2011-10-06 15:38 [PATCH] parport_pc: release IO region properly if unsupported ITE887x card is found Jiri Kosina
@ 2011-10-06 16:48 ` Niels de Vos
0 siblings, 0 replies; 2+ messages in thread
From: Niels de Vos @ 2011-10-06 16:48 UTC (permalink / raw)
To: Jiri Kosina
Cc: Bjorn Helgaas, Alan Cox, Greg Kroah-Hartman, Joe Krahn,
Andrew Morton, Rich.Liu, linux-kernel
On 10/06/2011 04:38 PM, Jiri Kosina wrote:
> sio_ite_8872_probe() bails out if it detects no-parallel (1S, 2S) or unknown
> card.
>
> It doesn't call release_region() on the previously allocated resource though.
> This causes
>
> (a) leak of the resource
> (b) kernel oops when parport module is removed and /proc/ioports is read. This
> is because the string that has been associated to the IO port region
> is a static char array inside the already removed module.
>
> Let's call release_region() properly before baling out.
>
> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
> ---
> drivers/parport/parport_pc.c | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c
> index d1cdb94..d0b597b 100644
> --- a/drivers/parport/parport_pc.c
> +++ b/drivers/parport/parport_pc.c
> @@ -2595,14 +2595,17 @@ static int __devinit sio_ite_8872_probe(struct pci_dev *pdev, int autoirq,
> break;
> case 0x6:
> printk(KERN_INFO "parport_pc: ITE8873 found (1S)\n");
> + release_region(inta_addr[i], 32);
> return 0;
> case 0x8:
> printk(KERN_INFO "parport_pc: ITE8874 found (2S)\n");
> + release_region(inta_addr[i], 32);
> return 0;
> default:
> printk(KERN_INFO "parport_pc: unknown ITE887x\n");
> printk(KERN_INFO "parport_pc: please mail 'lspci -nvv' "
> "output to Rich.Liu@ite.com.tw\n");
> + release_region(inta_addr[i], 32);
> return 0;
> }
>
Looks good to me, now release_region() is now consistent through the
whole of sio_ite_8872_probe().
Also verified that this is not an issue in drivers/tty/serial/8250_pci.c
where a similar logic for the same chip is used.
Acked-by: Niels de Vos <ndevos@redhat.com>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-10-06 17:33 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-06 15:38 [PATCH] parport_pc: release IO region properly if unsupported ITE887x card is found Jiri Kosina
2011-10-06 16:48 ` Niels de Vos
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox