Re: [PATCH v7 01/12] PCI: liveupdate: Set up FLB handler for the PCI core
Pasha Tatashin <[email protected]> Fri, 17 Jul 2026 19:42:37 +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 | <alqFcmDsFdjzNZQJ@plex> |
On 07-17 19:28, Pasha Tatashin wrote: > 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. The above was supposed to be right after #include, but b4 had a mind of its own. > > -- > Pasha Tatashin <[email protected]>