Please ignore this patchset as I missed to add version information in it. I'll resend these patches shortly. Sorry for the noise.
Thanks, Amit On 2025/04/07 07:53 PM, Amit Machhiwal wrote: > Introduce an Error ** parameter to vfio_spapr_create_window() to enable > structured error reporting. This allows the function to propagate > detailed errors back to callers. > > Suggested-by: Cédric Le Goater <c...@redhat.com> > Signed-off-by: Amit Machhiwal <amach...@linux.ibm.com> > --- > hw/vfio/spapr.c | 23 ++++++++++++----------- > 1 file changed, 12 insertions(+), 11 deletions(-) > > diff --git a/hw/vfio/spapr.c b/hw/vfio/spapr.c > index 1a5d1611f2cd..4f2858b43f36 100644 > --- a/hw/vfio/spapr.c > +++ b/hw/vfio/spapr.c > @@ -232,7 +232,7 @@ static int vfio_spapr_remove_window(VFIOContainer > *container, > > static int vfio_spapr_create_window(VFIOContainer *container, > MemoryRegionSection *section, > - hwaddr *pgsize) > + hwaddr *pgsize, Error **errp) > { > int ret = 0; > VFIOContainerBase *bcontainer = &container->bcontainer; > @@ -252,10 +252,10 @@ static int vfio_spapr_create_window(VFIOContainer > *container, > pgmask = bcontainer->pgsizes & (pagesize | (pagesize - 1)); > pagesize = pgmask ? (1ULL << (63 - clz64(pgmask))) : 0; > if (!pagesize) { > - error_report("Host doesn't support page size 0x%"PRIx64 > - ", the supported mask is 0x%lx", > - memory_region_iommu_get_min_page_size(iommu_mr), > - bcontainer->pgsizes); > + error_setg(errp, "Host doesn't support page size 0x%"PRIx64 > + ", the supported mask is 0x%lx", > + memory_region_iommu_get_min_page_size(iommu_mr), > + bcontainer->pgsizes); > return -EINVAL; > } > > @@ -302,16 +302,16 @@ static int vfio_spapr_create_window(VFIOContainer > *container, > } > } > if (ret) { > - error_report("Failed to create a window, ret = %d (%m)", ret); > + error_setg_errno(errp, -ret, "Failed to create a window, ret = %d > (%m)", ret); > return -errno; > } > > if (create.start_addr != section->offset_within_address_space) { > vfio_spapr_remove_window(container, create.start_addr); > > - error_report("Host doesn't support DMA window at %"HWADDR_PRIx", > must be %"PRIx64, > - section->offset_within_address_space, > - (uint64_t)create.start_addr); > + error_setg(errp, "Host doesn't support DMA window at %"HWADDR_PRIx > + ", must be %"PRIx64, section->offset_within_address_space, > + (uint64_t)create.start_addr); > return -EINVAL; > } > trace_vfio_spapr_create_window(create.page_shift, > @@ -334,6 +334,7 @@ vfio_spapr_container_add_section_window(VFIOContainerBase > *bcontainer, > container); > VFIOHostDMAWindow *hostwin; > hwaddr pgsize = 0; > + Error *local_err = NULL; > int ret; > > /* > @@ -377,9 +378,9 @@ vfio_spapr_container_add_section_window(VFIOContainerBase > *bcontainer, > } > } > > - ret = vfio_spapr_create_window(container, section, &pgsize); > + ret = vfio_spapr_create_window(container, section, &pgsize, &local_err); > if (ret) { > - error_setg_errno(errp, -ret, "Failed to create SPAPR window"); > + error_propagate(errp, local_err); > return false; > } > > > base-commit: 53f3a13ac1069975ad47cf8bd05cc96b4ac09962 > -- > 2.49.0 >