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

Reply via email to