[+cc Andreas] On Fri, Aug 29, 2014 at 11:36 AM, Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote: > On Fri, Aug 29, 2014 at 8:44 AM, David Henningsson > <david.henningsson@xxxxxxxxxxxxx> wrote: >> >> >> On 2014-08-29 16:22, Bjorn Helgaas wrote: >>> >>> On Fri, Aug 29, 2014 at 3:10 AM, David Henningsson >>> <david.henningsson@xxxxxxxxxxxxx> wrote: >>>> >>>> Under a 3.16 based kernel (Ubuntu 3.16.0-031600-lowlatency), >>>> CardBus is not working unless pci=assign-buses is added to the >>>> kernel boot parameters. >>>> >>>> Signed-off-by: David Henningsson <david.henningsson@xxxxxxxxxxxxx> >>>> --- >>>> arch/x86/pci/common.c | 8 ++++++++ >>>> 1 file changed, 8 insertions(+) >>>> >>>> It was working OOTB on a 3.2 based kernel (Ubuntu 3.2.0-67-generic), >>>> and I have not thoroughly bisected what made it stop working. >>>> Still I'm suggesting to just a quirk to make it work regardless of >>>> kernel - it's a ~8 year old laptop, so being a bit lazy about it is >>>> probably okay, I hope. :-) >>> >>> >>> Please open a bugzilla and attach complete "lspci -vv" output and >>> dmesg logs from the working 3.2 kernel and a non-working current >>> kernel. >>> >>> The quirk might be OK, but it would be better if we could make a >>> generic fix that would work on more machines than just this one. >> >> >> All right, you can now find the requested information in this bug: >> >> https://bugzilla.kernel.org/show_bug.cgi?id=83441 > > Thanks very much. > > I'm going to resist adding a quirk as long as I can, because quirks > tend to paper over issues on individual systems without actually > fixing the underlying problem. Unfortunately, I'm swamped at the > moment and won't be able to work on this for a while. It would be > ideal if we could bisect this and pinpoint where the problem started. > Bisecting changes to drivers/pci would be sufficient. > >>>> Extract from dmidecode: >>>> >>>> Handle 0x0100, DMI type 1, 25 bytes >>>> System Information >>>> Manufacturer: Dell Inc. >>>> Product Name: Latitude D505 >>>> >>>> diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c >>>> index 059a76c..1849e39 100644 >>>> --- a/arch/x86/pci/common.c >>>> +++ b/arch/x86/pci/common.c >>>> @@ -262,6 +262,14 @@ static const struct dmi_system_id >>>> pciprobe_dmi_table[] = { >>>> DMI_MATCH(DMI_PRODUCT_NAME, "SX20S"), >>>> }, >>>> }, >>>> + { >>>> + .callback = assign_all_busses, >>>> + .ident = "Dell Latitude D505 Laptop", >>>> + .matches = { >>>> + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), >>>> + DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D505"), >>>> + }, >>>> + }, >>>> #endif /* __i386__ */ >>>> { >>>> .callback = set_bf_sort, v3.16 fails with: pci 0000:01:01.0: can't allocate child bus 01 from [bus 01] which Andreas added with fc1b253141b3 ("PCI: Don't scan random busses in pci_scan_bridge()"). But I don't understand that code well enough to know whether this commit is actually the cause of the problem. And I also haven't figured out how "pci=assign-busses" makes a difference. David, would you mind turning on CONFIG_DYNAMIC_DEBUG=y in your v3.16 kernel, adding 'dyndbg="file probe.c +p"' to your boot arguments, and collecting another dmesg log? Bjorn -- 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