kern/103495: if_vr locks after carrier event

Mij mij at bitchx.it
Fri Sep 22 11:20:26 PDT 2006


>Number:         103495
>Category:       kern
>Synopsis:       if_vr locks after carrier event
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Sep 22 18:20:20 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Mij
>Release:        FreeBSD 6.2-PRERELEASE i386
>Organization:
>Environment:
System: FreeBSD lamehost 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #2: Sat Sep 16
14:42:39 CEST 2006 xyz at lamehost:/usr/obj/usr/src/sys/ck i386

>Description:
The if_vr driver for VIA Rhine I and II stops processing both incoming and outgoing
traffic after the following event

    vr0: link state changed to DOWN
    vr0: link state changed to UP

(possibly repeated a few times) making the interface unusable reliably.

A similar report is in PR kern/100499, but this amendment has to be specified
wrt to it: no shutdown is required for having the driver handle traffic again.
Conversely, the following is sufficient:

    # ifconfig vr0 down
    # ifconfig vr0 up

this makes the driver run vr_reset(), after which the interface behaves
correctly again.

The linux driver via-rhine.c currently does not feature this behaviour and could
be source of inspiration.

>How-To-Repeat:
initialize vr interface; unplug the cable off of the interface, physically; replug the cable into the interface

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list