qemu/hw/display
Thomas Huth 9eb840a209 hw/display/vga: Report a proper error when adding a 2nd ISA VGA
QEMU currently abort()s if the user tries to add a second ISA VGA
device, for example:

$ ./qemu-system-x86_64 -device isa-vga -device isa-vga
RAMBlock "vga.vram" already registered, abort!
Aborted (core dumped)
$ ./qemu-system-x86_64 -device isa-cirrus-vga -device isa-cirrus-vga
RAMBlock "vga.vram" already registered, abort!
Aborted (core dumped)
$ ./qemu-system-mips64el -M pica61 -device isa-vga
RAMBlock "vga.vram" already registered, abort!
Aborted (core dumped)

Such a crash should never happen just because of giving bad parameters
at the command line. Let's return a proper error message instead.
(The idea is based on an original patch by Jose R. Ziviani for the
isa-vga device, but this now fixes it for the isa-cirrus-vga device, too)

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/44
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20220317083027.16688-4-thuth@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2022-03-18 10:15:57 +01:00
..
artist.c hw/display/artist: Fix draw_line() artefacts 2022-02-02 18:46:45 +01:00
ati_2d.c ati: check x y display parameter values 2020-11-04 08:25:17 +01:00
ati_dbg.c ati-vga: Add dummy MEM_SDRAM_MODE_REG 2020-06-30 22:54:24 +02:00
ati_int.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
ati_regs.h ati-vga: Add dummy MEM_SDRAM_MODE_REG 2020-06-30 22:54:24 +02:00
ati.c hw/display: Allow vga_common_init() to return errors 2022-03-18 10:15:57 +01:00
bcm2835_fb.c Mark remaining global TypeInfo instances as const 2022-02-21 13:30:20 +00:00
blizzard.c display/blizzard: use extract16() for fix clang analyzer warning in blizzard_draw_line16_32() 2020-05-04 11:17:27 +02:00
bochs-display.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
cg3.c vl: extract softmmu/datadir.c 2020-12-10 12:15:18 -05:00
cirrus_vga_internal.h hw/display/cirrus_vga: Move "isa-cirrus-vga" device into a separate file 2018-10-15 09:57:33 +02:00
cirrus_vga_isa.c hw/display: Allow vga_common_init() to return errors 2022-03-18 10:15:57 +01:00
cirrus_vga_rop2.h cirrus: fix PUTPIXEL macro 2017-03-27 12:14:45 +02:00
cirrus_vga_rop.h cirrus: fix off-by-one in cirrus_bitblt_rop_bkwd_transp_*_16 2017-03-17 10:23:44 +01:00
cirrus_vga.c hw/display: Allow vga_common_init() to return errors 2022-03-18 10:15:57 +01:00
dpcd.c hw/display/dpcd: Convert debug printf()s to trace events 2020-05-28 11:38:57 +02:00
edid-generate.c edid: Fix clock of Detailed Timing Descriptor 2022-03-04 11:31:46 +01:00
edid-region.c Include exec/memory.h slightly less 2019-08-16 13:31:52 +02:00
exynos4210_fimd.c hw/display/exynos4210_fimd: Fix potential NULL pointer dereference 2020-11-02 16:52:17 +00:00
framebuffer.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
framebuffer.h framebuffer: set DIRTY_MEMORY_VGA on RAM that is used for the framebuffer 2015-07-24 13:57:45 +02:00
g364fb.c g364fb: add VMStateDescription for G364SysBusState 2021-07-02 17:35:08 +02:00
i2c-ddc.c Mark remaining global TypeInfo instances as const 2022-02-21 13:30:20 +00:00
jazz_led.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
Kconfig hw/display: Rename VGA_ISA_MM -> VGA_MMIO 2022-01-13 10:58:54 +01:00
macfb.c macfb: set initial value of mode control registers in macfb_common_realize() 2022-03-09 09:29:10 +00:00
meson.build hw/display: Rename VGA_ISA_MM -> VGA_MMIO 2022-01-13 10:58:54 +01:00
next-fb.c Do not include hw/boards.h if it's not really necessary 2021-05-02 17:24:51 +02:00
omap_dss.c exec/exec-all: Move 'qemu/log.h' include in units requiring it 2022-02-21 10:18:06 +01:00
omap_lcdc.c hw/display/omap_lcdc: Delete unnecessary macro 2021-03-06 13:30:38 +00:00
pl110_template.h hw/display/pl110: Remove use of BITS from pl110_template.h 2021-03-14 13:14:55 +00:00
pl110.c hw/display/pl110: Remove use of BITS from pl110_template.h 2021-03-14 13:14:55 +00:00
pxa2xx_lcd.c hw/display/pxa2xx: Inline template header 2021-03-14 13:14:56 +00:00
qxl-logger.c hw/display/qxl: Fix bad printf format specifiers 2021-02-04 14:32:40 +01:00
qxl-render.c qxl: also notify the rendering is done when skipping it 2021-02-04 14:32:40 +01:00
qxl.c hw/display: Allow vga_common_init() to return errors 2022-03-18 10:15:57 +01:00
qxl.h Revert "qxl: add migration blocker to avoid pre-save assert" 2021-07-22 15:46:47 +02:00
ramfb-standalone.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
ramfb.c ramfb: fix size calculation 2020-05-18 15:43:51 +02:00
sii9022.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
sm501.c hw/i2c: Rename i2c_set_slave_address() -> i2c_slave_set_address() 2021-07-08 14:15:01 -05:00
ssd0303.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
ssd0323.c hw/ssi: Rename SSI 'slave' as 'peripheral' 2020-12-10 12:15:03 -05:00
tc6393xb.c hw/display/tc6393xb: Inline tc6393xb_draw_graphic32() at its callsite 2021-03-06 13:30:38 +00:00
tcx.c hw: Replace anti-social QOM type names 2021-03-19 15:18:43 +01:00
trace-events hw/display/vmware_vga: replace fprintf calls with trace events 2022-03-04 11:38:07 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vga_int.h hw/display: Allow vga_common_init() to return errors 2022-03-18 10:15:57 +01:00
vga_regs.h Clean up header guards that don't match their file name 2019-05-13 08:58:55 +02:00
vga-access.h vga: move access helpers to separate include file 2019-09-19 10:37:46 +02:00
vga-helpers.h vga: move access helpers to separate include file 2019-09-19 10:37:46 +02:00
vga-isa.c hw/display: Allow vga_common_init() to return errors 2022-03-18 10:15:57 +01:00
vga-mmio.c hw/display: Allow vga_common_init() to return errors 2022-03-18 10:15:57 +01:00
vga-pci.c hw/display: Allow vga_common_init() to return errors 2022-03-18 10:15:57 +01:00
vga.c hw/display/vga: Report a proper error when adding a 2nd ISA VGA 2022-03-18 10:15:57 +01:00
vhost-user-gpu-pci.c modules: add virtio-gpu module annotations 2021-07-09 18:20:27 +02:00
vhost-user-gpu.c Revert "virtio: introduce macro IRTIO_CONFIG_IRQ_IDX" 2022-01-10 16:02:54 -05:00
vhost-user-vga.c modules: add virtio-gpu module annotations 2021-07-09 18:20:27 +02:00
virtio-gpu-base.c ui: simplify gl unblock & flush 2021-12-21 10:50:21 +04:00
virtio-gpu-gl.c hw/display: fix virgl reset regression 2021-07-22 15:46:54 +02:00
virtio-gpu-pci-gl.c modules: add virtio-gpu module annotations 2021-07-09 18:20:27 +02:00
virtio-gpu-pci.c modules: add virtio-gpu module annotations 2021-07-09 18:20:27 +02:00
virtio-gpu-udmabuf-stubs.c virtio-gpu: splitting one extended mode guest fb into n-scanouts 2021-11-05 12:29:19 +01:00
virtio-gpu-udmabuf.c virtio-gpu: splitting one extended mode guest fb into n-scanouts 2021-11-05 12:29:19 +01:00
virtio-gpu-virgl.c virtio-gpu: use VIRTIO_GPU_RESOURCE_FLAG_Y_0_TOP 2021-12-21 10:50:21 +04:00
virtio-gpu.c dma: Let dma_memory_map() take MemTxAttrs argument 2021-12-30 17:16:32 +01:00
virtio-vga-gl.c modules: add virtio-gpu module annotations 2021-07-09 18:20:27 +02:00
virtio-vga.c hw/display: Allow vga_common_init() to return errors 2022-03-18 10:15:57 +01:00
virtio-vga.h qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
vmware_vga.c hw/display: Allow vga_common_init() to return errors 2022-03-18 10:15:57 +01:00
xenfb.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
xlnx_dp.c hw/display/xlnx_dp: fix an out-of-bounds read in xlnx_dp_read 2021-08-31 14:34:36 +02:00