On Tue, Feb 17, 2015 at 06:13:23PM +1100, Gavin Shan wrote: > The patch intends to add standalone driver to support PCI hotplug > for PowerPC PowerNV platform, which runs on top of skiboot firmware. > The firmware identified hotpluggable slots and marked their device > tree node with proper "ibm,slot-pluggable" and "ibm,reset-by-firmware". > The driver simply scans device-tree to create/register PCI hotplug slot > accordingly. > > If the skiboot firmware doesn't support slot status retrieval, the PCI > slot device node shouldn't have property "ibm,reset-by-firmware". In > that case, none of valid PCI slots will be detected from device tree. > The skiboot firmware doesn't export the capability to access attention > LEDs yet and it's something for TBD. > > Signed-off-by: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx> > ... > +static int disable_slot(struct hotplug_slot *php_slot) > +{ > + struct powernv_php_slot *slot = php_slot->private; > + > + if (slot->state != POWERNV_PHP_SLOT_STATE_POPULATED) > + return 0; > + > + pci_lock_rescan_remove(); > + pcibios_remove_pci_devices(slot->bus); > + pci_unlock_rescan_remove(); > + vm_unmap_aliases(); What is vm_unmap_aliases() for? I see this is probably copied from rpaphp_core.c, where it was added by b4a26be9f6f8 ("powerpc/pseries: Flush lazy kernel mappings after unplug operations"). But I don't know whether: - this is something specific to powerpc, - the lack of vm_unmap_aliases() in other hotplug paths is a bug, - the fact that we only do this on powerpc is covering up a powerpc bug somewhere > + > + /* Detach the child hotpluggable slots */ > + powernv_php_unregister(slot->dn); > + > + /* Update slot state */ > + slot->state = POWERNV_PHP_SLOT_STATE_REGISTER; > + return 0; > +} > -- 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