Re: [PATCH] drivers/vfio: Fix an 8-byte alignment issue

2018-10-18 Thread Joe Perches
On Wed, 2018-10-17 at 13:18 -0500, Wenwen Wang wrote:
> This patch adds a 4-byte reserved field in the structure
> vfio_eeh_pe_op to make sure that the u64 fields in the structure
> vfio_eeh_pe_err are 8-byte aligned.
> 
> Signed-off-by: Wenwen Wang 
> ---
>  include/uapi/linux/vfio.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h
> index 1aa7b82..3e71ded 100644
> --- a/include/uapi/linux/vfio.h
> +++ b/include/uapi/linux/vfio.h
> @@ -729,6 +729,7 @@ struct vfio_eeh_pe_op {
>   __u32 argsz;
>   __u32 flags;
>   __u32 op;
> + __u32 __res;
>   union {
>   struct vfio_eeh_pe_err err;
>   };

Why use an anonymous union for a single element?
Why not make struct vfio_eeh_pe_err __aligned(8)?
Why not make the u64 structure elements of
struct ufio_eeh_pe_err __aligned_u64?




Re: [PATCH] drivers/vfio: Fix an 8-byte alignment issue

2018-10-18 Thread Joe Perches
On Wed, 2018-10-17 at 13:18 -0500, Wenwen Wang wrote:
> This patch adds a 4-byte reserved field in the structure
> vfio_eeh_pe_op to make sure that the u64 fields in the structure
> vfio_eeh_pe_err are 8-byte aligned.
> 
> Signed-off-by: Wenwen Wang 
> ---
>  include/uapi/linux/vfio.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h
> index 1aa7b82..3e71ded 100644
> --- a/include/uapi/linux/vfio.h
> +++ b/include/uapi/linux/vfio.h
> @@ -729,6 +729,7 @@ struct vfio_eeh_pe_op {
>   __u32 argsz;
>   __u32 flags;
>   __u32 op;
> + __u32 __res;
>   union {
>   struct vfio_eeh_pe_err err;
>   };

Why use an anonymous union for a single element?
Why not make struct vfio_eeh_pe_err __aligned(8)?
Why not make the u64 structure elements of
struct ufio_eeh_pe_err __aligned_u64?




Re: [PATCH] drivers/vfio: Fix an 8-byte alignment issue

2018-10-17 Thread Alex Williamson
On Wed, 17 Oct 2018 17:15:33 -0400
Konrad Rzeszutek Wilk  wrote:

> On Wed, Oct 17, 2018 at 01:18:19PM -0500, Wenwen Wang wrote:
> > This patch adds a 4-byte reserved field in the structure
> > vfio_eeh_pe_op to make sure that the u64 fields in the structure
> > vfio_eeh_pe_err are 8-byte aligned.  
> 
> Won't this break 32-bit kernels? That is the size of the structure
> will now be 4 bytes bigger..

Hi Konrad,

EEH support here depends on SPAPR_TCE_IOMMU which depends on either
PPC_POWERNV or PPC_PSERIES, both of which depend on PPC64.  So I don't
think 32-bit kernels are a concern here.  Thanks,

Alex
 
> > Signed-off-by: Wenwen Wang 
> > ---
> >  include/uapi/linux/vfio.h | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h
> > index 1aa7b82..3e71ded 100644
> > --- a/include/uapi/linux/vfio.h
> > +++ b/include/uapi/linux/vfio.h
> > @@ -729,6 +729,7 @@ struct vfio_eeh_pe_op {
> > __u32 argsz;
> > __u32 flags;
> > __u32 op;
> > +   __u32 __res;
> > union {
> > struct vfio_eeh_pe_err err;
> > };
> > -- 
> > 2.7.4
> >   



Re: [PATCH] drivers/vfio: Fix an 8-byte alignment issue

2018-10-17 Thread Alex Williamson
On Wed, 17 Oct 2018 17:15:33 -0400
Konrad Rzeszutek Wilk  wrote:

> On Wed, Oct 17, 2018 at 01:18:19PM -0500, Wenwen Wang wrote:
> > This patch adds a 4-byte reserved field in the structure
> > vfio_eeh_pe_op to make sure that the u64 fields in the structure
> > vfio_eeh_pe_err are 8-byte aligned.  
> 
> Won't this break 32-bit kernels? That is the size of the structure
> will now be 4 bytes bigger..

Hi Konrad,

EEH support here depends on SPAPR_TCE_IOMMU which depends on either
PPC_POWERNV or PPC_PSERIES, both of which depend on PPC64.  So I don't
think 32-bit kernels are a concern here.  Thanks,

Alex
 
> > Signed-off-by: Wenwen Wang 
> > ---
> >  include/uapi/linux/vfio.h | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h
> > index 1aa7b82..3e71ded 100644
> > --- a/include/uapi/linux/vfio.h
> > +++ b/include/uapi/linux/vfio.h
> > @@ -729,6 +729,7 @@ struct vfio_eeh_pe_op {
> > __u32 argsz;
> > __u32 flags;
> > __u32 op;
> > +   __u32 __res;
> > union {
> > struct vfio_eeh_pe_err err;
> > };
> > -- 
> > 2.7.4
> >   



Re: [PATCH] drivers/vfio: Fix an 8-byte alignment issue

2018-10-17 Thread Konrad Rzeszutek Wilk
On Wed, Oct 17, 2018 at 01:18:19PM -0500, Wenwen Wang wrote:
> This patch adds a 4-byte reserved field in the structure
> vfio_eeh_pe_op to make sure that the u64 fields in the structure
> vfio_eeh_pe_err are 8-byte aligned.

Won't this break 32-bit kernels? That is the size of the structure
will now be 4 bytes bigger..
> 
> Signed-off-by: Wenwen Wang 
> ---
>  include/uapi/linux/vfio.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h
> index 1aa7b82..3e71ded 100644
> --- a/include/uapi/linux/vfio.h
> +++ b/include/uapi/linux/vfio.h
> @@ -729,6 +729,7 @@ struct vfio_eeh_pe_op {
>   __u32 argsz;
>   __u32 flags;
>   __u32 op;
> + __u32 __res;
>   union {
>   struct vfio_eeh_pe_err err;
>   };
> -- 
> 2.7.4
> 


Re: [PATCH] drivers/vfio: Fix an 8-byte alignment issue

2018-10-17 Thread Konrad Rzeszutek Wilk
On Wed, Oct 17, 2018 at 01:18:19PM -0500, Wenwen Wang wrote:
> This patch adds a 4-byte reserved field in the structure
> vfio_eeh_pe_op to make sure that the u64 fields in the structure
> vfio_eeh_pe_err are 8-byte aligned.

Won't this break 32-bit kernels? That is the size of the structure
will now be 4 bytes bigger..
> 
> Signed-off-by: Wenwen Wang 
> ---
>  include/uapi/linux/vfio.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h
> index 1aa7b82..3e71ded 100644
> --- a/include/uapi/linux/vfio.h
> +++ b/include/uapi/linux/vfio.h
> @@ -729,6 +729,7 @@ struct vfio_eeh_pe_op {
>   __u32 argsz;
>   __u32 flags;
>   __u32 op;
> + __u32 __res;
>   union {
>   struct vfio_eeh_pe_err err;
>   };
> -- 
> 2.7.4
>