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