On Thu, 6 Feb 2020 22:38:20 +0100 Eric Farman <farman@xxxxxxxxxxxxx> wrote: > From: Farhan Ali <alifm@xxxxxxxxxxxxx> > > The schib region can be used by userspace to get the subchannel- > information block (SCHIB) for the passthrough subchannel. > This can be useful to get information such as channel path > information via the SCHIB.PMCW fields. > > Signed-off-by: Farhan Ali <alifm@xxxxxxxxxxxxx> > Signed-off-by: Eric Farman <farman@xxxxxxxxxxxxx> > --- > > Notes: > v1->v2: > - Add new region info to Documentation/s390/vfio-ccw.rst [CH] > - Add a block comment to struct ccw_schib_region [CH] > > v0->v1: [EF] > - Clean up checkpatch (#include, whitespace) errors > - Remove unnecessary includes from vfio_ccw_chp.c > - Add ret=-ENOMEM in error path for new region > - Add call to vfio_ccw_unregister_dev_regions() during error exit > path of vfio_ccw_mdev_open() > - New info on the module prologue > - Reorder cleanup of regions > > Documentation/s390/vfio-ccw.rst | 16 +++++- > drivers/s390/cio/Makefile | 2 +- > drivers/s390/cio/vfio_ccw_chp.c | 75 +++++++++++++++++++++++++++++ > drivers/s390/cio/vfio_ccw_drv.c | 20 ++++++++ > drivers/s390/cio/vfio_ccw_ops.c | 14 +++++- > drivers/s390/cio/vfio_ccw_private.h | 3 ++ > include/uapi/linux/vfio.h | 1 + > include/uapi/linux/vfio_ccw.h | 10 ++++ > 8 files changed, 137 insertions(+), 4 deletions(-) > create mode 100644 drivers/s390/cio/vfio_ccw_chp.c > > diff --git a/Documentation/s390/vfio-ccw.rst b/Documentation/s390/vfio-ccw.rst > index fca9c4f5bd9c..b805dc995fc8 100644 > --- a/Documentation/s390/vfio-ccw.rst > +++ b/Documentation/s390/vfio-ccw.rst > @@ -231,6 +231,19 @@ This region is exposed via region type VFIO_REGION_SUBTYPE_CCW_ASYNC_CMD. > > Currently, CLEAR SUBCHANNEL and HALT SUBCHANNEL use this region. > > +vfio-ccw schib region > +--------------------- > + > +The vfio-ccw schib region is used to return Subchannel-Information > +Block (SCHIB) data to userspace:: > + > + struct ccw_schib_region { > + #define SCHIB_AREA_SIZE 52 > + __u8 schib_area[SCHIB_AREA_SIZE]; > + } __packed; > + > +This region is exposed via region type VFIO_REGION_SUBTYPE_CCW_SCHIB. Also mention that reading this triggers a stsch() updating the schib? > + > vfio-ccw operation details > -------------------------- > (...) > diff --git a/drivers/s390/cio/vfio_ccw_chp.c b/drivers/s390/cio/vfio_ccw_chp.c > new file mode 100644 > index 000000000000..826d08379fe3 > --- /dev/null > +++ b/drivers/s390/cio/vfio_ccw_chp.c > @@ -0,0 +1,75 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Channel path related status regions for vfio_ccw > + * > + * Copyright IBM Corp. 2019 Should the year be updated? > + * > + * Author(s): Farhan Ali <alifm@xxxxxxxxxxxxx> > + */ (...)