From owner-freebsd-current Sat Mar 16 10:46: 8 2002 Delivered-To: freebsd-current@freebsd.org Received: from pump3.york.ac.uk (pump3.york.ac.uk [144.32.128.131]) by hub.freebsd.org (Postfix) with ESMTP id 1B0E337B41F for ; Sat, 16 Mar 2002 10:44:42 -0800 (PST) Received: from ury.york.ac.uk (ury.york.ac.uk [144.32.108.81]) by pump3.york.ac.uk (8.10.2/8.10.2) with ESMTP id g2GIie329651; Sat, 16 Mar 2002 18:44:40 GMT Received: from localhost (gavin@localhost) by ury.york.ac.uk (8.11.6/8.11.3) with ESMTP id g2GIibw37425; Sat, 16 Mar 2002 18:44:40 GMT (envelope-from gavin.atkinson@ury.york.ac.uk) X-Authentication-Warning: ury.york.ac.uk: gavin owned process doing -bs Date: Sat, 16 Mar 2002 18:44:37 +0000 (GMT) From: Gavin Atkinson To: "M. Warner Losh" Cc: Subject: Re: panics with CardBus In-Reply-To: <20020314.212625.63204104.imp@village.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Thu, 14 Mar 2002, M. Warner Losh wrote: > In message: > Gavin Atkinson writes: > : The patches never fixed one of the panics I see, with a GlobalVillage > : Ethernet/Modem card. The kernel still traps with a page fault in > : pccard_scan_cis, however with the patches, this now nanifests itself with > : the panic message "vm_fault: fault on nofault entry". > > The pccard_scan_cis stuff is due to a memory mapping problem that I'm > seeing on some cards. :-(. > > I'm reverting back to an earlier version of the cardbus code for teh > DP1 release and then trying again after DP1 is out. With the reverted code, I still have th3e same panic problems. (see below) I'm in no rush for this to work, it's only my backup modem, but if I can help in any way, feel free to contact me off list. Gavin GNU gdb 4.18 Copyright 1998 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-unknown-freebsd"... IdlePTD at phsyical address 0x004e8000 initial pcb at physical address 0x003d0f00 panicstr: from debugger panic messages: --- Fatal trap 12: page fault while in kernel mode fault virtual address = 0xc9a30000 fault code = supervisor read, page not present instruction pointer = 0x8:0xc01869d0 stack pointer = 0x10:0xc8d12a18 frame pointer = 0x10:0xc8d12c0c 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 = 2 (pccbb0) panic: from debugger panic: from debugger Uptime: 17s pfs_vncache_unload(): 1 entries remaining dumping to dev ad0s1b, offset 454912 dump ata0: resetting devices .. done 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 --- #0 dumpsys () at /usr/src/sys/kern/kern_shutdown.c:505 505 if (!dodump) (kgdb) where [snipped stuff inside debugger] #10 0xc030803b in trap (frame={tf_fs = -1062010856, tf_es = -925827056, tf_ds = -1072168944, tf_edi = 0, tf_esi = -1048517120, tf_ebp = -925815796, tf_isp = -925816316, tf_ebx = -1049120432, tf_edx = -912068608, tf_ecx = -1047923136, tf_eax = 4096, tf_trapno = 12, tf_err = 0, tf_eip = -1072141872, tf_cs = 8, tf_eflags = 66050, tf_esp = -1049120344, tf_ss = -1048517120}) at /usr/src/sys/i386/i386/trap.c:433 ---Type to continue, or q to quit--- #11 0xc01869d0 in pccard_scan_cis (dev=0xc1816a80, fct=0xc0187810 , arg=0xc8d12c20) at machine/bus_at386.h:202 #12 0xc0186861 in pccard_read_cis (sc=0xc0b3d000) at /usr/src/sys/dev/pccard/pccard_cis.c:99 #13 0xc0184ddd in pccard_attach_card (dev=0xc1816a80) at /usr/src/sys/dev/pccard/pccard.c:160 #14 0xc018b5a2 in pccbb_insert (sc=0xc0b3d200) at card_if.h:67 #15 0xc018b421 in pccbb_event_thread (arg=0xc0b3d200) at /usr/src/sys/dev/pccbb/pccbb.c:867 #16 0xc01dfce4 in fork_exit (callout=0xc018b3c4 , arg=0xc0b3d200, frame=0xc8d12d48) at /usr/src/sys/kern/kern_fork.c:799 (kgdb) f 11 #11 0xc01869d0 in pccard_scan_cis (dev=0xc1816a80, fct=0xc0187810 , arg=0xc8d12c20) at machine/bus_at386.h:202 202 return (inb(handle + offset)); (kgdb) l 197 { 198 #if defined (_I386_BUS_PIO_H_) 199 #if defined (_I386_BUS_MEMIO_H_) 200 if (tag == I386_BUS_SPACE_IO) 201 #endif 202 return (inb(handle + offset)); 203 #endif 204 #if defined (_I386_BUS_MEMIO_H_) 205 return (*(volatile u_int8_t *)(handle + offset)); 206 #endif (kgdb) p handle $1 = 0 (kgdb) p offset $2 = 0 (kgdb) up #12 0xc0186861 in pccard_read_cis (sc=0xc0b3d000) at /usr/src/sys/dev/pccard/pccard_cis.c:99 99 if (pccard_scan_cis(sc->dev, pccard_parse_cis_tuple, (kgdb) l 94 state.card->product = PCMCIA_PRODUCT_INVALID; 95 STAILQ_INIT(&state.card->pf_head); 96 97 state.pf = NULL; 98 99 if (pccard_scan_cis(sc->dev, pccard_parse_cis_tuple, 100 &state) == -1) 101 state.card->error++; 102 } 103 (kgdb) l - 84 state.card = &sc->card; 85 86 state.card->error = 0; 87 state.card->cis1_major = -1; 88 state.card->cis1_minor = -1; 89 state.card->cis1_info[0] = NULL; 90 state.card->cis1_info[1] = NULL; 91 state.card->cis1_info[2] = NULL; 92 state.card->cis1_info[3] = NULL; 93 state.card->manufacturer = PCMCIA_VENDOR_INVALID; (kgdb) l - 74 static int decode_funce(struct pccard_tuple *, struct pccard_function *); 75 76 void 77 pccard_read_cis(struct pccard_softc *sc) 78 { 79 struct cis_state state; 80 81 state.count = 0; 82 state.gotmfc = 0; 83 (kgdb) up #13 0xc0184ddd in pccard_attach_card (dev=0xc1816a80) at /usr/src/sys/dev/pccard/pccard.c:160 160 pccard_read_cis(sc); (kgdb) p sc $4 = (struct pccard_softc *) 0xc0b3d000 (kgdb) p *sc $5 = {dev = 0xc1816a80, card = {cis1_major = -1, cis1_minor = -1, cis1_info_buf = '\000' , cis1_info = {0x0, 0x0, 0x0, 0x0}, manufacturer = -1, product = -1, prodext = 0, error = 0, pf_head = {stqh_first = 0x0, stqh_last = 0xc0b3d128}}, sc_enabled_count = 0} (kgdb) down #12 0xc0186861 in pccard_read_cis (sc=0xc0b3d000) at /usr/src/sys/dev/pccard/pccard_cis.c:99 99 if (pccard_scan_cis(sc->dev, pccard_parse_cis_tuple, (kgdb) To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message