Re: [PATCH v10 04/13] PCI: liveupdate: Document driver binding responsibilities

From: Bjorn Helgaas

Date: Fri Nov 06 2026 - 11:54:27 EST


On Tue, Oct 13, 2026 at 04:25:20PM +0000, David Matlack wrote:
> Document how driver binding works during a Live Update and what the PCI
> core expects of drivers and users. Note that this is only a description
> of the current division of responsibilities. These can change in the
> future if we decide.
>
> Reviewed-by: Pasha Tatashin <pasha.tatashin@xxxxxxxxxx>
> Reviewed-by: Pranjal Shrivastava <praan@xxxxxxxxxx>
> Reviewed-by: Samiullah Khawaja <skhawaja@xxxxxxxxxx>
> Signed-off-by: David Matlack <dmatlack@xxxxxxxxxx>

Reviewed-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>

> ---
> drivers/pci/liveupdate.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/drivers/pci/liveupdate.c b/drivers/pci/liveupdate.c
> index a1d9b2b1f9e3..d6b659b346bb 100644
> --- a/drivers/pci/liveupdate.c
> +++ b/drivers/pci/liveupdate.c
> @@ -123,6 +123,20 @@
> *
> * * The device cannot be a Virtual Function (VF).
> * * The device cannot be behind a PCI-to-PCI bridge.
> + *
> + * Driver Binding
> + * ==============
> + *
> + * In the outgoing kernel, the driver must ensure that it does not release a
> + * device between pci_liveupdate_preserve() and pci_liveupdate_unpreserve().
> + *
> + * In the incoming kernel, the driver must ensure that it does not release a
> + * preserved device between probe() and pci_liveupdate_finish().
> + *
> + * It is the user's responsibility to ensure that incoming preserved devices are
> + * bound to the correct driver. The PCI core does not protect against a device
> + * getting preserved by driver A in the outgoing kernel and then getting bound
> + * to driver B in the incoming kernel.
> */
>
> #define pr_fmt(fmt) "PCI: liveupdate: " fmt
> --
> 2.56.0.385.gd3acb90ef8-goog
>