mirror of
https://github.com/qemu/qemu.git
synced 2024-11-26 12:23:36 +08:00
ppc patch queue 2017-07-25
Last pull request for the 2.10 hard freeze, and correspondingly small. There are a handful of bugfixes here plus an update for the "pseries" guest firmware (SLOF). This is later than ideal for a guest firmware update. However, this does include a number of fixes in that guest firmware, so I think it's worth the risk of squeezing this in just before the hard freeze. -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEdfRlhq5hpmzETofcbDjKyiDZs5IFAll22nIACgkQbDjKyiDZ s5K5zg//S8KovwKO7CunPQn/uUjqqx8zqGOogIcYIH8st2g2GzKPBF4yMtWH30Ik ZterHQe5sePOLZQ0YPqd4gRyC+YYtG5S98mOEIKi/29UFjmMMAGpzDPy7X2miBN+ Z6u93aZloNwAQ3YN9chK63N3y0fQbs6K7kUNVnK4pVq3koM2B4N1QzrECFef0u6y AAdLgLZcp3n6li29cRDBRccWbRmAfMDg3HzjGDUg6X/Y41v472T9MMn+rXwJ7Vg7 a9rfZjIBrCE2Xbww2SustlmgMG7PjYC2LafUqkzpmOT2z4XibV5xLl5gdHByaqX7 XAVyqs1PbUD3p1okIOX0VV7xxWIO8NJI+c63oXEqHFJEWCt4TYRSH9oZSFxT1nOd Ioj19zjP6V51Jb3bLm7E88/hQdLPHLhp7hD2NVonfuhKZ4bOZTdNVf8TZYMDH9s3 MAEZSKXoDmHWX8JalI5JrYtbz4hlijCQGyk/9Albvuqa94zJsexfEVA+DQ5B65E9 F8ylI769AQ2OS5d0Nh8jP4+xqfYDCZEUtUhUsFK+/VL1eg4Bz9zqmOowx3iHgNud BOYsc551z310JTHblqDAjMZpe9plwd443JLaLm4RyrVFoxlt25QXOxa+xrXqRr8R Sj+McOlFH4ZfM+zRAAGebcnj0AbR6GPSByczKY8wWivbtDZ0DWs= =nXHc -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.10-20170725' into staging ppc patch queue 2017-07-25 Last pull request for the 2.10 hard freeze, and correspondingly small. There are a handful of bugfixes here plus an update for the "pseries" guest firmware (SLOF). This is later than ideal for a guest firmware update. However, this does include a number of fixes in that guest firmware, so I think it's worth the risk of squeezing this in just before the hard freeze. # gpg: Signature made Tue 25 Jul 2017 06:43:14 BST # gpg: using RSA key 0x6C38CACA20D9B392 # gpg: Good signature from "David Gibson <david@gibson.dropbear.id.au>" # gpg: aka "David Gibson (Red Hat) <dgibson@redhat.com>" # gpg: aka "David Gibson (ozlabs.org) <dgibson@ozlabs.org>" # gpg: aka "David Gibson (kernel.org) <dwg@kernel.org>" # Primary key fingerprint: 75F4 6586 AE61 A66C C44E 87DC 6C38 CACA 20D9 B392 * remotes/dgibson/tags/ppc-for-2.10-20170725: pseries: Update SLOF firmware image spapr: Fix QEMU abort during memory unplug spapr/htab: fix savevm spapr_pci: Fix obsolete comment about MSIX encoding in addr/data Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
08cf4b5ed2
@ -1827,7 +1827,7 @@ static int htab_save_iterate(QEMUFile *f, void *opaque)
|
||||
/* Iteration header */
|
||||
if (!spapr->htab_shift) {
|
||||
qemu_put_be32(f, -1);
|
||||
return 0;
|
||||
return 1;
|
||||
} else {
|
||||
qemu_put_be32(f, 0);
|
||||
}
|
||||
@ -2850,11 +2850,26 @@ static sPAPRDIMMState *spapr_pending_dimm_unplugs_find(sPAPRMachineState *s,
|
||||
return dimm_state;
|
||||
}
|
||||
|
||||
static void spapr_pending_dimm_unplugs_add(sPAPRMachineState *spapr,
|
||||
sPAPRDIMMState *dimm_state)
|
||||
static sPAPRDIMMState *spapr_pending_dimm_unplugs_add(sPAPRMachineState *spapr,
|
||||
uint32_t nr_lmbs,
|
||||
PCDIMMDevice *dimm)
|
||||
{
|
||||
g_assert(!spapr_pending_dimm_unplugs_find(spapr, dimm_state->dimm));
|
||||
QTAILQ_INSERT_HEAD(&spapr->pending_dimm_unplugs, dimm_state, next);
|
||||
sPAPRDIMMState *ds = NULL;
|
||||
|
||||
/*
|
||||
* If this request is for a DIMM whose removal had failed earlier
|
||||
* (due to guest's refusal to remove the LMBs), we would have this
|
||||
* dimm already in the pending_dimm_unplugs list. In that
|
||||
* case don't add again.
|
||||
*/
|
||||
ds = spapr_pending_dimm_unplugs_find(spapr, dimm);
|
||||
if (!ds) {
|
||||
ds = g_malloc0(sizeof(sPAPRDIMMState));
|
||||
ds->nr_lmbs = nr_lmbs;
|
||||
ds->dimm = dimm;
|
||||
QTAILQ_INSERT_HEAD(&spapr->pending_dimm_unplugs, ds, next);
|
||||
}
|
||||
return ds;
|
||||
}
|
||||
|
||||
static void spapr_pending_dimm_unplugs_remove(sPAPRMachineState *spapr,
|
||||
@ -2875,7 +2890,6 @@ static sPAPRDIMMState *spapr_recover_pending_dimm_state(sPAPRMachineState *ms,
|
||||
uint32_t avail_lmbs = 0;
|
||||
uint64_t addr_start, addr;
|
||||
int i;
|
||||
sPAPRDIMMState *ds;
|
||||
|
||||
addr_start = object_property_get_int(OBJECT(dimm), PC_DIMM_ADDR_PROP,
|
||||
&error_abort);
|
||||
@ -2891,11 +2905,7 @@ static sPAPRDIMMState *spapr_recover_pending_dimm_state(sPAPRMachineState *ms,
|
||||
addr += SPAPR_MEMORY_BLOCK_SIZE;
|
||||
}
|
||||
|
||||
ds = g_malloc0(sizeof(sPAPRDIMMState));
|
||||
ds->nr_lmbs = avail_lmbs;
|
||||
ds->dimm = dimm;
|
||||
spapr_pending_dimm_unplugs_add(ms, ds);
|
||||
return ds;
|
||||
return spapr_pending_dimm_unplugs_add(ms, avail_lmbs, dimm);
|
||||
}
|
||||
|
||||
/* Callback to be called during DRC release. */
|
||||
@ -2911,6 +2921,7 @@ void spapr_lmb_release(DeviceState *dev)
|
||||
* during the unplug process. In this case recover it. */
|
||||
if (ds == NULL) {
|
||||
ds = spapr_recover_pending_dimm_state(spapr, PC_DIMM(dev));
|
||||
g_assert(ds);
|
||||
/* The DRC being examined by the caller at least must be counted */
|
||||
g_assert(ds->nr_lmbs);
|
||||
}
|
||||
@ -2942,18 +2953,13 @@ static void spapr_memory_unplug_request(HotplugHandler *hotplug_dev,
|
||||
uint64_t addr_start, addr;
|
||||
int i;
|
||||
sPAPRDRConnector *drc;
|
||||
sPAPRDIMMState *ds;
|
||||
|
||||
addr_start = object_property_get_uint(OBJECT(dimm), PC_DIMM_ADDR_PROP,
|
||||
&local_err);
|
||||
if (local_err) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
ds = g_malloc0(sizeof(sPAPRDIMMState));
|
||||
ds->nr_lmbs = nr_lmbs;
|
||||
ds->dimm = dimm;
|
||||
spapr_pending_dimm_unplugs_add(spapr, ds);
|
||||
spapr_pending_dimm_unplugs_add(spapr, nr_lmbs, dimm);
|
||||
|
||||
addr = addr_start;
|
||||
for (i = 0; i < nr_lmbs; i++) {
|
||||
|
@ -723,9 +723,7 @@ static PCIINTxRoute spapr_route_intx_pin_to_irq(void *opaque, int pin)
|
||||
/*
|
||||
* MSI/MSIX memory region implementation.
|
||||
* The handler handles both MSI and MSIX.
|
||||
* For MSI-X, the vector number is encoded as a part of the address,
|
||||
* data is set to 0.
|
||||
* For MSI, the vector number is encoded in least bits in data.
|
||||
* The vector number is encoded in least bits in data.
|
||||
*/
|
||||
static void spapr_msi_write(void *opaque, hwaddr addr,
|
||||
uint64_t data, unsigned size)
|
||||
|
@ -17,7 +17,7 @@
|
||||
- SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware
|
||||
implementation for certain IBM POWER hardware. The sources are at
|
||||
https://github.com/aik/SLOF, and the image currently in qemu is
|
||||
built from git tag qemu-slof-20170303.
|
||||
built from git tag qemu-slof-20170724.
|
||||
|
||||
- sgabios (the Serial Graphics Adapter option ROM) provides a means for
|
||||
legacy x86 software to communicate with an attached serial console as
|
||||
|
BIN
pc-bios/slof.bin
BIN
pc-bios/slof.bin
Binary file not shown.
@ -1 +1 @@
|
||||
Subproject commit 834113a1c67d6fb53dea153c3313d182238f2d36
|
||||
Subproject commit 89f519f09bf850918b60526e50409afb663418aa
|
Loading…
Reference in New Issue
Block a user