From owner-freebsd-mobile Thu Sep 6 9:29:45 2001 Delivered-To: freebsd-mobile@freebsd.org Received: from b80216.upc-b.chello.nl (b80216.upc-b.chello.nl [212.83.80.216]) by hub.freebsd.org (Postfix) with ESMTP id DCFBF37B407 for ; Thu, 6 Sep 2001 09:29:33 -0700 (PDT) Received: from adv.devet.org (adv.devet.org [192.168.1.2]) by b80216.upc-b.chello.nl (Postfix) with ESMTP id 60F6B68CC for ; Thu, 6 Sep 2001 18:29:28 +0200 (CEST) Received: by adv.devet.org (Postfix, from userid 100) id 31D2D3E22; Thu, 6 Sep 2001 18:29:28 +0200 (CEST) Date: Thu, 6 Sep 2001 18:29:28 +0200 From: Arjan de Vet To: mobile@freebsd.org Subject: Page fault in pcic_pci_attach on stable after latest pccard changes Message-ID: <20010906182928.A65327@adv.devet.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i Sender: owner-freebsd-mobile@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org I recently installed 4.4-RC3 on a Fujitsu S-4572 notebook without any problems. I just upgraded to a more recent -stable with the latest pccard changes and now I get a page fault during boot: Found unknown YENTA PCI-CARDBUS Bridge devid 0x69331217 pcic0: irq 9 at device 19.0 on pci0 pcic0: PCI Memory allocated: 0x44000000 Fatal trap 12: page fault while in kernel mode fault virtual address = 0x10 fault code = supervisor read, page not present instruction pointer = 0x8:0xc02077e8 stack pointer = 0x10:0xc03adeb8 frame pointer = 0x10:0xc03adee0 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 = 0 (swapper) interrupt mask = net tty bio cam trap number = 12 panic: page fault When disassembling at 0xc02077e8 I get: 0xc02077cc : mov 0x8(%eax),%eax 0xc02077cf : test $0x6,%al 0xc02077d1 : sete %al 0xc02077d4 : and $0xff,%eax 0xc02077d9 : mov %eax,0x140(%edi) 0xc02077df : mov 0x8(%ebp),%eax 0xc02077e2 : mov %eax,0x30(%edi) 0xc02077e5 : mov 0xfffffff4(%ebp),%edx 0xc02077e8 : ***** mov 0x10(%edx),%eax (itm->chip?) 0xc02077eb : mov %eax,0x148(%edi) (sc->chip?) 0xc02077f1 : cmpl $0x2,0x8(%edi) 0xc02077f5 : jne 0xc0207850 0xc02077f7 : movl $0x0,0xfffffff8(%ebp) 0xc02077fe : push $0x6 0xc0207800 : push $0x1 0xc0207802 : push $0xffffffff 0xc0207804 : push $0x0 0xc0207806 : lea 0xfffffff8(%ebp),%eax 0xc0207809 : push %eax 0xc020780a : push $0x1 0xc020780c : mov 0x8(%ebp),%eax 0xc020780f : push %eax 0xc0207810 : call 0xc0168cfc 0xc0207815 : mov %eax,0xffffffec(%ebp) As far as I can see this corresponds to roughly this code fragment from sys/pccard/pcic_pci.c:1140: sc->dev = dev; sc->chip = itm->chip; if (sc->csc_route == pcic_iw_pci) { rid = 0; r = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, 0, ~0, 1, RF_ACTIVE | RF_SHAREABLE); I think 'itm->chip' causes the page fault here because itm seems to be 0. With the 4.4-RC3 kernel (boot -v) I get: Found unknown YENTA PCI-CARDBUS Bridge devid 0x69331217 pcic0: irq 9 at device 19.0 on pci0 pcic0: PCI Memory allocated: 0x44000000 pccard0: on pcic0 Found unknown YENTA PCI-CARDBUS Bridge devid 0x69331217 pcic1: irq 9 at device 19.1 on pci0 pcic1: PCI Memory allocated: 0x44001000 pccard1: on pcic1 and everything worked fine. Arjan -- Arjan de Vet, Eindhoven, The Netherlands URL: http://www.iae.nl/users/devet/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-mobile" in the body of the message