Re: [PATCH v3 4/7] vfio-ccw: Add support for the crw region

2020-04-21 Thread Eric Farman



On 4/21/20 8:21 AM, Cornelia Huck wrote:
> On Fri, 17 Apr 2020 04:34:37 +0200
> Eric Farman  wrote:
> 
>> From: Farhan Ali 
>>
>> 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 
>> Signed-off-by: Eric Farman 
>> ---
>>
>> Notes:
>> v0->v1: [EF]
>>  - Fixed copy/paste error in error message (s/schib/CRW)
>>
>>  hw/vfio/ccw.c | 18 ++
>>  1 file changed, 18 insertions(+)
> 
> Maybe merge this into patch 7? It is small enough.

Yeah, doesn't make much sense on its own.  Done.

> 
> Patch looks sane to me.
> 



Re: [PATCH v3 4/7] vfio-ccw: Add support for the crw region

2020-04-21 Thread Cornelia Huck
On Fri, 17 Apr 2020 04:34:37 +0200
Eric Farman  wrote:

> From: Farhan Ali 
> 
> 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 
> Signed-off-by: Eric Farman 
> ---
> 
> Notes:
> v0->v1: [EF]
>  - Fixed copy/paste error in error message (s/schib/CRW)
> 
>  hw/vfio/ccw.c | 18 ++
>  1 file changed, 18 insertions(+)

Maybe merge this into patch 7? It is small enough.

Patch looks sane to me.




[PATCH v3 4/7] vfio-ccw: Add support for the crw region

2020-04-16 Thread Eric Farman
From: Farhan Ali 

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 
Signed-off-by: Eric Farman 
---

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 8aa224bf43..db565b6f38 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