qemu/hw/ppc
David Gibson 421b1b27f6 spapr_pci: Fix unsafe signed/unsigned comparisons
spapr_pci.c contains a number of expressions of the form (uval == -1) or
(uval != -1), where 'uval' is an unsigned value.

This mostly works in practice, because as long as the width of uval is
greater or equal than that of (int), the -1 will be promoted to the
unsigned type, which is the expected outcome.

However, at least for the cases where uval is uint32_t, this would break
on platforms where sizeof(int) > 4 (and a few such do exist), because then
the uint32_t value would be promoted to the larger int type, and never be
equal to -1.

This patch fixes these errors.  The fixes for the (uint32_t) cases are
necessary as described above.  I've made similar fixes to (uint64_t) and
(hwaddr) cases.  Those are strictly theoretical, since I don't know of any
platforms where sizeof(int) > 8, but hey, it's not that hard so we might
as well be strictly C standard compliant.

Reported-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
2015-06-03 23:56:50 +02:00
..
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c machine: query kernel-irqchip property 2015-03-11 18:14:23 +01:00
e500.h PPC: e500 pci host: Add support for ATMUs 2015-01-07 16:16:24 +01:00
e500plat.c PPC: e500 pci host: Add support for ATMUs 2015-01-07 16:16:24 +01:00
mac_newworld.c Bugfixes and making SCSI adapters IOMMU-friendly. 2015-03-26 17:33:35 +00:00
mac_oldworld.c fw_cfg: factor out initialization of FW_CFG_ID (rev. number) 2015-03-25 13:37:10 +01:00
mac.h block: Rename BlockDriverAIOCB* to BlockAIOCB* 2014-10-20 13:41:27 +02:00
Makefile.objs pseries: Move sPAPR RTC code into its own file 2015-03-09 14:59:56 +01:00
mpc8544_guts.c cpu: Replace cpu_single_env with CPUState current_cpu 2013-07-09 21:20:28 +02:00
mpc8544ds.c PPC: e500 pci host: Add support for ATMUs 2015-01-07 16:16:24 +01:00
ppc4xx_devs.c SCSI changes that enable sending vendor-specific commands via virtio-scsi. 2014-08-19 13:00:57 +01:00
ppc4xx_pci.c hw/pci/ppc4xx_pci.c: Remove unused pci4xx_cfgaddr_read/write/ops 2014-11-04 23:26:12 +01:00
ppc405_boards.c m48t59: introduce new base-year qdev property 2015-03-10 09:18:56 +00:00
ppc405_uc.c memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
ppc405.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
ppc440_bamboo.c hw/core/loader: implement address translation in uimage loader 2014-11-03 00:59:10 +03:00
ppc_booke.c hw/ppc: Avoid shifting left into sign bit 2014-03-27 19:22:49 +04:00
ppc.c m48t59: let init functions return a Nvram object 2015-03-10 09:18:56 +00:00
ppce500_spin.c Convert (ffs(val) - 1) to ctz32(val) 2015-04-28 15:36:08 +02:00
prep.c m48t59: introduce new base-year qdev property 2015-03-10 09:18:56 +00:00
spapr_events.c pseries: Make the PAPR RTC a qdev device 2015-03-09 14:59:58 +01:00
spapr_hcall.c pseries: Switch VGA endian on H_SET_MODE 2015-03-09 15:00:03 +01:00
spapr_iommu.c spapr_vio/spapr_iommu: Move VIO bypass where it belongs 2015-03-09 14:59:52 +01:00
spapr_pci_vfio.c sPAPR: Implement sPAPRPHBClass EEH callbacks 2015-03-09 15:00:08 +01:00
spapr_pci.c spapr_pci: Fix unsafe signed/unsigned comparisons 2015-06-03 23:56:50 +02:00
spapr_rtas.c pseries: Move sPAPR RTC code into its own file 2015-03-09 14:59:56 +01:00
spapr_rtc.c pseries: Export RTC time via QOM 2015-03-09 15:00:00 +01:00
spapr_vio.c spapr_vio: Convert to realize() 2015-03-09 15:00:07 +01:00
spapr.c spapr: define SPAPR_COMPAT_2_3 2015-05-31 16:26:41 +02:00
virtex_ml507.c hw: Convert from BlockDriverState to BlockBackend, mostly 2014-10-20 14:02:25 +02:00