On Wed, 2015-03-11 at 17:34 +1100, Gavin Shan wrote: > The patch adds one more EEH sub-command (VFIO_EEH_PE_INJECT_ERR) > to inject the specified EEH error, which is represented by > (struct vfio_eeh_pe_err), to the indicated PE for testing purpose. > > Signed-off-by: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx> > --- > Documentation/vfio.txt | 47 ++++++++++++++++++++++++++++++------------- > drivers/vfio/vfio_spapr_eeh.c | 14 +++++++++++++ > include/uapi/linux/vfio.h | 34 ++++++++++++++++++++++++++++++- > 3 files changed, 80 insertions(+), 15 deletions(-) > > diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h [snip] > @@ -490,6 +499,29 @@ struct vfio_eeh_pe_op { > #define VFIO_EEH_PE_RESET_HOT 6 /* Assert hot reset */ > #define VFIO_EEH_PE_RESET_FUNDAMENTAL 7 /* Assert fundamental reset */ > #define VFIO_EEH_PE_CONFIGURE 8 /* PE configuration */ > +#define VFIO_EEH_PE_INJECT_ERR 9 /* Inject EEH error */ > +#define VFIO_EEH_ERR_TYPE_32 0 /* 32-bits EEH error type */ > +#define VFIO_EEH_ERR_TYPE_64 1 /* 64-bits EEH error type */ > +#define VFIO_EEH_ERR_FUNC_LD_MEM_ADDR 0 /* Memory load */ > +#define VFIO_EEH_ERR_FUNC_LD_MEM_DATA 1 > +#define VFIO_EEH_ERR_FUNC_LD_IO_ADDR 2 /* IO load */ > +#define VFIO_EEH_ERR_FUNC_LD_IO_DATA 3 > +#define VFIO_EEH_ERR_FUNC_LD_CFG_ADDR 4 /* Config load */ > +#define VFIO_EEH_ERR_FUNC_LD_CFG_DATA 5 > +#define VFIO_EEH_ERR_FUNC_ST_MEM_ADDR 6 /* Memory store */ > +#define VFIO_EEH_ERR_FUNC_ST_MEM_DATA 7 > +#define VFIO_EEH_ERR_FUNC_ST_IO_ADDR 8 /* IO store */ > +#define VFIO_EEH_ERR_FUNC_ST_IO_DATA 9 > +#define VFIO_EEH_ERR_FUNC_ST_CFG_ADDR 10 /* Config store */ > +#define VFIO_EEH_ERR_FUNC_ST_CFG_DATA 11 > +#define VFIO_EEH_ERR_FUNC_DMA_RD_ADDR 12 /* DMA read */ > +#define VFIO_EEH_ERR_FUNC_DMA_RD_DATA 13 > +#define VFIO_EEH_ERR_FUNC_DMA_RD_MASTER 14 > +#define VFIO_EEH_ERR_FUNC_DMA_RD_TARGET 15 > +#define VFIO_EEH_ERR_FUNC_DMA_WR_ADDR 16 /* DMA write */ > +#define VFIO_EEH_ERR_FUNC_DMA_WR_DATA 17 > +#define VFIO_EEH_ERR_FUNC_DMA_WR_MASTER 18 > +#define VFIO_EEH_ERR_FUNC_DMA_WR_TARGET 19 This data duplication from patch 1/2 is kind of concerning. In one case we're adding to arch/powerpc/include/asm/eeh.h, which is a kernel internal interface and entirely changeable, in the other we're matching those current definitions in uapi, which needs to be stable. Are these indexes part of a spec that we can rely on them being stable or do we need some sort of translation layer to go from the vfio uapi defined value to the kernel internal version? Thanks, Alex -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html