On 6/26/09, Len Brown <lenb@xxxxxxxxxx> wrote: > From: Corentin Chary <corentincj@xxxxxxxxxx> > > The eee contains a logically (but not physically) hotpluggable PCIe slot. > Currently this is handled by adding or removing the PCI device in response > to rfkill events, but if a user has forced pciehp to bind to it (with the > force=1 argument) then both drivers will try to handle the event and > hilarity (in the form of oopses) will ensue. This can be avoided by having > eee-laptop register the slot as a hotplug slot. Only one of pciehp and > eee-laptop will successfully register this, avoiding the problem. > > Signed-off-by: Matthew Garrett <mjg@xxxxxxxxxx> > Signed-off-by: Corentin Chary <corentincj@xxxxxxxxxx> > Tested-by: Darren Salt <linux@xxxxxxxxxxxxxxxxxxxxxxxxxxx> > Signed-off-by: Len Brown <len.brown@xxxxxxxxx> > Signed-off-by: Randy Dunlap <randy.dunlap@xxxxxxxxxx> > Signed-off-by: Len Brown <len.brown@xxxxxxxxx> Actually this only solves half the problem. > + result = eeepc_setup_pci_hotplug(); > + /* > + * If we get -EBUSY then something else is handling the PCI hotplug - > + * don't fail in this case > + */ > + if (result == -EBUSY) > + return 0; > + else if (result) > + goto pci_fail; > + > return 0; It works fine if eeepc-laptop is loaded first, preventing pciehp from messing with the hardware. But it doesn't stop eeepc-laptop from messing with the hardware if pciehp is loaded first. In that case, eeepc-laptop fails to register as a PCI hotplug device, but it still messes with the hardware. I have tested this - if I do modprobe -r eeepc-laptop modprobe pciehp pciehp_force=1 modprobe eeepc-laptop and press the wireless-toggle key a couple of times, I get a lovely set of oopses and a non-responsive system. Thanks Alan -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html