[PATCH v8 03/12] PCI: liveupdate: Track incoming preserved PCI devices

David Matlack dmatlack at google.com
Fri Sep 11 09:45:50 PDT 2026


On 2026-09-10 06:49 PM, Bjorn Helgaas wrote:
> 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 ...

Ack I will fix up the use of "i.e." across the series.

> 
> > +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