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