I can loop dev_base only once. Why?

From: Kirill Ratkin (kratkin@yahoo.com)
Date: Fri Oct 12 2001 - 09:52:47 EST


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/



This archive was generated by hypermail 2b29 : Mon Oct 15 2001 - 21:00:45 EST