Kernel boot hangs by parallel flood pings

Ho Lee flylist at linuxkernel.net
Thu Jan 13 11:14:49 EST 2005


I met the same problem in CPM driver, and there could be many 
solutions. I think the right place to fix is the fec driver. 
The fec driver registers interrupt handler during the 
initialization not when the device is opened, so it may
receive packets even the device is not up and running (also 
before the network subsystem is initialized) My fix was to 
ignore the received packets if the driver is not opened. 

--- linux-2.4.26.orig/arch/ppc/8xx_io/fec.c
+++ linux-2.4.26/arch/ppc/8xx_io/fec.c 
@@ -587,6 +587,9 @@
                goto rx_processing_done;
        }
 
+       if (!netif_running(dev))
+           goto rx_processing_done;
+
        /* Process the incoming frame.
         */
        fep->stats.rx_packets++;


Regards,
Ho

-----Original Message-----
From: linuxppc-embedded-bounces at ozlabs.org
[mailto:linuxppc-embedded-bounces at ozlabs.org] On Behalf Of Rune Torgersen
Sent: Wednesday, January 12, 2005 7:32 AM
To: Steffen Rumler; linuxppc
Subject: RE: Kernel boot hangs by parallel flood pings

--- Kernel.old/net/ipv4/ip_output.c     Thu Jun  5 09:00:39 2003
+++ Kernel/net/ipv4/ip_output.c Thu Jun  5 09:00:28 2003
@@ -1087,11 +1087,11 @@

 void __init ip_init(void)
 {
-       dev_add_pack(&ip_packet_type);
-
        ip_rt_init();
        inet_initpeers();

+       dev_add_pack(&ip_packet_type);
+
 #ifdef CONFIG_IP_MULTICAST
        proc_net_create("igmp", 0, ip_mc_procinfo);
 #endif
>>





More information about the Linuxppc-embedded mailing list