Re: [PATCH v7 01/12] PCI: liveupdate: Set up FLB handler for the PCI core
Pasha Tatashin <[email protected]> Fri, 17 Jul 2026 19:28:44 +0000
| Newsgroups | org.infradead.lists.kexec,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pci,org.kvack.linux-mm |
|---|---|
| Message-ID | <178431652443.189683.17611165218179620081.b4-review@b4> |
On Fri, 10 Jul 2026 21:26:04 +0000, David Matlack <[email protected]> wrote: > diff --git a/drivers/pci/liveupdate.c b/drivers/pci/liveupdate.c > new file mode 100644 > index 000000000000..899758883dd5 > --- /dev/null > +++ b/drivers/pci/liveupdate.c > @@ -0,0 +1,155 @@ > [ ... skip 50 lines ... ] > +#include <linux/slab.h> > + > +/** > + * struct pci_flb_outgoing - Outgoing PCI FLB object > + * @ser: Pointer to the preserved struct pci_ser. > + * @block_set: The KHO block set holding the outgoing devices. AFAIK, these should be aligned after column: @ser: Pointer to ... @block_set: The KHO block ... > [ ... skip 26 lines ... ] > + ser->devices = 0; > + > + outgoing->ser = ser; > + kho_block_set_init(&outgoing->block_set, sizeof(struct pci_dev_ser)); > + > + args->obj = outgoing; Nit: You could re-write the above: args->obj = no_free_ptr(outgoing); And declare outgoing like this: struct pci_flb_outgoing *outgoing __free(kfree) = kzalloc_obj(*outgoing); Also, remove kfree(outgoing) call. > > diff --git a/include/linux/kho/abi/pci.h b/include/linux/kho/abi/pci.h > new file mode 100644 > index 000000000000..de549016807a > --- /dev/null > +++ b/include/linux/kho/abi/pci.h > @@ -0,0 +1,58 @@ > [ ... skip 30 lines ... ] > + * @domain: The device's PCI domain number (segment). > + * @bdf: The device's PCI bus, device, and function number. > + * @refcount: Reference count used by the PCI core to keep track of whether it > + * is done using a device's struct pci_dev_ser. The value of the > + * refcount is equal to 1 when the struct pci_dev_ser is in use, and > + * 0 otherwise. I believe descriptions must be aligned. > + */ > +struct pci_dev_ser { > + u32 domain; > + u16 bdf; > + u16 refcount; > +} __packed; > + > +/** > + * struct pci_ser - PCI Subsystem Live Update State > + * > + * This struct tracks state about all devices that are being preserved across > + * a Live Update for the next kernel. > + * > + * @nr_devices: The number of devices that were preserved. > + * @devices: Physical address of the first KHO block containing pci_dev_ser. I believe descriptions must be aligned. Nit: Please order the included headers alphabetically. Nit: Please order the included headers alphabetically. -- Pasha Tatashin <[email protected]>