PATCH: SBC EPX does not check/claim I/O ports it uses (2nd Edition)

From: Alan Cox
Date: Tue Jan 17 2006 - 13:41:46 EST


Signed-off-by: Alan Cox <alan@xxxxxxxxxx>

--- linux.vanilla-2.6.16-rc1/drivers/char/watchdog/sbc_epx_c3.c 2006-01-17 15:52:53.000000000 +0000
+++ linux-2.6.16-rc1/drivers/char/watchdog/sbc_epx_c3.c 2006-01-17 18:27:39.149607944 +0000
@@ -25,6 +25,7 @@
#include <linux/notifier.h>
#include <linux/reboot.h>
#include <linux/init.h>
+#include <linux/ioport.h>
#include <asm/uaccess.h>
#include <asm/io.h>

@@ -180,12 +181,15 @@
static int __init watchdog_init(void)
{
int ret;
+
+ if (!request_region(EPXC3_WATCHDOG_CTL_REG, 2, "epxc3_watchdog"))
+ return -EBUSY;

ret = register_reboot_notifier(&epx_c3_notifier);
if (ret) {
printk(KERN_ERR PFX "cannot register reboot notifier "
"(err=%d)\n", ret);
- return ret;
+ goto out;
}

ret = misc_register(&epx_c3_miscdev);
@@ -193,12 +197,16 @@
printk(KERN_ERR PFX "cannot register miscdev on minor=%d "
"(err=%d)\n", WATCHDOG_MINOR, ret);
unregister_reboot_notifier(&epx_c3_notifier);
- return ret;
+ goto out;
}

printk(banner);

return 0;
+
+out:
+ release_region(EPXC3_WATCHDOG_CTL_REG, 2);
+ return ret;
}

static void __exit watchdog_exit(void)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/