Device init() methods aren't supposed to call hw_error(), they should report the error and fail cleanly. Do that.
Cc: "Edgar E. Iglesias" <edgar.igles...@gmail.com> Signed-off-by: Markus Armbruster <arm...@pond.sub.org> Reviewed-by: Edgar E. Iglesias <edgar.igles...@xilinx.com> Message-Id: <1450370121-5768-5-git-send-email-arm...@redhat.com> --- hw/net/etraxfs_eth.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/net/etraxfs_eth.c b/hw/net/etraxfs_eth.c index d600275..b562ac9 100644 --- a/hw/net/etraxfs_eth.c +++ b/hw/net/etraxfs_eth.c @@ -26,6 +26,7 @@ #include "hw/sysbus.h" #include "net/net.h" #include "hw/cris/etraxfs.h" +#include "qemu/error-report.h" #define D(x) @@ -589,7 +590,8 @@ static int fs_eth_init(SysBusDevice *sbd) ETRAXFSEthState *s = ETRAX_FS_ETH(dev); if (!s->dma_out || !s->dma_in) { - hw_error("Unconnected ETRAX-FS Ethernet MAC.\n"); + error_report("Unconnected ETRAX-FS Ethernet MAC"); + return -1; } s->dma_out->client.push = eth_tx_push; -- 2.4.3