Hi, I found that -current panices when I am trying to insert 3Com 3CXM756 modem card. This doesn't happen when I am inserting my older modem card - TDK DF3000, in this case it is detected attached as sio without any problems. Following is postmortem gdb debugging session, please note that for some reason gdb gets it wrong and displays pccard_read_cis() as a faulty function, while in fact the 0xc019ceb6 address belongs to the pccard_scan_cis(). -Maxim Fatal trap 12: page fault while in kernel mode fault virtual address = 0xd04a8000 fault code = supervisor read, page not present instruction pointer = 0x8:0xc019ceb6 stack pointer = 0x10:0xcb826968 frame pointer = 0x10:0xcb826b94 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 = 8 (cbb0) trap number = 12 panic: page fault syncing disks, buffers remaining... 909 909 909 909 909 909 909 909 909 909 909 909 909 909 909 909 909 ACPI-0432: *** Error: Handler for [EmbeddedControl] returned AE_ERROR ACPI-1284: *** Error: Method execution failed [\\_TZ_.THRM._TMP] (Node 0xc10 4ea20), AE_ERROR 909 909 909 giving up on 723 buffers Uptime: 39s Dumping 255 MB ata0: resetting devices .. done 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 --- #0 doadump () at ../../../kern/kern_shutdown.c:238 238 dumping++; (kgdb) bt #0 doadump () at ../../../kern/kern_shutdown.c:238 #1 0xc0242ed5 in boot (howto=256) at ../../../kern/kern_shutdown.c:370 #2 0xc02431f4 in poweroff_wait (junk=0xc03a3cad, howto=-1069899426) at ../../../kern/kern_shutdown.c:543 #3 0xc0360a4d in trap_fatal (frame=0xc0ed35f0, eva=0) at ../../../i386/i386/trap.c:834 #4 0xc0360768 in trap_pfault (frame=0xcb826928, usermode=0, eva=3494543360) at ../../../i386/i386/trap.c:748 #5 0xc0360342 in trap (frame= {tf_fs = -1055784936, tf_es = -880672752, tf_ds = -1072168944, tf_edi = 0, tf_esi = -1055764352, tf_ebp = -880645228, tf_isp = -880645804, tf_ebx = -10567 59512, tf_edx = -800428032, tf_ecx = 2054, tf_eax = 4096, tf_trapno = 12, tf_err = 0, tf_eip = -1072050506, tf_cs = 8, tf_eflags = 590338, tf_esp = -1054168768, tf_ss = -1055880064}) at ../../../i386/i386/trap.c:433 #6 0xc0351bd8 in calltrap () at {standard input}:96 #7 0xc019cce4 in pccard_read_cis (sc=0xc1032128) at ../../../dev/pccard/pccard_cis.c:98 #8 0xc019a78a in pccard_attach_card (dev=0xc1108c80) at ../../../dev/pccard/pccard.c:185 #9 0xc01a26de in cbb_insert (sc=0xc10fd400) at card_if.h:66 #10 0xc01a24a3 in cbb_event_thread (arg=0xc10fd400) at ../../../dev/pccbb/pccbb.c:883 #11 0xc022d5dd in fork_exit (callout=0xc01a2415 <cbb_event_thread>, arg=0x0, frame=0x0) at ../../../kern/kern_fork.c:797 (kgdb) up #1 0xc0242ed5 in boot (howto=256) at ../../../kern/kern_shutdown.c:370 370 doadump(); (kgdb) up #2 0xc02431f4 in poweroff_wait (junk=0xc03a3cad, howto=-1069899426) at ../../../kern/kern_shutdown.c:543 543 boot(bootopt); (kgdb) up #3 0xc0360a4d in trap_fatal (frame=0xc0ed35f0, eva=0) at ../../../i386/i386/trap.c:834 834 panic("%s", trap_msg[type]); (kgdb) up #4 0xc0360768 in trap_pfault (frame=0xcb826928, usermode=0, eva=3494543360) at ../../../i386/i386/trap.c:748 748 trap_fatal(frame, eva); (kgdb) up #5 0xc0360342 in trap (frame= {tf_fs = -1055784936, tf_es = -880672752, tf_ds = -1072168944, tf_edi = 0, tf_esi = -1055764352, tf_ebp = -880645228, tf_isp = -880645804, tf_ebx = -10567 59512, tf_edx = -800428032, tf_ecx = 2054, tf_eax = 4096, tf_trapno = 12, tf_err = 0, tf_eip = -1072050506, tf_cs = 8, tf_eflags = 590338, tf_esp = -1054168768, tf_ss = -1055880064}) at ../../../i386/i386/trap.c:433 433 (void) trap_pfault(&frame, FALSE, eva); (kgdb) up #6 0xc0351bd8 in calltrap () at {standard input}:96 96 {standard input}: No such file or directory. in {standard input} Current language: auto; currently asm (kgdb) up #7 0xc019cce4 in pccard_read_cis (sc=0xc1032128) at ../../../dev/pccard/pccard_cis.c:98 98 if (pccard_scan_cis(sc->dev, pccard_parse_cis_tuple, Current language: auto; currently c (kgdb) l 93 state.card->product = PCMCIA_PRODUCT_INVALID; 94 STAILQ_INIT(&state.card->pf_head); 95 96 state.pf = NULL; 97 98 if (pccard_scan_cis(sc->dev, pccard_parse_cis_tuple, 99 &state) == -1) 100 state.card->error++; 101 } 102 (kgdb) print sc->dev $1 = (struct device *) 0xc03b8960 (kgdb) print state $2 = {count = 0, gotmfc = 0, temp_cfe = {number = 0, flags = 0, iftype = 0, num_iospace = 0, iomask = 0, iospace = {{length = 0, start = 0}, { length = 0, start = 0}, {length = 0, start = 0}, {length = 0, start = 0}}, irqmask = 0, num_memspace = 0, memspace = {{length = 0, cardaddr = 0, hostaddr = 0}, {length = 0, cardaddr = 0, hostaddr = 0}}, maxtwins = 0, iores = {0x0, 0x0, 0x0, 0x0}, iorid = { 0, 0, 0, 0}, irqres = 0x0, irqrid = 0, memres = {0x0, 0x0}, memrid = {0, 0}, cfe_list = {stqe_next = 0x0}}, default_cfe = 0x0, card = 0xc10fd604, pf = 0x0} (kgdb) print pccard_parse_cis_tuple $3 = {int (struct pccard_tuple *, void *)} 0xc019de53 <pccard_parse_cis_tuple> (kgdb) print state.card $4 = (struct pccard_card *) 0xc10fd604 (kgdb) print state.card->error $5 = 0 (kgdb) print pccard_scan_cis $6 = {int (struct device *, int (*)(struct pccard_tuple *, void *), void *)} 0xc019ccff <pccard_scan_cis> (kgdb) disass Dump of assembler code for function pccard_read_cis: 0xc019cc30 <pccard_read_cis>: push %ebp 0xc019cc31 <pccard_read_cis+1>: mov %esp,%ebp 0xc019cc33 <pccard_read_cis+3>: sub $0xc4,%esp 0xc019cc39 <pccard_read_cis+9>: mov %ebx,0xfffffff8(%ebp) 0xc019cc3c <pccard_read_cis+12>: mov %esi,0xfffffffc(%ebp) 0xc019cc3f <pccard_read_cis+15>: mov 0x8(%ebp),%ebx 0xc019cc42 <pccard_read_cis+18>: movl $0xa8,0x4(%esp,1) 0xc019cc4a <pccard_read_cis+26>: lea 0xffffff48(%ebp),%esi 0xc019cc50 <pccard_read_cis+32>: mov %esi,(%esp,1) 0xc019cc53 <pccard_read_cis+35>: call 0xc035ecb4 <bzero> 0xc019cc58 <pccard_read_cis+40>: lea 0x4(%ebx),%eax 0xc019cc5b <pccard_read_cis+43>: mov %eax,0xffffffe8(%ebp) 0xc019cc5e <pccard_read_cis+46>: movw $0x0,0x122(%eax) 0xc019cc67 <pccard_read_cis+55>: movl $0xffffffff,0x4(%ebx) 0xc019cc6e <pccard_read_cis+62>: movl $0xffffffff,0x4(%eax) 0xc019cc75 <pccard_read_cis+69>: movl $0x0,0x108(%eax) 0xc019cc7f <pccard_read_cis+79>: movl $0x0,0x10c(%eax) 0xc019cc89 <pccard_read_cis+89>: movl $0x0,0x110(%eax) 0xc019cc93 <pccard_read_cis+99>: movl $0x0,0x114(%eax) 0xc019cc9d <pccard_read_cis+109>: movl $0xffffffff,0x118(%eax) 0xc019cca7 <pccard_read_cis+119>: movl $0xffffffff,0x11c(%eax) 0xc019ccb1 <pccard_read_cis+129>: movl $0x0,0x124(%eax) 0xc019ccbb <pccard_read_cis+139>: lea 0x128(%ebx),%edx 0xc019ccc1 <pccard_read_cis+145>: mov %edx,0x128(%eax) 0xc019ccc7 <pccard_read_cis+151>: movl $0x0,0xffffffec(%ebp) 0xc019ccce <pccard_read_cis+158>: mov %esi,0x8(%esp,1) 0xc019ccd2 <pccard_read_cis+162>: movl $0xc019de53,0x4(%esp,1) 0xc019ccda <pccard_read_cis+170>: mov (%ebx),%eax 0xc019ccdc <pccard_read_cis+172>: mov %eax,(%esp,1) 0xc019ccdf <pccard_read_cis+175>: call 0xc019ccff <pccard_scan_cis> 0xc019cce4 <pccard_read_cis+180>: cmp $0xffffffff,%eax 0xc019cce7 <pccard_read_cis+183>: jne,pt 0xc019ccf5 <pccard_read_cis+197> 0xc019ccea <pccard_read_cis+186>: mov 0xffffffe8(%ebp),%eax 0xc019cced <pccard_read_cis+189>: addw $0x1,0x122(%eax) 0xc019ccf5 <pccard_read_cis+197>: mov 0xfffffff8(%ebp),%ebx 0xc019ccf8 <pccard_read_cis+200>: mov 0xfffffffc(%ebp),%esi 0xc019ccfb <pccard_read_cis+203>: mov %ebp,%esp 0xc019ccfd <pccard_read_cis+205>: pop %ebp 0xc019ccfe <pccard_read_cis+206>: ret End of assembler dump. (kgdb) set print symbol-filename on (kgdb) disass 0xc019ceb6 Dump of assembler code for function pccard_scan_cis: 0xc019ccff <pccard_scan_cis at ../../../dev/pccard/pccard_cis.c:106>: push %ebp 0xc019cd00 <pccard_scan_cis+1 at ../../../dev/pccard/pccard_cis.c:106>: mov %esp,%ebp 0xc019cd02 <pccard_scan_cis+3 at ../../../dev/pccard/pccard_cis.c:106>: push %edi 0xc019cd03 <pccard_scan_cis+4 at ../../../dev/pccard/pccard_cis.c:106>: push %esi 0xc019cd04 <pccard_scan_cis+5 at ../../../dev/pccard/pccard_cis.c:106>: push %ebx 0xc019cd05 <pccard_scan_cis+6 at ../../../dev/pccard/pccard_cis.c:106>: sub $0x220,%esp 0xc019cd0b <pccard_scan_cis+12 at ../../../dev/pccard/pccard_cis.c:121>: movl $0x0,0xfffffe14(%ebp) 0xc019cd15 <pccard_scan_cis+22 at ../../../dev/pccard/pccard_cis.c:125>: movl $0x0,0xfffffe30(%ebp) 0xc019cd1f <pccard_scan_cis+32 at ../../../dev/pccard/pccard_cis.c:126>: movl $0x2,0x18(%esp,1) 0xc019cd27 <pccard_scan_cis+40 at ../../../dev/pccard/pccard_cis.c:126>: movl $0x400,0x14(%esp,1) 0xc019cd2f <pccard_scan_cis+48 at ../../../dev/pccard/pccard_cis.c:126>: movl $0xffffffff,0x10(%esp,1) 0xc019cd37 <pccard_scan_cis+56 at ../../../dev/pccard/pccard_cis.c:126>: movl $0x0,0xc(%esp,1) 0xc019cd3f <pccard_scan_cis+64 at ../../../dev/pccard/pccard_cis.c:126>: lea 0xfffffe30(%ebp),%eax 0xc019cd45 <pccard_scan_cis+70 at ../../../dev/pccard/pccard_cis.c:126>: mov %eax,0x8(%esp,1) 0xc019cd49 <pccard_scan_cis+74 at ../../../dev/pccard/pccard_cis.c:126>: movl $0x3,0x4(%esp,1) 0xc019cd51 <pccard_scan_cis+82 at ../../../dev/pccard/pccard_cis.c:126>: mov 0x8(%ebp),%eax 0xc019cd54 <pccard_scan_cis+85 at ../../../dev/pccard/pccard_cis.c:126>: mov %eax,(%esp,1) 0xc019cd57 <pccard_scan_cis+88 at ../../../dev/pccard/pccard_cis.c:126>: call 0xc025a486 <bus_alloc_resource at ../../../kern/subr_bus.c:2022> 0xc019cd5c <pccard_scan_cis+93 at ../../../dev/pccard/pccard_cis.c:126>: mov %eax,0xfffffe2c(%ebp) 0xc019cd62 <pccard_scan_cis+99 at ../../../dev/pccard/pccard_cis.c:128>: test %eax,%eax 0xc019cd64 <pccard_scan_cis+101 at ../../../dev/pccard/pccard_cis.c:128>: jne,pt 0xc019cd93 <pccard_scan_cis+148 at card_if.h:21> 0xc019cd67 <pccard_scan_cis+104 at ../../../dev/pccard/pccard_cis.c:129>: movl $0xc038ec45,0x4(%esp,1) 0xc019cd6f <pccard_scan_cis+112 at ../../../dev/pccard/pccard_cis.c:129>: mov 0x8(%ebp),%edx 0xc019cd72 <pccard_scan_cis+115 at ../../../dev/pccard/pccard_cis.c:129>: mov %edx,(%esp,1) ---Type <return> to continue, or q <return> to quit--- 0xc019cd75 <pccard_scan_cis+118 at ../../../dev/pccard/pccard_cis.c:129>: call 0xc0258bce <device_printf at ../../../kern/subr_bus.c:1197> 0xc019cd7a <pccard_scan_cis+123 at ../../../dev/pccard/pccard_cis.c:130>: mov $0xffffffff,%eax 0xc019cd7f <pccard_scan_cis+128 at ../../../dev/pccard/pccard_cis.c:130>: jmp 0xc019d97a <pccard_scan_cis+3195 at ../../../dev/pccard/pccard_cis.c:423> 0xc019cd84 <pccard_scan_cis+133 at ../../../dev/pccard/pccard_cis.c:328>: movl $0x1,0xfffffe14(%ebp) 0xc019cd8e <pccard_scan_cis+143 at ../../../dev/pccard/pccard_cis.c:329>: jmp 0xc019d94d <pccard_scan_cis+3150 at ../../../dev/pccard/pccard_cis.c:420> 0xc019cd93 <pccard_scan_cis+148 at card_if.h:21>: mov 0x8(%ebp),%eax 0xc019cd96 <pccard_scan_cis+151 at card_if.h:21>: mov %eax,(%esp,1) 0xc019cd99 <pccard_scan_cis+154 at card_if.h:21>: call 0xc0258a8d <device_get_parent at ../../../kern/subr_bus.c:1109> 0xc019cd9e <pccard_scan_cis+159 at card_if.h:21>: mov %eax,%esi 0xc019cda0 <pccard_scan_cis+161 at card_if.h:21>: mov 0x8(%ebp),%edx 0xc019cda3 <pccard_scan_cis+164 at card_if.h:21>: mov %edx,0xfffffe10(%ebp) 0xc019cda9 <pccard_scan_cis+170 at card_if.h:21>: mov 0xfffffe30(%ebp),%edi 0xc019cdaf <pccard_scan_cis+176 at card_if.h:23>: movzbl 0xc03b8960,%edx 0xc019cdb6 <pccard_scan_cis+183 at card_if.h:23>: mov (%eax),%eax 0xc019cdb8 <pccard_scan_cis+185 at card_if.h:23>: lea (%eax,%edx,8),%ebx 0xc019cdbb <pccard_scan_cis+188 at card_if.h:23>: cmpl $0xc03b8960,(%ebx) 0xc019cdc1 <pccard_scan_cis+194 at card_if.h:23>: je 0xc019cde2 <pccard_scan_cis+227 at card_if.h:23> 0xc019cdc3 <pccard_scan_cis+196 at card_if.h:23>: movl $0xc03b8960,0x8(%esp,1) 0xc019cdcb <pccard_scan_cis+204 at card_if.h:23>: mov %ebx,0x4(%esp,1) 0xc019cdcf <pccard_scan_cis+208 at card_if.h:23>: mov (%esi),%eax 0xc019cdd1 <pccard_scan_cis+210 at card_if.h:23>: mov 0x800(%eax),%eax 0xc019cdd7 <pccard_scan_cis+216 at card_if.h:23>: mov 0x4(%eax),%eax 0xc019cdda <pccard_scan_cis+219 at card_if.h:23>: mov %eax,(%esp,1) 0xc019cddd <pccard_scan_cis+222 at card_if.h:23>: call 0xc025d180 <kobj_lookup_method at ../../../kern/subr_kobj.c:134> 0xc019cde2 <pccard_scan_cis+227 at card_if.h:23>: mov 0x4(%ebx),%eax 0xc019cde5 <pccard_scan_cis+230 at card_if.h:23>: movl $0x1,0x10(%esp,1) 0xc019cded <pccard_scan_cis+238 at card_if.h:23>: mov %edi,0xc(%esp,1) 0xc019cdf1 <pccard_scan_cis+242 at card_if.h:23>: movl $0x3,0x8(%esp,1) 0xc019cdf9 <pccard_scan_cis+250 at card_if.h:23>: mov 0xfffffe10(%ebp),%edx 0xc019cdff <pccard_scan_cis+256 at card_if.h:23>: mov %edx,0x4(%esp,1) 0xc019ce03 <pccard_scan_cis+260 at card_if.h:23>: mov %esi,(%esp,1) 0xc019ce06 <pccard_scan_cis+263 at card_if.h:23>: call *%eax ---Type <return> to continue, or q <return> to quit--- 0xc019ce08 <pccard_scan_cis+265 at ../../../dev/pccard/pccard_cis.c:134>: mov 0xfffffe2c(%ebp),%eax 0xc019ce0e <pccard_scan_cis+271 at ../../../dev/pccard/pccard_cis.c:134>: mov %eax,(%esp,1) 0xc019ce11 <pccard_scan_cis+274 at ../../../dev/pccard/pccard_cis.c:134>: call 0xc0262dd7 <rman_get_bustag at ../../../kern/subr_rman.c:661> 0xc019ce16 <pccard_scan_cis+279 at ../../../dev/pccard/pccard_cis.c:134>: mov %eax,0xffffffe4(%ebp) 0xc019ce19 <pccard_scan_cis+282 at ../../../dev/pccard/pccard_cis.c:135>: mov 0xfffffe2c(%ebp),%edx 0xc019ce1f <pccard_scan_cis+288 at ../../../dev/pccard/pccard_cis.c:135>: mov %edx,(%esp,1) 0xc019ce22 <pccard_scan_cis+291 at ../../../dev/pccard/pccard_cis.c:135>: call 0xc0262df0 <rman_get_bushandle at ../../../kern/subr_rman.c:673> 0xc019ce27 <pccard_scan_cis+296 at ../../../dev/pccard/pccard_cis.c:135>: mov %eax,0xffffffe8(%ebp) 0xc019ce2a <pccard_scan_cis+299 at ../../../dev/pccard/pccard_cis.c:136>: movl $0x0,0xffffffe0(%ebp) 0xc019ce31 <pccard_scan_cis+306 at ../../../dev/pccard/pccard_cis.c:138>: cmpl $0x0,0xc03b8a8c 0xc019ce38 <pccard_scan_cis+313 at ../../../dev/pccard/pccard_cis.c:138>: je,pt 0xc019ce4b <pccard_scan_cis+332 at ../../../dev/pccard/pccard_cis.c:140> 0xc019ce3b <pccard_scan_cis+316 at ../../../dev/pccard/pccard_cis.c:138>: mov %eax,0x4(%esp,1) 0xc019ce3f <pccard_scan_cis+320 at ../../../dev/pccard/pccard_cis.c:138>: movl $0xc038ec6c,(%esp,1) 0xc019ce46 <pccard_scan_cis+327 at ../../../dev/pccard/pccard_cis.c:138>: call 0xc02605b3 <printf at ../../../kern/subr_prf.c:292> 0xc019ce4b <pccard_scan_cis+332 at ../../../dev/pccard/pccard_cis.c:140>: movl $0x2,0xffffffdc(%ebp) 0xc019ce52 <pccard_scan_cis+339 at ../../../dev/pccard/pccard_cis.c:142>: movl $0x1,0xfffffe28(%ebp) 0xc019ce5c <pccard_scan_cis+349 at ../../../dev/pccard/pccard_cis.c:143>: movl $0x1,0xfffffe24(%ebp) 0xc019ce66 <pccard_scan_cis+359 at ../../../dev/pccard/pccard_cis.c:144>: movl $0x0,0xfffffe20(%ebp) 0xc019ce70 <pccard_scan_cis+369 at ../../../dev/pccard/pccard_cis.c:146>: movl $0x0,0xfffffe1c(%ebp) 0xc019ce7a <pccard_scan_cis+379 at ../../../dev/pccard/pccard_cis.c:147>: movl $0x0,0xfffffe18(%ebp) 0xc019ce84 <pccard_scan_cis+389 at ../../../dev/pccard/pccard_cis.c:149>: cmpl $0x0,0xc03b8a8c 0xc019ce8b <pccard_scan_cis+396 at ../../../dev/pccard/pccard_cis.c:149>: je,pt 0xc019cea1 <pccard_scan_cis+418 at ../../../dev/pccard/pccard_cis.c:155> 0xc019ce8e <pccard_scan_cis+399 at ../../../dev/pccard/pccard_cis.c:149>: movl $0xc038ec7c,0x4(%esp,1) 0xc019ce96 <pccard_scan_cis+407 at ../../../dev/pccard/pccard_cis.c:149>: mov 0x8(%ebp),%eax 0xc019ce99 <pccard_scan_cis+410 at ../../../dev/pccard/pccard_cis.c:149>: ---Type <return> to continue, or q <return> to quit--- mov %eax,(%esp,1) 0xc019ce9c <pccard_scan_cis+413 at ../../../dev/pccard/pccard_cis.c:149>: call 0xc0258bce <device_printf at ../../../kern/subr_bus.c:1197> 0xc019cea1 <pccard_scan_cis+418 at ../../../dev/pccard/pccard_cis.c:155>: mov 0xffffffe8(%ebp),%edx 0xc019cea4 <pccard_scan_cis+421 at ../../../dev/pccard/pccard_cis.c:155>: mov 0xffffffdc(%ebp),%eax 0xc019cea7 <pccard_scan_cis+424 at ../../../dev/pccard/pccard_cis.c:155>: imul 0xffffffe0(%ebp),%eax 0xc019ceab <pccard_scan_cis+428 at bus_at386.h:210>: cmpl $0x0,0xffffffe4(%ebp) 0xc019ceaf <pccard_scan_cis+432 at bus_at386.h:210>: jne 0xc019ceb6 <pccard_scan_cis+439 at bus_at386.h:212> 0xc019ceb1 <pccard_scan_cis+434 at cpufunc.h:190>: add %eax,%edx 0xc019ceb3 <pccard_scan_cis+436 at cpufunc.h:191>: in (%dx),%al 0xc019ceb4 <pccard_scan_cis+437 at bus_at386.h:212>: jmp 0xc019ceba <pccard_scan_cis+443 at bus_at386.h:212> 0xc019ceb6 <pccard_scan_cis+439 at bus_at386.h:212>: movzbl (%eax,%edx,1),%eax 0xc019ceba <pccard_scan_cis+443 at bus_at386.h:212>: movzbl %al,%eax 0xc019cebd <pccard_scan_cis+446 at bus_at386.h:207>: movzbl %al,%eax 0xc019cec0 <pccard_scan_cis+449 at bus_at386.h:207>: mov %eax,0xffffffd4(%ebp) 0xc019cec3 <pccard_scan_cis+452 at ../../../dev/pccard/pccard_cis.c:159>: test %eax,%eaxReceived on Wed Apr 30 2003 - 22:09:10 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:05 UTC