Re: [PATCH] PCI: add function reset callback to pci_driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[+cc Alex]

On Wed, Nov 20, 2013 at 10:26 AM, Keith Busch <keith.busch@xxxxxxxxx> wrote:
> A user can issue a pci function level reset to a device using sysfs
> entry /sys/bus/pci/devices/.../reset. A kernel driver handling the
> pci device probably would like to know that such a reset has occured,
> so this patch adds a callback in to pci_driver's pci_error_handler.
>
> Signed-off-by: Keith Busch <keith.busch@xxxxxxxxx>
> ---
> Assuming this is a good idea, is this the right place to invoke the
> reset callback, or should it be up the call stack closer to the sysfs
> reset entry point? Or somewhere else entirely?
>
>  drivers/pci/pci.c   |    6 ++++++
>  include/linux/pci.h |    3 +++
>  2 files changed, 9 insertions(+)
>
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index b127fbda..5ee6fc0 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -3435,6 +3435,12 @@ static int __pci_dev_reset(struct pci_dev *dev, int probe)
>
>         rc = pci_parent_bus_reset(dev, probe);
>  done:
> +       if (rc != -ENOTTY && !probe) {
> +               struct pci_error_handlers *err_handler =
> +                               dev->driver ? dev->driver->err_handler : NULL;
> +               if (err_handler && err_handler->function_reset)
> +                       err_handler->function_reset(dev);
> +       }
>         return rc;
>  }
>
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 835ec7b..d1f100e 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -605,6 +605,9 @@ struct pci_error_handlers {
>         /* PCI slot has been reset */
>         pci_ers_result_t (*slot_reset)(struct pci_dev *dev);
>
> +       /* PCI function has been reset */
> +       pci_ers_result_t (*function_reset)(struct pci_dev *dev);
> +
>         /* Device driver may resume normal operations */
>         void (*resume)(struct pci_dev *dev);
>  };
> --
> 1.7.10.4
>
> --
> 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
--
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




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux