kern/183835: Kernel panic with VIMAGE on insertion of axe USB network interface

小野寛生 hiroo.ono at gmail.com
Wed Jan 22 08:20:02 UTC 2014


The following reply was made to PR kern/183835; it has been noted by GNATS.

From: =?ISO-2022-JP?B?GyRCPi5MbjQyQDgbKEI=?= <hiroo.ono at gmail.com>
To: bug-followup at FreeBSD.org, elakin at infohell.net
Cc:  
Subject: Re: kern/183835: Kernel panic with VIMAGE on insertion of axe USB
 network interface
Date: Wed, 22 Jan 2014 17:15:09 +0900

 --001a11339e2e30630504f08ab9f3
 Content-Type: text/plain; charset=ISO-8859-1
 
 Hello,
 
 I have encountered the same problem
 
 Fatal trap 12: page fault while in kernel mode
 cpuid = 0; apic id = 01
 fault virtual address	= 0x18
 fault code		= supervisor read, page not present
 instruction pointer	= 0x20:0xc0a166d1
 stack pointer		= 0x28:0xf0527c18
 frame pointer		= 0x28:0xf0527c3c
 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		= 15 (axe0)
 [ thread pid 15 tid 100098 ]
 Stopped at	0xc0a166d1 = if_alloc+0xd1:	movl	0x18(%eax),%eax
 db> bt
 Tracing pid 15 tid 100098 td 0xc0c13c40
 if_alloc(6,c6bd5580,0,cb,0,...) at 0xc0a166d1 = if_alloc+0xd1/frame 0xf0527c3c
 ue_attach_post_task(c6bd54ac,20,c0e05d52,73,0,...) at 0xc713814e =
 ue_attach_post_task+0x8e/frame 0xf0527c94
 usb_process(c6bd5420,f0527d08,28219a3f,281eaa20,28223508,...) at
 0xc07fc4c1 = usb_process+0x131/frame 0xf0527cc4
 fork_exit(c07fc390,c6bd5420,f0527d08) at 0xc091fcc3 =
 fork_exit+0xa3/frame 0xf0527cf4
 fork_trampoline() at 0xc0ce78c4 = fork_trampoline+0x8/frame 0xf0527cf4
 
 it seems the page fault occurs at sys/net/if.c line 280 in ifindex_alloc_locked,
 when accessing V_if_index.
 
 looking at if_var.h and vnet.h, V_if_index will be
 
 1) when VIMAGE is not defined,
  V_if_index => VNET(if_index) => (if_index)
 
 2) when VIMAGE is defined,
  V_if_index => VNET(if_index)
   => VNET_VNET(curvnet, if_index)
   => (*VNET_VNET_PTR((curvnet), if_index))
   => _VNET_PTR((curvnet)->vnet_data_base, if_index)
   => (__typeof(VNET_NAME(if_index))*) (((curvnet)->vnet_data_base) +
 (uintptr_t)&VNET_NAME(if_index))
   => (__typeof(vnet_entry_if_index)*) (((curvnet)->vnet_data_base) +
 (uintptr_t)&vnet_entry_if_index)
 
 and something is wrong in 2). I have not detailed further.
 
 --001a11339e2e30630504f08ab9f3
 Content-Type: text/html; charset=ISO-8859-1
 Content-Transfer-Encoding: quoted-printable
 
 Hello,<br><br>I have encountered the same problem<br><br><pre style=3D"colo=
 r:rgb(0,0,0);font-style:normal;font-variant:normal;font-weight:normal;lette=
 r-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-t=
 ransform:none;word-spacing:0px;word-wrap:break-word;white-space:pre-wrap">
 Fatal trap 12: page fault while in kernel mode
 cpuid =3D 0; apic id =3D 01
 fault virtual address	=3D 0x18
 fault code		=3D supervisor read, page not present
 instruction pointer	=3D 0x20:0xc0a166d1
 stack pointer		=3D 0x28:0xf0527c18
 frame pointer		=3D 0x28:0xf0527c3c
 code segment		=3D base 0x0, limit 0xfffff, type 0x1b
 			=3D DPL 0, pres 1, def32 1, gran 1
 processor eflags	=3D interrupt enabled, resume, IOPL =3D 0
 current process		=3D 15 (axe0)
 [ thread pid 15 tid 100098 ]
 Stopped at	0xc0a166d1 =3D if_alloc+0xd1:	movl	0x18(%eax),%eax
 db> bt
 Tracing pid 15 tid 100098 td 0xc0c13c40
 if_alloc(6,c6bd5580,0,cb,0,...) at 0xc0a166d1 =3D if_alloc+0xd1/frame 0xf05=
 27c3c
 ue_attach_post_task(c6bd54ac,20,c0e05d52,73,0,...) at 0xc713814e =3D ue_att=
 ach_post_task+0x8e/frame 0xf0527c94
 usb_process(c6bd5420,f0527d08,28219a3f,281eaa20,28223508,...) at 0xc07fc4c1=
  =3D usb_process+0x131/frame 0xf0527cc4
 fork_exit(c07fc390,c6bd5420,f0527d08) at 0xc091fcc3 =3D fork_exit+0xa3/fram=
 e 0xf0527cf4
 fork_trampoline() at 0xc0ce78c4 =3D fork_trampoline+0x8/frame 0xf0527cf4<br=
 ><br>it seems the page fault occurs at sys/net/if.c line 280 in ifindex_all=
 oc_locked,<br>when accessing V_if_index.<br><br>looking at if_var.h and vne=
 t.h, V_if_index will be<br>
 <br>1) when VIMAGE is not defined,<br> V_if_index =3D> VNET(if_index) =
 =3D> (if_index)<br><br>2) when VIMAGE is defined,<br> V_if_index =3D>=
  VNET(if_index)<br> =A0=3D> VNET_VNET(curvnet, if_index)<br> =A0=3D> =
 (*VNET_VNET_PTR((curvnet), if_index))<br>
   =3D> _VNET_PTR((curvnet)->vnet_data_base, if_index)<br>  =3D> (_=
 _typeof(VNET_NAME(if_index))*) (((curvnet)->vnet_data_base) + (uintptr_t=
 )&VNET_NAME(if_index))<br>  =3D> (__typeof(vnet_entry_if_index)*) ((=
 (curvnet)->vnet_data_base) + (uintptr_t)&vnet_entry_if_index)<br>
 <br>and something is wrong in 2). I have not detailed further.<br></pre>
 
 --001a11339e2e30630504f08ab9f3--


More information about the freebsd-bugs mailing list