[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200929090339.17659-11-diana.craciun@oss.nxp.com>
Date: Tue, 29 Sep 2020 12:03:39 +0300
From: Diana Craciun <diana.craciun@....nxp.com>
To: alex.williamson@...hat.com, kvm@...r.kernel.org
Cc: bharatb.linux@...il.com, linux-kernel@...r.kernel.org,
eric.auger@...hat.com, Diana Craciun <diana.craciun@....nxp.com>
Subject: [PATCH v5 10/10] vfio/fsl-mc: Add support for device reset
Currently only resetting the DPRC container is supported which
will reset all the objects inside it. Resetting individual
objects is possible from the userspace by issueing commands
towards MC firmware.
Signed-off-by: Diana Craciun <diana.craciun@....nxp.com>
---
drivers/vfio/fsl-mc/vfio_fsl_mc.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc.c b/drivers/vfio/fsl-mc/vfio_fsl_mc.c
index 0aff99cdf722..e1b2dea8a5fe 100644
--- a/drivers/vfio/fsl-mc/vfio_fsl_mc.c
+++ b/drivers/vfio/fsl-mc/vfio_fsl_mc.c
@@ -299,7 +299,19 @@ static long vfio_fsl_mc_ioctl(void *device_data, unsigned int cmd,
}
case VFIO_DEVICE_RESET:
{
- return -ENOTTY;
+ int ret;
+ struct fsl_mc_device *mc_dev = vdev->mc_dev;
+
+ /* reset is supported only for the DPRC */
+ if (!is_fsl_mc_bus_dprc(mc_dev))
+ return -ENOTTY;
+
+ ret = dprc_reset_container(mc_dev->mc_io, 0,
+ mc_dev->mc_handle,
+ mc_dev->obj_desc.id,
+ DPRC_RESET_OPTION_NON_RECURSIVE);
+ return ret;
+
}
default:
return -ENOTTY;
--
2.17.1
Powered by blists - more mailing lists