patch-2.3.15 linux/net/irda/irlan/irlan_eth.c

Next file: linux/net/khttpd/accept.c
Previous file: linux/net/irda/af_irda.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.14/linux/net/irda/irlan/irlan_eth.c linux/net/irda/irlan/irlan_eth.c
@@ -346,12 +346,18 @@
 	 * subnet.  
 	 */
 	DEBUG(4, "IrLAN: Sending gratuitous ARP\n");
-	in_dev = dev->ip_ptr;
+	in_dev = in_dev_get(dev);
+	if (in_dev == NULL)
+		return;
+	read_lock(&in_dev->lock);
+	if (in_dev->ifa_list)
 	arp_send(ARPOP_REQUEST, ETH_P_ARP, 
 		 in_dev->ifa_list->ifa_address,
 		 dev, 
 		 in_dev->ifa_list->ifa_address,
 		 NULL, dev->dev_addr, NULL);
+	read_unlock(&in_dev->lock);
+	in_dev_put(in_dev);
 }
 
 /*

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)