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