Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[sfrench/cifs-2.6.git] / drivers / net / wan / hdlc_cisco.c
index 61d8f6389c64cce1d37ede97b2b7bd16633c779b..a030f5aa6b9514b71762df3c1cc34a16294c0a7b 100644 (file)
@@ -193,16 +193,15 @@ static int cisco_rx(struct sk_buff *skb)
                        mask = ~cpu_to_be32(0); /* is the mask correct? */
 
                        if (in_dev != NULL) {
-                               struct in_ifaddr **ifap = &in_dev->ifa_list;
+                               const struct in_ifaddr *ifa;
 
-                               while (*ifap != NULL) {
+                               in_dev_for_each_ifa_rcu(ifa, in_dev) {
                                        if (strcmp(dev->name,
-                                                  (*ifap)->ifa_label) == 0) {
-                                               addr = (*ifap)->ifa_local;
-                                               mask = (*ifap)->ifa_mask;
+                                                  ifa->ifa_label) == 0) {
+                                               addr = ifa->ifa_local;
+                                               mask = ifa->ifa_mask;
                                                break;
                                        }
-                                       ifap = &(*ifap)->ifa_next;
                                }
 
                                cisco_keepalive_send(dev, CISCO_ADDR_REPLY,