Luca Coelho <luca@xxxxxxxxx> writes: > From: Luca Coelho <luciano.coelho@xxxxxxxxx> > > If we fail to to grab NIC access because the device is not responding > (i.e. CSR_GP_CNTRL returns 0xFFFFFFFF), remove the device from the PCI > bus, to avoid any further damage, and to let the user space rescan. > > Signed-off-by: Luca Coelho <luciano.coelho@xxxxxxxxx> > Signed-off-by: Rajat Jain <rajatja@xxxxxxxxxx> The commit log doesn't mention anything about the module parameter nor about the kobject uevent. > +static void iwl_trans_pcie_removal_wk(struct work_struct *wk) > +{ > + struct iwl_trans_pcie_removal *removal = > + container_of(wk, struct iwl_trans_pcie_removal, work); > + struct pci_dev *pdev = removal->pdev; > + char *prop[] = {"EVENT=INACCESSIBLE", NULL}; > + > + dev_err(&pdev->dev, "Device gone - attempting removal\n"); > + kobject_uevent_env(&pdev->dev.kobj, KOBJ_CHANGE, prop); > + pci_lock_rescan_remove(); > + pci_dev_put(pdev); > + pci_stop_and_remove_bus_device(pdev); > + pci_unlock_rescan_remove(); > + > + kfree(removal); > + module_put(THIS_MODULE); > +} So is the uevent some standard thing or what? At least grepping INACCESSIBLE for didn't tell me anything. -- Kalle Valo