kernel panic with pccard insert on recent 7.0 CURRENT

M. Warner Losh imp at bsdimp.com
Sat Jun 16 23:33:22 UTC 2007


While I like this patch (and will commit it soon), I don't think that
we're doing the right thing for Multi Function Cards.  The complicated
dance was so that the right ISR for the card could be called, and now
that's only applied for the filter.

Also, I'm unclear on the difference between FILTER_STRAY and
FILTER_HANDLED.

Warner

In message: <626eb4530706160525o54234621s2de098e64cdeb4fe at mail.gmail.com>
            "Hidetoshi Shimokawa" <simokawa at freebsd.org> writes:
: I think the following patch fix the problem.
: 
: RCS file: /home/ncvs/src/sys/dev/pccard/pccard.c,v
: retrieving revision 1.118
: diff -u -r1.118 pccard.c
: --- pccard.c    31 May 2007 19:29:20 -0000      1.118
: +++ pccard.c    16 Jun 2007 12:23:35 -0000
: @@ -1238,7 +1238,7 @@
:         if (pf->intr_filter != NULL || pf->intr_handler != NULL)
:                 panic("Only one interrupt handler per function allowed");
:         err = bus_generic_setup_intr(dev, child, irq, flags, pccard_filter,
: -           pccard_intr, pf, cookiep);
: +           intr ? pccard_intr : NULL, pf, cookiep);
:         if (err != 0)
:                 return (err);
:         pf->intr_filter = filt;
: 
: 
: On 6/16/07, 吴叔坤 <wsk at gddsn.org.cn> wrote:
: > hi, lists
: > i always get Fatal trap while insert a pccard with recent 7.0 current.
: > It seems that Can't recognize the pccard address?
: > thanks with any reply.
: >
: > pccard0:Allocation failed for cfe 13
: > pccard0:Allocation failed for cfe 21
: > uart0: <Bora Telecom Inc Bora 3600 Rev 1.1> at port 0x3e8-0x3ef irq 11
: > function 0 config 29 on pccard0
: > uart0:[FILTER]
: >
: > Fatal trap 12: page fault while in kernel mode
: > cpuid = 0; apic id = 00
: > fault virtual address = 0x0
: > fault code = supervisor read, page not present
: > instruction pointer = 0x20:0x0
: > stack pointer = 0x28:0xe2996cb0
: > frame pointer = 0x28:0xe2996cb8
: > code segment = base 0x0, limit 0xfffff, type 0x1b
: > = DPL 0, pres 1, def32 1, gran 1
: > processor eflags = interrupt enable, resume, IOPL = 0
: > current process = 21 (irq11: cbb0 cbb1+*)
: > [thread pid 21 tid 100013 ]
: > Stopped at 0: *** error reading from address 0 ***
: > db>bt
: > Tracing pid 21 tid 100013 td 0xc3f05c00
: > pccard_intr(c4285e00) at pccard_intr+0x12
: > cbb_func_intr(c4103140,0,c0a493ae,40b,c3f00064,...) at cbb_func_intr|0x51
: > ithread_loop(c404fab0,e2996d38,83fb5be8,ff06fc46,c3f4b804,...) at
: > ithread_loop+0
: > x1b5
: > fork_exit(c074ccd0,c404fab0,e2996d38) at fork_exit+0x57
: > fork_trampoline() at fork_trampoline+0x8
: > --- trap 0, eip = 0, esp = 0xe2996d70, ebp = 0 ---
: >
: > _______________________________________________
: > freebsd-current at freebsd.org mailing list
: > http://lists.freebsd.org/mailman/listinfo/freebsd-current
: > To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
: >
: 
: 
: -- 
: /\ Hidetoshi Shimokawa
: \/  simokawa at FreeBSD.ORG


More information about the freebsd-mobile mailing list