diff options
| author | David Matlack <dmatlack@google.com> | 2026-09-18 20:06:30 +0000 |
|---|---|---|
| committer | Pasha Tatashin <pasha.tatashin@soleen.com> | 2026-09-28 15:37:56 +0000 |
| commit | c7c6bc42b3eebba0562d128b5a578bfbe6a56d31 (patch) | |
| tree | 45a3accae2eb752de987baa43f92bebf418289b9 /drivers/pci | |
| parent | 16c1ff9563333530f97888fca4e48548b22ce282 (diff) | |
| download | linux-next-c7c6bc42b3eebba0562d128b5a578bfbe6a56d31.tar.gz linux-next-c7c6bc42b3eebba0562d128b5a578bfbe6a56d31.zip | |
PCI: liveupdate: Document driver binding responsibilities
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@soleen.com>
Reviewed-by: Pranjal Shrivastava <praan@google.com>
Reviewed-by: Samiullah Khawaja <skhawaja@google.com>
Signed-off-by: David Matlack <dmatlack@google.com>
Link: https://patch.msgid.link/20260918200640.887030-5-dmatlack@google.com
Signed-off-by: Pasha Tatashin <pasha.tatashin@soleen.com>
Diffstat (limited to 'drivers/pci')
| -rw-r--r-- | drivers/pci/liveupdate.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/pci/liveupdate.c b/drivers/pci/liveupdate.c index 00776260ad6f..ec8db86ed66d 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 |
