While exploring the PCI hotplug code recently posted, I encountered a
situation where I don't believe the current behavior is ideal. With
hotplug, we can add additional pci-based nic devices like e1000 and
rtl8139 from the qemu monitor. If one mistakenly specifies model=ne2000
(the ISA version), qemu just exits. If a command is run from the
monitor and specifies bogus values, I don't believe the right behavior
is to exit out of the guest entirely. The attached patch (which doesn't
apply directly against qemu-cvs since hotplug hasn't been merged)
changes pci_nic_init() to return NULL on error instead of exiting
and then I've replaced all callers to check the return value and exit(),
preserving the existing behavior, but allowing flexibility so
hotplug can do the right thing and just report the error rather than
exiting the guest.