module locking for pcnet_cs

Jochen Hein (jochen@jochen.org)
Sat, 28 Dec 2002 16:16:39 +0100


I got the "unsafe" module init message von pcnet_cs and decided to
evaluate it. When I remove the MOD_INC_USE_COUNT and
MOD_DEC_USE_COUNT[1] the message vanishes. Bad news is that removing the
module with still active eth0 loops rmmod (removing after "ifconfig
eth0 down" works as expected).

Use count in lsmod is zero, so I think it is not that correct.
Playing[2] with try_module_get() doesn't help me either.

Jochen

[1] This is the probably broken patch:

--- linux-2.5.53/drivers/net/pcmcia/pcnet_cs.c.jh 2002-12-28 10:15:45.000000000 +0100
+++ linux-2.5.53/drivers/net/pcmcia/pcnet_cs.c 2002-12-28 10:16:15.000000000 +0100
@@ -1030,7 +1030,6 @@
return -ENODEV;

link->open++;
- MOD_INC_USE_COUNT;

set_misc_reg(dev);
request_irq(dev->irq, ei_irq_wrapper, SA_SHIRQ, dev_info, dev);
@@ -1064,8 +1063,6 @@
if (link->state & DEV_STALE_CONFIG)
mod_timer(&link->release, jiffies + HZ/20);

- MOD_DEC_USE_COUNT;
-
return 0;
} /* pcnet_close */

[2] Yet another broken patch:

--- linux-2.5.53/drivers/net/pcmcia/pcnet_cs.c.jh 2002-12-28 10:15:45.000000000 +0100
+++ linux-2.5.53/drivers/net/pcmcia/pcnet_cs.c 2002-12-28 11:04:08.000000000 +0100
@@ -1029,8 +1029,8 @@
if (!DEV_OK(link))
return -ENODEV;

+ try_module_get(dev->owner);
link->open++;
- MOD_INC_USE_COUNT;

set_misc_reg(dev);
request_irq(dev->irq, ei_irq_wrapper, SA_SHIRQ, dev_info, dev);
@@ -1064,7 +1064,7 @@
if (link->state & DEV_STALE_CONFIG)
mod_timer(&link->release, jiffies + HZ/20);

- MOD_DEC_USE_COUNT;
+ module_put(dev->owner);

return 0;
} /* pcnet_close */

-- 
#include <~/.signature>: permission denied
-
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/