On Wednesday, May 19, 2010 09:13:24 am Graham Ramsey wrote: > I am on x86_64 with latest (v2.6.34) kernel. When i set > CONFIG_SND_HDA_INTEL=Y It hangs at an early stage in boot with kernel oops. > When i use CONFIG_SND_HDA_INTEL=M the machine will boot, and i get the > dmesg (below). > > I have bisected down to one commit that causes the problem: > > commit 3e3da00c01d050307e753fb7b3e84aefc16da0d0 > x86/pci: AMD one chain system to use pci read out res > ... I CC'd Yinghai, the author of that patch. That commit went in after 2.6.33, so this is probably a regression between .33 and .34. Can you open a report at https://bugzilla.kernel.org and respond to this thread with the URL? Please attach the complete dmesg (with SND_HDA_INTEL=m) to the bugzilla. Thanks a lot for your report! Bjorn > I have reverted this in my current kernel (v3.6.34) and it seems to work > OK like this. > Is it possible to get this commit either removed, or amended to work > with SND_HDA_INTEL ? > OOPS from dmesg > --------------- > Pid: 1714, comm: modprobe Not tainted 2.6.34 #3 > ALiveSATA2-GLAN/ALiveSATA2-GLAN > RIP: 0010:[<ffffffffa0018d11>] [<ffffffffa0018d11>] > azx_probe+0x3a2/0xa6a [snd_hda_intel] > RSP: 0018:ffff88007e80bd18 EFLAGS: 00010282 > RAX: ffffc90000078000 RBX: ffff88007d724c00 RCX: 000000000000000d > RDX: 0000000000000000 RSI: 0000000000000246 RDI: ffffffff813f2f24 > RBP: ffff88007f9da088 R08: 0000000000000000 R09: 0000000000000040 > R10: 0000000000000008 R11: 000000000000000a R12: ffff88007f9da000 > R13: ffff88007d726400 R14: 0000000000000000 R15: 0000000000000000 > FS: 00007f1a13aa6700(0000) GS:ffff880001700000(0000) > knlGS:0000000000000000 > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > CR2: ffffc90000078000 CR3: 0000000037ad1000 CR4: 00000000000006e0 > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 > Process modprobe (pid: 1714, threadinfo ffff88007e80a000, task > ffff88007d0ed080) > Stack: > 0000000000000292 0000000000000005 ffff88007f9c62c8 ffff88007d60e948 > <0> ffff88007d60e948 ffffffff810c5d3f ffff88007e80bd64 ffff88007e80bdb8 > <0> ffff88007f9033f0 ffff88007d60e948 ffff88007e80bdb8 ffff88007e80bdb8 > Call Trace: > [<ffffffff810c5d3f>] ? sysfs_addrm_finish+0x29/0xb4 > [<ffffffff8116e849>] ? local_pci_probe+0x12/0x19 > [<ffffffff8116ea65>] ? pci_device_probe+0x60/0x8e > [<ffffffff811ac286>] ? driver_sysfs_add+0x42/0x69 > [<ffffffff811ac4cd>] ? driver_probe_device+0x8e/0x10e > [<ffffffff811ac59c>] ? __driver_attach+0x4f/0x6f > [<ffffffff811ac54d>] ? __driver_attach+0x0/0x6f > [<ffffffff811ab8cc>] ? bus_for_each_dev+0x47/0x72 > [<ffffffff811abede>] ? bus_add_driver+0xa2/0x1f2 > [<ffffffff811ac7bc>] ? driver_register+0x8d/0xf5 > [<ffffffff8116ecb0>] ? __pci_register_driver+0x50/0xbb > [<ffffffffa001e000>] ? alsa_card_azx_init+0x0/0x22 [snd_hda_intel] > [<ffffffff810002d0>] ? do_one_initcall+0x4f/0x13f > [<ffffffff8104aa56>] ? sys_init_module+0xc5/0x2cf > [<ffffffff81001eab>] ? system_call_fastpath+0x16/0x1b > Code: 83 f0 01 00 00 31 f6 48 89 df e8 9f e4 ff ff 85 c0 0f 88 f5 03 00 > 00 4c 89 e7 e8 e2 45 15 e1 8b 7b 40 e8 70 41 03 e1 48 8b 43 38 <66> 44 > 8b 38 8b 43 14 83 e8 03 83 f8 01 77 2c 31 d2 be 85 43 00 > RIP [<ffffffffa0018d11>] azx_probe+0x3a2/0xa6a [snd_hda_intel] > RSP <ffff88007e80bd18> > CR2: ffffc90000078000 > ---[ end trace 1814cadd98ff217d ]--- > > > > Patch for revert of commit > ------------------------------------- > > --- a/arch/x86/pci/amd_bus.c > +++ b/arch/x86/pci/amd_bus.c > @@ -83,12 +83,11 @@ static int __init early_fill_mp_bus_info(void) > struct range range[RANGE_NUM]; > u64 val; > u32 address; > - bool found; > > if (!early_pci_allowed()) > return -1; > > - found = false; > + found_all_numa_early = 0; > for (i = 0; i < ARRAY_SIZE(pci_probes); i++) { > u32 id; > u16 device; > @@ -102,12 +101,12 @@ static int __init early_fill_mp_bus_info(void) > device = (id>>16) & 0xffff; > if (pci_probes[i].vendor == vendor && > pci_probes[i].device == device) { > - found = true; > + found_all_numa_early = 1; > break; > } > } > > - if (!found) > + if (!found_all_numa_early) > return 0; > > pci_root_num = 0; > diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c > index 64a1228..894a17e 100644 > --- a/arch/x86/pci/bus_numa.c > +++ b/arch/x86/pci/bus_numa.c > @@ -6,6 +6,7 @@ > > int pci_root_num; > struct pci_root_info pci_root_info[PCI_ROOT_NR]; > +int found_all_numa_early; > > void x86_pci_root_bus_res_quirks(struct pci_bus *b) > { > @@ -21,6 +22,10 @@ void x86_pci_root_bus_res_quirks(struct pci_bus *b) > if (!pci_root_num) > return; > > + /* for amd, if only one root bus, don't need to do anything */ > + if (pci_root_num < 2 && found_all_numa_early) > + return; > + > for (i = 0; i < pci_root_num; i++) { > if (pci_root_info[i].bus_min == b->number) > break; > diff --git a/arch/x86/pci/bus_numa.h b/arch/x86/pci/bus_numa.h > index 804a4b4..d4ad5fa 100644 > --- a/arch/x86/pci/bus_numa.h > +++ b/arch/x86/pci/bus_numa.h > @@ -19,6 +19,7 @@ struct pci_root_info { > #define PCI_ROOT_NR 4 > extern int pci_root_num; > extern struct pci_root_info pci_root_info[PCI_ROOT_NR]; > +extern int found_all_numa_early; > > extern void update_res(struct pci_root_info *info, resource_size_t start, > resource_size_t end, unsigned long flags, int > merge); > > My lspci > -------- > > 00:00.0 Host bridge: VIA Technologies, Inc. K8T890CF Host Bridge > 00:00.1 Host bridge: VIA Technologies, Inc. VT3351 Host Bridge > 00:00.2 Host bridge: VIA Technologies, Inc. VT3351 Host Bridge > 00:00.3 Host bridge: VIA Technologies, Inc. VT3351 Host Bridge > 00:00.4 Host bridge: VIA Technologies, Inc. VT3351 Host Bridge > 00:00.5 PIC: VIA Technologies, Inc. VT3351 I/O APIC Interrupt Controller > 00:00.7 Host bridge: VIA Technologies, Inc. VT3351 Host Bridge > 00:01.0 PCI bridge: VIA Technologies, Inc. [K8T890 North / VT8237 South] > PCI Bridge > 00:02.0 PCI bridge: VIA Technologies, Inc. K8T890 PCI to PCI Bridge > Controller > 00:03.0 PCI bridge: VIA Technologies, Inc. K8T890 PCI to PCI Bridge > Controller > 00:03.1 PCI bridge: VIA Technologies, Inc. K8T890 PCI to PCI Bridge > Controller > 00:03.2 PCI bridge: VIA Technologies, Inc. K8T890 PCI to PCI Bridge > Controller > 00:03.3 PCI bridge: VIA Technologies, Inc. K8T890 PCI to PCI Bridge > Controller > 00:0f.0 RAID bus controller: VIA Technologies, Inc. VT8237A SATA 2-Port > Controller (rev 80) > 00:0f.1 IDE interface: VIA Technologies, Inc. > VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 07) > 00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 > Controller (rev a0) > 00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 > Controller (rev a0) > 00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 > Controller (rev a0) > 00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 > Controller (rev a0) > 00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86) > 00:11.0 ISA bridge: VIA Technologies, Inc. VT8237A PCI to ISA Bridge > 00:11.7 Host bridge: VIA Technologies, Inc. VT8251 Ultra VLINK Controller > 00:13.0 Host bridge: VIA Technologies, Inc. VT8237A Host Bridge > 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] > HyperTransport Technology Configuration > 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] > Address Map > 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] > DRAM Controller > 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] > Miscellaneous Control > 02:00.0 SATA controller: JMicron Technology Corp. JMB362/JMB363 Serial > ATA Controller (rev 02) > 02:00.1 IDE interface: JMicron Technology Corp. JMB362/JMB363 Serial ATA > Controller (rev 02) > 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. > RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01) > 06:00.0 VGA compatible controller: nVidia Corporation G71 [GeForce 7900 > GS] (rev a1) > 80:01.0 Audio device: VIA Technologies, Inc. VT1708/A [Azalia HDAC] (VIA > High Definition Audio Controller) (rev 10) -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html