public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* 2.6.13: Crash in Yenta initialization
@ 2005-09-02 23:38 Andreas Koch
  2005-09-03  0:37 ` Andrew Morton
  2005-09-03  0:45 ` Andreas Koch
  0 siblings, 2 replies; 16+ messages in thread
From: Andreas Koch @ 2005-09-02 23:38 UTC (permalink / raw)
  To: 'linux-kernel@vger.kernel.org'

This does not happen in my current kernel (2.6.12-rc6 with Ivan's PCI bridge 
patches applied). It is definitely localized in the Yenta code, since the 
boot proceeds when I disable the Yenta config option. My hardware is an Acer 
Travelmate 8104 with the external ezDock attached.

I can provide more info if you let me know what to look for.

Andreas Koch

Linux version 2.6.13 (root@meneldor) (gcc version 3.3.5-20050130 (Gentoo Linux 
3.3.5.20050130-r1, ssp-3.3.5.20050130-1, pie-8.7.7.1)) #2 Fri Sep 2 23:34:19 
CEST 2005
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
 BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000ce000 - 00000000000d0000 (reserved)
 BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000007fe80000 (usable)
 BIOS-e820: 000000007fe80000 - 000000007fe89000 (ACPI data)
 BIOS-e820: 000000007fe89000 - 000000007ff00000 (ACPI NVS)
 BIOS-e820: 000000007ff00000 - 0000000080000000 (reserved)
 BIOS-e820: 00000000e0000000 - 00000000f0006000 (reserved)
 BIOS-e820: 00000000f0008000 - 00000000f000c000 (reserved)
 BIOS-e820: 00000000fed20000 - 00000000fed90000 (reserved)
 BIOS-e820: 00000000ff000000 - 0000000100000000 (reserved)
1150MB HIGHMEM available.
896MB LOWMEM available.
DMI present.
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
Processor #0 6:13 APIC version 20
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 1, version 32, address 0xfec00000, GSI 0-23
ACPI: IOAPIC (id[0x02] address[0xfec20000] gsi_base[24])
IOAPIC[1]: apic_id 2, version 32, address 0xfec20000, GSI 24-47
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
Enabling APIC mode:  Flat.  Using 2 I/O APICs
ACPI: HPET id: 0x8086a201 base: 0x0
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 80000000 (gap: 80000000:60000000)
Built 1 zonelists
Kernel command line: root=/dev/ram0 lvm2root=/dev/vg0/root console=ttyS0
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 65536 bytes)
Detected 1995.744 MHz processor.
Using tsc for high-res timesource
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 2069152k/2095616k available (3513k kernel code, 25172k reserved, 1575k 
data, 212k init, 1178112k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay using timer specific routine.. 3995.10 BogoMIPS 
(lpj=1997552)
Mount-cache hash table entries: 512
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 2048K
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
mtrr: v2.0 (20020519)
CPU: Intel(R) Pentium(R) M processor 2.00GHz stepping 08
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
ENABLING IO-APIC IRQs
..TIMER: vector=0x31 pin1=2 pin2=-1
checking if image is initramfs...it isn't (no cpio magic); looks like an 
initrd
Freeing initrd memory: 2061k freed
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: PCI BIOS revision 2.10 entry at 0xfd6ce, last bus=8
PCI: Using MMCONFIG
ACPI: Subsystem revision 20050408
    ACPI-0362: *** Error: Looking up [Z00G] in namespace, AE_NOT_FOUND
search_node c20d9140 start_node c20d9140 return_node 00000000
    ACPI-0362: *** Error: Looking up [Z00G] in namespace, AE_NOT_FOUND
search_node c20d9d80 start_node c20d9d80 return_node 00000000
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Probing PCI hardware (bus 00)
ACPI: Assume root bridge [\_SB_.PCI0] segment is 0
PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.2
PCI: PXH quirk detected, disabling MSI for SHPC device
PCI: Transparent bridge - 0000:00:1e.0
ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 *10 12 14 15)
ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 7 11 12 14 15) *10
ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 7 *11 12 14 15)
ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 7 *11 12 14 15)
ACPI: Embedded Controller [EC0] (gpe 29)
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
pnp: PnP ACPI: found 12 devices
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
PCI: Using ACPI for IRQ routing
PCI: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
PCI: Cannot allocate resource region 7 of bridge 0000:00:1c.0
PCI: Cannot allocate resource region 8 of bridge 0000:00:1c.0
PCI: Cannot allocate resource region 9 of bridge 0000:00:1c.0
PCI: Cannot allocate resource region 7 of bridge 0000:00:1c.1
PCI: Cannot allocate resource region 8 of bridge 0000:00:1c.1
PCI: Cannot allocate resource region 9 of bridge 0000:00:1c.1
PCI: Cannot allocate resource region 7 of bridge 0000:00:1c.2
PCI: Cannot allocate resource region 8 of bridge 0000:00:1c.2
PCI: Cannot allocate resource region 9 of bridge 0000:00:1c.2
PCI: Cannot allocate resource region 7 of bridge 0000:02:00.0
PCI: Cannot allocate resource region 8 of bridge 0000:02:00.0
PCI: Cannot allocate resource region 4 of device 0000:03:02.0
PCI: Cannot allocate resource region 4 of device 0000:03:02.1
PCI: Cannot allocate resource region 0 of device 0000:03:02.2
PCI: Cannot allocate resource region 4 of device 0000:03:03.0
PCI: Cannot allocate resource region 4 of device 0000:03:03.1
PCI: Cannot allocate resource region 0 of device 0000:03:03.2
PCI: Cannot allocate resource region 0 of device 0000:03:04.0
PCI: Cannot allocate resource region 1 of device 0000:03:04.0
PCI: Cannot allocate resource region 0 of device 0000:03:05.0
PCI: Cannot allocate resource region 0 of device 0000:03:06.0
PCI: Bridge: 0000:00:01.0
  IO window: 2000-2fff
  MEM window: c8100000-c81fffff
  PREFETCH window: d0000000-d7ffffff
PCI: Bridge: 0000:00:1c.0
  IO window: disabled.
  MEM window: disabled.
  PREFETCH window: disabled.
PCI: Bridge: 0000:00:1c.1
  IO window: disabled.
  MEM window: disabled.
  PREFETCH window: disabled.
PCI: Bus 4, cardbus bridge: 0000:03:05.0
  IO window: 00003000-000030ff
  IO window: 00003400-000034ff
  PREFETCH window: 80000000-81ffffff
  MEM window: 84000000-85ffffff
PCI: Bridge: 0000:02:00.0
  IO window: 3000-3fff
  MEM window: 84000000-86ffffff
  PREFETCH window: 80000000-81ffffff
PCI: Bridge: 0000:00:1c.2
  IO window: 3000-3fff
  MEM window: 84000000-86ffffff
  PREFETCH window: 80000000-81ffffff
PCI: Bus 7, cardbus bridge: 0000:06:09.0
  IO window: 00004000-000040ff
  IO window: 00004400-000044ff
  PREFETCH window: 82000000-83ffffff
  MEM window: 88000000-89ffffff
PCI: Bridge: 0000:00:1e.0
  IO window: 4000-4fff
  MEM window: c8400000-c84fffff
  PREFETCH window: 82000000-83ffffff
ACPI: PCI Interrupt 0000:00:01.0[A] -> GSI 16 (level, low) -> IRQ 16
PCI: Device 0000:00:1c.0 not available because of resource collisions
PCI: Device 0000:00:1c.1 not available because of resource collisions
PCI: Enabling device 0000:00:1c.2 (0000 -> 0003)
ACPI: PCI Interrupt 0000:00:1c.2[C] -> GSI 18 (level, low) -> IRQ 17
ACPI: PCI Interrupt 0000:03:05.0[A] -> GSI 31 (level, low) -> IRQ 18
ACPI: PCI Interrupt 0000:06:09.0[A] -> GSI 18 (level, low) -> IRQ 17
Simple Boot Flag at 0x36 set to 0x1
Machine check exception polling timer started.
audit: initializing netlink socket (disabled)
audit(1125704367.262:1): initialized
highmem bounce pool size: 64 pages
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
NTFS driver 2.1.23 [Flags: R/O].
Initializing Cryptographic API
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
pciehp: add_host_bridge: status 5
pciehp: Fails to gain control of native hot-plug
shpchp: shpc_init : shpc_cap_offset == 0
shpchp: shpc_init : shpc_cap_offset == 0
shpchp: shpc_init : shpc_cap_offset == 0
shpchp: shpc_init : shpc_cap_offset == 0
shpchp: shpc_init : shpc_cap_offset == 0
shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
ACPI: PCI Interrupt 0000:00:01.0[A] -> GSI 16 (level, low) -> IRQ 16
assign_interrupt_mode Found MSI capability
PCI: Device 0000:00:1c.0 not available because of resource collisions
PCI: Device 0000:00:1c.1 not available because of resource collisions
ACPI: PCI Interrupt 0000:00:1c.2[C] -> GSI 18 (level, low) -> IRQ 17
assign_interrupt_mode Found MSI capability
ACPI: AC Adapter [ACAD] (on-line)
ACPI: Battery Slot [BAT1] (battery absent)
ACPI: Battery Slot [BAT2] (battery absent)
ACPI: Power Button (FF) [PWRF]
ACPI: Lid Switch [LID]
ACPI: Power Button (CM) [PWRB]
ACPI: Sleep Button (CM) [SLPB]
ACPI: Video Device [VGA] (multi-head: yes  rom: no  post: no)
ACPI: CPU0 (power states: C1[C1] C2[C2])
ACPI: Processor [CPU0] (supports 8 throttling states)
ACPI: Thermal Zone [THRM] (64 C)
lp: driver loaded but no devices found
Real Time Clock Driver v1.12
Linux agpgart interface v0.101 (c) Dave Jones
PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
i8042.c: Detected active multiplexing controller, rev 1.1.
serio: i8042 AUX0 port at 0x60,0x64 irq 12
serio: i8042 AUX1 port at 0x60,0x64 irq 12
serio: i8042 AUX2 port at 0x60,0x64 irq 12
serio: i8042 AUX3 port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
ttyS1 at I/O 0x2f8 (irq = 3) is a NS16550A
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
ACPI: PCI Interrupt 0000:03:06.0[A] -> GSI 32 (level, low) -> IRQ 19
parport: PnPBIOS parport detected.
parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP(,...)]
lp0: using parport0 (interrupt-driven).
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
loop: loaded (max 8 devices)
pktcdvd: v0.2.0a 2004-07-14 Jens Axboe (axboe@suse.de) and petero2@telia.com
tg3.c:v3.37 (August 25, 2005)
ACPI: PCI Interrupt 0000:06:06.0[A] -> GSI 16 (level, low) -> IRQ 16
eth0: Tigon3 [partno(BCM95788A50) rev 3003 PHY(5705)] (PCI:33MHz:32-bit) 
10/100/1000BaseT Ethernet 00:c0:9f:75:57:33
eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] Split[0] WireSpeed[0] TSOcap[1] 
eth0: dma_rwctrl[763f0000]
ACPI: PCI Interrupt 0000:00:1f.2[B] -> GSI 19 (level, low) -> IRQ 20
ACPI: PCI interrupt for device 0000:00:1f.2 disabled
ahci: probe of 0000:00:1f.2 failed with error -12
ACPI: PCI Interrupt 0000:00:1f.2[B] -> GSI 19 (level, low) -> IRQ 20
ata1: SATA max UDMA/133 cmd 0x1F0 ctl 0x3F6 bmdma 0x18A0 irq 14
ata1: dev 0 ATA, max UDMA/100, 195371568 sectors: lba48
ata1(0): applying bridge limits
ata1: dev 0 configured for UDMA/100
scsi0 : ata_piix
  Vendor: ATA       Model: TOSHIBA MK1032GA  Rev: AB21
  Type:   Direct-Access                      ANSI SCSI revision: 05
ata2: SATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0x18A8 irq 15
ata2: dev 0 ATAPI, max UDMA/33
ata2(0): applying bridge limits
ata2: dev 0 configured for UDMA/33
scsi1 : ata_piix
  Vendor: HL-DT-ST  Model: DVDRAM GMA-4080N  Rev: 0H35
  Type:   CD-ROM                             ANSI SCSI revision: 05
SCSI device sda: 195371568 512-byte hdwr sectors (100030 MB)
SCSI device sda: drive cache: write back
SCSI device sda: 195371568 512-byte hdwr sectors (100030 MB)
SCSI device sda: drive cache: write back
 sda: sda1 sda2 sda3
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
sr0: scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda tray
Uniform CD-ROM driver Revision: 3.20
Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0,  type 0
Attached scsi generic sg1 at scsi1, channel 0, id 0, lun 0,  type 5
ohci1394: $Rev: 1299 $ Ben Collins <bcollins@debian.org>
ACPI: PCI Interrupt 0000:03:04.0[A] -> GSI 30 (level, low) -> IRQ 21
ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[21]  MMIO=[86005000-860057ff]  
Max Packet=[2048]
ACPI: PCI Interrupt 0000:06:07.0[A] -> GSI 19 (level, low) -> IRQ 20
ohci1394: fw-host1: OHCI-1394 1.1 (PCI): IRQ=[20]  MMIO=[c8415000-c84157ff]  
Max Packet=[2048]
ieee1394: raw1394: /dev/raw1394 device initialized
sbp2: $Rev: 1306 $ Ben Collins <bcollins@debian.org>
ACPI: PCI Interrupt 0000:03:05.0[A] -> GSI 31 (level, low) -> IRQ 18
Yenta: CardBus bridge found at 0000:03:05.0 [104c:ac50]
Yenta: Using CSCINT to route CSC interrupts to PCI
Yenta: Routing CardBus interrupts to PCI
Yenta TI: socket 0000:03:05.0, mfunc 0x00521d22, devctl 0x66
Yenta: ISA IRQ mask 0x0000, PCI irq 18
Socket status: 30000006
pcmcia: parent PCI bridge I/O window: 0x3000 - 0x3fff
pcmcia: parent PCI bridge Memory window: 0x84000000 - 0x86ffffff
pcmcia: parent PCI bridge Memory window: 0x80000000 - 0x81ffffff
ACPI: PCI Interrupt 0000:06:09.0[A] -> GSI 18 (level, low) -> IRQ 17
Yenta: CardBus bridge found at 0000:06:09.0 [1025:0070]
Yenta O2: res at 0x94/0xD4: ff/ea
Yenta O2: enabling read prefetch/write burst
Yenta: ISA IRQ mask 0x0438, PCI irq 17
Socket status: 30000006
pcmcia: parent PCI bridge I/O window: 0x4000 - 0x4fff
pcmcia: parent PCI bridge Memory window: 0xc8400000 - 0xc84fffff
pcmcia: parent PCI bridge Memory window: 0x82000000 - 0x83ffffff
ACPI: PCI Interrupt 0000:06:09.1[A] -> GSI 18 (level, low) -> IRQ 17
Yenta: CardBus bridge found at 0000:06:09.1 [1025:0070]
Unable to handle kernel NULL pointer dereference at virtual address 0000004f
 printing eip:
c03af658
*pde = 00000000
Oops: 0000 [#1]
Modules linked in:
CPU:    0
EIP:    0060:[<c03af658>]    Not tainted VLI
EFLAGS: 00010292   (2.6.13) 
EIP is at yenta_config_init+0xd8/0x170
eax: 00000000   ebx: dfcb7000   ecx: 00000000   edx: e0649000
esi: dff75000   edi: 00001000   ebp: dff75000   esp: dfd9fea8
ds: 007b   es: 007b   ss: 0068
Process swapper (pid: 1, threadinfo=dfd9e000 task=dfdc7a00)
Stack: dff7d880 00000049 0000000d 000000a8 c011f9d7 fffffff4 dfcb7000 c03af810 
       dfcb7000 dff750d8 00001025 00000070 c05abf20 ffffffed dff75000 c05ac340 
       c05ac36c c028927f dff75000 c05ac2d8 c05ac340 dff75000 dff75044 c02892bf 
Call Trace:
 [<c011f9d7>] printk+0x17/0x20
 [<c03af810>] yenta_probe+0x120/0x280
 [<c028927f>] __pci_device_probe+0x5f/0x70
 [<c02892bf>] pci_device_probe+0x2f/0x50
 [<c03211c8>] driver_probe_device+0x38/0xb0
 [<c03212c0>] __driver_attach+0x0/0x50
 [<c0321307>] __driver_attach+0x47/0x50
 [<c03207a9>] bus_for_each_dev+0x69/0x80
 [<c0321335>] driver_attach+0x25/0x30
 [<c03212c0>] __driver_attach+0x0/0x50
 [<c0320cfd>] bus_add_driver+0x8d/0xe0
 [<c0289580>] pci_register_driver+0x70/0x90
 [<c061906f>] yenta_socket_init+0xf/0x20
 [<c05fc8cb>] do_initcalls+0x2b/0xc0
 [<c0100290>] init+0x0/0x110
 [<c0100290>] init+0x0/0x110
 [<c01002ba>] init+0x2a/0x110
 [<c0101378>] kernel_thread_helper+0x0/0x18
 [<c010137d>] kernel_thread_helper+0x5/0x18
Code: ed ff 8b 13 b9 a8 00 00 00 b8 0d 00 00 00 89 4c 24 0c 89 44 24 08 8b 42 
20 89 44 24 04 8b 42 10 89 04 24 e8 bb 56 ed ff 8b 4e 14 <0f> b6 51 4f 0f b6 
41 4e c1 e2 10 c1 e0 08 09 c2 0f b6 41 4d 8b 
 <0>Kernel panic - not syncing: Attempted to kill init!
 

^ permalink raw reply	[flat|nested] 16+ messages in thread
* Re: 2.6.13: Crash in Yenta initialization
@ 2005-09-12 20:13 Marcus Wegner
  0 siblings, 0 replies; 16+ messages in thread
From: Marcus Wegner @ 2005-09-12 20:13 UTC (permalink / raw)
  To: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2235 bytes --]

>  On Sat, Sep 03, Ivan Kokshaysky wrote:
>
>>On Sat, Sep 03, 2005 at 02:45:08AM +0200, Andreas Koch wrote:
>> > crucial part seem to be the different bridge initialization sections:
>>
>>Indeed.
>>
>> > 2.6.12-rc6 + Ivan's patches:
>>...
>> >           PCI: Bus 7, cardbus bridge: 0000:06:09.0
>> >             IO window: 00006000-00006fff
>> >             IO window: 00007000-00007fff
>> >             PREFETCH window: 82000000-83ffffff
>> >             MEM window: 8c000000-8dffffff
>> >           PCI: Bus 11, cardbus bridge: 0000:06:09.1
>> >             IO window: 00008000-00008fff
>> >             IO window: 00009000-00009fff
>> >             PREFETCH window: 84000000-85ffffff
>> >             MEM window: 8e000000-8fffffff
>> >           PCI: Bus 15, cardbus bridge: 0000:06:09.3
>>...
>> > ... Versus the much shorter output from 2.6.13
>>...
>> >           PCI: Bus 7, cardbus bridge: 0000:06:09.0
>> >             IO window: 00004000-000040ff
>> >             IO window: 00004400-000044ff
>> >             PREFETCH window: 82000000-83ffffff
>> >             MEM window: 88000000-89ffffff
>> >           PCI: Bridge: 0000:00:1e.0
>>
>>It's mysterious.
>>So 2.6.13 doesn't see cardbus bridge functions 06:09.1 and 06:09.3,
>>which means that these devices are not on the per-bus device list.
>>OTOH, they are still visible on the global device list, since yenta
>>driver found them. No surprise that it crashes with some uninitialized
>>pointer.
>
>Did you find the reason for this already?
>We have a similar report:
>https://bugzilla.novell.com/show_bug.cgi?id=113778
>...
>It dies in yenta_config_init because dev->subordinate is NULL.
>...
I had the same problem with an ACER 8101 WLMI. I reverted the initialization
partly and it works now, but I don't know if it really fixes the bug.
Something seems to wrong in the pci initcode.

But other hardware errors with the acer notebook still remain. The detection
of the ioapic results in a deadlock in the boot process (the
multiple-ioapic-fix or "noapic" solved this).

yenta related:
- pccard hardware is working now
- O2 Micro 4-1 cardreader is not working

Does someone have ideas, configs or patches for the cardreader? Do you need 
more info? Let me know.

Marcus


[-- Attachment #2: pci-assign-res-fix --]
[-- Type: application/octet-stream, Size: 785 bytes --]

Crash in Yenta initialization
see http://marc.theaimsgroup.com/?l=linux-kernel&m=112570441428703&w=2

This fixes the pci initialization (revert back to previous state).

Marcus Wegner <wegner3000@hotmail.com>


diff -urN linux-2.6.13-8/drivers/pci/probe.c linux-2.6.13-8-marcus/drivers/pci/probe.c
--- linux-2.6.13-8/drivers/pci/probe.c	2005-08-29 01:41:01.000000000 +0200
+++ linux-2.6.13-8-marcus/drivers/pci/probe.c	2005-09-11 00:46:05.000000000 +0200
@@ -523,11 +523,8 @@
 			 * as cards with a PCI-to-PCI bridge can be
 			 * inserted later.
 			 */
-			for (i=0; i<CARDBUS_RESERVE_BUSNR; i++)
-				if (pci_find_bus(pci_domain_nr(bus),
-							max+i+1))
-					break;
-			max += i;
+			max += CARDBUS_RESERVE_BUSNR;
+
 			pci_fixup_parent_subordinate_busnr(child, max);
 		}
 		/*

[-- Attachment #3: multiple-ioapic-fix --]
[-- Type: application/octet-stream, Size: 1900 bytes --]

ACPI MADT contains info on 2 IO-APICs.
 io_apic_get_unique_id panics due to being unable to assign an id to the
 second one (the memory location reads as all ones). The chipset spec
 (specifically: ICH6-M) is only talking about one IO-APIC, so most likely the
 MADT is in error.

Marcus Wegner <wegner3000@hotmail.com>


diff -urN linux-2.6.13-8/arch/i386/kernel/io_apic.c linux-2.6.13-8-marcus/arch/i386/kernel/io_apic.c
--- linux-2.6.13-8/arch/i386/kernel/io_apic.c	2005-09-06 17:53:38.000000000 +0200
+++ linux-2.6.13-8-marcus/arch/i386/kernel/io_apic.c	2005-09-11 03:44:08.000000000 +0200
@@ -2493,7 +2493,10 @@
 
 		/* Sanity check */
 		if (reg_00.bits.ID != apic_id)
-			panic("IOAPIC[%d]: Unable change apic_id!\n", ioapic);
+		{
+			printk("IOAPIC[%d]: Unable change apic_id!\n", ioapic);
+			return(-1);
+		}
 	}
 
 	apic_printk(APIC_VERBOSE, KERN_INFO
diff -urN linux-2.6.13-8/arch/i386/kernel/mpparse.c linux-2.6.13-8-marcus/arch/i386/kernel/mpparse.c
--- linux-2.6.13-8/arch/i386/kernel/mpparse.c	2005-08-29 01:41:01.000000000 +0200
+++ linux-2.6.13-8-marcus/arch/i386/kernel/mpparse.c	2005-09-11 04:01:18.000000000 +0200
@@ -893,6 +893,7 @@
 	u32			gsi_base)
 {
 	int			idx = 0;
+	int			tmpid = 0;
 
 	if (nr_ioapics >= MAX_IO_APICS) {
 		printk(KERN_ERR "ERROR: Max # of I/O APICs (%d) exceeded "
@@ -912,8 +913,13 @@
 	mp_ioapics[idx].mpc_apicaddr = address;
 
 	set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address);
-	if ((boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) && (boot_cpu_data.x86 < 15))
-		mp_ioapics[idx].mpc_apicid = io_apic_get_unique_id(idx, id);
+	if ((boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) && (boot_cpu_data.x86 < 15)) {
+		if ((tmpid = io_apic_get_unique_id(idx, id)) == -1) {
+			nr_ioapics--;
+			return;
+		}
+		mp_ioapics[idx].mpc_apicid = tmpid;
+	}
 	else
 		mp_ioapics[idx].mpc_apicid = id;
 	mp_ioapics[idx].mpc_apicver = io_apic_get_version(idx);

^ permalink raw reply	[flat|nested] 16+ messages in thread
* Re: 2.6.13: Crash in Yenta initialization
@ 2005-09-12 20:17 Marcus Wegner
  0 siblings, 0 replies; 16+ messages in thread
From: Marcus Wegner @ 2005-09-12 20:17 UTC (permalink / raw)
  To: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2235 bytes --]

>  On Sat, Sep 03, Ivan Kokshaysky wrote:
>
>>On Sat, Sep 03, 2005 at 02:45:08AM +0200, Andreas Koch wrote:
>> > crucial part seem to be the different bridge initialization sections:
>>
>>Indeed.
>>
>> > 2.6.12-rc6 + Ivan's patches:
>>...
>> >           PCI: Bus 7, cardbus bridge: 0000:06:09.0
>> >             IO window: 00006000-00006fff
>> >             IO window: 00007000-00007fff
>> >             PREFETCH window: 82000000-83ffffff
>> >             MEM window: 8c000000-8dffffff
>> >           PCI: Bus 11, cardbus bridge: 0000:06:09.1
>> >             IO window: 00008000-00008fff
>> >             IO window: 00009000-00009fff
>> >             PREFETCH window: 84000000-85ffffff
>> >             MEM window: 8e000000-8fffffff
>> >           PCI: Bus 15, cardbus bridge: 0000:06:09.3
>>...
>> > ... Versus the much shorter output from 2.6.13
>>...
>> >           PCI: Bus 7, cardbus bridge: 0000:06:09.0
>> >             IO window: 00004000-000040ff
>> >             IO window: 00004400-000044ff
>> >             PREFETCH window: 82000000-83ffffff
>> >             MEM window: 88000000-89ffffff
>> >           PCI: Bridge: 0000:00:1e.0
>>
>>It's mysterious.
>>So 2.6.13 doesn't see cardbus bridge functions 06:09.1 and 06:09.3,
>>which means that these devices are not on the per-bus device list.
>>OTOH, they are still visible on the global device list, since yenta
>>driver found them. No surprise that it crashes with some uninitialized
>>pointer.
>
>Did you find the reason for this already?
>We have a similar report:
>https://bugzilla.novell.com/show_bug.cgi?id=113778
>...
>It dies in yenta_config_init because dev->subordinate is NULL.
>...
I had the same problem with an ACER 8101 WLMI. I reverted the initialization
partly and it works now, but I don't know if it really fixes the bug.
Something seems to wrong in the pci initcode.

But other hardware errors with the acer notebook still remain. The detection
of the ioapic results in a deadlock in the boot process (the
multiple-ioapic-fix or "noapic" solved this).

yenta related:
- pccard hardware is working now
- O2 Micro 4-1 cardreader is not working

Does someone have ideas, configs or patches for the cardreader? Do you need 
more info? Let me know.

Marcus


[-- Attachment #2: pci-assign-res-fix --]
[-- Type: application/octet-stream, Size: 0 bytes --]



[-- Attachment #3: multiple-ioapic-fix --]
[-- Type: application/octet-stream, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2005-09-21 15:56 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-02 23:38 2.6.13: Crash in Yenta initialization Andreas Koch
2005-09-03  0:37 ` Andrew Morton
2005-09-03  0:45 ` Andreas Koch
2005-09-03 18:34   ` Ivan Kokshaysky
2005-09-12 17:42     ` Olaf Hering
2005-09-12 20:07       ` Ivan Kokshaysky
2005-09-13  6:30         ` Olaf Hering
2005-09-13 11:45           ` Ivan Kokshaysky
2005-09-14  4:10             ` Olaf Hering
2005-09-20 10:02             ` Continuing PCI and Yenta troubles in 2.6.13.1 and 2.6.14-rc1 Andreas Koch
2005-09-20 12:59               ` Ivan Kokshaysky
     [not found]                 ` <200509202006.19193.koch@esa.informatik.tu-darmstadt.de>
2005-09-21 15:55                   ` Ivan Kokshaysky
2005-09-13 12:36     ` 2.6.13: Crash in Yenta initialization Andreas Koch
2005-09-13 12:43       ` Andreas Koch
  -- strict thread matches above, loose matches on Subject: below --
2005-09-12 20:13 Marcus Wegner
2005-09-12 20:17 Marcus Wegner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox