Pablo Greco e6a3ae
From 3ff64a000649028df66c83c6647258461b0ab8c5 Mon Sep 17 00:00:00 2001
Pablo Greco e6a3ae
From: Cornelia Huck <cohuck@redhat.com>
Pablo Greco e6a3ae
Date: Wed, 17 Apr 2019 13:57:27 +0100
Pablo Greco e6a3ae
Subject: [PATCH 10/24] s390x/pci: Send correct event on hotplug
Pablo Greco e6a3ae
Pablo Greco e6a3ae
RH-Author: Cornelia Huck <cohuck@redhat.com>
Pablo Greco e6a3ae
Message-id: <20190417135741.25297-11-cohuck@redhat.com>
Pablo Greco e6a3ae
Patchwork-id: 85794
Pablo Greco e6a3ae
O-Subject: [RHEL-8.1.0 qemu-kvm PATCH v2 10/24] s390x/pci: Send correct event on hotplug
Pablo Greco e6a3ae
Bugzilla: 1699070
Pablo Greco e6a3ae
RH-Acked-by: David Hildenbrand <david@redhat.com>
Pablo Greco e6a3ae
RH-Acked-by: Thomas Huth <thuth@redhat.com>
Pablo Greco e6a3ae
RH-Acked-by: Jens Freimann <jfreimann@redhat.com>
Pablo Greco e6a3ae
Pablo Greco e6a3ae
From: David Hildenbrand <david@redhat.com>
Pablo Greco e6a3ae
Pablo Greco e6a3ae
Comit 2c28c490571f ("s390x/pci: let pci devices start in configured mode")
Pablo Greco e6a3ae
changed the initial state of zPCI devices from ZPCI_FS_STANDBY to
Pablo Greco e6a3ae
ZPCI_FS_DISABLED (a.k.a. configured). However we still only send a
Pablo Greco e6a3ae
HP_EVENT_RESERVED_TO_STANDBY event to the guest, indicating a wrong
Pablo Greco e6a3ae
state.
Pablo Greco e6a3ae
Pablo Greco e6a3ae
Let's send a HP_EVENT_TO_CONFIGURED event instead, to match the actual
Pablo Greco e6a3ae
state the device is in.
Pablo Greco e6a3ae
Pablo Greco e6a3ae
This fixes hotplugged devices having to be enabled explicitly in the
Pablo Greco e6a3ae
guest e.g. via echo 1 > /sys/bus/pci/slots/00000000/power.
Pablo Greco e6a3ae
Pablo Greco e6a3ae
On real HW, a PCI device always pops up in the STANDBY state. In QEMU,
Pablo Greco e6a3ae
we decided to let it show up directly in the configured state (as
Pablo Greco e6a3ae
configuring it is otherwise just an extra burden for the admin). We can
Pablo Greco e6a3ae
safely bypass the STANDBY state when hotplugging PCI devices to a guest.
Pablo Greco e6a3ae
Pablo Greco e6a3ae
Fixes: 2c28c490571f ("s390x/pci: let pci devices start in configured mode")
Pablo Greco e6a3ae
Reported-by: Cornelia Huck <cohuck@redhat.com>
Pablo Greco e6a3ae
Signed-off-by: David Hildenbrand <david@redhat.com>
Pablo Greco e6a3ae
Message-Id: <20190110210358.24035-1-david@redhat.com>
Pablo Greco e6a3ae
Tested-by: Cornelia Huck <cohuck@redhat.com>
Pablo Greco e6a3ae
Reviewed-by: Pierre Morel <pmorel@linux.ibm.com>
Pablo Greco e6a3ae
Reviewed-by: Collin Walling <walling@linux.ibm.com>
Pablo Greco e6a3ae
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
Pablo Greco e6a3ae
(cherry picked from commit d57d6abc33c770b77732039ebcc96e26cf6ff285)
Pablo Greco e6a3ae
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
Pablo Greco e6a3ae
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
Pablo Greco e6a3ae
---
Pablo Greco e6a3ae
 hw/s390x/s390-pci-bus.c | 2 +-
Pablo Greco e6a3ae
 1 file changed, 1 insertion(+), 1 deletion(-)
Pablo Greco e6a3ae
Pablo Greco e6a3ae
diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
Pablo Greco e6a3ae
index 486c4b6..e19e134 100644
Pablo Greco e6a3ae
--- a/hw/s390x/s390-pci-bus.c
Pablo Greco e6a3ae
+++ b/hw/s390x/s390-pci-bus.c
Pablo Greco e6a3ae
@@ -903,7 +903,7 @@ static void s390_pcihost_plug(HotplugHandler *hotplug_dev, DeviceState *dev,
Pablo Greco e6a3ae
         }
Pablo Greco e6a3ae
 
Pablo Greco e6a3ae
         if (dev->hotplugged) {
Pablo Greco e6a3ae
-            s390_pci_generate_plug_event(HP_EVENT_RESERVED_TO_STANDBY,
Pablo Greco e6a3ae
+            s390_pci_generate_plug_event(HP_EVENT_TO_CONFIGURED ,
Pablo Greco e6a3ae
                                          pbdev->fh, pbdev->fid);
Pablo Greco e6a3ae
         }
Pablo Greco e6a3ae
     } else if (object_dynamic_cast(OBJECT(dev), TYPE_S390_PCI_DEVICE)) {
Pablo Greco e6a3ae
-- 
Pablo Greco e6a3ae
1.8.3.1
Pablo Greco e6a3ae