git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.3
[linux-2.6.git]
/
net
/
irda
/
irlan
/
irlan_eth.c
diff --git
a/net/irda/irlan/irlan_eth.c
b/net/irda/irlan/irlan_eth.c
index
11a2955
..
04bb892
100644
(file)
--- a/
net/irda/irlan/irlan_eth.c
+++ b/
net/irda/irlan/irlan_eth.c
@@
-303,10
+303,10
@@
void irlan_eth_send_gratuitous_arp(struct net_device *dev)
*/
#ifdef CONFIG_INET
IRDA_DEBUG(4, "IrLAN: Sending gratuitous ARP\n");
*/
#ifdef CONFIG_INET
IRDA_DEBUG(4, "IrLAN: Sending gratuitous ARP\n");
- in_dev = in_dev_get(dev);
+ rcu_read_lock();
+ in_dev = __in_dev_get(dev);
if (in_dev == NULL)
if (in_dev == NULL)
- return;
- read_lock(&in_dev->lock);
+ goto out;
if (in_dev->ifa_list)
arp_send(ARPOP_REQUEST, ETH_P_ARP,
if (in_dev->ifa_list)
arp_send(ARPOP_REQUEST, ETH_P_ARP,
@@
-314,8
+314,8
@@
void irlan_eth_send_gratuitous_arp(struct net_device *dev)
dev,
in_dev->ifa_list->ifa_address,
NULL, dev->dev_addr, NULL);
dev,
in_dev->ifa_list->ifa_address,
NULL, dev->dev_addr, NULL);
- read_unlock(&in_dev->lock);
-
in_dev_put(in_dev
);
+out:
+
rcu_read_unlock(
);
#endif /* CONFIG_INET */
}
#endif /* CONFIG_INET */
}