Skip site navigation (1)Skip section navigation (2)
Date:      Thu,  1 Mar 2001 22:48:16 +0100 (CET)
From:      ag@teuto.net
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   i386/25478: kernel panic with vlan, looks like problem in in_fxp.c
Message-ID:  <20010301214816.D7DC57CFF1@mail.andy.de>

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

>Number:         25478
>Category:       i386
>Synopsis:       kernel panic using vlans with fxp
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Mar 01 13:50:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Andreas Gerstenberg
>Release:        FreeBSD 4.2-STABLE i386
>Organization:
teuto.net Netzdienste GmbH, ISP in Bielefeld/Germany
>Environment:

FreeBSD 4-STABLE (last cvsup around 2h ago). 2x fxp (Rev 0x0c), 
2x xl (3c905C), 128 MB RAM, 4 GB HD, etc..

>Description:

When I start my system, the vlan-devices will be set up like this:

  ifconfig vlan0 vlan 10 vlandev fxp0
  ifconfig vlan1 vlan 50 vlandev fxp0
  ifconfig vlan2 vlan 20 vlandev fxp0
  (...etc...)

The state of the patent interface is:

fxp0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
     ether 00:02:b3:29:99:6b 
     media: autoselect (100baseTX <full-duplex>) status: active
     supported media: autoselect 100baseTX <full-duplex> 100baseTX 10baseT/UTP <full-duplex> 10baseT/UTP

Please note, that the state is _not_ "UP", its just like an
untached interface after booting.

After the Interfaces have been setup with the vlan information,
the system starts zebra, which does the rest of the setup (inet-
addresses and "ifconfig <if> up", etc).

The result is a kernel panic.

You will find some debugging output below, if you need more
information/debugging output, contact me.


Here are some additional informations:

--- general output ---

IdlePTD 3072000
initial pcb at 26e5e0
panicstr: page fault
panic messages:
---
Fatal trap 12: page fault while in kernel mode
fault virtual address    = 0x0
fault code               = supervisor read, page not present
instruction pointer      = 0x8:0xc01b74b2
stack pointer            = 0x10:0xc87b6c9c
frame pointer            = 0x10:0xc87b6cb4
code segment             = base 0x0, limit 0xfffff, type 0x1b
                         = DPL 0, pres 1, def32 1, gran 1
processor eflags         = interrupt enabled, resume, IOPL = 0
current process          = 422 (zebra)
interrupt mask           = net 
trap number              = 12
panic: page fault



--- backtrace output ---
#0  dumpsys () at ../../kern/kern_shutdown.c:469
#1  0xc0154087 in boot (howto=256) at ../../kern/kern_shutdown.c:309
#2  0xc0154404 in poweroff_wait (junk=0xc0246bcf, howto=-941828704)
    at ../../kern/kern_shutdown.c:556
#3  0xc020f229 in trap_fatal (frame=0xc87b6c5c, eva=0)
    at ../../i386/i386/trap.c:951
#4  0xc020ef01 in trap_pfault (frame=0xc87b6c5c, usermode=0, eva=0)
    at ../../i386/i386/trap.c:844
#5  0xc020eae7 in trap (frame={tf_fs = 7077904, tf_es = -1063059440, 
      tf_ds = -931463152, tf_edi = -1071190144, tf_esi = -1063041536, 
      tf_ebp = -931435340, tf_isp = -931435384, tf_ebx = 4, 
      tf_edx = -1063041536, tf_ecx = -1071190144, tf_eax = 0, tf_trapno =
12, 
      tf_err = 0, tf_eip = -1071942478, tf_cs = 8, tf_eflags = 66118, 
      tf_esp = 4, tf_ss = -1063041536}) at ../../i386/i386/trap.c:443
#6  0xc01b74b2 in fxp_start (ifp=0xc0a34600) at ../../pci/if_fxp.c:1083
#7  0xc0197fde in vlan_start (ifp=0xc026ef80) at ../../net/if_vlan.c:273
#8  0xc0195ce8 in ether_output_frame (ifp=0xc026ef80, m=0xc078d800)
    at ../../net/if_ethersubr.c:400
#9  0xc0195c56 in ether_output (ifp=0xc026ef80, m=0xc078d800,
dst=0xc87b6d4c, 
    rt0=0x0) at ../../net/if_ethersubr.c:354
#10 0xc019c053 in arprequest (ac=0xc026ef80, sip=0xc0b002cc, tip=0xc0b002cc, 
    enaddr=0xc026f058 "") at ../../netinet/if_ether.c:348
#11 0xc019c995 in arp_ifinit (ac=0xc026ef80, ifa=0xc0b00280)
    at ../../netinet/if_ether.c:800
#12 0xc019833f in vlan_ioctl (ifp=0xc026ef80, cmd=2149607692, 
    data=0xc0b00280 "È\002°ÀØ\002°Àè\002°À\200ï&À") at
../../net/if_vlan.c:454
#13 0xc019dc71 in in_ifinit (ifp=0xc026ef80, ia=0xc0b00280, sin=0xc87b6ebc, 
    scrub=0) at ../../netinet/in.c:660
#14 0xc019d7e7 in in_control (so=0xc7c70540, cmd=2151704858, 
    data=0xc87b6eac "vlan0", ifp=0xc026ef80, p=0xc7dcd5a0)
    at ../../netinet/in.c:412
#15 0xc01951b7 in ifioctl (so=0xc7c70540, cmd=2151704858, 
    data=0xc87b6eac "vlan0", p=0xc7dcd5a0) at ../../net/if.c:972
#16 0xc016575a in soo_ioctl (fp=0xc0b073c0, cmd=2151704858, 
    data=0xc87b6eac "vlan0", p=0xc7dcd5a0) at ../../kern/sys_socket.c:143
#17 0xc016272a in ioctl (p=0xc7dcd5a0, uap=0xc87b6f80) at
../../sys/file.h:178
#18 0xc020f4d5 in syscall2 (frame={tf_fs = 47, tf_es = 47, tf_ds = 47, 
      tf_edi = 0, tf_esi = 7, tf_ebp = -1077937928, tf_isp = -931434540, 
      tf_ebx = -1077937724, tf_edx = -1, tf_ecx = -1077937857, tf_eax = 54, 
      tf_trapno = 12, tf_err = 2, tf_eip = 672090628, tf_cs = 31, 
      tf_eflags = 643, tf_esp = -1077937972, tf_ss = 47})
    at ../../i386/i386/trap.c:1150
#19 0xc0204325 in Xint0x80_syscall ()
#20 0x804dd0b in ?? ()


--- debugging output of point where trap happens ---
(kgdb) up 6
#6  0xc01b74b2 in fxp_start (ifp=0xc0a34600) at ../../pci/if_fxp.c:1083
1083           txp = sc->cbl_last->next;
(kgdb) print txp
$1 = (struct fxp_cb_tx *) 0x0
(kgdb) print sc->cbl_last->next
Cannot access memory at address 0x0.
(kgdb) 
---------------------------------------------------------------------



>How-To-Repeat:

- boot a machine with an fxp0, which will be not configured by
  startup-scripts.
- ifconfig vlan0 vlan 10 vlandev fxp0
- ifconfig vlan0 inet 212.8.196.129 netmask 255.255.255.248 up

...and you will see a kernel panic


>Fix:

I found a workaround:
"ifconfig fxp0 up" before setting up vlan interfaces prevents
beeing paniced by the kernel :-)

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

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




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