[PATCH v8 03/12] PCI: liveupdate: Track incoming preserved PCI devices
Bjorn Helgaas
helgaas at kernel.org
Thu Sep 10 16:49:56 PDT 2026
On Tue, Jul 28, 2026 at 10:09:57PM +0000, David Matlack wrote:
> During PCI enumeration, the previous kernel might have passed state about
> devices that were preserved across kexec. The PCI core needs to fetch
> this state to identify which devices are "incoming" and require special
> handling.
>
> Add pci_liveupdate_setup_device() which is called during device setup
> to fetch the serialized state (struct pci_ser) from the Live Update
> Orchestrator. The first time this happens, pci_flb_retrieve() will run
> and convert the array of pci_dev_ser structs into an xarray so that it
> can be looked up efficiently.
> + * The PCI core does not enforce any ordering of ``pci_liveupdate_finish()`` and
> + * ``pci_liveupdate_preserve()``. i.e. A PCI device can be **outgoing**
> + * (preserved for next kernel) and **incoming** (preserved by previous kernel)
Thinking about how this will be rendered in the formatted doc, I think
"i.e." is really part of the sentence, so in U.S. usage this would be:
``pci_liveupdate_preserve()``, i.e., a PCI device can be ...
I understand British usage generally omits the comma after, so that's
OK too, but IIUC the first part of the sentence shouldn't be
terminated with a period, and the "A" shouldn't be capitalized as if
it's a new sentence.
Similar issue in "PCI: liveupdate: Document driver binding
responsibilities" later:
bound to the correct driver. i.e. The PCI core does not protect ...
> +static unsigned long pci_ser_xa_key(u32 domain, u16 bdf)
> +{
> + return (unsigned long)domain << 16 | bdf;
> +}
Add blank line.
> static int pci_flb_preserve(struct liveupdate_flb_op_args *args)
> {
More information about the kexec
mailing list