patch-2.4.21 linux-2.4.21/net/ipv4/igmp.c

Next file: linux-2.4.21/net/ipv4/ip_fragment.c
Previous file: linux-2.4.21/net/ipv4/icmp.c
Back to the patch index
Back to the overall index

diff -urN linux-2.4.20/net/ipv4/igmp.c linux-2.4.21/net/ipv4/igmp.c
@@ -258,30 +258,22 @@
 {
 	struct ip_mc_list *im=(struct ip_mc_list *)data;
 	struct in_device *in_dev = im->interface;
-	int err;
 
 	spin_lock(&im->lock);
 	im->tm_running=0;
 
-	if (IGMP_V1_SEEN(in_dev))
-		err = igmp_send_report(in_dev->dev, im->multiaddr, IGMP_HOST_MEMBERSHIP_REPORT);
-	else
-		err = igmp_send_report(in_dev->dev, im->multiaddr, IGMP_HOST_NEW_MEMBERSHIP_REPORT);
-
-	/* Failed. Retry later. */
-	if (err) {
-		if (!in_dev->dead)
-			igmp_start_timer(im, IGMP_Unsolicited_Report_Interval);
-		goto out;
-	}
-
 	if (im->unsolicit_count) {
 		im->unsolicit_count--;
 		igmp_start_timer(im, IGMP_Unsolicited_Report_Interval);
 	}
 	im->reporter = 1;
-out:
 	spin_unlock(&im->lock);
+
+	if (IGMP_V1_SEEN(in_dev))
+		igmp_send_report(in_dev->dev, im->multiaddr, IGMP_HOST_MEMBERSHIP_REPORT);
+	else
+		igmp_send_report(in_dev->dev, im->multiaddr, IGMP_HOST_NEW_MEMBERSHIP_REPORT);
+
 	ip_ma_put(im);
 }
 

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