Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:GA
qemu-linux-user.313
0101-spapr_pci-Advertise-MSI-quota.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0101-spapr_pci-Advertise-MSI-quota.patch of Package qemu-linux-user.313
From 67b9be326f5733ff0e4d0fd101d287cbbce2d8ce Mon Sep 17 00:00:00 2001 From: Badari Pulavarty <pbadari@us.ibm.com> Date: Wed, 11 Jun 2014 18:49:33 +1000 Subject: [PATCH] spapr_pci: Advertise MSI quota Hotplug of multiple disks fails due to MSI vector quota check. Number of MSI vectors default to 8 allowing only 4 devices. This happens on RHEL6.5 guest. RHEL7 and SLES11 guests fallback to INTX. One way to workaround the issue is to increase total MSIs, so that MSI quota check allows us to hotplug multiple disks. This sets the quota to the maximum number of interupts XICS has which is 1024 now (XICS_IRQS). This moves XICS_IRQS from spapr.c to xics.h for wider visibility. Signed-off-by: Badari Pulavarty <pbadari@us.ibm.com> [aik: put XICS_IRQS=1024 instead of 64i, fixed endianness and size] Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Alexander Graf <agraf@suse.de> (cherry picked from commit 9dbae97723e964692364fb43012c6fa5448a661f) --- hw/ppc/spapr.c | 1 - hw/ppc/spapr_pci.c | 1 + include/hw/ppc/xics.h | 2 ++ 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index b31c657..d59faf4 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -80,7 +80,6 @@ #define TIMEBASE_FREQ 512000000ULL #define MAX_CPUS 256 -#define XICS_IRQS 1024 #define PHANDLE_XICP 0x00001111 diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c index 8b4f30b..cf9d5fa 100644 --- a/hw/ppc/spapr_pci.c +++ b/hw/ppc/spapr_pci.c @@ -825,6 +825,7 @@ int spapr_populate_pci_dt(sPAPRPHBState *phb, _FDT(fdt_setprop(fdt, bus_off, "ranges", &ranges, sizeof(ranges))); _FDT(fdt_setprop(fdt, bus_off, "reg", &bus_reg, sizeof(bus_reg))); _FDT(fdt_setprop_cell(fdt, bus_off, "ibm,pci-config-space-type", 0x1)); + _FDT(fdt_setprop_cell(fdt, bus_off, "ibm,pe-total-#msi", XICS_IRQS)); /* Build the interrupt-map, this must matches what is done * in pci_spapr_map_irq diff --git a/include/hw/ppc/xics.h b/include/hw/ppc/xics.h index 0d7673d..85e4c8a 100644 --- a/include/hw/ppc/xics.h +++ b/include/hw/ppc/xics.h @@ -152,6 +152,8 @@ struct ICSIRQState { uint8_t status; }; +#define XICS_IRQS 1024 + qemu_irq xics_get_qirq(XICSState *icp, int irq); void xics_set_irq_type(XICSState *icp, int irq, bool lsi);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor