I write module which scans network device list.
I made:
int init(void)
{
struct net_device *dev, **dp;
printk("<1>Ok\n");
while ((dev = *dp) != NULL) {
printk("<1>Searching ...\n");
write_lock_bh(&dev_base_lock);
/* ... here I change one fileld ... */
*dp = dev->next;
write_unlock_bh(&dev_base_lock);
}
return 0;
}
void cleanup(void)
{
while ((dev = *dp) != NULL) {
write_lock_bh(&dev_base_lock);
/* ... here turn change back ... */
*dp = dev->next;
write_unlock_bh(&dev_base_lock);
}
}
The problem:
This code works only once. Then I remove module and
start it again I see only 'Ok' string. Could you
explain me where is problem?
Regards,
Kirill.
__________________________________________________
Do You Yahoo!?
Make a great connection at Yahoo! Personals.
http://personals.yahoo.com
-
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/