Bug 444791
Summary: | Dell PowerEdge 1955 DMI match to enable pci=bfsort fails | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Matt Domsch <matt_domsch> |
Component: | kernel | Assignee: | Kernel Maintainer List <kernel-maint> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 8 | CC: | jgarzik, linux-bugs |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | 2.6.25.4-10.fc8 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2008-06-06 07:45:19 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Matt Domsch
2008-04-30 16:24:09 UTC
rawhide 2.6.25-8.fc9.x86_64 also fails. Fedora 8 gold kernel 2.6.23.1-42.fc8 also fails. bugger. if you boot with initcall_debug, does pci_legacy_init get called ? I wonder if we changed the default PCI probing type so that we're not preferring PCI BIOS on that system any more. pci_legacy_init() gets called, but exits immediately. Calling initcall 0xffffffff81487af9: pci_acpi_init+0x0/0xae() PCI: Using ACPI for IRQ routing PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report initcall 0xffffffff81487af9: pci_acpi_init+0x0/0xae() returned 0. initcall 0xffffffff81487af9 ran for 0 msecs: pci_acpi_init+0x0/0xae() Calling initcall 0xffffffff81487ba7: pci_legacy_init+0x0/0xf8() initcall 0xffffffff81487ba7: pci_legacy_init+0x0/0xf8() returned 0. initcall 0xffffffff81487ba7 ran for 0 msecs: pci_legacy_init+0x0/0xf8() pci_acpi_init() ran and set pcibios_scanned++. pci_legacy_init() then ran, saw pcibios_scanned > 0, and returned. If it hadn't returned, it would have called pcibios_scan_root(), which calls dmi_check_system(), which is how all the DMI-based quirks are discovered and used. So we'll need to get dmi_check_system() executed regardless of if it's pci_acpi_init() or pci_legacy_init() that's really used. This may have broken before the merger, I can't tell very well. found it. commit 08f1c192c3c32797068bfe97738babb3295bbf42 Author: Muli Ben-Yehuda <muli.com> Date: Sun Jul 22 00:23:39 2007 +0300 x86-64: introduce struct pci_sysdata to facilitate sharing of ->sysdata This patch introduces struct pci_sysdata to x86 and x86-64, and converts the existing two users (NUMA, Calgary) to use it. This lays the groundwork for having other users of sysdata, such as the PCI domains work. The Calgary bits are tested, the NUMA bits just look ok. Signed-off-by: Jeff Garzik <jeff> Signed-off-by: Muli Ben-Yehuda <muli.com> Signed-off-by: Linus Torvalds <torvalds> diff --git a/arch/i386/pci/acpi.c b/arch/i386/pci/acpi.c index b33aea8..bc8a44b 100644 --- a/arch/i386/pci/acpi.c +++ b/arch/i386/pci/acpi.c @@ -8,20 +8,42 @@ struct pci_bus * __devinit pci_acpi_scan_root(struct acpi_device *device, int domain, int busnum) { struct pci_bus *bus; + struct pci_sysdata *sd; + int pxm; + + /* Allocate per-root-bus (not per bus) arch-specific data. + * TODO: leak; this memory is never freed. + * It's arguable whether it's worth the trouble to care. + */ + sd = kzalloc(sizeof(*sd), GFP_KERNEL); + if (!sd) { + printk(KERN_ERR "PCI: OOM, not probing PCI bus %02x\n", busnum); + return NULL; + } if (domain != 0) { printk(KERN_WARNING "PCI: Multiple domains not supported\n"); + kfree(sd); return NULL; } - bus = pcibios_scan_root(busnum); This last line, removing the call of pcibios_scan_root(), is what will cause this, as pcibios_scan_root() is what calls dmi_check_system(). I reported this in kernel.org bz. Fixed in 2.6.25.4-10.fc8 kernel-2.6.25.4-10.fc8 has been submitted as an update for Fedora 8 kernel-2.6.25.4-10.fc8 has been pushed to the Fedora 8 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with su -c 'yum --enablerepo=updates-testing update kernel'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F8/FEDORA-2008-4484 kernel-2.6.25.4-10.fc8 has been pushed to the Fedora 8 stable repository. If problems still persist, please make note of it in this bug report. |