Broadcom Wireless card
Kip Macy
kmacy at fsmware.com
Fri Feb 9 07:25:34 UTC 2007
On Thu, 8 Feb 2007, Scot Hetzel wrote:
> On 2/7/07, Kip Macy <kmacy at fsmware.com> wrote:
>>
>> I can't comment on the mini-pci version, but NDIS works just fine with
>> the cardbus version. It would be interesting to figure out where ndis is
>> falling short.
>>
>> -Kip
>
> I'm also seeing a kernel panic when trying to load a newer version of
> the Broadcom driver on my HP dv8135nr system.
>
> This driver (for the HP dv8135nr) works:
>
> Broadcom BCM43xx 802.11 Network Adapter Driver (4.40.19.0)
> ftp://ftp.hp.com/pub/softpaq/sp33001-33500/sp33008.exe
>
> This driver (for the HP dv6110us) causes a kernel page fault with
> non-sleepable locks held:
Thanks for the pointer, the "fpudna in kernel mode" may be the real
issue - it means that floating point is being used which is very
strange. If I can't reproduce, it would be helpful if you would apply
the kgdb patch I'm about to send along and give me an updated
backtrace.
-Kip
>
> Broadcom BCM43xx 802.11 Network Adapter Driver (4.100.15.5)
> ftp://ftp.hp.com/pub/softpaq/sp34001-34500/sp34152.exe
>
> Note: This driver has my adapter listed in the bcmwl5.inf file.
>
> FreeBSD hp010 7.0-CURRENT FreeBSD 7.0-CURRENT #5: Thu Feb 8 17:14:40 CST
> 2007
> swhetzel at hp010:/usr/src/7x/sys-p4/amd64/compile/GENERIC.debug amd64
>
> Scot
> --
> Unread portion of the kernel message buffer:
> ichsmb0: <SMBus controller> port 0x8400-0x840f mem
> 0xc0003000-0xc00033ff at device 20.0 on pci0
> ichsmb0: can't map I/O
> device_attach: ichsmb0 attach returned 6
> ichsmb0: <SMBus controller> port 0x8400-0x840f mem
> 0xc0003000-0xc00033ff at device 20.0 on pci0
> ichsmb0: can't map I/O
> device_attach: ichsmb0 attach returned 6
> ndis0: <Broadcom 802.11b/g WLAN> mem 0xc0204000-0xc0205fff irq 21 at
> device 2.0 on pci6
> ndis0: NDIS API version: 5.1
> fpudna in kernel mode!
> Kernel page fault with the following non-sleepable locks held:
> exclusive sleep mutex HAL preemption lock (HAL lock) r = 0
> (0xffffffffa3c69fc0) locked @
> /usr/src/7x/sys-p4/modules/ndis/../../compat/ndis/subr_hal.c:423
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x3a
> witness_warn() at witness_warn+0x262
> trap() at trap+0x1af
> calltrap() at calltrap+0x8
> --- trap 0xc, rip = 0xffffffffa3c61efd, rsp = 0xffffffffa1599b40, rbp
> = 0xffffffffa1599b80 ---
> KeInsertQueueDpc() at KeInsertQueueDpc+0x5d
> ntoskrnl_timercall() at ntoskrnl_timercall+0xb1
> softclock() at softclock+0x1c8
> ithread_loop() at ithread_loop+0xfe
> fork_exit() at fork_exit+0xaa
> fork_trampoline() at fork_trampoline+0xe
> --- trap 0, rip = 0, rsp = 0xffffffffa1599d30, rbp = 0 ---
>
>
> Fatal trap 12: page fault while in kernel mode
> cpuid = 0; apic id = 00
> fault virtual address = 0x0
> fault code = supervisor read data, page not present
> instruction pointer = 0x8:0xffffffffa3c61efd
> stack pointer = 0x10:0xffffffffa1599b40
> frame pointer = 0x10:0xffffffffa1599b80
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags = interrupt enabled, resume, IOPL = 0
> current process = 11 (swi4: clock sio)
> panic: from debugger
> cpuid = 0
> Uptime: 4m49s
> Physical memory: 1010 MB
> Dumping 82 MB: 67 51 35 19 3
>
> #0 doadump () at pcpu.h:141
> 141 __asm __volatile("movq %%gs:0,%0" : "=r" (td));
> (kgdb) kldsyms
> :
> (kgdb) bt
> #0 doadump () at pcpu.h:141
> During symbol reading, Incomplete CFI data; unspecified registers at
> 0xffffffff8044a19c.
> #1 0xffffffff8044aa99 in boot (howto=0x104) at
> ../../../kern/kern_shutdown.c:411
> #2 0xffffffff8044a527 in panic (fmt=0xffffffff806adda7 "from
> debugger") at ../../../kern/kern_shutdown.c:567
> #3 0xffffffff801ada47 in db_panic (addr=0x0, have_addr=0x0,
> count=0x0, modif=0x0) at ../../../ddb/db_command.c:433
> #4 0xffffffff801adee9 in db_command_loop () at ../../../ddb/db_command.c:401
> #5 0xffffffff801afdf3 in db_trap (type=0xa15998a0, code=0x0) at
> ../../../ddb/db_main.c:222
> #6 0xffffffff80470a38 in kdb_trap (type=0xc, code=0x0,
> tf=0xffffffffa1599a90) at ../../../kern/subr_kdb.c:502
> #7 0xffffffff8065a9f1 in trap_fatal (frame=0xffffffffa1599a90,
> eva=0xffffff003da56a40)
> at ../../../amd64/amd64/trap.c:691
> #8 0xffffffff8065afa7 in trap (frame=0xffffffffa1599a90) at
> ../../../amd64/amd64/trap.c:247
> #9 0xffffffff80642cfe in calltrap () at ../../../amd64/amd64/exception.S:169
> #10 0xffffffffa3c61efd in ?? ()
> #11 0x0000000000000000 in ?? ()
> #12 0xffffffff813cc828 in ?? ()
> #13 0x0000000000000000 in ?? ()
> #14 0xffffffff95623ee0 in ?? ()
> #15 0x0000000000000009 in centaur_id ()
> #16 0xffffffff813cc7e8 in ?? ()
> #17 0xffffffffa1599bb0 in ?? ()
> #18 0xffffffffa3c62061 in ?? ()
> #19 0xffffffffa1599bb0 in ?? ()
> #20 0x0000000000000246 in ?? ()
> #21 0x0000000000000008 in centaur_id ()
> #22 0x0000000000000016 in intel_id ()
> Cannot access memory at address 0xd
>
> /usr/src/7x/sys-p4/modules/ndis/../../compat/ndis/subr_hal.c:423
> 409 uint8_t
> 410 KfRaiseIrql(irql)
> 411 uint8_t irql;
> 412 {
> 413 uint8_t oldirql;
> 414
> 415 oldirql = KeGetCurrentIrql();
> 416
> 417 /* I am so going to hell for this. */
> 418 if (oldirql > irql)
> 419 panic("IRQL_NOT_LESS_THAN");
> 420
> 421 if (oldirql != DISPATCH_LEVEL) {
> 422 sched_pin();
> 423 mtx_lock(&disp_lock[curthread->td_oncpu]);
> 424 }
> 425 /*printf("RAISE IRQL: %d %d\n", irql, oldirql);*/
> 426
> 427 return(oldirql);
> 428 }
>
> --
> DISCLAIMER:
> No electrons were mamed while sending this message. Only slightly bruised.
>
More information about the freebsd-current
mailing list