qemu-e2k/include/hw
Markus Armbruster 7f16c76e83 ssi: ssi_auto_connect_slaves() never does anything, drop
ssi_auto_connect_slaves(parent, cs_line, bus) iterates over @parent's
QOM children @dev of type TYPE_SSI_SLAVE.  It puts these on @bus, and
sets cs_line[] to qdev_get_gpio_in_named(dev, SSI_GPIO_CS, 0).

Suspicious: there is no protection against overrunning cs_line[].

Turns out it's safe because ssi_auto_connect_slaves() never finds any
such children.  Its called by realize methods of some (but not all)
devices providing an SSI bus, and gets passed the device.

SSI slave devices are always created with ssi_create_slave_no_init(),
optionally via ssi_create_slave().  This adds them to their SSI bus.
It doesn't set their QOM parent.

ssi_create_slave_no_init() is always immediately followed by
qdev_init_nofail(), with no QOM parent assigned, so
device_set_realized() puts the device into the /machine/unattached/
orphanage.  None become QOM children of a device providing an SSI bus.

ssi_auto_connect_slaves() was added in commit b4ae3cfa57 "ssi: Add
slave autoconnect helper".  I can't see which slaves it was supposed
to connect back then.

Cc: Alistair Francis <alistair@alistair23.me>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20200610053247.1583243-23-armbru@redhat.com>
2020-06-15 22:05:28 +02:00
..
acpi acpi: ged: rename event memory region 2020-06-12 10:17:06 -04:00
adc
arm arm/aspeed: Rework NIC attachment 2020-06-15 21:36:09 +02:00
audio isa: Convert uses of isa_create() with Coccinelle 2020-06-15 22:05:28 +02:00
block
char qdev: Convert uses of qdev_create() with Coccinelle 2020-06-15 22:00:10 +02:00
core hw/core: Restrict CpuClass::get_crash_info() to system-mode 2020-06-05 21:23:22 +02:00
cpu
cris qdev: Convert uses of qdev_create() with Coccinelle 2020-06-15 22:00:10 +02:00
display qom/object: Move Object typedef to 'qemu/typedefs.h' 2020-06-10 12:09:36 -04:00
dma hw/arm/bcm283x: Correct the license text 2020-03-23 17:22:30 +00:00
firmware
gpio nrf51: Fix last GPIO CNF address 2020-04-30 11:52:27 +01:00
hyperv vmbus: add infrastructure to save/load vmbus requests 2020-06-10 12:09:41 -04:00
i2c hw/arm/nrf51: Add NRF51_PERIPHERAL_SIZE definition 2020-05-11 11:05:11 +01:00
i386 hw/i386/vmport: Add support for CMD_GETHZ 2020-06-10 12:09:53 -04:00
ide
input
intc hw/arm/bcm283x: Correct the license text 2020-03-23 17:22:30 +00:00
ipack
ipmi
isa isa: isa_create(), isa_try_create() are now unused, drop 2020-06-15 22:05:28 +02:00
kvm
lm32
m68k
mem hw/acpi/nvdimm: add a helper to augment SRAT generation 2020-06-09 11:17:59 -04:00
mips
misc qdev: Convert uses of qdev_create() with Coccinelle 2020-06-15 22:00:10 +02:00
net isa: Convert uses of isa_create(), isa_try_create() manually 2020-06-15 22:05:28 +02:00
nubus
nvram fw_cfg: Migrate ACPI table mr sizes separately 2020-04-13 06:55:54 -04:00
pci pci: pci_create(), pci_create_multifunction() are now unused, drop 2020-06-15 22:05:28 +02:00
pci-bridge
pci-host
ppc pnv/psi: Correct the pnv-psi* devices not to be sysbus devices 2020-06-15 21:36:21 +02:00
rdma
riscv riscv: Fix type of SiFive[EU]SocState, member parent_obj 2020-06-15 21:36:21 +02:00
rtc rtc: add RTC_ISA_BASE 2020-05-04 10:25:02 -04:00
s390x s390x: pv: Fix KVM_PV_PREP_RESET command wrapper name 2020-06-05 17:13:11 +02:00
scsi qdev: Unrealize must not fail 2020-05-15 07:08:14 +02:00
sd
semihosting
sh4
southbridge
sparc
ssi ssi: ssi_auto_connect_slaves() never does anything, drop 2020-06-15 22:05:28 +02:00
timer isa: Convert uses of isa_create() with Coccinelle 2020-06-15 22:05:28 +02:00
tricore
unicore32
usb exec/cpu-common: Move MUSB specific typedefs to 'hw/usb/hcd-musb.h' 2020-06-12 11:20:15 -04:00
vfio
virtio virtio: add vhost-user-vsock base device 2020-06-12 10:17:06 -04:00
watchdog hw/watchdog: Implement full i.MX watchdog support 2020-05-21 20:00:18 +01:00
xen accel: Move Xen accelerator code under accel/xen/ 2020-06-10 12:09:56 -04:00
xtensa
boards.h hw: add compat machines for 5.1 2020-05-06 10:12:16 -04:00
clock.h hw/core/clock-vmstate: define a vmstate entry for clock state 2020-04-30 15:35:40 +01:00
elf_ops.h hw/elf_ops: Do not ignore write failures when loading ELF 2020-06-10 12:10:23 -04:00
fw-path-provider.h
hotplug.h
hw.h
ide.h
irq.h
loader-fit.h
loader.h
nmi.h
or-irq.h
pcmcia.h
platform-bus.h
ptimer.h
qdev-clock.h qdev-clock: introduce an init array to ease the device construction 2020-04-30 15:35:40 +01:00
qdev-core.h qdev: Convert to qdev_unrealize() manually 2020-06-15 21:36:30 +02:00
qdev-dma.h
qdev-properties.h
register.h hw/core/register: Add register_init_block8 helper. 2020-05-05 13:37:51 -07:00
registerfields.h hw/registerfields: Prefix local variables with underscore in macros 2020-05-27 11:23:07 -07:00
resettable.h
stream.h hw/core: stream: Add an end-of-packet flag 2020-05-14 13:44:35 +02:00
sysbus.h
usb.h hw/usb: Move device-specific declarations to new 'hcd-musb.h' header 2020-06-12 11:20:14 -04:00
vmstate-if.h