if_ndis: kernel trap 9 with interrupts disabled

Bill Paul wpaul at FreeBSD.ORG
Sun Apr 17 12:19:48 PDT 2005


[Charset ISO-8859-1 unsupported, filtering to ASCII...]
> On 4/17/05, Yuriy Tsibizov <Yuriy.Tsibizov at gfk.ru> wrote:
> 
> > On -CURRENT from Saturday, D-Link DWL-G650+ (TNET1130 chipset) NDIS
> [snip]
> > ndis0: <D-Link AirPlus G+ DWL-G520+ Wireless PCI Adapter> mem
> >  0xe6000000-0xe6001fff,0xe5800000-0xe581ffff irq 9 at device 10.0 on pci0
> > ndis0: [GIANT-LOCKED]
> > ndis0: NDIS API version: 5.0
> > kernel trap 9 with interrupts disabled
> 
> Noticed this today myself with
> 
> > ndis0: <Intel(R) PRO/Wireless 2200BG Network Connection> mem 0xfcffe000-0xfcffefff irq 9 at device 3.0 on pci1
> > ndis0: NDIS API version: 5.1
> > ndis0: Ethernet address: 00:0e:35:17:f2:88
> > ndis0: couldn't retrieve channel info: 19
> > ndis0: link up
> 
> My x86 foo is a little rusty, but I think Peter Wemm's changes to the
> segment layout conflicted with the NDIS driver, such that the NDIS
> driver now tramples on the code segment for the process's user mode,
> rather than it's own private GDT entry. The attached patch works for
> me: can you try it?
> Peter/Bill: does this look correct?
> 
> Cheers,
> Peadar.

Your fix is correct, but it fails to take into account backwards
source compatibility with previous versions of FreeBSD. I'll clean
this up and check it in presently. (I am desperately trying to fix
is so that the code in sys/compat/ndis is synched between stable
and current so I don't have to maintain two separate trees.)

-Bill

--
=============================================================================
-Bill Paul            (510) 749-2329 | Senior Engineer, Master of Unix-Fu
                 wpaul at windriver.com | Wind River Systems
=============================================================================
              <adamw> you're just BEGGING to face the moose
=============================================================================


More information about the freebsd-current mailing list