kern/91942: ifconfig causes panic on re(4)

Martin nakal at web.de
Wed Jan 18 01:31:12 PST 2006


>Number:         91942
>Category:       kern
>Synopsis:       ifconfig causes panic on re(4)
>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:   Wed Jan 18 09:30:03 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Martin
>Release:        FreeBSD 6.0R
>Organization:
>Environment:
FreeBSD freebsd 6.0-RELEASE FreeBSD 6.0-RELEASE #0: Mon Nov 14 11:50:29 CET 2005     root at freebsd:/usr/obj/usr/src/sys/GENERIC  i386

>Description:
I got this panic during reconfiguration of my network
interface using "/etc/netstart restart":

Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0x11468
fault code              = supervisor write, page not present
instruction pointer     = 0x20:0xc06c9186
stack pointer           = 0x28:0xdebc1c10
frame pointer           = 0x28:0xdebc1c48
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         = 852 (ifconfig)
trap number             = 12
panic: page fault
Uptime: 12m35s
Dumping 511 MB (2 chunks)
  chunk 0: 1MB (159 pages) ... ok
  chunk 1: 511MB (130800 pages) 495 479 463 447 431 415 399 383 367 351 335 319 303 287 271 255 239 223 207 191 175 159 143 127 111 95 79 63 47 31 15

#0  doadump () at pcpu.h:165
165     pcpu.h: No such file or directory.
        in pcpu.h
(kgdb) where
#0  doadump () at pcpu.h:165
#1  0xc0638202 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:399
#2  0xc0638498 in panic (fmt=0xc084e5a2 "%s")
    at /usr/src/sys/kern/kern_shutdown.c:555
#3  0xc0807c30 in trap_fatal (frame=0xdebc1bd0, eva=70760)
    at /usr/src/sys/i386/i386/trap.c:831
#4  0xc080799b in trap_pfault (frame=0xdebc1bd0, usermode=0, eva=70760)
    at /usr/src/sys/i386/i386/trap.c:742
#5  0xc08075d9 in trap (frame=
      {tf_fs = 8, tf_es = 40, tf_ds = 40, tf_edi = -1038611264, tf_esi = 1, tf_ebp = -558097336, tf_isp = -558097412, tf_ebx = 47, tf_edx = 70660, tf_ecx = -1038623744, tf_eax = 136984, tf_trapno = 12, tf_err = 2, tf_eip = -1066626682, tf_cs = 32, tf_eflags = 66050, tf_esp = -1041890932, tf_ss = -558097340})
    at /usr/src/sys/i386/i386/trap.c:432
#6  0xc07f6dca in calltrap () at /usr/src/sys/i386/i386/exception.s:139
#7  0xc06c9186 in in_control (so=0xc22782c8, cmd=1, data=0xc2180cc0 "re0",
    ifp=0xc1b2b000, td=0xc217f900) at /usr/src/sys/netinet/in.c:480
#8  0xc06a23bc in ifioctl (so=0xc22782c8, cmd=2151704858,
    data=0xc2180cc0 "re0", td=0xc217f900) at /usr/src/sys/net/if.c:1561
#9  0xc065fb73 in soo_ioctl (fp=0x21718, cmd=2151704858, data=0xc2180cc0,
    active_cred=0xc198bd00, td=0xc217f900)
    at /usr/src/sys/kern/sys_socket.c:214
#10 0xc0659d11 in ioctl (td=0xc217f900, uap=0xdebc1d04) at file.h:258
---Type <return> to continue, or q <return> to quit---
#11 0xc0807f47 in syscall (frame=
      {tf_fs = 59, tf_es = 59, tf_ds = 59, tf_edi = 134574016, tf_esi = 134582976, tf_ebp = -1077941592, tf_isp = -558097052, tf_ebx = -2143262438, tf_edx = 134585692, tf_ecx = 134574016, tf_eax = 54, tf_trapno = 0, tf_err = 2, tf_eip = 671900563, tf_cs = 51, tf_eflags = 646, tf_esp = -1077943716, tf_ss = 59})
    at /usr/src/sys/i386/i386/trap.c:976
#12 0xc07f6e1f in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:200
#13 0x00000033 in ?? ()
Previous frame inner to this frame (corrupt stack?)

I had accidently this line in my /etc/rc.conf, because I forgot to change it back to "DHCP":
ifconfig_re0="inet 192.168.1.22 netmask 255.255.255.0"

The system started and reported during GNOME-login that network is not available.

I switch to text terminal, logged in as root and changed the line back to:
ifconfig_re0="DHCP"

Then started "/etc/netstart restart".

>How-To-Repeat:
I guess this might be difficult to reproduce, because re(4) seemed to be
in a configuration state that I did not look closely enough at. I will still try to explain.

1) Enter in /etc/rc.conf:
ifconfig_re0="inet 192.168.1.22 netmask 255.255.255.0"
2) Boot the PC.
3) Log in to GNOME. Stay in dialog ("network not available" or similar).
4) Change to console and change the line to:
ifconfig_re0="DHCP"
5) /etc/netstart restart

>Fix:


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


More information about the freebsd-bugs mailing list