2001-10-12 14:52:30

by Kirill Ratkin

[permalink] [raw]
Subject: I can loop dev_base only once. Why?

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