Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Sep 2001 18:29:28 +0200
From:      Arjan de Vet <devet@devet.org>
To:        mobile@freebsd.org
Subject:   Page fault in pcic_pci_attach on stable after latest pccard changes
Message-ID:  <20010906182928.A65327@adv.devet.org>

next in thread | raw e-mail | index | archive | help
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: <YENTA PCI-CARDBUS Bridge> 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 <pcic_pci_attach+604>:	mov    0x8(%eax),%eax
0xc02077cf <pcic_pci_attach+607>:	test   $0x6,%al
0xc02077d1 <pcic_pci_attach+609>:	sete   %al
0xc02077d4 <pcic_pci_attach+612>:	and    $0xff,%eax
0xc02077d9 <pcic_pci_attach+617>:	mov    %eax,0x140(%edi)
0xc02077df <pcic_pci_attach+623>:	mov    0x8(%ebp),%eax
0xc02077e2 <pcic_pci_attach+626>:	mov    %eax,0x30(%edi)
0xc02077e5 <pcic_pci_attach+629>:	mov    0xfffffff4(%ebp),%edx
0xc02077e8 <pcic_pci_attach+632>: ***** mov    0x10(%edx),%eax  (itm->chip?)
0xc02077eb <pcic_pci_attach+635>:	mov    %eax,0x148(%edi) (sc->chip?)
0xc02077f1 <pcic_pci_attach+641>:	cmpl   $0x2,0x8(%edi)
0xc02077f5 <pcic_pci_attach+645>:	jne    0xc0207850 <pcic_pci_attach+736>
0xc02077f7 <pcic_pci_attach+647>:	movl   $0x0,0xfffffff8(%ebp)
0xc02077fe <pcic_pci_attach+654>:	push   $0x6
0xc0207800 <pcic_pci_attach+656>:	push   $0x1
0xc0207802 <pcic_pci_attach+658>:	push   $0xffffffff
0xc0207804 <pcic_pci_attach+660>:	push   $0x0
0xc0207806 <pcic_pci_attach+662>:	lea    0xfffffff8(%ebp),%eax
0xc0207809 <pcic_pci_attach+665>:	push   %eax
0xc020780a <pcic_pci_attach+666>:	push   $0x1
0xc020780c <pcic_pci_attach+668>:	mov    0x8(%ebp),%eax
0xc020780f <pcic_pci_attach+671>:	push   %eax
0xc0207810 <pcic_pci_attach+672>:	call   0xc0168cfc <bus_alloc_resource>
0xc0207815 <pcic_pci_attach+677>:	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: <YENTA PCI-CARDBUS Bridge> irq 9 at device 19.0 on pci0
    pcic0: PCI Memory allocated: 0x44000000
    pccard0: <PC Card bus (classic)> on pcic0
    Found unknown YENTA PCI-CARDBUS Bridge devid 0x69331217
    pcic1: <YENTA PCI-CARDBUS Bridge> irq 9 at device 19.1 on pci0
    pcic1: PCI Memory allocated: 0x44001000
    pccard1: <PC Card bus (classic)> on pcic1

and everything worked fine.

Arjan

-- 
Arjan de Vet, Eindhoven, The Netherlands               <devet@devet.org>
URL: http://www.iae.nl/users/devet/             <Arjan.deVet@adv.iae.nl>

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-mobile" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010906182928.A65327>