[PATCH 2.5.73] Remove check_region and MOD_*_USE_COUNT from mixcomwd.c

Bob Miller (rem@osdl.org)
Thu, 26 Jun 2003 13:24:31 -0700


Didn't recieve any negative feed back from my CFT. To recap this
patch:

Replaces the call to MOD_INC_USE_COUNT with a __module_get() when
forcing the module to not be unloadable.

And removes the check_region() calls and restructured things to only
use request_region().

--
Bob Miller                                      Email: rem@osdl.org
Open Source Development Lab                     Phone: 503.626.2455 Ext. 17

diff -Nru a/drivers/char/watchdog/mixcomwd.c b/drivers/char/watchdog/mixcomwd.c --- a/drivers/char/watchdog/mixcomwd.c Wed Jun 25 16:18:28 2003 +++ b/drivers/char/watchdog/mixcomwd.c Wed Jun 25 16:18:28 2003 @@ -95,7 +95,12 @@ mixcomwd_ping(); if (nowayout) { - MOD_INC_USE_COUNT; + /* + * fops_get() code via open() has already done + * a try_module_get() so it is safe to do the + * __module_get(). + */ + __module_get(THIS_MODULE); } else { if(mixcomwd_timer_alive) { del_timer(&mixcomwd_timer); @@ -211,30 +216,34 @@ { int id; - if(check_region(port+MIXCOM_WATCHDOG_OFFSET,1)) { + port += MIXCOM_WATCHDOG_OFFSET; + if (!request_region(port, 1, "MixCOM watchdog")) { return 0; } - id=inb_p(port + MIXCOM_WATCHDOG_OFFSET) & 0x3f; + id=inb_p(port) & 0x3f; if(id!=MIXCOM_ID) { + release_region(port, 1); return 0; } - return 1; + return port; } static int __init flashcom_checkcard(int port) { int id; - if(check_region(port + FLASHCOM_WATCHDOG_OFFSET,1)) { + port += FLASHCOM_WATCHDOG_OFFSET; + if (!request_region(port, 1, "MixCOM watchdog")) { return 0; } - id=inb_p(port + FLASHCOM_WATCHDOG_OFFSET); + id=inb_p(port); if(id!=FLASHCOM_ID) { + release_region(port, 1); return 0; } - return 1; + return port; } static int __init mixcomwd_init(void) @@ -244,17 +253,17 @@ int found=0; for (i = 0; !found && mixcomwd_ioports[i] != 0; i++) { - if (mixcomwd_checkcard(mixcomwd_ioports[i])) { + watchdog_port = mixcomwd_checkcard(mixcomwd_ioports[i]); + if (watchdog_port) { found = 1; - watchdog_port = mixcomwd_ioports[i] + MIXCOM_WATCHDOG_OFFSET; } } /* The FlashCOM card can be set up at 0x300 -> 0x378, in 0x8 jumps */ for (i = 0x300; !found && i < 0x380; i+=0x8) { - if (flashcom_checkcard(i)) { + watchdog_port = flashcom_checkcard(i); + if (watchdog_port) { found = 1; - watchdog_port = i + FLASHCOM_WATCHDOG_OFFSET; } } @@ -263,9 +272,6 @@ return -ENODEV; } - if (!request_region(watchdog_port,1,"MixCOM watchdog")) - return -EIO; - ret = misc_register(&mixcomwd_miscdev); if (ret) {

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