Luca Coelho <[email protected]> writes:
> From: Luca Coelho <[email protected]>
>
> 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 <[email protected]>
> Signed-off-by: Rajat Jain <[email protected]>
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