8xx_io/enet.c

Joakim Tjernlund joakim.tjernlund at lumentis.se
Tue Dec 10 21:46:38 EST 2002


>
> Hello,
>
> I am hitting the following code (i.e. the printk() is reached) in the interrupt handler for the ethernet on a custom 823e
> board in arch/ppc/8xx_io/enet.c
>
> 	/* Check for receive busy, i.e. packets coming but no place to
> 	 * put them.  This "can't happen" because the receive interrupt
> 	 * is tossing previous frames.
> 	 */
> 	if (int_events & SCCE_ENET_BSY) {
> 		cep->stats.rx_dropped++;
> 		printk("CPM ENET: BSY can't happen.\n");
> 	}
>
> Clearly this can happen, even though the comment sais otherwise.
> This happens for a "high" datarate sunrpc interface operating over TCP/IP.
>
> Is it safe to ignore this "error" or is it a real bug that should be investigated?

hmm, not sure it's safe to ignore this "error", chances are that receive
gets "stuck" since there won't be any more RX interrupts until at least
one RX BD is freed. Try increasing the number of RX BD's(CONFIG_ENET_BIG_BUFFERS,
will increase TX and RX BD's to 32).

You can also try my patch, see
 http://lists.linuxppc.org/linuxppc-embedded/200210/msg00272.html
or
 http://lists.linuxppc.org/linuxppc-embedded/200210/msg00317.html

Version 2 has a small bug(need to move the invalidate_dcache_range).

It's still under verification so there may be problems with it.

   Jocke

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list