diff options
author | Linus Torvalds <[email protected]> | 2008-04-04 14:30:31 -0700 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2008-04-04 14:30:31 -0700 |
commit | 4ed919014eb2b591eb8fdd4dd00226a65faddef4 (patch) | |
tree | 468102fffdd30bb3110389b042df11e16235f29a | |
parent | e315c121a858499d84dc88c499046b9f10bb61ec (diff) |
parport_pc: make sure to release IO ports after probing for IT87XX
Commit f63fd7e299ee13da071ecfce2b90b58c5e1562b1 ("parport_pc: detection
for SuperIO IT87XX POST") only released the IO port region on success,
not when the probe for the IT87XX chip failed.
That caused not only a reserved region to leak, but also caused an oops
when the driver module was unloaded and somebody tried to cat
/proc/ioports - because the string that was assigned to the IO port
region was a static string in the module virtual address area.
Reported-by: Lubos Lunak <[email protected]>
Cc: Jan Kara <[email protected]>
Cc: Petr Cvek <[email protected]>
Acked-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r-- | drivers/parport/parport_pc.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c index d76d37bcb9cc..a85808938205 100644 --- a/drivers/parport/parport_pc.c +++ b/drivers/parport/parport_pc.c @@ -1568,9 +1568,8 @@ static void __devinit detect_and_report_it87(void) outb(r | 8, 0x2F); outb(0x02, 0x2E); /* Lock */ outb(0x02, 0x2F); - - release_region(0x2e, 1); } + release_region(0x2e, 1); } #endif /* CONFIG_PARPORT_PC_SUPERIO */ |