[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[qemu-xen master] pci: fix PCI resource reserve capability on BE



commit 24101e36f1c2c782c8c2d055b477e0e0beaf4c68
Author:     Michael S. Tsirkin <mst@xxxxxxxxxx>
AuthorDate: Wed Oct 20 05:48:54 2021 -0400
Commit:     Michael Roth <michael.roth@xxxxxxx>
CommitDate: Tue Dec 14 14:01:41 2021 -0600

    pci: fix PCI resource reserve capability on BE
    
    PCI resource reserve capability should use LE format as all other PCI
    things. If we don't then seabios won't boot:
    
    === PCI new allocation pass #1 ===
    PCI: check devices
    PCI: QEMU resource reserve cap: size 10000000000000 type io
    PCI: secondary bus 1 size 10000000000000 type io
    PCI: secondary bus 1 size 00200000 type mem
    PCI: secondary bus 1 size 00200000 type prefmem
    === PCI new allocation pass #2 ===
    PCI: out of I/O address space
    
    This became more important since we started reserving IO by default,
    previously no one noticed.
    
    Fixes: e2a6290aab ("hw/pcie-root-port: Fix hotplug for PCI devices 
requiring IO")
    Cc: marcel.apfelbaum@xxxxxxxxx
    Fixes: 226263fb5c ("hw/pci: add QEMU-specific PCI capability to the Generic 
PCI Express Root Port")
    Cc: zuban32s@xxxxxxxxx
    Fixes: 6755e618d0 ("hw/pci: add PCI resource reserve capability to legacy 
PCI bridge")
    Cc: jing2.liu@xxxxxxxxxxxxxxx
    Tested-by: Thomas Huth <thuth@xxxxxxxxxx>
    Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
    Reviewed-by: Philippe Mathieu-Daudé <philmd@xxxxxxxxxx>
    (cherry picked from commit 0e464f7d993113119f0fd17b890831440734ce15)
    Signed-off-by: Michael Roth <michael.roth@xxxxxxx>
---
 hw/pci/pci_bridge.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/hw/pci/pci_bridge.c b/hw/pci/pci_bridge.c
index 3789c17edc..6a1e8e433c 100644
--- a/hw/pci/pci_bridge.c
+++ b/hw/pci/pci_bridge.c
@@ -448,11 +448,11 @@ int pci_bridge_qemu_reserve_cap_init(PCIDevice *dev, int 
cap_offset,
     PCIBridgeQemuCap cap = {
             .len = cap_len,
             .type = REDHAT_PCI_CAP_RESOURCE_RESERVE,
-            .bus_res = res_reserve.bus,
-            .io = res_reserve.io,
-            .mem = res_reserve.mem_non_pref,
-            .mem_pref_32 = res_reserve.mem_pref_32,
-            .mem_pref_64 = res_reserve.mem_pref_64
+            .bus_res = cpu_to_le32(res_reserve.bus),
+            .io = cpu_to_le64(res_reserve.io),
+            .mem = cpu_to_le32(res_reserve.mem_non_pref),
+            .mem_pref_32 = cpu_to_le32(res_reserve.mem_pref_32),
+            .mem_pref_64 = cpu_to_le64(res_reserve.mem_pref_64)
     };
 
     int offset = pci_add_capability(dev, PCI_CAP_ID_VNDR,
--
generated by git-patchbot for /home/xen/git/qemu-xen.git#master



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.