xemu/hw/ppc
Markus Armbruster f26740c61a smbus: Fix spd_data_generate() error API violation
The Error ** argument must be NULL, &error_abort, &error_fatal, or a
pointer to a variable containing NULL.  Passing an argument of the
latter kind twice without clearing it in between is wrong: if the
first call sets an error, it no longer points to NULL for the second
call.

spd_data_generate() can pass @errp to error_setg() more than once when
it adjusts both memory size and type.  Harmless, because no caller
passes anything that needs adjusting.  Until the previous commit,
sam460ex passed types that needed adjusting, but not sizes.

spd_data_generate()'s contract is rather awkward:

    If everything's fine, return non-null and don't set an error.

    Else, if memory size or type need adjusting, return non-null and
    set an error describing the adjustment.

    Else, return null and set an error reporting why no data can be
    generated.

Its callers treat the error as a warning even when null is returned.
They don't create the "smbus-eeprom" device then.  Suspicious.

Since the previous commit, only "everything's fine" can actually
happen.  Drop the unused code and simplify the callers.  This gets rid
of the error API violation.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20200422134815.1584-3-armbru@redhat.com>
2020-04-29 08:01:52 +02:00
..
Kconfig ppc/pnv: Fix PCI_EXPRESS dependency 2020-02-21 09:15:03 +11:00
Makefile.objs spapr: Add NVDIMM device support 2020-02-21 09:15:04 +11:00
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c hw/ppc/e500.c: Handle qemu_find_file() failure 2020-04-07 08:55:10 +10:00
e500.h platform-bus-device: use device plug callback instead of machine_done notifier 2018-05-10 18:10:56 +01:00
e500plat.c ppc/e500: use memdev for RAM 2020-02-19 16:50:00 +00:00
fdt.c target/ppc: Split page size information into a separate allocation 2018-04-27 18:05:22 +10:00
fw_cfg.c hw/ppc: Implement fw_cfg_arch_key_name() 2019-05-23 14:10:31 +02:00
mac.h ide: Include hw/ide/internal a bit less outside hw/ide/ 2019-08-16 13:31:52 +02:00
mac_newworld.c Pull request 2020-03-19 11:14:24 +00:00
mac_oldworld.c Pull request 2020-03-19 11:14:24 +00:00
mpc8544_guts.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
mpc8544ds.c ppc/e500: use memdev for RAM 2020-02-19 16:50:00 +00:00
pnv.c ppc/pnv: Create BMC devices only when defaults are enabled 2020-04-07 08:55:11 +10:00
pnv_bmc.c ppc/pnv: Create BMC devices only when defaults are enabled 2020-04-07 08:55:11 +10:00
pnv_core.c ppc/pnv: change the PowerNV machine devices to be non user creatable 2020-02-02 14:07:57 +11:00
pnv_homer.c ppc/pnv: change the PowerNV machine devices to be non user creatable 2020-02-02 14:07:57 +11:00
pnv_lpc.c hw/ppc/pnv: Fix typo in comment 2020-03-17 09:41:14 +11:00
pnv_occ.c ppc/pnv: change the PowerNV machine devices to be non user creatable 2020-02-02 14:07:57 +11:00
pnv_pnor.c ppc/pnv: improve error logging when a PNOR update fails 2020-02-02 14:07:57 +11:00
pnv_psi.c add device_legacy_reset function to prepare for reset api change 2020-01-30 16:02:03 +00:00
pnv_xscom.c ppc/pnv: Introduce PnvChipClass::xscom_pcba() method 2019-12-17 10:59:11 +11:00
ppc.c hw/ppc/prep: Remove the deprecated "prep" machine and the OpenHackware BIOS 2020-02-02 14:07:57 +11:00
ppc4xx_devs.c ppc/{ppc440_bamboo, sam460ex}: use memdev for RAM 2020-02-19 16:50:00 +00:00
ppc4xx_pci.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc405.h ppc4xx: Export ECB and PLB emulation 2017-09-08 09:30:55 +10:00
ppc405_boards.c ppc/ppc405_boards: Remove unnecessary NULL check 2020-03-24 11:56:37 +11:00
ppc405_uc.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
ppc440.h ppc440_uc: Basic emulation of PPC440 DMA controller 2018-07-03 09:56:52 +10:00
ppc440_bamboo.c ppc/{ppc440_bamboo, sam460ex}: use memdev for RAM 2020-02-19 16:50:00 +00:00
ppc440_pcix.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc440_uc.c hw/ppc/ppc440_uc.c: Remove incorrect iothread locking from dcr_write_pcie() 2020-04-07 08:55:11 +10:00
ppc_booke.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
ppce500_spin.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
prep.c hw/ide: Remove unneeded inclusion of hw/ide.h 2020-03-17 12:22:36 -04:00
prep_systemio.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
rs6000_mc.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
sam460ex.c smbus: Fix spd_data_generate() error API violation 2020-04-29 08:01:52 +02:00
spapr.c ppc patch queue 2020-03-17 2020-03-18 15:07:57 +00:00
spapr_caps.c ppc/spapr: KVM FWNMI should not be enabled until guest requests it 2020-04-07 08:55:10 +10:00
spapr_cpu_core.c ppc/spapr: Move GPRs setup to one place 2020-03-17 15:08:50 +11:00
spapr_drc.c qom/object: enable setter for uint types 2020-03-16 23:02:23 +01:00
spapr_events.c ppc/spapr: Don't kill the guest if a recovered FWNMI machine check delivery fails 2020-04-07 08:55:10 +10:00
spapr_hcall.c spapr: Fix memory leak in h_client_architecture_support() 2020-03-24 11:56:37 +11:00
spapr_iommu.c vmstate: replace DeviceState with VMStateIf 2020-01-06 18:41:32 +04:00
spapr_irq.c spapr, pnv, xive: Add a "xive-fabric" link to the XIVE router 2020-01-08 11:01:59 +11:00
spapr_nvdimm.c spapr: Fix Coverity warning while validating nvdimm options 2020-03-17 09:41:14 +11:00
spapr_ovec.c spapr: Rename DT functions to newer naming convention 2020-03-17 17:00:19 +11:00
spapr_pci.c spapr: Fix failure path for attempting to hot unplug PCI bridges 2020-04-07 08:55:11 +10:00
spapr_pci_nvlink2.c error: Clean up unusual names of Error * variables 2019-12-18 08:36:15 +01:00
spapr_pci_vfio.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
spapr_rng.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
spapr_rtas.c ppc/spapr: Add FWNMI machine check delivery warnings 2020-04-07 08:55:10 +10:00
spapr_rtas_ddw.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
spapr_rtc.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
spapr_tpm_proxy.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
spapr_vio.c spapr: Implement get_dt_compatible() callback 2020-02-02 14:07:57 +11:00
trace-events spapr: Remove unhelpful tracepoints from spapr_irq_free_xics() 2019-10-04 19:08:22 +10:00
virtex_ml507.c Merge tag 'patchew/20200219160953.13771-1-imammedo@redhat.com' of https://github.com/patchew-project/qemu into HEAD 2020-02-25 09:19:00 +01:00