On Wed, Jul 16, 2014 at 11:09:44AM +1000, Alexey Kardashevskiy wrote: >On 07/16/2014 10:20 AM, Gavin Shan wrote: >> This updates kernel header (vfio.h) for EEH support on VFIO PCI >> devices. > >Has this reached kernel upstream? The way linux headers update normally >happens is you have to run scripts/update-linux-headers.sh against some >linux kernel tag which you know that it won't change (like v3.16-rc5) and >post all the changes as a single patch. It is never a header update for a >specific feature, it is just an update. >
The kernel part isn't merged yet. I guess that's for 3.17 merge window. Ok, good to know scripts/update-linux-headers.sh. So this patch should be dropped and some one run the script to update QEMU (linux-headers directory) ? Thanks, Gavin > >> >> Signed-off-by: Gavin Shan <gws...@linux.vnet.ibm.com> >> --- >> linux-headers/linux/vfio.h | 34 ++++++++++++++++++++++++++++++++++ >> 1 file changed, 34 insertions(+) >> >> diff --git a/linux-headers/linux/vfio.h b/linux-headers/linux/vfio.h >> index 26c218e..95b591b 100644 >> --- a/linux-headers/linux/vfio.h >> +++ b/linux-headers/linux/vfio.h >> @@ -30,6 +30,9 @@ >> */ >> #define VFIO_DMA_CC_IOMMU 4 >> >> +/* Check if EEH is supported */ >> +#define VFIO_EEH 5 >> + >> /* >> * The IOCTL interface is designed for extensibility by embedding the >> * structure length (argsz) and flags into structures passed between >> @@ -455,6 +458,37 @@ struct vfio_iommu_spapr_tce_info { >> >> #define VFIO_IOMMU_SPAPR_TCE_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12) >> >> +/* >> + * EEH PE operation struct provides ways to: >> + * - enable/disable EEH functionality; >> + * - unfreeze IO/DMA for frozen PE; >> + * - read PE state; >> + * - reset PE; >> + * - configure PE. >> + */ >> +struct vfio_eeh_pe_op { >> + __u32 argsz; >> + __u32 flags; >> + __u32 op; >> +}; >> + >> +#define VFIO_EEH_PE_DISABLE 0 /* Disable EEH functionality */ >> +#define VFIO_EEH_PE_ENABLE 1 /* Enable EEH functionality */ >> +#define VFIO_EEH_PE_UNFREEZE_IO 2 /* Enable IO for frozen >> PE */ >> +#define VFIO_EEH_PE_UNFREEZE_DMA 3 /* Enable DMA for frozen PE */ >> +#define VFIO_EEH_PE_GET_STATE 4 /* PE state retrieval >> */ >> +#define VFIO_EEH_PE_STATE_NORMAL 0 /* PE in functional state */ >> +#define VFIO_EEH_PE_STATE_RESET 1 /* PE reset in progress */ >> +#define VFIO_EEH_PE_STATE_STOPPED 2 /* Stopped DMA and IO */ >> +#define VFIO_EEH_PE_STATE_STOPPED_DMA 4 /* Stopped DMA only >> */ >> +#define VFIO_EEH_PE_STATE_UNAVAIL 5 /* State unavailable */ >> +#define VFIO_EEH_PE_RESET_DEACTIVATE 5 /* Deassert PE reset >> */ >> +#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_OP _IO(VFIO_TYPE, VFIO_BASE + 21) >> + >> /* ***************************************************************** */ >> >> #endif /* VFIO_H */ >> > > >-- >Alexey >