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 <gws...@linux.vnet.ibm.com>
> ---
>  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


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

Reply via email to