diff options
author | Pavel Emelianov <xemul@openvz.org> | 2007-05-03 18:13:45 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-05-03 18:13:45 -0400 |
commit | 7562f876cd93800f2f8c89445f2a563590b24e09 (patch) | |
tree | 78a34c011af275efa0d55ba59c3bd49b771dd533 /net/rose | |
parent | 03fba0479600114f32d29eee74ca3eaa364606bf (diff) |
[NET]: Rework dev_base via list_head (v3)
Cleanup of dev_base list use, with the aim to simplify making device
list per-namespace. In almost every occasion, use of dev_base variable
and dev->next pointer could be easily replaced by for_each_netdev
loop. A few most complicated places were converted to using
first_netdev()/next_netdev().
Signed-off-by: Pavel Emelianov <xemul@openvz.org>
Acked-by: Kirill Korotaev <dev@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/rose')
-rw-r--r-- | net/rose/rose_route.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/net/rose/rose_route.c b/net/rose/rose_route.c index 1f9aefd95a99..929a784a86d7 100644 --- a/net/rose/rose_route.c +++ b/net/rose/rose_route.c | |||
@@ -596,7 +596,7 @@ struct net_device *rose_dev_first(void) | |||
596 | struct net_device *dev, *first = NULL; | 596 | struct net_device *dev, *first = NULL; |
597 | 597 | ||
598 | read_lock(&dev_base_lock); | 598 | read_lock(&dev_base_lock); |
599 | for (dev = dev_base; dev != NULL; dev = dev->next) { | 599 | for_each_netdev(dev) { |
600 | if ((dev->flags & IFF_UP) && dev->type == ARPHRD_ROSE) | 600 | if ((dev->flags & IFF_UP) && dev->type == ARPHRD_ROSE) |
601 | if (first == NULL || strncmp(dev->name, first->name, 3) < 0) | 601 | if (first == NULL || strncmp(dev->name, first->name, 3) < 0) |
602 | first = dev; | 602 | first = dev; |
@@ -614,12 +614,13 @@ struct net_device *rose_dev_get(rose_address *addr) | |||
614 | struct net_device *dev; | 614 | struct net_device *dev; |
615 | 615 | ||
616 | read_lock(&dev_base_lock); | 616 | read_lock(&dev_base_lock); |
617 | for (dev = dev_base; dev != NULL; dev = dev->next) { | 617 | for_each_netdev(dev) { |
618 | if ((dev->flags & IFF_UP) && dev->type == ARPHRD_ROSE && rosecmp(addr, (rose_address *)dev->dev_addr) == 0) { | 618 | if ((dev->flags & IFF_UP) && dev->type == ARPHRD_ROSE && rosecmp(addr, (rose_address *)dev->dev_addr) == 0) { |
619 | dev_hold(dev); | 619 | dev_hold(dev); |
620 | goto out; | 620 | goto out; |
621 | } | 621 | } |
622 | } | 622 | } |
623 | dev = NULL; | ||
623 | out: | 624 | out: |
624 | read_unlock(&dev_base_lock); | 625 | read_unlock(&dev_base_lock); |
625 | return dev; | 626 | return dev; |
@@ -630,10 +631,11 @@ static int rose_dev_exists(rose_address *addr) | |||
630 | struct net_device *dev; | 631 | struct net_device *dev; |
631 | 632 | ||
632 | read_lock(&dev_base_lock); | 633 | read_lock(&dev_base_lock); |
633 | for (dev = dev_base; dev != NULL; dev = dev->next) { | 634 | for_each_netdev(dev) { |
634 | if ((dev->flags & IFF_UP) && dev->type == ARPHRD_ROSE && rosecmp(addr, (rose_address *)dev->dev_addr) == 0) | 635 | if ((dev->flags & IFF_UP) && dev->type == ARPHRD_ROSE && rosecmp(addr, (rose_address *)dev->dev_addr) == 0) |
635 | goto out; | 636 | goto out; |
636 | } | 637 | } |
638 | dev = NULL; | ||
637 | out: | 639 | out: |
638 | read_unlock(&dev_base_lock); | 640 | read_unlock(&dev_base_lock); |
639 | return dev != NULL; | 641 | return dev != NULL; |