[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH v1 6/8] vfio-ccw: Add support for the crw region
From: |
Eric Farman |
Subject: |
[RFC PATCH v1 6/8] vfio-ccw: Add support for the crw region |
Date: |
Fri, 15 Nov 2019 04:34:35 +0100 |
From: Farhan Ali <address@hidden>
The crw region can be used to obtain information about
Channel Report Words (CRW) from vfio-ccw driver.
Currently only channel path related CRWs are passed to
QEMU from vfio-ccw driver.
Signed-off-by: Farhan Ali <address@hidden>
Signed-off-by: Eric Farman <address@hidden>
---
Notes:
v0->v1: [EF]
- Fixed copy/paste error in error message (s/schib/CRW)
hw/vfio/ccw.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/hw/vfio/ccw.c b/hw/vfio/ccw.c
index 2ff223470f..2b1a83b94c 100644
--- a/hw/vfio/ccw.c
+++ b/hw/vfio/ccw.c
@@ -44,6 +44,9 @@ struct VFIOCCWDevice {
uint64_t schib_region_size;
uint64_t schib_region_offset;
struct ccw_schib_region *schib_region;
+ uint64_t crw_region_size;
+ uint64_t crw_region_offset;
+ struct ccw_crw_region *crw_region;
EventNotifier io_notifier;
bool force_orb_pfch;
bool warned_orb_pfch;
@@ -449,10 +452,24 @@ static void vfio_ccw_get_region(VFIOCCWDevice *vcdev,
Error **errp)
vcdev->schib_region = g_malloc(info->size);
}
+ ret = vfio_get_dev_region_info(vdev, VFIO_REGION_TYPE_CCW,
+ VFIO_REGION_SUBTYPE_CCW_CRW, &info);
+
+ if (!ret) {
+ vcdev->crw_region_size = info->size;
+ if (sizeof(*vcdev->crw_region) != vcdev->crw_region_size) {
+ error_setg(errp, "vfio: Unexpected size of the CRW region");
+ goto out_err;
+ }
+ vcdev->crw_region_offset = info->offset;
+ vcdev->crw_region = g_malloc(info->size);
+ }
+
g_free(info);
return;
out_err:
+ g_free(vcdev->crw_region);
g_free(vcdev->schib_region);
g_free(vcdev->async_cmd_region);
g_free(vcdev->io_region);
@@ -462,6 +479,7 @@ out_err:
static void vfio_ccw_put_region(VFIOCCWDevice *vcdev)
{
+ g_free(vcdev->crw_region);
g_free(vcdev->schib_region);
g_free(vcdev->async_cmd_region);
g_free(vcdev->io_region);
--
2.17.1
- [RFC PATCH v1 0/8] s390x/vfio-ccw: Channel Path Handling, Eric Farman, 2019/11/14
- [RFC PATCH v1 2/8] vfio-ccw: Don't inject an I/O interrupt if the subchannel is not enabled, Eric Farman, 2019/11/14
- [RFC PATCH v1 3/8] linux-headers: update, Eric Farman, 2019/11/14
- [RFC PATCH v1 6/8] vfio-ccw: Add support for the crw region,
Eric Farman <=
- [RFC PATCH v1 1/8] vfio-ccw: Return IOINST_CC_NOT_OPERATIONAL for EIO, Eric Farman, 2019/11/14
- Re: [RFC PATCH v1 1/8] vfio-ccw: Return IOINST_CC_NOT_OPERATIONAL for EIO, Cornelia Huck, 2019/11/18
- Re: [RFC PATCH v1 1/8] vfio-ccw: Return IOINST_CC_NOT_OPERATIONAL for EIO, Halil Pasic, 2019/11/19
- Re: [RFC PATCH v1 1/8] vfio-ccw: Return IOINST_CC_NOT_OPERATIONAL for EIO, Cornelia Huck, 2019/11/19
- Re: [RFC PATCH v1 1/8] vfio-ccw: Return IOINST_CC_NOT_OPERATIONAL for EIO, Eric Farman, 2019/11/19
- Re: [RFC PATCH v1 1/8] vfio-ccw: Return IOINST_CC_NOT_OPERATIONAL for EIO, Halil Pasic, 2019/11/19
- Re: [RFC PATCH v1 1/8] vfio-ccw: Return IOINST_CC_NOT_OPERATIONAL for EIO, Cornelia Huck, 2019/11/20
- Re: [RFC PATCH v1 1/8] vfio-ccw: Return IOINST_CC_NOT_OPERATIONAL for EIO, Eric Farman, 2019/11/19
[RFC PATCH v1 8/8] vfio-ccw: Add support for the CRW irq, Eric Farman, 2019/11/14