Re: Broadcom Wireless card

From: Kip Macy <kmacy_at_fsmware.com>
Date: Thu, 8 Feb 2007 23:25:31 -0800 (PST)
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 _at_
> /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.
>
Received on Fri Feb 09 2007 - 06:25:34 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:05 UTC