Problem with New PCI IRQ routing code for pre9-2

From: Alan Pearson (pearsona@altavista.net)
Date: Thu May 18 2000 - 20:12:58 EDT

  • Next message: John Summerfield: "Re: Oops: 0002 x 4"

    Martin,
    After our discussion regarding the IRQ being assigned to for my USB to be the
    same as the sound card, I tried this patch.

    Kernel version 99pre3 + pci patch

    Previously we got the correct IRQ assigned to the USB controller with Pre7 by
    adding pci-irqmask=0xff00

    Now what happens is lspci shows 0 with and without this option on boot.

    However when usb-uhci is loaded, it detects IRQ 6, without the pci= option, and
    irq 9 with it.

    uhci refuses to load in both cases, compaining of IRQ not set.

    However the problem with the Oops still happens when usb-uhci is loaded, as
    before.

    WITHOUT pci=irqmask=0xff00
    PCI:enabling device 00:01:2 (0000+0001)
    IRQ for 00:01.2(3) via 00:01.2 -> PIRQ 3, mask 02F8
    excl 0000 -> newirq =6 => assigning IRQ 6 ... OK

    WITH pci=irqmask=0xff00

    Same as above but IRQ=9

    As said, uhci refuses to load in both cases, and usb-uhci causes a large oops,
    killing the system.
    I have not managed to get USB working in 2.3.99pre3, pre7, pre8 or pre9. Also
    tried 2.2.15pre17, with no joy.

    How can I start to get to the bottom of this ???

    lspci & dmesg attached for both cases....

    Thanks,
    Alan

    ******************WITH MASK*************************

    00:00.0 Host bridge: Intel Corporation 430TX - 82439TX MTXC (rev 01)
            Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
            Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR-
            Latency: 0 set
    00: 86 80 00 71 06 00 00 22 01 00 00 06 00 00 00 00
    10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    00:01.0 ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 02)
            Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
            Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
            Latency: 0 set
    00: 86 80 10 71 0f 00 80 02 02 00 01 06 00 00 80 00
    10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    00:01.1 IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 01) (prog-if 80)
            Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
            Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
            Latency: 0 set
            Region 4: I/O ports at 1100
    00: 86 80 11 71 05 00 80 02 01 80 01 01 00 00 00 00
    10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    20: 01 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    00:01.2 USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01)
            Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
            Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
            Interrupt: pin D routed to IRQ 0
            Region 4: I/O ports at 1000 [disabled]
    00: 86 80 12 71 00 00 80 02 01 00 03 0c 00 00 00 00
    10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    20: 01 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00

    00:01.3 Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 02)
            Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
            Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
    00: 86 80 13 71 01 00 80 02 02 00 80 06 00 00 00 00
    10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    00:02.0 VGA compatible controller: Trident Microsystems TGUI 9660/9680/9682 (rev d3)
            Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
            Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
            Interrupt: pin A routed to IRQ 0
            Region 0: Memory at fdc00000 (32-bit, non-prefetchable)
            Region 1: Memory at fe7f0000 (32-bit, non-prefetchable)
            Region 2: Memory at fe000000 (32-bit, non-prefetchable)
    00: 23 10 60 96 03 00 80 02 d3 00 00 03 00 00 00 00
    10: 00 00 c0 fd 00 00 7f fe 00 00 00 fe 00 00 00 00
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 0c 00 00 00 00 00 00 00 00 00 ff 01 00 00

    00:03.0 CardBus bridge: Texas Instruments: Unknown device ac1c (rev 01)
            Subsystem: Unknown device 104c:ac1c
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
            Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
            Latency: 64 set, cache line size 08
            Interrupt: pin A routed to IRQ 10
            Region 0: Memory at 10000000 (32-bit, non-prefetchable)
            Bus: primary=00, secondary=01, subordinate=02, sec-latency=32
            BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset+ 16bInt+ PostWrite+
            16-bit legacy interface ports at 0007
    00: 4c 10 1c ac 07 00 10 02 01 00 07 06 08 40 82 00
    10: 00 00 00 10 a0 00 00 02 00 01 02 20 00 00 00 00
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 00 00 00 00 00 00 00 00 00 00 0a 01 c0 07
    40: 4c 10 1c ac 07 00 10 02 01 00 07 06 08 40 82 00
    50: 00 00 00 10 a0 00 00 02 00 01 02 20 00 00 00 00
    60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    70: 00 00 00 00 00 00 00 00 00 00 00 00 0a 01 c0 07

    00:03.1 CardBus bridge: Texas Instruments: Unknown device ac1c (rev 01)
            Subsystem: Unknown device 104c:ac1c
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
            Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
            Latency: 64 set, cache line size 08
            Interrupt: pin B routed to IRQ 10
            Region 0: Memory at 10001000 (32-bit, non-prefetchable)
            Bus: primary=00, secondary=03, subordinate=04, sec-latency=32
            BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset+ 16bInt+ PostWrite+
            16-bit legacy interface ports at 0007
    00: 4c 10 1c ac 07 00 10 02 01 00 07 06 08 40 82 00
    10: 00 10 00 10 a0 00 00 02 00 03 04 20 00 00 00 00
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 00 00 00 00 00 00 00 00 00 00 0a 02 c0 07
    40: 4c 10 1c ac 07 00 10 02 01 00 07 06 08 40 82 00
    50: 00 10 00 10 a0 00 00 02 00 03 04 20 00 00 00 00
    60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    70: 00 00 00 00 00 00 00 00 00 00 00 00 0a 02 c0 07

    Linux version 2.3.99-pre9 (root@ultra.pearson.uk) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #5 Thu May 18 19:38:03 EDT 2000
    BIOS-provided physical RAM map:
     e820: 000000000009f000 @ 0000000000000000 (usable)
     e820: 0000000005f00000 @ 0000000000100000 (usable)
    On node 0 totalpages: 24576
    zone(0): 4096 pages.
    zone(1): 20480 pages.
    zone(2): 0 pages.
    Initializing CPU#0
    Detected 380301026 Hz processor.
    Console: colour VGA+ 80x25
    Calibrating delay loop... 758.58 BogoMIPS
    Memory: 94824k/98304k available (938k kernel code, 3092k reserved, 68k data, 168k init, 0k highmem)
    Dentry-cache hash table entries: 16384 (order: 5, 131072 bytes)
    Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
    Page-cache hash table entries: 32768 (order: 5, 131072 bytes)
    kmem_create: Poisoning requested, but con given - bdev_cache
    Inode-cache hash table entries: 8192 (order: 4, 65536 bytes)
    kmem_create: Poisoning requested, but con given - inode_cache
    CPU: L1 I Cache: 32K L1 D Cache: 32K
    CPU: AMD AMD-K6(tm) 3D processor stepping 0c
    Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
    Checking 'hlt' instruction... OK.
    POSIX conformance testing by UNIFIX
    PCI: BIOS32 Service Directory structure at 0xc00e8050
    PCI: BIOS32 Service Directory entry at 0xeb110
    PCI: BIOS probe returned s=00 hw=11 ver=02.10 l=02
    PCI: PCI BIOS revision 2.10 entry at 0xeb150, last bus=2
    PCI: Using configuration type 1
    PCI: Probing PCI hardware
    PCI: IDE base address fixup for 00:01.1
    PCI: Scanning for ghost devices on bus 0
    PCI: IRQ init
    PCI: Interrupt Routing Table found at 0xc00fe840
    00:01 slot=00 0:00/1ef8 1:00/1ef8 2:63/02f8 3:63/02f8
    00:03 slot=00 0:60/0400 1:61/0400 2:00/0c00 3:00/0c00
    PCI: Using IRQ router PIIX [8086/122e] at 00:01.0
    PCI: IRQ fixup
    00:02.0: ignoring bogus IRQ 255
    IRQ for 00:01.2(3) via 00:01.2 -> PIRQ 63, mask 02f8, excl 0000 ... failed
    IRQ for 00:02.0(0) via 00:02.0 -> not found in routing table
    PCI: Allocating resources
    PCI: Resource 00001100-0000110f (f=101, d=0, p=0)
    PCI: Resource fdc00000-fdffffff (f=200, d=0, p=0)
    PCI: Resource fe7f0000-fe7fffff (f=200, d=0, p=0)
    PCI: Resource fe000000-fe3fffff (f=200, d=0, p=0)
    PCI: Sorting device list...
    Limiting direct PCI/PCI transfers.
    PCI: Address space collision on region 7 of device Intel Corporation 82371AB PIIX4 ACPI [1000:103f]
    isapnp: Scanning for Pnp cards...
    isapnp: Card 'ESS ES1869 Plug and Play AudioDrive'
    isapnp: 1 Plug & Play card detected total
    Linux NET4.0 for Linux 2.3
    Based upon Swansea University Computer Society NET3.039
    kmem_create: Poisoning requested, but con given - skbuff_head_cache
    NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
    NET4: Linux TCP/IP 1.0 for NET4.0
    IP Protocols: ICMP, UDP, TCP
    IP: routing cache hash table of 512 buckets, 4Kbytes
    TCP: Hash tables configured (established 8192 bind 8192)
    apm: BIOS version 1.2 Flags 0x03 (Driver version 1.13)
    Starting kswapd v1.6
    pty: 256 Unix98 ptys configured
    Uniform Multi-Platform E-IDE driver Revision: 6.30
    ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
    PIIX4: IDE controller on PCI bus 00 dev 09
    PIIX4: chipset revision 1
    PIIX4: not 100% native mode: will probe irqs later
    hda: TOSHIBA MK6412MAT, ATA DISK drive
    hdc: CRN-8241B, ATAPI CDROM drive
    ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
    ide1 at 0x170-0x177,0x376 on irq 15
    hda: 12685680 sectors (6495 MB), CHS=839/240/63
    Partition check:
     hda: hda1 hda2 < hda5 hda6 hda7 >
    VFS: Mounted root (ext2 filesystem) readonly.
    Freeing unused kernel memory: 168k freed
    Adding Swap: 68004k swap-space (priority -1)
    [EXT II FS 0.5b, 95/08/09, bs=1024, fs=1024, gc=275, bpg=8192, ipg=2048, mo=ffffffea]
    Soundblaster audio driver Copyright (C) by Hannu Savolainen 1993-1996
    sb: ESS ES1869 Plug and Play AudioDrive detected
    sb: ISAPnP reports 'ESS ES1869 Plug and Play AudioDrive' at i/o 0x220, irq 5, dma 1, 3
    SB 3.01 detected OK (220)
    ESS chip ES1869 detected
    sb: 1 Soundblaster PnP card(s) found.
    YM3812 and OPL-3 driver Copyright (C) by Hannu Savolainen, Rob Hooft 1993-1996

    ****************WITHOUT MASK ********************************

    00:00.0 Host bridge: Intel Corporation 430TX - 82439TX MTXC (rev 01)
            Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
            Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR-
            Latency: 0 set
    00: 86 80 00 71 06 00 00 22 01 00 00 06 00 00 00 00
    10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    00:01.0 ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 02)
            Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
            Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
            Latency: 0 set
    00: 86 80 10 71 0f 00 80 02 02 00 01 06 00 00 80 00
    10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    00:01.1 IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 01) (prog-if 80)
            Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
            Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
            Latency: 0 set
            Region 4: I/O ports at 1100
    00: 86 80 11 71 05 00 80 02 01 80 01 01 00 00 00 00
    10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    20: 01 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    00:01.2 USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01)
            Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
            Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
            Interrupt: pin D routed to IRQ 0
            Region 4: I/O ports at 1000 [disabled]
    00: 86 80 12 71 00 00 80 02 01 00 03 0c 00 00 00 00
    10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    20: 01 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00

    00:01.3 Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 02)
            Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
            Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
    00: 86 80 13 71 01 00 80 02 02 00 80 06 00 00 00 00
    10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    00:02.0 VGA compatible controller: Trident Microsystems TGUI 9660/9680/9682 (rev d3)
            Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
            Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
            Interrupt: pin A routed to IRQ 0
            Region 0: Memory at fdc00000 (32-bit, non-prefetchable)
            Region 1: Memory at fe7f0000 (32-bit, non-prefetchable)
            Region 2: Memory at fe000000 (32-bit, non-prefetchable)
    00: 23 10 60 96 03 00 80 02 d3 00 00 03 00 00 00 00
    10: 00 00 c0 fd 00 00 7f fe 00 00 00 fe 00 00 00 00
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 0c 00 00 00 00 00 00 00 00 00 ff 01 00 00

    00:03.0 CardBus bridge: Texas Instruments: Unknown device ac1c (rev 01)
            Subsystem: Unknown device 104c:ac1c
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
            Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
            Latency: 64 set, cache line size 08
            Interrupt: pin A routed to IRQ 10
            Region 0: Memory at 10000000 (32-bit, non-prefetchable)
            Bus: primary=00, secondary=01, subordinate=00, sec-latency=32
            BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset+ 16bInt+ PostWrite+
            16-bit legacy interface ports at 0007
    00: 4c 10 1c ac 07 00 10 02 01 00 07 06 08 40 82 00
    10: 00 00 00 10 a0 00 00 02 00 01 00 20 00 00 00 00
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 00 00 00 00 00 00 00 00 00 00 0a 01 c0 07
    40: 4c 10 1c ac 07 00 10 02 01 00 07 06 08 40 82 00
    50: 00 00 00 10 a0 00 00 02 00 01 00 20 00 00 00 00
    60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    70: 00 00 00 00 00 00 00 00 00 00 00 00 0a 01 c0 07

    00:03.1 CardBus bridge: Texas Instruments: Unknown device ac1c (rev 01)
            Subsystem: Unknown device 104c:ac1c
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
            Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
            Latency: 64 set, cache line size 08
            Interrupt: pin B routed to IRQ 10
            Region 0: Memory at 10001000 (32-bit, non-prefetchable)
            Bus: primary=00, secondary=03, subordinate=00, sec-latency=32
            BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset+ 16bInt+ PostWrite+
            16-bit legacy interface ports at 0007
    00: 4c 10 1c ac 07 00 10 02 01 00 07 06 08 40 82 00
    10: 00 10 00 10 a0 00 00 02 00 03 00 20 00 00 00 00
    20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    30: 00 00 00 00 00 00 00 00 00 00 00 00 0a 02 c0 07
    40: 4c 10 1c ac 07 00 10 02 01 00 07 06 08 40 82 00
    50: 00 10 00 10 a0 00 00 02 00 03 00 20 00 00 00 00
    60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    70: 00 00 00 00 00 00 00 00 00 00 00 00 0a 02 c0 07

    Linux version 2.3.99-pre9 (root@ultra.pearson.uk) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #5 Thu May 18 19:38:03 EDT 2000
    BIOS-provided physical RAM map:
     e820: 000000000009f000 @ 0000000000000000 (usable)
     e820: 0000000005f00000 @ 0000000000100000 (usable)
    On node 0 totalpages: 24576
    zone(0): 4096 pages.
    zone(1): 20480 pages.
    zone(2): 0 pages.
    Initializing CPU#0
    Detected 380197877 Hz processor.
    Console: colour VGA+ 80x25
    Calibrating delay loop... 758.58 BogoMIPS
    Memory: 94824k/98304k available (938k kernel code, 3092k reserved, 68k data, 168k init, 0k highmem)
    Dentry-cache hash table entries: 16384 (order: 5, 131072 bytes)
    Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
    Page-cache hash table entries: 32768 (order: 5, 131072 bytes)
    kmem_create: Poisoning requested, but con given - bdev_cache
    Inode-cache hash table entries: 8192 (order: 4, 65536 bytes)
    kmem_create: Poisoning requested, but con given - inode_cache
    CPU: L1 I Cache: 32K L1 D Cache: 32K
    CPU: AMD AMD-K6(tm) 3D processor stepping 0c
    Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
    Checking 'hlt' instruction... OK.
    POSIX conformance testing by UNIFIX
    PCI: BIOS32 Service Directory structure at 0xc00e8050
    PCI: BIOS32 Service Directory entry at 0xeb110
    PCI: BIOS probe returned s=00 hw=11 ver=02.10 l=00
    PCI: PCI BIOS revision 2.10 entry at 0xeb150, last bus=0
    PCI: Using configuration type 1
    PCI: Probing PCI hardware
    PCI: IDE base address fixup for 00:01.1
    PCI: Scanning for ghost devices on bus 0
    PCI: IRQ init
    PCI: Interrupt Routing Table found at 0xc00fe840
    00:01 slot=00 0:00/1ef8 1:00/1ef8 2:63/02f8 3:63/02f8
    00:03 slot=00 0:60/0400 1:61/0400 2:00/0c00 3:00/0c00
    PCI: Using IRQ router PIIX [8086/122e] at 00:01.0
    PCI: IRQ fixup
    00:02.0: ignoring bogus IRQ 255
    IRQ for 00:01.2(3) via 00:01.2 -> PIRQ 63, mask 02f8, excl 0000 ... failed
    IRQ for 00:02.0(0) via 00:02.0 -> not found in routing table
    PCI: Allocating resources
    PCI: Resource 00001100-0000110f (f=101, d=0, p=0)
    PCI: Resource fdc00000-fdffffff (f=200, d=0, p=0)
    PCI: Resource fe7f0000-fe7fffff (f=200, d=0, p=0)
    PCI: Resource fe000000-fe3fffff (f=200, d=0, p=0)
    PCI: Resource 10000000-10000fff (f=200, d=0, p=0)
    PCI: Resource 10001000-10001fff (f=200, d=0, p=0)
    PCI: Resource 00001000-0000101f (f=101, d=1, p=1)
    PCI: Sorting device list...
    Limiting direct PCI/PCI transfers.
    PCI: Address space collision on region 7 of device Intel Corporation 82371AB PIIX4 ACPI [1000:103f]
    isapnp: Scanning for Pnp cards...
    isapnp: Card 'ESS ES1869 Plug and Play AudioDrive'
    isapnp: 1 Plug & Play card detected total
    Linux NET4.0 for Linux 2.3
    Based upon Swansea University Computer Society NET3.039
    kmem_create: Poisoning requested, but con given - skbuff_head_cache
    NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
    NET4: Linux TCP/IP 1.0 for NET4.0
    IP Protocols: ICMP, UDP, TCP
    IP: routing cache hash table of 512 buckets, 4Kbytes
    TCP: Hash tables configured (established 8192 bind 8192)
    apm: BIOS version 1.2 Flags 0x03 (Driver version 1.13)
    Starting kswapd v1.6
    pty: 256 Unix98 ptys configured
    Uniform Multi-Platform E-IDE driver Revision: 6.30
    ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
    PIIX4: IDE controller on PCI bus 00 dev 09
    PIIX4: chipset revision 1
    PIIX4: not 100% native mode: will probe irqs later
    hda: TOSHIBA MK6412MAT, ATA DISK drive
    hdc: CRN-8241B, ATAPI CDROM drive
    ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
    ide1 at 0x170-0x177,0x376 on irq 15
    hda: 12685680 sectors (6495 MB), CHS=839/240/63
    Partition check:
     hda: hda1 hda2 < hda5 hda6 hda7 >
    VFS: Mounted root (ext2 filesystem) readonly.
    Freeing unused kernel memory: 168k freed
    Adding Swap: 68004k swap-space (priority -1)
    [EXT II FS 0.5b, 95/08/09, bs=1024, fs=1024, gc=275, bpg=8192, ipg=2048, mo=ffffffea]
    Soundblaster audio driver Copyright (C) by Hannu Savolainen 1993-1996
    sb: ESS ES1869 Plug and Play AudioDrive detected
    sb: ISAPnP reports 'ESS ES1869 Plug and Play AudioDrive' at i/o 0x220, irq 5, dma 1, 3
    SB 3.01 detected OK (220)
    ESS chip ES1869 detected
    sb: 1 Soundblaster PnP card(s) found.
    YM3812 and OPL-3 driver Copyright (C) by Hannu Savolainen, Rob Hooft 1993-1996

    On Thu, 18 May 2000, Martin Mares wrote:
    > Hello!
    >
    > This is a new version of the PCI IRQ routing code. Changes:
    >
    > o Fixed ID of the 82440MX router (by Dave Hinds).
    > o ISAPnP and PCI now interact in order to avoid assignment of the
    > same IRQ to both PCI and ISA devices. Checking of collision with
    > PCI IRQ's has been moved from isapnp_init() to isapnp_check_interrupt(),
    > so that dynamically assigned PCI interrupts are detected as well.
    > Also, when scanning card configuration, ISAPnP notifies the PCI
    > subsystem by calling pcibios_penalize_isa_irq() that the particular
    > IRQ's can be used by ISAPnP cards and therefore should not be
    > assigned to PCI devices if possible. [It would be nice to have
    > some central arch-dependent piece code doing IRQ assignments
    > properly instead of kludging it on many places as we do now, but
    > it's a 2.5 project.]
    > o PCI interrupt assignments are avoided if IO-APIC is really found,
    > not if it's only configured.
    > o When trying to assign an IRQ, try request_irq() on it.
    > o If BIOS reports some IRQ's as exclusive for PCI, increase penalties
    > for the other ones.
    > o Better reporting of error messages when IRQ is not found.
    >
    > I hope this patch fixes all known IRQ assignment problems.
    >
    > Linus, I wasn't able to test it on any SMP machine, so I'm not sure
    > about the IO-APIC part, so please decide yourself whether you want
    > to apply it or not.
    >
    > Martin
    >
    >
    > --- include/linux/pci_ids.h.mj Thu May 18 19:00:44 2000
    > +++ include/linux/pci_ids.h Thu May 18 19:00:44 2000
    > @@ -1175,7 +1175,6 @@
    > #define PCI_DEVICE_ID_INTEL_82443BX_0 0x7190
    > #define PCI_DEVICE_ID_INTEL_82443BX_1 0x7191
    > #define PCI_DEVICE_ID_INTEL_82443BX_2 0x7192
    > -#define PCI_DEVICE_ID_INTEL_82440MX_1 0x7194
    > #define PCI_DEVICE_ID_INTEL_82443MX_0 0x7198
    > #define PCI_DEVICE_ID_INTEL_82443MX_1 0x7199
    > #define PCI_DEVICE_ID_INTEL_82443MX_2 0x719a
    > --- include/asm-i386/pci.h.mj Thu May 18 19:53:59 2000
    > +++ include/asm-i386/pci.h Thu May 18 20:45:31 2000
    > @@ -13,6 +13,7 @@
    > #define PCIBIOS_MIN_MEM 0x10000000
    >
    > void pcibios_set_master(struct pci_dev *dev);
    > +void pcibios_penalize_isa_irq(int irq);
    >
    > /* Dynamic DMA mapping stuff.
    > * i386 has everything mapped statically.
    > --- include/asm-i386/io_apic.h.mj Thu May 18 20:23:11 2000
    > +++ include/asm-i386/io_apic.h Thu May 18 20:45:29 2000
    > @@ -9,6 +9,8 @@
    > * Copyright (C) 1997, 1998, 1999, 2000 Ingo Molnar
    > */
    >
    > +#ifdef CONFIG_X86_IO_APIC
    > +
    > #define IO_APIC_BASE(idx) \
    > ((volatile int *)__fix_to_virt(FIX_IO_APIC_BASE_0 + idx))
    >
    > @@ -130,5 +132,14 @@
    > extern int skip_ioapic_setup;
    > extern void IO_APIC_init_uniprocessor (void);
    >
    > +/*
    > + * If we use the IO-APIC for IRQ routing, disable automatic
    > + * assignment of PCI IRQ's.
    > + */
    > +#define io_apic_assign_pci_irqs (!mp_irq_entries)
    > +
    > +#else /* !CONFIG_X86_IO_APIC */
    > +#define io_apic_assign_pci_irqs 0
    > #endif
    >
    > +#endif
    > --- include/asm-mips/pci.h.mj Thu May 18 19:53:59 2000
    > +++ include/asm-mips/pci.h Thu May 18 19:55:46 2000
    > @@ -23,6 +23,11 @@
    > /* No special bus mastering setup handling */
    > }
    >
    > +extern inline void pcibios_penalize_isa_irq(int irq)
    > +{
    > + /* We don't do dynamic PCI IRQ allocation */
    > +}
    > +
    > /*
    > * Dynamic DMA mapping stuff.
    > * MIPS has everything mapped statically.
    > --- include/asm-alpha/pci.h.mj Thu May 18 19:53:59 2000
    > +++ include/asm-alpha/pci.h Thu May 18 19:54:55 2000
    > @@ -56,6 +56,11 @@
    > /* No special bus mastering setup handling */
    > }
    >
    > +extern inline void pcibios_penalize_isa_irq(int irq)
    > +{
    > + /* We don't do dynamic PCI IRQ allocation */
    > +}
    > +
    > /* IOMMU controls. */
    >
    > /* Allocate and map kernel buffer using consistant mode DMA for PCI
    > --- include/asm-m68k/pci.h.mj Thu May 18 19:53:59 2000
    > +++ include/asm-m68k/pci.h Thu May 18 19:55:43 2000
    > @@ -40,4 +40,9 @@
    > /* No special bus mastering setup handling */
    > }
    >
    > +extern inline void pcibios_penalize_isa_irq(int irq)
    > +{
    > + /* We don't do dynamic PCI IRQ allocation */
    > +}
    > +
    > #endif /* _ASM_M68K_PCI_H */
    > --- include/asm-sparc/pci.h.mj Thu May 18 19:53:59 2000
    > +++ include/asm-sparc/pci.h Thu May 18 19:56:01 2000
    > @@ -17,6 +17,11 @@
    > /* No special bus mastering setup handling */
    > }
    >
    > +extern inline void pcibios_penalize_isa_irq(int irq)
    > +{
    > + /* We don't do dynamic PCI IRQ allocation */
    > +}
    > +
    > /* Dynamic DMA mapping stuff.
    > */
    >
    > --- include/asm-ppc/pci.h.mj Thu May 18 19:53:59 2000
    > +++ include/asm-ppc/pci.h Thu May 18 19:55:54 2000
    > @@ -15,6 +15,11 @@
    > /* No special bus mastering setup handling */
    > }
    >
    > +extern inline void pcibios_penalize_isa_irq(int irq)
    > +{
    > + /* We don't do dynamic PCI IRQ allocation */
    > +}
    > +
    > /* Dynamic DMA Mapping stuff
    > * ++ajoshi
    > */
    > --- include/asm-sparc64/pci.h.mj Thu May 18 19:53:59 2000
    > +++ include/asm-sparc64/pci.h Thu May 18 19:56:04 2000
    > @@ -17,6 +17,11 @@
    > /* No special bus mastering setup handling */
    > }
    >
    > +extern inline void pcibios_penalize_isa_irq(int irq)
    > +{
    > + /* We don't do dynamic PCI IRQ allocation */
    > +}
    > +
    > /* Dynamic DMA mapping stuff.
    > */
    >
    > --- include/asm-arm/pci.h.mj Thu May 18 19:53:59 2000
    > +++ include/asm-arm/pci.h Thu May 18 19:55:11 2000
    > @@ -13,6 +13,11 @@
    > /* No special bus mastering setup handling */
    > }
    >
    > +extern inline void pcibios_penalize_isa_irq(int irq)
    > +{
    > + /* We don't do dynamic PCI IRQ allocation */
    > +}
    > +
    > #include <asm/scatterlist.h>
    > #include <asm/io.h>
    >
    > --- include/asm-sh/pci.h.mj Thu May 18 19:53:59 2000
    > +++ include/asm-sh/pci.h Thu May 18 19:55:58 2000
    > @@ -14,6 +14,11 @@
    > /* No special bus mastering setup handling */
    > }
    >
    > +extern inline void pcibios_penalize_isa_irq(int irq)
    > +{
    > + /* We don't do dynamic PCI IRQ allocation */
    > +}
    > +
    > /* Dynamic DMA mapping stuff.
    > * SuperH has everything mapped statically like x86.
    > */
    > --- include/asm-ia64/pci.h.mj Thu May 18 19:53:59 2000
    > +++ include/asm-ia64/pci.h Thu May 18 19:55:38 2000
    > @@ -16,6 +16,11 @@
    > /* No special bus mastering setup handling */
    > }
    >
    > +extern inline void pcibios_penalize_isa_irq(int irq)
    > +{
    > + /* We don't do dynamic PCI IRQ allocation */
    > +}
    > +
    > /*
    > * Dynamic DMA mapping API.
    > * IA-64 has everything mapped statically.
    > --- include/asm-mips64/pci.h.mj Thu May 18 19:53:59 2000
    > +++ include/asm-mips64/pci.h Thu May 18 19:55:50 2000
    > @@ -23,6 +23,11 @@
    > /* No special bus mastering setup handling */
    > }
    >
    > +extern inline void pcibios_penalize_isa_irq(int irq)
    > +{
    > + /* We don't do dynamic PCI IRQ allocation */
    > +}
    > +
    > /*
    > * Dynamic DMA mapping stuff.
    > * MIPS has everything mapped statically.
    > --- drivers/pnp/isapnp.c.mj Thu May 18 19:52:46 2000
    > +++ drivers/pnp/isapnp.c Thu May 18 21:10:50 2000
    > @@ -500,6 +500,7 @@
    > int dependent, int size)
    > {
    > unsigned char tmp[3];
    > + int i;
    > struct isapnp_irq *irq, *ptr;
    >
    > isapnp_peek(tmp, size);
    > @@ -526,6 +527,9 @@
    > ptr->next = irq;
    > else
    > (*res)->irq = irq;
    > + for (i=0; i<16; i++)
    > + if (irq->map & i)
    > + pcibios_penalize_isa_irq(i);
    > }
    >
    > /*
    > @@ -1603,6 +1607,14 @@
    > return 1;
    > }
    > }
    > +#ifdef CONFIG_PCI
    > + if (!isapnp_skip_pci_scan) {
    > + pci_for_each_dev(dev) {
    > + if (dev->irq == irq)
    > + return 1;
    > + }
    > + }
    > +#endif
    > if (request_irq(irq, isapnp_test_handler, SA_INTERRUPT, "isapnp", NULL))
    > return 1;
    > free_irq(irq, NULL);
    > @@ -2070,45 +2082,6 @@
    > #endif
    > }
    >
    > -static int __init isapnp_do_reserve_irq(int irq)
    > -{
    > - int i;
    > -
    > - if (irq < 0 || irq > 15)
    > - return -EINVAL;
    > - for (i = 0; i < 16; i++) {
    > - if (isapnp_reserve_irq[i] == irq)
    > - return 0;
    > - }
    > - for (i = 0; i < 16; i++) {
    > - if (isapnp_reserve_irq[i] < 0) {
    > - isapnp_reserve_irq[i] = irq;
    > -#ifdef ISAPNP_DEBUG
    > - printk("isapnp: IRQ %i is reserved now.\n", irq);
    > -#endif
    > - return 0;
    > - }
    > - }
    > - return -ENOMEM;
    > -}
    > -
    > -#ifdef CONFIG_PCI
    > -
    > -static void __init isapnp_pci_init(void)
    > -{
    > - struct pci_dev *dev;
    > -
    > - pci_for_each_dev(dev) {
    > -#ifdef ISAPNP_DEBUG
    > - printk("isapnp: PCI: reserved IRQ: %i\n", dev->irq);
    > -#endif
    > - if (dev->irq > 0)
    > - isapnp_do_reserve_irq(dev->irq);
    > - }
    > -}
    > -
    > -#endif /* CONFIG_PCI */
    > -
    > EXPORT_SYMBOL(isapnp_cards);
    > EXPORT_SYMBOL(isapnp_devices);
    > EXPORT_SYMBOL(isapnp_present);
    > @@ -2200,10 +2173,6 @@
    > } else {
    > printk("isapnp: No Plug & Play card found\n");
    > }
    > -#ifdef CONFIG_PCI
    > - if (!isapnp_skip_pci_scan)
    > - isapnp_pci_init();
    > -#endif
    > #ifdef CONFIG_PROC_FS
    > isapnp_proc_init();
    > #endif
    > --- arch/i386/kernel/pci-irq.c.mj Thu May 18 19:01:08 2000
    > +++ arch/i386/kernel/pci-irq.c Thu May 18 20:55:51 2000
    > @@ -14,11 +14,11 @@
    > #include <linux/irq.h>
    >
    > #include <asm/io.h>
    > +#include <asm/smp.h>
    > +#include <asm/io_apic.h>
    >
    > #include "pci-i386.h"
    >
    > -extern int skip_ioapic_setup;
    > -
    > #define PIRQ_SIGNATURE (('$' << 0) + ('P' << 8) + ('I' << 16) + ('R' << 24))
    > #define PIRQ_VERSION 0x0100
    >
    > @@ -32,8 +32,8 @@
    > unsigned int pcibios_irq_mask = 0xfff8;
    >
    > static unsigned pirq_penalty[16] = {
    > - 10000, 10000, 10000, 100, 100, 0, 0, 100,
    > - 0, 0, 0, 0, 100, 1000, 1000, 1000
    > + 1000000, 1000000, 1000000, 1000, 1000, 0, 0, 1000,
    > + 0, 0, 0, 0, 1000, 100000, 100000, 100000
    > };
    >
    > struct irq_router {
    > @@ -222,7 +222,7 @@
    > { "PIIX", PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371FB_0, pirq_piix_get, pirq_piix_set },
    > { "PIIX", PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371SB_0, pirq_piix_get, pirq_piix_set },
    > { "PIIX", PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_0, pirq_piix_get, pirq_piix_set },
    > - { "PIIX", PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82440MX_1, pirq_piix_get, pirq_piix_set },
    > + { "PIIX", PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443MX_0, pirq_piix_get, pirq_piix_set },
    > { "ALI", PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, pirq_ali_get, pirq_ali_set },
    > { "VIA", PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_0, pirq_via_get, pirq_via_set },
    > { "VIA", PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C596, pirq_via_get, pirq_via_set },
    > @@ -287,6 +287,10 @@
    > return NULL;
    > }
    >
    > +static void pcibios_test_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
    > +{
    > +}
    > +
    > -int pcibios_lookup_irq(struct pci_dev *dev, int assign)
    > +static int pcibios_lookup_irq(struct pci_dev *dev, int assign)
    > {
    > struct irq_info *info;
    > @@ -323,19 +327,24 @@
    >
    > /* Find the best IRQ to assign */
    > newirq = 0;
    > - for (i = 0; i < 16; i++) {
    > - if (!(mask & (1 << i)))
    > - continue;
    > - if (pirq_penalty[i] < pirq_penalty[newirq])
    > - newirq = i;
    > + if (assign) {
    > + for (i = 0; i < 16; i++) {
    > + if (!(mask & (1 << i)))
    > + continue;
    > + if (pirq_penalty[i] < pirq_penalty[newirq] &&
    > + !request_irq(i, pcibios_test_irq_handler, SA_SHIRQ, "pci-test", dev)) {
    > + free_irq(i, dev);
    > + newirq = i;
    > + }
    > + }
    > + DBG(" -> newirq=%d", newirq);
    > }
    > - DBG(" -> newirq=%d", newirq);
    >
    > /* Try to get current IRQ */
    > if (r->get && (irq = r->get(pirq_router_dev, d, pirq))) {
    > DBG(" -> got IRQ %d\n", irq);
    > msg = "Found";
    > - } else if (assign && newirq && r->set && (dev->class >> 8) != PCI_CLASS_DISPLAY_VGA) {
    > + } else if (newirq && r->set && (dev->class >> 8) != PCI_CLASS_DISPLAY_VGA) {
    > DBG(" -> assigning IRQ %d", newirq);
    > if (r->set(pirq_router_dev, d, pirq, newirq)) {
    > DBG(" ... OK\n");
    > @@ -346,7 +355,7 @@
    >
    > if (!irq) {
    > DBG(" ... failed\n");
    > - if (assign && newirq && mask == (1 << newirq)) {
    > + if (newirq && mask == (1 << newirq)) {
    > msg = "Guessed";
    > irq = newirq;
    > } else
    > @@ -379,6 +388,15 @@
    > if (pirq_table) {
    > pirq_peer_trick();
    > pirq_find_router();
    > + if (pirq_table->exclusive_irqs) {
    > + int i;
    > + for (i=0; i<16; i++)
    > + if (!(pirq_table->exclusive_irqs & (1 << i)))
    > + pirq_penalty[i] += 100;
    > + }
    > + /* If we're using the I/O APIC, avoid using the PCI IRQ routing table */
    > + if (io_apic_assign_pci_irqs)
    > + pirq_table = NULL;
    > }
    > }
    >
    > @@ -402,11 +420,11 @@
    >
    > pci_for_each_dev(dev) {
    > pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
    > -#if defined(CONFIG_X86_IO_APIC)
    > +#ifdef CONFIG_X86_IO_APIC
    > /*
    > * Recalculate IRQ numbers if we use the I/O APIC.
    > */
    > - if (!skip_ioapic_setup)
    > + if (io_apic_assign_pci_irqs)
    > {
    > int irq;
    >
    > @@ -441,5 +459,33 @@
    > */
    > if (pin && !dev->irq)
    > pcibios_lookup_irq(dev, 0);
    > + }
    > +}
    > +
    > +void __init pcibios_penalize_isa_irq(int irq)
    > +{
    > + /*
    > + * If any ISAPnP device reports an IRQ in its list of possible
    > + * IRQ's, we try to avoid assigning it to PCI devices.
    > + */
    > + pirq_penalty[irq] += 100;
    > +}
    > +
    > +void pcibios_enable_irq(struct pci_dev *dev)
    > +{
    > + if (!dev->irq) {
    > + u8 pin;
    > + pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
    > + if (pin && !pcibios_lookup_irq(dev, 1)) {
    > + char *msg;
    > + if (io_apic_assign_pci_irqs)
    > + msg = " Probably buggy MP table.";
    > + else if (pci_probe & PCI_BIOS_IRQ_SCAN)
    > + msg = "";
    > + else
    > + msg = " Please try using pci=biosirq.";
    > + printk(KERN_WARNING "PCI: No IRQ known for interrupt pin %c of device %s.%s\n",
    > + 'A' + pin - 1, dev->slot_name, msg);
    > + }
    > }
    > }
    > --- arch/i386/kernel/pci-visws.c.mj Thu May 18 19:56:28 2000
    > +++ arch/i386/kernel/pci-visws.c Thu May 18 19:56:53 2000
    > @@ -135,3 +135,7 @@
    > {
    > return pcibios_enable_resources(dev);
    > }
    > +
    > +void __init pcibios_penalize_isa_irq(irq)
    > +{
    > +}
    > --- arch/i386/kernel/pci-pc.c.mj Thu May 18 20:26:06 2000
    > +++ arch/i386/kernel/pci-pc.c Thu May 18 20:40:40 2000
    > @@ -14,7 +14,6 @@
    >
    > #include <asm/segment.h>
    > #include <asm/io.h>
    > -#include <asm/smp.h>
    >
    > #include "pci-i386.h"
    >
    > @@ -1045,13 +1044,6 @@
    >
    > if ((err = pcibios_enable_resources(dev)) < 0)
    > return err;
    > - if (!dev->irq) {
    > - u8 pin;
    > - pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
    > - if (pin && !pcibios_lookup_irq(dev, 1))
    > - printk(KERN_WARNING "PCI: No IRQ known for interrupt pin %c of device %s.%s\n",
    > - 'A' + pin - 1, dev->slot_name,
    > - (pci_probe & PCI_BIOS_IRQ_SCAN) ? "" : " Please try using pci=biosirq.");
    > - }
    > + pcibios_enable_irq(dev);
    > return 0;
    > }
    > --- arch/i386/kernel/i386_ksyms.c.mj Thu May 18 20:37:45 2000
    > +++ arch/i386/kernel/i386_ksyms.c Thu May 18 20:38:55 2000
    > @@ -100,6 +100,10 @@
    > EXPORT_SYMBOL(pci_alloc_consistent);
    > EXPORT_SYMBOL(pci_free_consistent);
    >
    > +#ifdef CONFIG_PCI
    > +EXPORT_SYMBOL(pcibios_penalize_isa_irq);
    > +#endif
    > +
    > #ifdef CONFIG_X86_USE_3DNOW
    > EXPORT_SYMBOL(_mmx_memcpy);
    > EXPORT_SYMBOL(mmx_clear_page);
    > --- arch/i386/kernel/pci-i386.h.mj Thu May 18 20:40:31 2000
    > +++ arch/i386/kernel/pci-i386.h Thu May 18 20:40:31 2000
    > @@ -68,4 +68,4 @@
    >
    > void pcibios_irq_init(void);
    > void pcibios_fixup_irqs(void);
    > -int pcibios_lookup_irq(struct pci_dev *dev, int assign);
    > +void pcibios_enable_irq(struct pci_dev *dev);
    >
    > ---------------------------------------------------------------------
    > To unsubscribe, e-mail: linux-usb-unsubscribe@suse.com
    > For additional commands, e-mail: linux-usb-help@suse.com

    -- 
    

    Alanp

    - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



    This archive was generated by hypermail 2b29 : Thu May 18 2000 - 18:26:40 EDT