ppc/pnv: Create BMC devices only when defaults are enabled
authorCédric Le Goater <clg@kaod.org>
Sat, 4 Apr 2020 15:36:55 +0000 (17:36 +0200)
committerDavid Gibson <david@gibson.dropbear.id.au>
Mon, 6 Apr 2020 22:55:11 +0000 (08:55 +1000)
commit25f3170b06544e4de620336da5b2ea3b392d66bc
tree64ade8e1e2865a3d5d85ad6e2b9df6601b73889d
parenta872e4328bb3c2dda0699e04abf0f902950221f3
ppc/pnv: Create BMC devices only when defaults are enabled

Commit e2392d4395dd ("ppc/pnv: Create BMC devices at machine init")
introduced default BMC devices which can be a problem when the same
devices are defined on the command line with :

  -device ipmi-bmc-sim,id=bmc0 -device isa-ipmi-bt,bmc=bmc0,irq=10

QEMU fails with :

  qemu-system-ppc64: error creating device tree: node: FDT_ERR_EXISTS

Use defaults_enabled() when creating the default BMC devices to let
the user provide its own BMC devices using '-nodefaults'. If no BMC
device are provided, output a warning but let QEMU run as this is a
supported configuration. However, when multiple BMC devices are
defined, stop QEMU with a clear error as the results are unexpected.

Fixes: e2392d4395dd ("ppc/pnv: Create BMC devices at machine init")
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20200404153655.166834-1-clg@kaod.org>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/ppc/pnv.c
hw/ppc/pnv_bmc.c
include/hw/ppc/pnv.h