Commit 806fed59 authored by Greg Kurz's avatar Greg Kurz Committed by David Gibson
Browse files

pnv/xive: Deduce the PnvXive pointer from XiveTCTX::xptr



And use it instead of reaching out to the machine. This allows to get
rid of pnv_get_chip().

Signed-off-by: default avatarGreg Kurz <groug@kaod.org>
Signed-off-by: default avatarCédric Le Goater <clg@kaod.org>
Message-Id: <20200106145645.4539-11-clg@kaod.org>
Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
parent 74e51a38
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -472,12 +472,8 @@ static uint8_t pnv_xive_get_block_id(XiveRouter *xrtr)
static PnvXive *pnv_xive_tm_get_xive(PowerPCCPU *cpu)
{
    int pir = ppc_cpu_pir(cpu);
    PnvChip *chip;
    PnvXive *xive;

    chip = pnv_get_chip(PNV9_PIR2CHIP(pir));
    assert(chip);
    xive = &PNV9_CHIP(chip)->xive;
    XivePresenter *xptr = XIVE_TCTX(pnv_cpu_state(cpu)->intc)->xptr;
    PnvXive *xive = PNV_XIVE(xptr);

    if (!pnv_xive_is_cpu_enabled(xive, cpu)) {
        xive_error(xive, "IC: CPU %x is not enabled", pir);
+0 −14
Original line number Diff line number Diff line
@@ -1717,20 +1717,6 @@ static int pnv_match_nvt(XiveFabric *xfb, uint8_t format,
    return total_count;
}

PnvChip *pnv_get_chip(uint32_t chip_id)
{
    PnvMachineState *pnv = PNV_MACHINE(qdev_get_machine());
    int i;

    for (i = 0; i < pnv->num_chips; i++) {
        PnvChip *chip = pnv->chips[i];
        if (chip->chip_id == chip_id) {
            return chip;
        }
    }
    return NULL;
}

static void pnv_machine_power8_class_init(ObjectClass *oc, void *data)
{
    MachineClass *mc = MACHINE_CLASS(oc);
+0 −2
Original line number Diff line number Diff line
@@ -219,8 +219,6 @@ struct PnvMachineState {
    PnvPnor      *pnor;
};

PnvChip *pnv_get_chip(uint32_t chip_id);

#define PNV_FDT_ADDR          0x01000000
#define PNV_TIMEBASE_FREQ     512000000ULL