qemu/hw
David Woodhouse eb6ae7a682 hw/xen: do not repeatedly try to create a failing backend device
If xen_backend_device_create() fails to instantiate a device, the XenBus
code will just keep trying over and over again each time the bus is
re-enumerated, as long as the backend appears online and in
XenbusStateInitialising.

The only thing which prevents the XenBus code from recreating duplicates
of devices which already exist, is the fact that xen_device_realize()
sets the backend state to XenbusStateInitWait. If the attempt to create
the device doesn't get *that* far, that's when it will keep getting
retried.

My first thought was to handle errors by setting the backend state to
XenbusStateClosed, but that doesn't work for XenConsole which wants to
*ignore* any device of type != "ioemu" completely.

So, make xen_backend_device_create() *keep* the XenBackendInstance for a
failed device, and provide a new xen_backend_exists() function to allow
xen_bus_type_enumerate() to check whether one already exists before
creating a new one.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
2023-11-07 08:54:20 +00:00
..
9pfs migration: simplify blockers 2023-10-20 08:51:41 +02:00
acpi virtio,pc,pci: features, cleanups 2023-10-23 14:45:29 -07:00
adc meson: Replace softmmu_ss -> system_ss 2023-06-20 10:01:30 +02:00
alpha hw/pci: modify pci_setup_iommu() to set PCIIOMMUOps 2023-11-03 09:20:31 +01:00
arm target-arm queue: 2023-11-07 09:42:07 +08:00
audio hw/audio/es1370: trace lost interrupts 2023-10-10 12:31:05 +00:00
avr Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
block hw/xen: automatically assign device index to block devices 2023-11-07 08:54:20 +00:00
char target-arm queue: 2023-11-03 10:04:12 +08:00
core target-arm queue: 2023-11-07 09:42:07 +08:00
cpu hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
cris Do not include exec/address-spaces.h if it's not really necessary 2021-05-02 17:24:51 +02:00
cxl hw/cxl: Fix local variable shadowing of cap_hdrs 2023-10-06 10:56:54 +02:00
display GPU pull request 2023-11-07 09:41:34 +08:00
dma hw/dma: Declare link using static DEFINE_PROP_LINK() macro 2023-10-19 23:13:28 +02:00
gpio hw/gpio/nrf51: implement DETECT signal 2023-08-22 17:30:59 +01:00
hppa hw/hppa: Add new HP C3700 machine 2023-10-20 00:47:38 +02:00
hyperv vfio queue: 2023-11-07 09:41:52 +08:00
i2c target-arm queue: 2023-11-03 10:04:12 +08:00
i386 hw/xen: populate store frontend nodes with XenStore PFN/port 2023-11-07 08:54:20 +00:00
ide migration: Use vmstate_register_any() for isa-ide 2023-11-01 16:13:58 +01:00
input target-arm queue: 2023-11-03 10:04:12 +08:00
intc Migration Pull request (20231102) 2023-11-03 09:57:32 +08:00
ipack meson: Replace softmmu_ss -> system_ss 2023-06-20 10:01:30 +02:00
ipmi hw/ipmi: Don't call vmstate_register() from instance_init() functions 2023-11-01 16:13:58 +01:00
isa virtio,pc,pci: features, cleanups 2023-10-23 14:45:29 -07:00
loongarch hw/acpi: Realize ACPI_GED sysbus device before accessing it 2023-10-19 23:13:28 +02:00
m68k m68k: Instantiate the ESP SCSI controller for the NeXTcube machine 2023-11-02 07:26:06 +01:00
mem memory-device: Drop size alignment check 2023-11-06 13:54:57 +01:00
microblaze hw/microblaze: Clean up local variable shadowing 2023-09-29 10:07:16 +02:00
mips virtio,pc,pci: features, cleanups 2023-10-23 14:45:29 -07:00
misc hw/misc: Introduce AMD/Xilix Versal TRNG device 2023-11-02 14:42:03 +00:00
net migration: Use vmstate_register_any() 2023-11-01 16:13:58 +01:00
nios2 hw/nios2: Clean up local variable shadowing 2023-09-29 10:07:16 +02:00
nubus trace-events: Fix the name of the tracing.rst file 2023-09-08 13:08:51 +03:00
nvme hw/nvme: Clean up local variable shadowing in nvme_ns_init() 2023-09-29 10:07:20 +02:00
nvram migration: Use vmstate_register_any() for eeprom93xx 2023-11-01 16:13:58 +01:00
openrisc *: Add missing includes of qemu/error-report.h 2023-03-22 15:06:57 +00:00
pci hw/pci: modify pci_setup_iommu() to set PCIIOMMUOps 2023-11-03 09:20:31 +01:00
pci-bridge hw/pci-bridge/cxl-upstream: Add serial number extended capability support 2023-10-04 18:15:06 -04:00
pci-host hw/pci: modify pci_setup_iommu() to set PCIIOMMUOps 2023-11-03 09:20:31 +01:00
pcmcia hw/pcmcia/pxa2xx: Inline pxa2xx_pcmcia_init() 2023-10-27 12:48:57 +01:00
ppc vfio/container: Move IBM EEH related functions into spapr_pci_vfio.c 2023-11-06 13:23:23 +01:00
rdma hw/rdma/vmw/pvrdma_cmd: Use correct struct in query_port() 2023-10-21 15:00:22 +03:00
remote hw/pci: modify pci_setup_iommu() to set PCIIOMMUOps 2023-11-03 09:20:31 +01:00
riscv target/riscv: Use existing PMU counter mask in FDT generation 2023-11-07 11:06:02 +10:00
rtc mc146818rtc: rtc_set_time(): initialize tm to zeroes 2023-11-06 15:00:27 +00:00
rx hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
s390x hw/pci: modify pci_setup_iommu() to set PCIIOMMUOps 2023-11-03 09:20:31 +01:00
scsi cpr: relax vhost migration blockers 2023-11-01 16:13:59 +01:00
sd hw/sd/pxa2xx: Do not open-code sysbus_create_simple() 2023-10-27 12:48:57 +01:00
sensor hw/i2c: spelling fixes 2023-08-31 19:47:43 +02:00
sh4 hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
smbios hw/acpi: changes towards enabling -Wshadow=local 2023-09-29 10:07:18 +02:00
sparc other architectures: spelling fixes 2023-07-25 17:14:07 +03:00
sparc64 hw/sparc64/ebus: Access memory regions via pci_address_space_io() 2023-10-19 23:13:28 +02:00
ssi hw/ssi: ibex_spi_host: Clear the interrupt even if disabled 2023-11-07 11:06:02 +10:00
timer migration: Use vmstate_register_any() 2023-11-01 16:13:58 +01:00
tpm hw/tpm: spelling fixes 2023-09-20 07:54:34 +03:00
tricore hw/tricore: Log failing test in testdevice 2023-09-29 08:28:02 +02:00
ufs hw/ufs: Modify lu.c to share codes with SCSI subsystem 2023-10-30 10:28:04 +09:00
usb hw/usb: Silence compiler warnings in USB code when compiling with -Wshadow 2023-10-06 13:27:48 +02:00
vfio vfio/common: Move vfio_host_win_add/del into spapr.c 2023-11-06 13:23:23 +01:00
virtio vfio queue: 2023-11-07 09:41:52 +08:00
watchdog hw/watchdog/wdt_imx2: Trace timer activity 2023-11-02 13:36:45 +00:00
xen hw/xen: do not repeatedly try to create a failing backend device 2023-11-07 08:54:20 +00:00
xenpv hw/xen: automatically assign device index to block devices 2023-11-07 08:54:20 +00:00
xtensa trivial: Simplify the spots that use TARGET_BIG_ENDIAN as a numeric value 2023-09-08 13:08:52 +03:00
Kconfig hw/ufs: Initial commit for emulated Universal-Flash-Storage 2023-09-07 14:01:29 -04:00
meson.build hw/ufs: Initial commit for emulated Universal-Flash-Storage 2023-09-07 14:01:29 -04:00