qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 59a958: hw/ppc/ppc4xx_devs: Make code style f


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 59a958: hw/ppc/ppc4xx_devs: Make code style fixes to UIC code
Date: Wed, 06 Jan 2021 05:47:20 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 59a958bb7451758d9120697b92237c0ae706abf3
      
https://github.com/qemu/qemu/commit/59a958bb7451758d9120697b92237c0ae706abf3
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/ppc/ppc4xx_devs.c

  Log Message:
  -----------
  hw/ppc/ppc4xx_devs: Make code style fixes to UIC code

In a following commit we will move the PPC UIC implementation to
its own file in hw/intc. To prevent checkpatch complaining about that
code-motion, fix up the minor style issues first.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20201212001537.24520-2-peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: 34d0831f38fd8ca253fc77d66f54976e440f0131
      
https://github.com/qemu/qemu/commit/34d0831f38fd8ca253fc77d66f54976e440f0131
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M MAINTAINERS
    M hw/intc/Kconfig
    M hw/intc/meson.build
    A hw/intc/ppc-uic.c
    M hw/ppc/Kconfig
    M hw/ppc/ppc4xx_devs.c
    A include/hw/intc/ppc-uic.h

  Log Message:
  -----------
  ppc: Convert PPC UIC to a QOM device

Currently the PPC UIC ("Universal Interrupt Controller") is implemented
as a non-QOM device in ppc4xx_devs.c. Convert it to a proper QOM device
in hw/intc.

The ppcuic_init() function is retained for the moment with its current
interface; in subsequent commits this will be tidied up to avoid the
allocation of an irq array.

This conversion adds VMState support.

It leaves the LOG_UIC() macro as-is to maximise the extent to which
this is simply code-movement rather than a rewrite (in new code it
would be better to use tracepoints).

The default property values for dcr-base and use-vectors are set to
match those use by most of our boards with a UIC.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20201212001537.24520-3-peter.maydell@linaro.org>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: c5ac9dc64fa552a61942c397f70511a32ed95a6f
      
https://github.com/qemu/qemu/commit/c5ac9dc64fa552a61942c397f70511a32ed95a6f
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/ppc/virtex_ml507.c

  Log Message:
  -----------
  hw/ppc/virtex_ml507: Drop use of ppcuic_init()

Switch the virtex_ml507 board to directly creating and
configuring the UIC, rather than doing it via the old
ppcuic_init() helper function.

This fixes a trivial Coverity-detected memory leak where
we were leaking the array of IRQs returned by ppcuic_init().

Fixes: Coverity CID 1421992
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20201212001537.24520-4-peter.maydell@linaro.org>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Tested-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: 0270d74ef886235051c13c39b0de88500c628a02
      
https://github.com/qemu/qemu/commit/0270d74ef886235051c13c39b0de88500c628a02
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/ppc/ppc440_bamboo.c

  Log Message:
  -----------
  hw/ppc/ppc440_bamboo: Drop use of ppcuic_init()

Switch the bamboo board to directly creating and configuring the UIC,
rather than doing it via the old ppcuic_init() helper function.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20201212001537.24520-5-peter.maydell@linaro.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: 73231f7c5fa135274682c3510d3a0b0d4f2628a1
      
https://github.com/qemu/qemu/commit/73231f7c5fa135274682c3510d3a0b0d4f2628a1
  Author: Greg Kurz <groug@kaod.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  spapr: DRC lookup cannot fail

All memory DRC objects are created during machine init. It is thus safe
to assume spapr_drc_by_id() cannot return NULL when hot-plug/unplugging
memory.

Make this clear with an assertion, like the code already does a few lines
above when looping over memory DRCs. This fixes Coverity reports 1437757
and 1437758.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <160805381160.228955.5388294067094240175.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: ab9c93c25c16e48065428f8daa760592cba3226c
      
https://github.com/qemu/qemu/commit/ab9c93c25c16e48065428f8daa760592cba3226c
  Author: Cédric Le Goater <clg@kaod.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/intc/spapr_xive.c
    M include/hw/ppc/spapr_xive.h

  Log Message:
  -----------
  spapr/xive: Make spapr_xive_pic_print_info() static

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20201215174025.2636824-1-clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: 776e887f088a93c0c45b2fb98dbb737a6e7cf0ed
      
https://github.com/qemu/qemu/commit/776e887f088a93c0c45b2fb98dbb737a6e7cf0ed
  Author: Greg Kurz <groug@kaod.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/ppc/spapr.c
    M hw/ppc/spapr_drc.c

  Log Message:
  -----------
  spapr: Fix DR properties of the root node

Section 13.5.2 of LoPAPR mandates various DR related indentifiers
for all hot-pluggable entities to be exposed in the "ibm,drc-indexes",
"ibm,drc-power-domains", "ibm,drc-names" and "ibm,drc-types" properties
of their parent node. These properties are created with spapr_dt_drc().

PHBs and LMBs are both children of the machine. Their DR identifiers
are thus supposed to be exposed in the afore mentioned properties of
the root node.

When PHB hot-plug support was added, an extra call to spapr_dt_drc()
was introduced: this overwrites the existing properties, previously
populated with the LMB identifiers, and they end up containing only
PHB identifiers. This went unseen so far because linux doesn't care,
but this is still not conformant with LoPAPR.

Fortunately spapr_dt_drc() is able to handle multiple DR entity types
at the same time. Use that to handle DR indentifiers for PHBs and LMBs
with a single call to spapr_dt_drc(). While here also account for PMEM
DR identifiers, which were forgotten when NVDIMM hot-plug support was
added. Also add an assert to prevent further misuse of spapr_dt_drc().

With -m 1G,maxmem=2G,slots=8 passed on the QEMU command line we get:

Without this patch:

/proc/device-tree/ibm,drc-indexes
                 0000001f 20000001 20000002 20000003
                 20000000 20000005 20000006 20000007
                 20000004 20000009 20000008 20000010
                 20000011 20000012 20000013 20000014
                 20000015 20000016 20000017 20000018
                 20000019 2000000a 2000000b 2000000c
                 2000000d 2000000e 2000000f 2000001a
                 2000001b 2000001c 2000001d 2000001e

These are the DRC indexes for the 31 possible PHBs.

With this patch:

/proc/device-tree/ibm,drc-indexes
                 0000002b 90000000 90000001 90000002
                 90000003 90000004 90000005 90000006
                 90000007 20000001 20000002 20000003
                 20000000 20000005 20000006 20000007
                 20000004 20000009 20000008 20000010
                 20000011 20000012 20000013 20000014
                 20000015 20000016 20000017 20000018
                 20000019 2000000a 2000000b 2000000c
                 2000000d 2000000e 2000000f 2000001a
                 2000001b 2000001c 2000001d 2000001e
                 80000004 80000005 80000006 80000007

And now we also have the 4 ((2G - 1G) / 256M) LMBs and the
8 (slots) PMEMs.

Fixes: 3998ccd09298 ("spapr: populate PHB DRC entries for root DT node")
Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <160794479566.35245.17809158217760761558.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: 1e8b5b1aa16b7d73ba8ba52c95d0b52329d5c9d0
      
https://github.com/qemu/qemu/commit/1e8b5b1aa16b7d73ba8ba52c95d0b52329d5c9d0
  Author: Greg Kurz <groug@kaod.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/ppc/spapr.c
    M hw/ppc/spapr_events.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  spapr: Allow memory unplug to always succeed

It is currently impossible to hot-unplug a memory device between
machine reset and CAS.

(qemu) device_del dimm1
Error: Memory hot unplug not supported for this guest

This limitation was introduced in order to provide an explicit
error path for older guests that didn't support hot-plug event
sources (and thus memory hot-unplug).

The linux kernel has been supporting these since 4.11. All recent
enough guests are thus capable of handling the removal of a memory
device at all time, including during early boot.

Lift the limitation for the latest machine type. This means that
trying to unplug memory from a guest that doesn't support it will
likely just do nothing and the memory will only get removed at
next reboot. Such older guests can still get the existing behavior
by using an older machine type.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <160794035064.23292.17560963281911312439.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: 30499fdd9883026e106d74e8199e2f1311fd4011
      
https://github.com/qemu/qemu/commit/30499fdd9883026e106d74e8199e2f1311fd4011
  Author: Greg Kurz <groug@kaod.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M include/hw/pci-host/spapr.h
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  spapr: Fix buffer overflow in spapr_numa_associativity_init()

Running a guest with 128 NUMA nodes crashes QEMU:

../../util/error.c:59: error_setv: Assertion `*errp == NULL' failed.

The crash happens when setting the FWNMI migration blocker:

2861        if (spapr_get_cap(spapr, SPAPR_CAP_FWNMI) == SPAPR_CAP_ON) {
2862            /* Create the error string for live migration blocker */
2863            error_setg(&spapr->fwnmi_migration_blocker,
2864                "A machine check is being handled during migration. The 
handler"
2865                "may run and log hardware error on the destination");
2866        }

Inspection reveals that papr->fwnmi_migration_blocker isn't NULL:

(gdb) p spapr->fwnmi_migration_blocker
$1 = (Error *) 0x8000000004000000

Since this is the only place where papr->fwnmi_migration_blocker is
set, this means someone wrote there in our back. Further analysis
points to spapr_numa_associativity_init(), especially the part
that initializes the associative arrays for NVLink GPUs:

    max_nodes_with_gpus = nb_numa_nodes + NVGPU_MAX_NUM;

ie. max_nodes_with_gpus = 128 + 6, but the array isn't sized to
accommodate the 6 extra nodes:

struct SpaprMachineState {
    .
    .
    .
    uint32_t numa_assoc_array[MAX_NODES][NUMA_ASSOC_SIZE];

    Error *fwnmi_migration_blocker;
};

and the following loops happily overwrite spapr->fwnmi_migration_blocker,
and probably more:

    for (i = nb_numa_nodes; i < max_nodes_with_gpus; i++) {
        spapr->numa_assoc_array[i][0] = cpu_to_be32(MAX_DISTANCE_REF_POINTS);

        for (j = 1; j < MAX_DISTANCE_REF_POINTS; j++) {
            uint32_t gpu_assoc = smc->pre_5_1_assoc_refpoints ?
                                 SPAPR_GPU_NUMA_ID : cpu_to_be32(i);
            spapr->numa_assoc_array[i][j] = gpu_assoc;
        }

        spapr->numa_assoc_array[i][MAX_DISTANCE_REF_POINTS] = cpu_to_be32(i);
    }

Fix the size of the array. This requires "hw/ppc/spapr.h" to see
NVGPU_MAX_NUM. Including "hw/pci-host/spapr.h" introduces a
circular dependency that breaks the build, so this moves the
definition of NVGPU_MAX_NUM to "hw/ppc/spapr.h" instead.

Reported-by: Min Deng <mdeng@redhat.com>
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1908693
Fixes: dd7e1d7ae431 ("spapr_numa: move NVLink2 associativity handling to 
spapr_numa.c")
Cc: danielhb413@gmail.com
Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <160829960428.734871.12634150161215429514.stgit@bahia.lan>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: cd725bd7489e52445a15dd2f0ad1aa746dfa91fc
      
https://github.com/qemu/qemu/commit/cd725bd7489e52445a15dd2f0ad1aa746dfa91fc
  Author: Greg Kurz <groug@kaod.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/ppc/spapr_drc.c
    M hw/ppc/spapr_hcall.c
    M include/hw/ppc/spapr_drc.h

  Log Message:
  -----------
  spapr: Call spapr_drc_reset() for all DRCs at CAS

Non-transient DRCs are either in the empty or the ready state,
which means spapr_drc_reset() doesn't change their state. It
is thus not needed to do any checking. Call spapr_drc_reset()
unconditionally and squash spapr_drc_transient() into its
only user, spapr_drc_needed().

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <20201218103400.689660-2-groug@kaod.org>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Tested-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: 930ef3b5c212bf8056bd265cc43ed9fff2e31b08
      
https://github.com/qemu/qemu/commit/930ef3b5c212bf8056bd265cc43ed9fff2e31b08
  Author: Greg Kurz <groug@kaod.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/ppc/spapr_drc.c
    M hw/ppc/spapr_hcall.c
    M include/hw/ppc/spapr_drc.h

  Log Message:
  -----------
  spapr: Fix reset of transient DR connectors

Documentation of object_property_iter_init() clearly stipulates that
"it is forbidden to modify the property list while iterating". But this
is exactly what we do when resetting transient DR connectors during CAS.
The call to spapr_drc_reset() can finalize the hot-unplug sequence of a
PHB or a PCI bridge, both of which will then in turn destroy their PCI
DRCs. This could potentially invalidate the iterator. It is pure luck
that this haven't caused any issues so far.

Change spapr_drc_reset() to return true if it caused a device to be
removed. Restart from scratch in this case. This can potentially
increase the overall DRC reset time, especially with a high maxmem
which generates a lot of LMB DRCs. But this kind of setup is rare,
and so is the use case of rebooting a guest while doing hot-unplug.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <20201218103400.689660-3-groug@kaod.org>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Tested-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: babb819f945a0f279e021e3fc09283080bace61d
      
https://github.com/qemu/qemu/commit/babb819f945a0f279e021e3fc09283080bace61d
  Author: Greg Kurz <groug@kaod.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/ppc/spapr_drc.c
    M hw/ppc/spapr_hcall.c
    M include/hw/ppc/spapr_drc.h

  Log Message:
  -----------
  spapr: Introduce spapr_drc_reset_all()

No need to expose the way DRCs are traversed outside of spapr_drc.c.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <20201218103400.689660-4-groug@kaod.org>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Tested-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: 1105504100c0768d15d862acca8561e1d8d66211
      
https://github.com/qemu/qemu/commit/1105504100c0768d15d862acca8561e1d8d66211
  Author: Greg Kurz <groug@kaod.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  spapr: Use spapr_drc_reset_all() at machine reset

Documentation of object_child_foreach_recursive() clearly stipulates
that "it is forbidden to add or remove children from @obj from the @fn
callback". But this is exactly what we do during machine reset. The call
to spapr_drc_reset() can finalize the hot-unplug sequence of a PHB or a
PCI bridge, both of which will then in turn destroy their PCI DRCs. This
could potentially invalidate the iterator used by do_object_child_foreach().
It is pure luck that this haven't caused any issues so far.

Use spapr_drc_reset_all() since it can cope with DRC removal.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <20201218103400.689660-5-groug@kaod.org>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Tested-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: 00f46c92a036084bfed580a09eb5a3f71f9cf00c
      
https://github.com/qemu/qemu/commit/00f46c92a036084bfed580a09eb5a3f71f9cf00c
  Author: Greg Kurz <groug@kaod.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/ppc/spapr_drc.c

  Log Message:
  -----------
  spapr: Add drc_ prefix to the DRC realize and unrealize functions

Use a less generic name for an easier experience with tools such as
cscope or grep.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <20201218103400.689660-6-groug@kaod.org>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Tested-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: b040e591c5cf116b8a51821db0de09213530c689
      
https://github.com/qemu/qemu/commit/b040e591c5cf116b8a51821db0de09213530c689
  Author: Greg Kurz <groug@kaod.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/intc/Kconfig
    M hw/intc/meson.build
    M hw/ppc/Kconfig

  Log Message:
  -----------
  ppc: Fix build with --without-default-devices

Linking of the qemu-system-ppc64 fails on a POWER9 host when
--without-default-devices is passed to configure:

$ ./configure --without-default-devices \
              --target-list=ppc64-softmmu && make

...

libqemu-ppc64-softmmu.fa.p/hw_ppc_e500.c.o: In function `ppce500_init_mpic_kvm':
/home/greg/Work/qemu/qemu-ppc/build/../hw/ppc/e500.c:777: undefined reference 
to `kvm_openpic_connect_vcpu'
libqemu-ppc64-softmmu.fa.p/hw_ppc_spapr_irq.c.o: In function `spapr_irq_check':
/home/greg/Work/qemu/qemu-ppc/build/../hw/ppc/spapr_irq.c:189: undefined 
reference to `xics_kvm_has_broken_disconnect'
libqemu-ppc64-softmmu.fa.p/hw_intc_spapr_xive.c.o: In function 
`spapr_xive_post_load':
/home/greg/Work/qemu/qemu-ppc/build/../hw/intc/spapr_xive.c:530: undefined 
reference to `kvmppc_xive_post_load'

... and tons of other symbols belonging to the KVM backend of the
openpic, XICS and XIVE interrupt controllers.

It turns out that OPENPIC_KVM, XICS_KVM and XIVE_KVM are marked
to depend on KVM but this has no effect when minikconf runs in
allnoconfig mode. Such reverse dependencies should rather be
handled with a 'select' statement, eg.

config OPENPIC
    select OPENPIC_KVM if KVM

or even better by getting rid of the intermediate _KVM config
and directly checking CONFIG_KVM in the meson.build file:

specific_ss.add(when: ['CONFIG_KVM', 'CONFIG_OPENPIC'],
                if_true: files('openpic_kvm.c'))

Go for the latter with OPENPIC, XICS and XIVE.

This went unnoticed so far because CI doesn't test the build with
--without-default-devices and KVM enabled on a POWER host.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <160883056791.253005.14924294027763955653.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: 27d5caec4fc5987b89257d2160d042717001dad2
      
https://github.com/qemu/qemu/commit/27d5caec4fc5987b89257d2160d042717001dad2
  Author: Greg Kurz <groug@kaod.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/intc/Kconfig
    M hw/intc/meson.build
    M hw/ppc/Kconfig

  Log Message:
  -----------
  ppc: Simplify reverse dependencies of POWERNV and PSERIES on XICS and XIVE

Have PSERIES to select XICS and XIVE, and directly check PSERIES
in hw/intc/meson.build to enable build of the XICS and XIVE sPAPR
backends, like POWERNV already does. This allows to get rid of the
intermediate XICS_SPAPR and XIVE_SPAPR.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <160883057560.253005.4206568349917633920.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: 995d955647f197e6ad658050cb7b4c2ef94347a6
      
https://github.com/qemu/qemu/commit/995d955647f197e6ad658050cb7b4c2ef94347a6
  Author: Greg Kurz <groug@kaod.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/pci-host/Kconfig
    M hw/pci-host/meson.build
    M hw/ppc/Kconfig

  Log Message:
  -----------
  pnv: Fix reverse dependency on PCI express root ports

qemu-system-ppc64 built with --without-default-devices crashes:

Type 'pnv-phb4-root-port' is missing its parent 'pcie-root-port-base'
Aborted (core dumped)

Have POWERNV to select PCIE_PORT. This is done through a
new PCI_POWERNV config in hw/pci-host/Kconfig since POWERNV
doesn't have a direct dependency on PCI. For this reason,
PCI_EXPRESS and MSI_NONBROKEN are also moved under
PCI_POWERNV.

Signed-off-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <160883058299.253005.342913177952681375.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: e6d5106786c4eb94b0dedb6e11c7676941c266f1
      
https://github.com/qemu/qemu/commit/e6d5106786c4eb94b0dedb6e11c7676941c266f1
  Author: BALATON Zoltan via <qemu-ppc@nongnu.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/ppc/Kconfig

  Log Message:
  -----------
  ppc4xx: Move common dependency on serial to common option

All machines that select SERIAL also select PPC4XX so we can just add
this common dependency there once.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: 
<94f1eb7cfb7f315bd883d825f3ce7e0cfc2f2b69.1609636173.git.balaton@eik.bme.hu>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: 038da2adf0262b17ff4bf373178ca018bd817721
      
https://github.com/qemu/qemu/commit/038da2adf0262b17ff4bf373178ca018bd817721
  Author: BALATON Zoltan via <qemu-ppc@nongnu.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/ppc/Kconfig

  Log Message:
  -----------
  sam460ex: Remove FDT_PPC dependency from KConfig

Dependency on FDT_PPC was added in commit b0048f76095
("hw/ppc/Kconfig: Only select FDT helper for machines using it") but
it does not seem to be really necessary so remove it again.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: 
<7461a20b129a912aeacdb9ad115a55f0b84c8726.1609636173.git.balaton@eik.bme.hu>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: 2a9cf49598c65d117b53f72d895ac3c20a3027bc
      
https://github.com/qemu/qemu/commit/2a9cf49598c65d117b53f72d895ac3c20a3027bc
  Author: BALATON Zoltan via <qemu-ppc@nongnu.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/ppc/ppc440_pcix.c

  Log Message:
  -----------
  ppc440_pcix: Improve comment for IRQ mapping

The code mapping all PCI interrupts to a single CPU IRQ works but is
not trivial so document it in a comment.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: 
<c25c0310510672b58466e795fd701e65e8f1ff97.1609636173.git.balaton@eik.bme.hu>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: 2d4c816a8dcfb0d38712c3ffed5f5fcaedd7fe40
      
https://github.com/qemu/qemu/commit/2d4c816a8dcfb0d38712c3ffed5f5fcaedd7fe40
  Author: BALATON Zoltan via <qemu-ppc@nongnu.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/ppc/ppc440_pcix.c
    M hw/ppc/trace-events

  Log Message:
  -----------
  ppc440_pcix: Fix register write trace event

The trace event for pci_host_config_write() was also using the trace
event for read. Add corresponding trace and correct this.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: 
<a6c7dcf7153cc537123ed8ceac060f2f64a883cb.1609636173.git.balaton@eik.bme.hu>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: 5cbd51a5a58098444ffa246ece2013849be04299
      
https://github.com/qemu/qemu/commit/5cbd51a5a58098444ffa246ece2013849be04299
  Author: BALATON Zoltan via <qemu-ppc@nongnu.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M hw/ppc/ppc440_pcix.c

  Log Message:
  -----------
  ppc440_pcix: Fix up pci config access

This fixes a long standing issue with MorphOS booting on sam460ex
which turns out to be because of suspicious values written to PCI
config address that apparently works on real machine but caused wrong
access on this device model. This replaces a previous work around for
this with a better fix that makes it work.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: 
<6fd215ab2bc5f8d4455cd20ed1a2f059e4415fe5.1609636173.git.balaton@eik.bme.hu>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>


  Commit: 7a5fd9343d758d077b6f783d02aa30d9789c4989
      
https://github.com/qemu/qemu/commit/7a5fd9343d758d077b6f783d02aa30d9789c4989
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2021-01-06 (Wed, 06 Jan 2021)

  Changed paths:
    M MAINTAINERS
    M hw/intc/Kconfig
    M hw/intc/meson.build
    A hw/intc/ppc-uic.c
    M hw/intc/spapr_xive.c
    M hw/pci-host/Kconfig
    M hw/pci-host/meson.build
    M hw/ppc/Kconfig
    M hw/ppc/ppc440_bamboo.c
    M hw/ppc/ppc440_pcix.c
    M hw/ppc/ppc4xx_devs.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_drc.c
    M hw/ppc/spapr_events.c
    M hw/ppc/spapr_hcall.c
    M hw/ppc/trace-events
    M hw/ppc/virtex_ml507.c
    A include/hw/intc/ppc-uic.h
    M include/hw/pci-host/spapr.h
    M include/hw/ppc/spapr.h
    M include/hw/ppc/spapr_drc.h
    M include/hw/ppc/spapr_xive.h

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/dg-gitlab/tags/ppc-for-6.0-20210106' 
into staging

ppc patch queue 2021-01-06

First pull request for 2021, which has a bunch of things accumulated
over the holidays.  Includes:
  * A number of cleanups to sam460ex and ppc440 code from BALATON Zoltan
  * Several fixes for builds with --without-default-devices from Greg Kurz
  * Fixes for some DRC reset problems from Greg Kurz
  * QOM conversion of the PPC 4xx UIC devices from Peter Maydell
  * Some other assorted fixes and cleanups

# gpg: Signature made Wed 06 Jan 2021 03:33:19 GMT
# gpg:                using RSA key 75F46586AE61A66CC44E87DC6C38CACA20D9B392
# gpg: Good signature from "David Gibson <david@gibson.dropbear.id.au>" [full]
# gpg:                 aka "David Gibson (Red Hat) <dgibson@redhat.com>" [full]
# gpg:                 aka "David Gibson (ozlabs.org) <dgibson@ozlabs.org>" 
[full]
# gpg:                 aka "David Gibson (kernel.org) <dwg@kernel.org>" 
[unknown]
# Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392

* remotes/dg-gitlab/tags/ppc-for-6.0-20210106: (22 commits)
  ppc440_pcix: Fix up pci config access
  ppc440_pcix: Fix register write trace event
  ppc440_pcix: Improve comment for IRQ mapping
  sam460ex: Remove FDT_PPC dependency from KConfig
  ppc4xx: Move common dependency on serial to common option
  pnv: Fix reverse dependency on PCI express root ports
  ppc: Simplify reverse dependencies of POWERNV and PSERIES on XICS and XIVE
  ppc: Fix build with --without-default-devices
  spapr: Add drc_ prefix to the DRC realize and unrealize functions
  spapr: Use spapr_drc_reset_all() at machine reset
  spapr: Introduce spapr_drc_reset_all()
  spapr: Fix reset of transient DR connectors
  spapr: Call spapr_drc_reset() for all DRCs at CAS
  spapr: Fix buffer overflow in spapr_numa_associativity_init()
  spapr: Allow memory unplug to always succeed
  spapr: Fix DR properties of the root node
  spapr/xive: Make spapr_xive_pic_print_info() static
  spapr: DRC lookup cannot fail
  hw/ppc/ppc440_bamboo: Drop use of ppcuic_init()
  hw/ppc/virtex_ml507: Drop use of ppcuic_init()
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/2e0b5bbe8139...7a5fd9343d75



reply via email to

[Prev in Thread] Current Thread [Next in Thread]