[PATCH v7 01/12] PCI: liveupdate: Set up FLB handler for the PCI core
Pasha Tatashin
pasha.tatashin at soleen.com
Fri Jul 17 12:28:44 PDT 2026
On Fri, 10 Jul 2026 21:26:04 +0000, David Matlack <dmatlack at google.com> 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 <pasha.tatashin at soleen.com>
More information about the kexec
mailing list