misc/89305: D-Link NIC with VIA Rhine II,
lost of Network and message displayed "vr0: rx packet lost"
Emmanuel GUEGAN
eguegan at assystembrime.com
Sun Nov 20 08:10:10 GMT 2005
>Number: 89305
>Category: misc
>Synopsis: D-Link NIC with VIA Rhine II, lost of Network and message displayed "vr0: rx packet lost"
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sun Nov 20 08:10:09 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator: Emmanuel GUEGAN
>Release: 6.0
>Organization:
Assystem FRance
>Environment:
FreeBSD myserv 6.0-RELEASE FreeBSD 6.0-RELEASE #0: Sat Nov 19 15:04:45 CET 2005 root at myserv:/usr/obj/usr/src/sys/MYKERN i386
>Description:
I 'm using a Via Rhine II 100mb pci network card on a samba server (celeron 450 MHz).
When I am doing a heavy net transfert (several windows pcs making big transfert at the same time / network speed above 3~4 M Bytes/sec), after a while ( 1-2minutes) the message "vr0: rx packet lost" is displayed in loop and the network link is definitivly lost
>How-To-Repeat:
As decribe above, very heavy network transfert, after a little time, the probleme is systematic after a little while
>Fix:
The message "vr0: packet lost" is known both in the functions vr_poll_locked(...) and vr_intr(...) :
if (status & VR_ISR_RX_DROPPED) {
printf("vr%d: rx packet lost\n", sc->vr_unit);
ifp->if_ierrors++;
}
when the flag VR_ISR_RX_DROPPED is up, it is displayed, but in the next segment
the test (status & VR_ISR_RX_DROPPED) is missing to enter in the condition
so packetscannot be Tx above by vr_rxeoc(sc)
if ((status & VR_ISR_RX_ERR) || (status & VR_ISR_RX_NOBUF) ||
(status & VR_ISR_RX_NOBUF) || (status & VR_ISR_RX_OFLOW))
{
printf("vr%d: receive error (%04x)",
sc->vr_unit, status);
...
if (status & VR_ISR_RX_DROPPED)
printf(" packet lost");
printf("\n");
vr_rxeoc(sc);
}
I propose this patch :
RCS file: RCS/if_vr.c,v
retrieving revision 1.1
diff -r1.1 if_vr.c
1198c1198,1200
< (status & VR_ISR_RX_NOBUF) || (status & VR_ISR_RX_OFLOW)) {
---
> (status & VR_ISR_RX_NOBUF) || (status & VR_ISR_RX_OFLOW)
> || (status & VR_ISR_RX_DROPPED)
> ) {
1281c1283,1285
< (status & VR_ISR_RX_NOBUF) || (status & VR_ISR_RX_OFLOW)) {
---
> (status & VR_ISR_RX_NOBUF) || (status & VR_ISR_RX_OFLOW)
> || (status & VR_ISR_RX_DROPPED)
> ) {
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list