Am Samstag, 18. Mai 2011, 18:34:15 schrieben Sie:
> On 2011-06-18 6:05 PM, Peter Wagner wrote:
> > Am Freitag, 17. Mai 2011, 22:04:07 schrieb Peter Wagner:
> >>  accidently hit the send button...
> >>  
> >>  Hi,
> >>  
> >>  i created a c++ program and while testing it (it sends upd packets) i
> >>  created a few millions packages and sent them to 192.168.1.1:4950 (my
> >>  router running openwrt). its a wl500gP v1. while i was doing this the
> >>  device gets unresponsive and i get lines like this:
> >>  
> >>  b44 ssb0:0: eth0: powering down PHY
> >>  b44 ssb0:0: eth0: powering down PHY
> >>  b44 ssb0:0: eth0: powering down PHY
> >>  
> >>  after doing this for about 2 minutes the device reboots. i think this
> >>  is triggered by the watchdog as it get no enough process time from the
> >>  sheduler.
> >>  
> >>  how can i track down why this powering down PHY happens?
> >>  
> >>  regards
> >>  Peter
> >>  _______________________________________________
> >>  openwrt-devel mailing list
> >>  [email protected]
> >>  https://lists.openwrt.org/mailman/listinfo/openwrt-devel
> > 
> > i created this little c program (the code flys around somewhere in the
> > inet) and modified it a bit it sends 100000000 udp packets to a host you
> > specify compile with gcc -o foo talker_foo.c
> > and run
> > ./foo $hostname $message_that_gets_sent
> > 
> > i can reproduce the error in ~10sec of running this program against a
> > wl500gp kernel 2.6.39.1
> > after this 10sec i have about 160 lines like this
> > b44 ssb0:0: eth0: powering down PHY
> > in the output of dmesg.
> > 
> > i tested it against an unfiltered port.
> 
> Looks like there are several conditions that trigger a hardware restart
> which produce these messages:
> b44.h:
> 
> #define  ISTAT_ERRORS
> (ISTAT_DSCE|ISTAT_DATAE|ISTAT_DPE|ISTAT_RDU|ISTAT_RFO|ISTAT_TFU)
> 
> probably ISTAT_RFO is hit here - my guess is it stands for Receive FIFO
> Overflow.
> 
> Maybe there's a different way this could be handled, or maybe the error
> can be ignored altogether. Can you try removing ISTAT_RFO from
> ISTAT_ERRORS and see if that keeps the interface working during your UDP
> flood?
> 
> - Felix

removing the ISTAT_RFO doesnt bring b44 up and i can't reach the device 
anymore. i get a connection refused when i try to connect to the device.

the patch i used:

--- a/drivers/net/b44.h 2011-06-03 02:34:20.000000000 +0200
+++ b/drivers/net/b44.h 2011-06-18 18:45:05.433586052 +0200
@@ -42,7 +42,7 @@
 #define  ISTAT_EMAC            0x04000000 /* EMAC Interrupt */
 #define  ISTAT_MII_WRITE       0x08000000 /* MII Write Interrupt */
 #define  ISTAT_MII_READ                0x10000000 /* MII Read Interrupt */
-#define  ISTAT_ERRORS (ISTAT_DSCE|ISTAT_DATAE|ISTAT_DPE|ISTAT_RDU|ISTAT_RFO|
ISTAT_TFU)
+#define  ISTAT_ERRORS (ISTAT_DSCE|ISTAT_DATAE|ISTAT_DPE|ISTAT_RDU|ISTAT_TFU)
 #define B44_IMASK      0x0024UL /* Interrupt Mask */
 #define  IMASK_DEF             (ISTAT_ERRORS | ISTAT_TO | ISTAT_RX | ISTAT_TX)
 #define B44_GPTIMER    0x0028UL /* General Purpose Timer */

/Peter


_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to