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 <[email protected]>
---
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, 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 <[email protected]>
> ---
> 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 <[email protected]> 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 <[email protected]>
> > ---
> > 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 <[email protected]>
> ---
> 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?