| From d5f5a307f3396064d29ef0d300c7377756dd165b Mon Sep 17 00:00:00 2001 |
| From: Cornelia Huck <cohuck@redhat.com> |
| Date: Tue, 23 Jun 2020 09:25:36 -0400 |
| Subject: [PATCH 02/12] vfio-ccw: allow non-prefetch ORBs |
| |
| RH-Author: Cornelia Huck <cohuck@redhat.com> |
| Message-id: <20200623092543.358315-3-cohuck@redhat.com> |
| Patchwork-id: 97692 |
| O-Subject: [RHEL-8.3.0 qemu-kvm PATCH 2/9] vfio-ccw: allow non-prefetch ORBs |
| Bugzilla: 1660916 |
| RH-Acked-by: Claudio Imbrenda <cimbrend@redhat.com> |
| RH-Acked-by: David Hildenbrand <david@redhat.com> |
| RH-Acked-by: Thomas Huth <thuth@redhat.com> |
| |
| From: Jared Rossi <jrossi@linux.ibm.com> |
| |
| Remove the explicit prefetch check when using vfio-ccw devices. |
| This check does not trigger in practice as all Linux channel programs |
| are intended to use prefetch. |
| |
| Newer Linux kernel versions do not require to force the PFCH flag with |
| vfio-ccw devices anymore. |
| |
| Signed-off-by: Jared Rossi <jrossi@linux.ibm.com> |
| Reviewed-by: Eric Farman <farman@linux.ibm.com> |
| Message-Id: <20200512181535.18630-2-jrossi@linux.ibm.com> |
| Signed-off-by: Cornelia Huck <cohuck@redhat.com> |
| (cherry picked from commit 24e58a7b1d411627e326144030a20dcf0093fed0) |
| Signed-off-by: Cornelia Huck <cohuck@redhat.com> |
| Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com> |
| |
| hw/vfio/ccw.c | 13 +++---------- |
| 1 file changed, 3 insertions(+), 10 deletions(-) |
| |
| diff --git a/hw/vfio/ccw.c b/hw/vfio/ccw.c |
| index 3b5520ae75..6bc612b5b7 100644 |
| |
| |
| @@ -74,16 +74,9 @@ static IOInstEnding vfio_ccw_handle_request(SubchDev *sch) |
| struct ccw_io_region *region = vcdev->io_region; |
| int ret; |
| |
| - if (!(sch->orb.ctrl0 & ORB_CTRL0_MASK_PFCH)) { |
| - if (!(vcdev->force_orb_pfch)) { |
| - warn_once_pfch(vcdev, sch, "requires PFCH flag set"); |
| - sch_gen_unit_exception(sch); |
| - css_inject_io_interrupt(sch); |
| - return IOINST_CC_EXPECTED; |
| - } else { |
| - sch->orb.ctrl0 |= ORB_CTRL0_MASK_PFCH; |
| - warn_once_pfch(vcdev, sch, "PFCH flag forced"); |
| - } |
| + if (!(sch->orb.ctrl0 & ORB_CTRL0_MASK_PFCH) && vcdev->force_orb_pfch) { |
| + sch->orb.ctrl0 |= ORB_CTRL0_MASK_PFCH; |
| + warn_once_pfch(vcdev, sch, "PFCH flag forced"); |
| } |
| |
| QEMU_BUILD_BUG_ON(sizeof(region->orb_area) != sizeof(ORB)); |
| -- |
| 2.27.0 |
| |