On Fri, 2015-09-04 at 13:41 +1000, Alexey Kardashevskiy wrote:
> On 09/03/2015 07:58 PM, Michael Ellerman wrote:
> > On Wed, 2015-09-02 at 08:39 -0700, Nishanth Aravamudan wrote:
> >> diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c 
> >> b/arch/powerpc/platforms/powernv/pci-ioda.c
> >> index 85cbc96eff6c..e51aff01a218 100644
> >> --- a/arch/powerpc/platforms/powernv/pci-ioda.c
> >> +++ b/arch/powerpc/platforms/powernv/pci-ioda.c
> >> @@ -2077,10 +2077,17 @@ static long 
> >> pnv_pci_ioda2_setup_default_config(struct pnv_ioda_pe *pe)
> >>   {
> >>    struct iommu_table *tbl = NULL;
> >>    long rc;
> >> +  /*
> >> +   * In memory constrained environments, e.g. kdump kernel, the
> >> +   * DMA window can be larger than available memory, which will
> >> +   * cause errors later.
> >> +   */
> >> +  const __u64 window_size =
> >
> > Why is this using __u64 and not u64, it's not exported to userspace.
> >
> > It looks like pnv_pci_ioda2_create_table() uses __u64, but there's no reason
> > for that AFAICS either. And yes I did commit it so it's my fault :)
> 
> There is VFIO_IOMMU_SPAPR_TCE_CREATE ioctl which receives 
> vfio_iommu_spapr_tce_create struct from the user space and there is "__u64 
> window_size" which is passed across:
> tce_iommu_create_window()
> tce_iommu_create_table()
> pnv_pci_ioda2_create_table (via table_group->ops->create_table())
> 
> At what point should __u64 have become u64?

As soon as it was pulled out of the struct. So here:

                ret = tce_iommu_create_window(container, create.page_shift,
                                create.window_size, create.levels,
                                &create.start_addr);

ie, instead of:

        static long tce_iommu_create_window(struct tce_container *container,
                        __u32 page_shift, __u64 window_size, __u32 levels,
                        __u64 *start_addr)

this:

        static long tce_iommu_create_window(struct tce_container *container,
                        u32 page_shift, u64 window_size, u32 levels,
                        u64 *start_addr)


cheers



_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to