Dong Jia Shi
2c861d89cc
vfio: ccw: fix error return in vfio_ccw_sch_event
...
If the device has not been registered, or there is work pending,
we should reschedule a sch_event call again.
Signed-off-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com >
Message-Id: <20180502072559.50691-1-bjsdjshi@linux.vnet.ibm.com >
Reviewed-by: Cornelia Huck <cohuck@redhat.com >
Signed-off-by: Cornelia Huck <cohuck@redhat.com >
2018-05-29 09:27:41 +02:00
Greg Kroah-Hartman
724117b77b
s390: cio: add SPDX identifiers to the remaining files
...
It's good to have SPDX identifiers in all files to make it easier to
audit the kernel tree for correct licenses.
Update the drivers/s390/cio/ files with the correct SPDX license
identifier based on the license text in the file itself. The SPDX
identifier is a legally binding shorthand, which can be used instead of
the full boiler plate text.
This work is based on a script and data from Thomas Gleixner, Philippe
Ombredanne, and Kate Stewart.
Cc: Sebastian Ott <sebott@linux.vnet.ibm.com >
Cc: Peter Oberparleiter <oberpar@linux.vnet.ibm.com >
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com >
Cc: Heiko Carstens <heiko.carstens@de.ibm.com >
Cc: Cornelia Huck <cohuck@redhat.com >
Cc: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Kate Stewart <kstewart@linuxfoundation.org >
Cc: Philippe Ombredanne <pombredanne@nexb.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com >
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com >
2017-11-24 14:28:41 +01:00
Sebastian Ott
c14b7a85be
s390/vfio_ccw: remove unused variable
...
Fix this set but not used warning:
drivers/s390/cio/vfio_ccw_drv.c: In function 'vfio_ccw_sch_io_todo':
drivers/s390/cio/vfio_ccw_drv.c:72:21: warning: variable 'sch' set but not used [-Wunused-but-set-variable]
struct subchannel *sch;
^
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com >
Reviewed-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com >
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com >
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com >
2017-07-05 07:35:29 +02:00
Sebastian Ott
36f6237ebf
s390/cio: introduce io_subchannel_type
...
The sysfs attributes implemented by the vfio_ccw driver are also implemented by
the io_subchannel driver. Move these into a device_type which is set by the
css bus.
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com >
Reviewed-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com >
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com >
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com >
2017-06-12 16:26:01 +02:00
Dong Jia Shi
bbe37e4cb8
vfio: ccw: introduce a finite state machine
...
The current implementation doesn't check if the subchannel is in a
proper device state when handling an event. Let's introduce
a finite state machine to manage the state/event change.
Signed-off-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com >
Message-Id: <20170317031743.40128-14-bjsdjshi@linux.vnet.ibm.com >
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com >
2017-03-31 12:55:11 +02:00
Dong Jia Shi
e5f84dbaea
vfio: ccw: return I/O results asynchronously
...
Introduce a singlethreaded workqueue to handle the I/O interrupts.
With the work added to this queue, we store the I/O results to the
io_region of the subchannel, then signal the userspace program to
handle the results.
Signed-off-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com >
Message-Id: <20170317031743.40128-13-bjsdjshi@linux.vnet.ibm.com >
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com >
2017-03-31 12:55:10 +02:00
Dong Jia Shi
4e149e431a
vfio: ccw: handle ccw command request
...
We implement the basic ccw command handling infrastructure
here:
1. Translate the ccw commands.
2. Issue the translated ccw commands to the device.
3. Once we get the execution result, update the guest SCSW
with it.
Acked-by: Pierre Morel <pmorel@linux.vnet.ibm.com >
Signed-off-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com >
Message-Id: <20170317031743.40128-9-bjsdjshi@linux.vnet.ibm.com >
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com >
2017-03-31 12:55:07 +02:00
Dong Jia Shi
84cd8fc484
vfio: ccw: register vfio_ccw to the mediated device framework
...
To make vfio support subchannel devices, we need to leverage the
mediated device framework to create a mediated device for the
subchannel device.
This registers the subchannel device to the mediated device
framework during probe to enable mediated device creation.
Reviewed-by: Pierre Morel <pmorel@linux.vnet.ibm.com >
Signed-off-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com >
Message-Id: <20170317031743.40128-7-bjsdjshi@linux.vnet.ibm.com >
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com >
2017-03-31 12:55:06 +02:00
Dong Jia Shi
63f1934d56
vfio: ccw: basic implementation for vfio_ccw driver
...
To make vfio support subchannel devices, we need a css driver for
the vfio subchannels. This patch adds a basic vfio-ccw subchannel
driver for this purpose.
To enable VFIO for vfio-ccw, enable S390_CCW_IOMMU config option
and configure VFIO as required.
Acked-by: Pierre Morel <pmorel@linux.vnet.ibm.com >
Signed-off-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com >
Message-Id: <20170317031743.40128-5-bjsdjshi@linux.vnet.ibm.com >
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com >
2017-03-31 12:55:04 +02:00