I can loop dev_base only once. Why?

Kirill Ratkin (kratkin@yahoo.com)
Fri, 12 Oct 2001 07:52:47 -0700 (PDT)


Hi. I have a problem.

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/