On 5/19/2026 5:33 AM, Narayana Murty N wrote:
> Split spapr_pci_vfio.c into two files to separate concerns:
> - spapr_pci_vfio.c: Contains general VFIO routines
> - spapr_pci_vfio_eeh.c: Contains EEH-specific routines
> 
> Additionally, consolidate VFIO EEH function declarations into a new
> header file (spapr_vfio.h) to improve modularity and reduce header
> dependencies.
> 
> Changes:
> - Split VFIO functionality: keep general VFIO routines in
>   spapr_pci_vfio.c and move EEH routines to spapr_pci_vfio_eeh.c
> - Created include/hw/ppc/spapr_vfio.h with forward declarations
>   to avoid pulling in full spapr headers and libfdt dependencies
> - Introduced stubs/spapr_pci_vfio-stubs.c to consolidate all VFIO,
>   VFIO EEH stub functions in one place
> - Updated hw/ppc/spapr_pci.c to include new spapr_vfio.h header
> - Updated stubs/meson.build to reference new stub file
> 
> This improves code organization by separating VFIO and EEH concerns,
> and enhances build system modularity by making it easier to maintain
> VFIO-related code separately from core sPAPR PCI code.
> 
> Signed-off-by: Narayana Murty N <[email protected]>
> ---
>  hw/ppc/Kconfig               |   2 +-
>  hw/ppc/meson.build           |   1 +
>  hw/ppc/spapr_pci.c           |   3 +-
>  hw/ppc/spapr_pci_vfio.c      | 367 +----------------------------------
>  hw/ppc/spapr_pci_vfio_eeh.c  | 346 +++++++++++++++++++++++++++++++++
>  include/hw/pci-host/spapr.h  |  44 +----
>  include/hw/ppc/spapr_vfio.h  |  28 +++
>  stubs/meson.build            |   1 +
>  stubs/spapr_phb_vfio-stubs.c |  52 +++++
>  9 files changed, 433 insertions(+), 411 deletions(-)
>  create mode 100644 hw/ppc/spapr_pci_vfio_eeh.c
>  create mode 100644 include/hw/ppc/spapr_vfio.h
>  create mode 100644 stubs/spapr_phb_vfio-stubs.c
> 
> diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
> index 347dcce690..1fb191fe83 100644
> --- a/hw/ppc/Kconfig
> +++ b/hw/ppc/Kconfig
> @@ -6,7 +6,7 @@ config PSERIES
>      imply PCI_DEVICES
>      imply TEST_DEVICES
>      imply VIRTIO_VGA
> -    imply VFIO_PCI if LINUX   # needed by spapr_pci_vfio.c
> +    imply VFIO_PCI if LINUX   # needed by spapr_pci_vfio.c and 
> spapr_pci_vfio_eeh.c
>      select NVDIMM
>      select DIMM
>      select PCI
> diff --git a/hw/ppc/meson.build b/hw/ppc/meson.build
> index 37aa535db2..97e4be0dc9 100644
> --- a/hw/ppc/meson.build
> +++ b/hw/ppc/meson.build
> @@ -36,6 +36,7 @@ ppc_ss.add(when: 'CONFIG_SPAPR_RNG', if_true: 
> files('spapr_rng.c'))
>  if host_os == 'linux'
>    ppc_ss.add(when: 'CONFIG_PSERIES', if_true: files(
>      'spapr_pci_vfio.c',
> +    'spapr_pci_vfio_eeh.c',
>    ))
>  endif
>  
> diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
> index b00f71d92a..221d05e5c5 100644
> --- a/hw/ppc/spapr_pci.c
> +++ b/hw/ppc/spapr_pci.c
> @@ -33,6 +33,7 @@
>  #include "hw/pci/msix.h"
>  #include "hw/pci/pci_host.h"
>  #include "hw/ppc/spapr.h"
> +#include "hw/ppc/spapr_vfio.h"
>  #include "hw/pci-host/spapr.h"
>  #include <libfdt.h>
>  #include "trace.h"
> @@ -718,7 +719,7 @@ static int 
> parse_and_verify_recovered_special_event(target_ulong param_buf,
>  static int parse_and_verify_corrupted_page(target_ulong param_buf,
>                                             uint64_t *addr) {
>      *addr = ((uint64_t)rtas_ld(param_buf, 0) << 32) | rtas_ld(param_buf, 1);
> -    qemu_log("RTAS: corrupted-page: addr=0x%lx\n", *addr);
> +    qemu_log("RTAS: corrupted-page: addr=0x%llx\n", *addr);
>      return (*addr) ? RTAS_OUT_SUCCESS : RTAS_OUT_PARAM_ERROR;
>  }

See build failures for this change:
https://github.com/p-b-o/qemu-ci/actions/runs/26094993976
If we want to change something, the proper way is %"PRIx64".

...

Rest of the patch looks ok to me.

Regards,
Pierrick

Reply via email to