Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Apr 2004 12:42:50 -0700 (PDT)
From:      "Sean O'Connell" <soconnell@venturipartners.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   i386/65896: 5.2-RELEASE re(4) driver, kernel panic on boot when NIC connected to a 100Mbps port
Message-ID:  <200404221942.i3MJgovc030740@www.freebsd.org>
Resent-Message-ID: <200404221950.i3MJoPJC077223@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         65896
>Category:       i386
>Synopsis:       5.2-RELEASE re(4) driver, kernel panic on boot when NIC connected to a 100Mbps port
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-i386
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Apr 22 12:50:25 PDT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Sean O'Connell
>Release:        5.2-RELEASE
>Organization:
Venturi Partners
>Environment:
FreeBSD testbox.venturipartners.com 5.2-RELEASE FreeBSD 5.2-RELEASE #0: Thu Apr 15 19:14:42 GMT     root@testbox.venturipartners.com:/usr/obj/usr/src/sys/VENTURI i386
>Description:
When the re(4) driver loads during boot and attempts to initialize a RealTek 8139-based NIC connected to a 100Mbps-only hub or switch port, or a 10/100 autosensing port that has been manually set to 100 (full or half duplex), the kernel panics with the following:

re1: <RealTek 8139C+ 10/100BaseTX> port 0xe000-0xe0ff mem 0xe1107000-0xe11070ff
irq 10 at device 10.0 on pci0
re1: Ethernet address: 00:0a:9d:04:01:3d
miibus2: <MII bus> on re1
rlphy1: <RealTek internal media interface> on miibus2
rlphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
re1: diagnostic failed, failed to receive packet in loopback mode
re1: attach aborted due to hardware diag failure

Fatal trap 12: page fault while in kernel mode
fault virtual address     = 0x98
fault code                = supervisor write, page not present
instruction pointer       = 0x8: 0xc04afad5
stack pointer             = 0x10: 0xc0821a50
frame pointer             = 0x10: 0xc0821a60
code segment              = base 0x0, limit 0xfffff, type 0x1b
                          = DPL 0, pres 1, def 32 1, gran 1
processor eflags          = interrupt enabled, resume, IOPL=0
current process           = 0 (swapper)
trap number               = 12
panic: page fault
uptime: 1s

If connected to a 10Mbps port (full or half duplex) or an autosensing port configured for Auto, the driver loads normally and the system completes boot.  If the NIC is disconnected from the hub or switch during boot, and then reconnected once the system has loaded, the interface will operate normally.  If re(4) is not compiled into the kernel, and is loaded as a module with kldload once the system has booted up, the driver will load normally.  If the driver is loaded as a module DURING boot (if_re_load="YES" in loader.conf), a kernel panic occurs.

This condition consistently recurred during testing with multiple RealTek 8139-based NICs connected to various networking hardware (a selection of about ten different hubs and switches from Cisco, 3Com, and NetGear).
>How-To-Repeat:
Take an i386 computer with a RealTek 8139-based NIC and connect the NIC in turn to the listed hub/switch port configurations, while the system boots.  The following results will be observed:  

Not connected:         OK
10baseT Half Duplex:   OK
10baseT Full Duplex:   OK
100baseT Half Duplex:  PANIC
100baseTX Full Duplex: PANIC
Auto-sensing:          OK

>Fix:
None.  Workaround is to boot the system with the NIC unplugged.
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200404221942.i3MJgovc030740>