drivers/vfio: Support EEH error injection
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@linux.vnet.ibm.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Acked-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:

committed by
Michael Ellerman

parent
ec33d36e5a
commit
68cbbc3a9d
@@ -85,6 +85,16 @@ long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group,
|
||||
case VFIO_EEH_PE_CONFIGURE:
|
||||
ret = eeh_pe_configure(pe);
|
||||
break;
|
||||
case VFIO_EEH_PE_INJECT_ERR:
|
||||
minsz = offsetofend(struct vfio_eeh_pe_op, err.mask);
|
||||
if (op.argsz < minsz)
|
||||
return -EINVAL;
|
||||
if (copy_from_user(&op, (void __user *)arg, minsz))
|
||||
return -EFAULT;
|
||||
|
||||
ret = eeh_pe_inject_err(pe, op.err.type, op.err.func,
|
||||
op.err.addr, op.err.mask);
|
||||
break;
|
||||
default:
|
||||
ret = -EINVAL;
|
||||
}
|
||||
|
Reference in New Issue
Block a user