Message ID | 1539800299-2787-1-git-send-email-wang6495@umn.edu (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drivers/vfio: Fix an 8-byte alignment issue | expand |
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 <wang6495@umn.edu> > --- > 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 >
On Wed, 17 Oct 2018 17:15:33 -0400 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> 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 <wang6495@umn.edu> > > --- > > 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 > >
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 <wang6495@umn.edu> > --- > 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?
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; };
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 <wang6495@umn.edu> --- include/uapi/linux/vfio.h | 1 + 1 file changed, 1 insertion(+)