* [PATCH RESEND v2 01/32] memory: Correctly return alias region type
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 02/32] memory: Simplify memory_region_init_rom_nomigrate() to ease review Philippe Mathieu-Daudé
` (30 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, qemu-trivial, Magnus Damm, Hervé Poussineau,
Joel Stanley, Marc-André Lureau, Aleksandar Rikalo,
David Gibson, Artyom Tarasenko, Eduardo Habkost,
Jean-Christophe Dubois, Alistair Francis, Fabien Chouteau,
qemu-arm, Peter Chubb, Palmer Dabbelt, Richard Henderson,
Kevin Wolf, qemu-riscv, Igor Mitsyanko, Bastian Koppelmann,
Laurent Vivier, Max Reitz, Michael Walle, qemu-ppc,
Aleksandar Markovic, Aurelien Jarno
Since memory region aliases are neither rom nor ram, they are
described as i/o, which is often incorrect. Return instead the
type of the original region we are aliasing.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
Cc: qemu-trivial@nongnu.org
memory.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/memory.c b/memory.c
index aeaa8dcc9e..ce1179874e 100644
--- a/memory.c
+++ b/memory.c
@@ -2818,6 +2818,9 @@ void address_space_destroy(AddressSpace *as)
static const char *memory_region_type(MemoryRegion *mr)
{
+ if (mr->alias) {
+ return memory_region_type(mr->alias);
+ }
if (memory_region_is_ram_device(mr)) {
return "ramd";
} else if (memory_region_is_romd(mr)) {
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 02/32] memory: Simplify memory_region_init_rom_nomigrate() to ease review
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 01/32] memory: Correctly return alias region type Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 21:17 ` Alistair Francis
2020-02-24 20:55 ` [PATCH RESEND v2 03/32] scripts/cocci: Rename memory-region-{init-ram -> housekeeping} Philippe Mathieu-Daudé
` (29 subsequent siblings)
31 siblings, 1 reply; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
memory_region_init_rom_nomigrate() has the same content than
memory_region_init_ram_shared_nomigrate(), with setting the
readonly mode. The code is easier to review as creating a
readonly ram/shared/nomigrate region.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
memory.c | 13 +------------
1 file changed, 1 insertion(+), 12 deletions(-)
diff --git a/memory.c b/memory.c
index ce1179874e..6a327a54ed 100644
--- a/memory.c
+++ b/memory.c
@@ -1659,19 +1659,8 @@ void memory_region_init_rom_nomigrate(MemoryRegion *mr,
uint64_t size,
Error **errp)
{
- Error *err = NULL;
- memory_region_init(mr, owner, name, size);
- mr->ram = true;
+ memory_region_init_ram_shared_nomigrate(mr, owner, name, size, false, errp);
mr->readonly = true;
- mr->terminates = true;
- mr->destructor = memory_region_destructor_ram;
- mr->ram_block = qemu_ram_alloc(size, false, mr, &err);
- mr->dirty_log_mask = tcg_enabled() ? (1 << DIRTY_MEMORY_CODE) : 0;
- if (err) {
- mr->size = int128_zero();
- object_unparent(OBJECT(mr));
- error_propagate(errp, err);
- }
}
void memory_region_init_rom_device_nomigrate(MemoryRegion *mr,
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* Re: [PATCH RESEND v2 02/32] memory: Simplify memory_region_init_rom_nomigrate() to ease review
2020-02-24 20:55 ` [PATCH RESEND v2 02/32] memory: Simplify memory_region_init_rom_nomigrate() to ease review Philippe Mathieu-Daudé
@ 2020-02-24 21:17 ` Alistair Francis
0 siblings, 0 replies; 41+ messages in thread
From: Alistair Francis @ 2020-02-24 21:17 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Peter Maydell, Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Mark Cave-Ayland, qemu-devel@nongnu.org Developers,
KONRAD Frederic, Alistair Francis, Edgar E. Iglesias,
Jean-Christophe Dubois, Qemu-block, Magnus Damm, Max Reitz,
Hervé Poussineau, Joel Stanley, Marc-André Lureau,
Aleksandar Rikalo, Richard Henderson, Artyom Tarasenko,
Eduardo Habkost, Alistair Francis, Fabien Chouteau, qemu-arm,
Peter Chubb, open list:New World, David Gibson, Kevin Wolf,
open list:RISC-V, Igor Mitsyanko, Bastian Koppelmann,
Laurent Vivier, Subbaraya Sundeep, Michael Walle, Palmer Dabbelt,
Aleksandar Markovic, Paolo Bonzini, Aurelien Jarno
On Mon, Feb 24, 2020 at 1:10 PM Philippe Mathieu-Daudé
<philmd@redhat.com> wrote:
>
> memory_region_init_rom_nomigrate() has the same content than
> memory_region_init_ram_shared_nomigrate(), with setting the
> readonly mode. The code is easier to review as creating a
> readonly ram/shared/nomigrate region.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Alistair
> ---
> memory.c | 13 +------------
> 1 file changed, 1 insertion(+), 12 deletions(-)
>
> diff --git a/memory.c b/memory.c
> index ce1179874e..6a327a54ed 100644
> --- a/memory.c
> +++ b/memory.c
> @@ -1659,19 +1659,8 @@ void memory_region_init_rom_nomigrate(MemoryRegion *mr,
> uint64_t size,
> Error **errp)
> {
> - Error *err = NULL;
> - memory_region_init(mr, owner, name, size);
> - mr->ram = true;
> + memory_region_init_ram_shared_nomigrate(mr, owner, name, size, false, errp);
> mr->readonly = true;
> - mr->terminates = true;
> - mr->destructor = memory_region_destructor_ram;
> - mr->ram_block = qemu_ram_alloc(size, false, mr, &err);
> - mr->dirty_log_mask = tcg_enabled() ? (1 << DIRTY_MEMORY_CODE) : 0;
> - if (err) {
> - mr->size = int128_zero();
> - object_unparent(OBJECT(mr));
> - error_propagate(errp, err);
> - }
> }
>
> void memory_region_init_rom_device_nomigrate(MemoryRegion *mr,
> --
> 2.21.1
>
>
^ permalink raw reply [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 03/32] scripts/cocci: Rename memory-region-{init-ram -> housekeeping}
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 01/32] memory: Correctly return alias region type Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 02/32] memory: Simplify memory_region_init_rom_nomigrate() to ease review Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 04/32] scripts/cocci: Patch to replace memory_region_init_{ram, readonly -> rom} Philippe Mathieu-Daudé
` (28 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
As we are going to add various semantic changes related to the memory
region API, rename this script to be more generic.
Add a 'usage' header, and an entry in MAINTAINERS to avoid checkpatch
warning.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
...t-ram.cocci => memory-region-housekeeping.cocci} | 13 +++++++++++++
MAINTAINERS | 1 +
2 files changed, 14 insertions(+)
rename scripts/coccinelle/{memory-region-init-ram.cocci => memory-region-housekeeping.cocci} (84%)
diff --git a/scripts/coccinelle/memory-region-init-ram.cocci b/scripts/coccinelle/memory-region-housekeeping.cocci
similarity index 84%
rename from scripts/coccinelle/memory-region-init-ram.cocci
rename to scripts/coccinelle/memory-region-housekeeping.cocci
index d290150872..3699c1017e 100644
--- a/scripts/coccinelle/memory-region-init-ram.cocci
+++ b/scripts/coccinelle/memory-region-housekeeping.cocci
@@ -1,3 +1,16 @@
+/*
+ Usage:
+
+ spatch \
+ --macro-file scripts/cocci-macro-file.h \
+ --sp-file scripts/coccinelle/memory-region-housekeeping.cocci \
+ --keep-comments \
+ --in-place \
+ --dir .
+
+*/
+
+
// Replace by-hand memory_region_init_ram_nomigrate/vmstate_register_ram
// code sequences with use of the new memory_region_init_ram function.
// Similarly for the _rom and _rom_device functions.
diff --git a/MAINTAINERS b/MAINTAINERS
index 195dd58cac..316a8edbb6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1998,6 +1998,7 @@ F: include/exec/ramblock.h
F: memory.c
F: include/exec/memory-internal.h
F: exec.c
+F: scripts/coccinelle/memory-region-housekeeping.cocci
SPICE
M: Gerd Hoffmann <kraxel@redhat.com>
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 04/32] scripts/cocci: Patch to replace memory_region_init_{ram, readonly -> rom}
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (2 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 03/32] scripts/cocci: Rename memory-region-{init-ram -> housekeeping} Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 05/32] hw/arm: Use memory_region_init_rom() with read-only regions Philippe Mathieu-Daudé
` (27 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
Add a semantic patch to replace memory_region_init_ram(readonly)
by memory_region_init_rom().
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
.../memory-region-housekeeping.cocci | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/scripts/coccinelle/memory-region-housekeeping.cocci b/scripts/coccinelle/memory-region-housekeeping.cocci
index 3699c1017e..ee3923d369 100644
--- a/scripts/coccinelle/memory-region-housekeeping.cocci
+++ b/scripts/coccinelle/memory-region-housekeeping.cocci
@@ -11,6 +11,24 @@
*/
+// Replace memory_region_init_ram(readonly) by memory_region_init_rom()
+@@
+expression E1, E2, E3, E4, E5;
+symbol true;
+@@
+(
+- memory_region_init_ram(E1, E2, E3, E4, E5);
++ memory_region_init_rom(E1, E2, E3, E4, E5);
+ ... WHEN != E1
+- memory_region_set_readonly(E1, true);
+|
+- memory_region_init_ram_nomigrate(E1, E2, E3, E4, E5);
++ memory_region_init_rom_nomigrate(E1, E2, E3, E4, E5);
+ ... WHEN != E1
+- memory_region_set_readonly(E1, true);
+)
+
+
// Replace by-hand memory_region_init_ram_nomigrate/vmstate_register_ram
// code sequences with use of the new memory_region_init_ram function.
// Similarly for the _rom and _rom_device functions.
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 05/32] hw/arm: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (3 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 04/32] scripts/cocci: Patch to replace memory_region_init_{ram, readonly -> rom} Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 06/32] hw/display: " Philippe Mathieu-Daudé
` (26 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/arm/exynos4210.c | 3 +--
hw/arm/mainstone.c | 3 +--
hw/arm/omap_sx1.c | 6 ++----
hw/arm/palm.c | 3 +--
hw/arm/spitz.c | 3 +--
hw/arm/stellaris.c | 3 +--
hw/arm/tosa.c | 3 +--
7 files changed, 8 insertions(+), 16 deletions(-)
diff --git a/hw/arm/exynos4210.c b/hw/arm/exynos4210.c
index 59a27bdd68..3af6502a5e 100644
--- a/hw/arm/exynos4210.c
+++ b/hw/arm/exynos4210.c
@@ -311,9 +311,8 @@ static void exynos4210_realize(DeviceState *socdev, Error **errp)
&s->chipid_mem);
/* Internal ROM */
- memory_region_init_ram(&s->irom_mem, NULL, "exynos4210.irom",
+ memory_region_init_rom(&s->irom_mem, NULL, "exynos4210.irom",
EXYNOS4210_IROM_SIZE, &error_fatal);
- memory_region_set_readonly(&s->irom_mem, true);
memory_region_add_subregion(system_mem, EXYNOS4210_IROM_BASE_ADDR,
&s->irom_mem);
/* mirror of iROM */
diff --git a/hw/arm/mainstone.c b/hw/arm/mainstone.c
index 6e64dfab50..05a806b422 100644
--- a/hw/arm/mainstone.c
+++ b/hw/arm/mainstone.c
@@ -125,9 +125,8 @@ static void mainstone_common_init(MemoryRegion *address_space_mem,
/* Setup CPU & memory */
mpu = pxa270_init(address_space_mem, mainstone_binfo.ram_size,
machine->cpu_type);
- memory_region_init_ram(rom, NULL, "mainstone.rom", MAINSTONE_ROM,
+ memory_region_init_rom(rom, NULL, "mainstone.rom", MAINSTONE_ROM,
&error_fatal);
- memory_region_set_readonly(rom, true);
memory_region_add_subregion(address_space_mem, 0, rom);
#ifdef TARGET_WORDS_BIGENDIAN
diff --git a/hw/arm/omap_sx1.c b/hw/arm/omap_sx1.c
index be245714db..6c3fd1b271 100644
--- a/hw/arm/omap_sx1.c
+++ b/hw/arm/omap_sx1.c
@@ -126,9 +126,8 @@ static void sx1_init(MachineState *machine, const int version)
mpu = omap310_mpu_init(dram, machine->cpu_type);
/* External Flash (EMIFS) */
- memory_region_init_ram(flash, NULL, "omap_sx1.flash0-0", flash_size,
+ memory_region_init_rom(flash, NULL, "omap_sx1.flash0-0", flash_size,
&error_fatal);
- memory_region_set_readonly(flash, true);
memory_region_add_subregion(address_space, OMAP_CS0_BASE, flash);
memory_region_init_io(&cs[0], NULL, &static_ops, &cs0val,
@@ -168,9 +167,8 @@ static void sx1_init(MachineState *machine, const int version)
if ((version == 1) &&
(dinfo = drive_get(IF_PFLASH, 0, fl_idx)) != NULL) {
MemoryRegion *flash_1 = g_new(MemoryRegion, 1);
- memory_region_init_ram(flash_1, NULL, "omap_sx1.flash1-0",
+ memory_region_init_rom(flash_1, NULL, "omap_sx1.flash1-0",
flash1_size, &error_fatal);
- memory_region_set_readonly(flash_1, true);
memory_region_add_subregion(address_space, OMAP_CS1_BASE, flash_1);
memory_region_init_io(&cs[1], NULL, &static_ops, &cs1val,
diff --git a/hw/arm/palm.c b/hw/arm/palm.c
index 72eca8cc55..265d5891a6 100644
--- a/hw/arm/palm.c
+++ b/hw/arm/palm.c
@@ -206,9 +206,8 @@ static void palmte_init(MachineState *machine)
mpu = omap310_mpu_init(dram, machine->cpu_type);
/* External Flash (EMIFS) */
- memory_region_init_ram(flash, NULL, "palmte.flash", flash_size,
+ memory_region_init_rom(flash, NULL, "palmte.flash", flash_size,
&error_fatal);
- memory_region_set_readonly(flash, true);
memory_region_add_subregion(address_space_mem, OMAP_CS0_BASE, flash);
memory_region_init_io(&cs[0], NULL, &static_ops, &cs0val, "palmte-cs0",
diff --git a/hw/arm/spitz.c b/hw/arm/spitz.c
index e001088103..1d27399721 100644
--- a/hw/arm/spitz.c
+++ b/hw/arm/spitz.c
@@ -924,8 +924,7 @@ static void spitz_common_init(MachineState *machine,
sl_flash_register(mpu, (model == spitz) ? FLASH_128M : FLASH_1024M);
- memory_region_init_ram(rom, NULL, "spitz.rom", SPITZ_ROM, &error_fatal);
- memory_region_set_readonly(rom, true);
+ memory_region_init_rom(rom, NULL, "spitz.rom", SPITZ_ROM, &error_fatal);
memory_region_add_subregion(address_space_mem, 0, rom);
/* Setup peripherals */
diff --git a/hw/arm/stellaris.c b/hw/arm/stellaris.c
index 221a78674e..d136ba1a92 100644
--- a/hw/arm/stellaris.c
+++ b/hw/arm/stellaris.c
@@ -1300,9 +1300,8 @@ static void stellaris_init(MachineState *ms, stellaris_board_info *board)
sram_size = ((board->dc0 >> 18) + 1) * 1024;
/* Flash programming is done via the SCU, so pretend it is ROM. */
- memory_region_init_ram(flash, NULL, "stellaris.flash", flash_size,
+ memory_region_init_rom(flash, NULL, "stellaris.flash", flash_size,
&error_fatal);
- memory_region_set_readonly(flash, true);
memory_region_add_subregion(system_memory, 0, flash);
memory_region_init_ram(sram, NULL, "stellaris.sram", sram_size,
diff --git a/hw/arm/tosa.c b/hw/arm/tosa.c
index 4d95a1f3e2..5dee2d76c6 100644
--- a/hw/arm/tosa.c
+++ b/hw/arm/tosa.c
@@ -226,8 +226,7 @@ static void tosa_init(MachineState *machine)
mpu = pxa255_init(address_space_mem, tosa_binfo.ram_size);
- memory_region_init_ram(rom, NULL, "tosa.rom", TOSA_ROM, &error_fatal);
- memory_region_set_readonly(rom, true);
+ memory_region_init_rom(rom, NULL, "tosa.rom", TOSA_ROM, &error_fatal);
memory_region_add_subregion(address_space_mem, 0, rom);
tmio = tc6393xb_init(address_space_mem, 0x10000000,
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 06/32] hw/display: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (4 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 05/32] hw/arm: Use memory_region_init_rom() with read-only regions Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 07/32] hw/mips: " Philippe Mathieu-Daudé
` (25 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/display/cg3.c | 5 ++---
hw/display/tcx.c | 5 ++---
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/hw/display/cg3.c b/hw/display/cg3.c
index 4fb67c6b1c..a1ede10394 100644
--- a/hw/display/cg3.c
+++ b/hw/display/cg3.c
@@ -287,9 +287,8 @@ static void cg3_initfn(Object *obj)
SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
CG3State *s = CG3(obj);
- memory_region_init_ram_nomigrate(&s->rom, obj, "cg3.prom", FCODE_MAX_ROM_SIZE,
- &error_fatal);
- memory_region_set_readonly(&s->rom, true);
+ memory_region_init_rom_nomigrate(&s->rom, obj, "cg3.prom",
+ FCODE_MAX_ROM_SIZE, &error_fatal);
sysbus_init_mmio(sbd, &s->rom);
memory_region_init_io(&s->reg, obj, &cg3_reg_ops, s, "cg3.reg",
diff --git a/hw/display/tcx.c b/hw/display/tcx.c
index ca458f94fe..76de16e8ea 100644
--- a/hw/display/tcx.c
+++ b/hw/display/tcx.c
@@ -755,9 +755,8 @@ static void tcx_initfn(Object *obj)
SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
TCXState *s = TCX(obj);
- memory_region_init_ram_nomigrate(&s->rom, obj, "tcx.prom", FCODE_MAX_ROM_SIZE,
- &error_fatal);
- memory_region_set_readonly(&s->rom, true);
+ memory_region_init_rom_nomigrate(&s->rom, obj, "tcx.prom",
+ FCODE_MAX_ROM_SIZE, &error_fatal);
sysbus_init_mmio(sbd, &s->rom);
/* 2/STIP : Stippler */
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 07/32] hw/mips: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (5 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 06/32] hw/display: " Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-26 11:38 ` Aleksandar Markovic
2020-02-24 20:55 ` [PATCH RESEND v2 08/32] hw/m68k: " Philippe Mathieu-Daudé
` (24 subsequent siblings)
31 siblings, 1 reply; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/mips/mips_fulong2e.c | 3 +--
hw/mips/mips_jazz.c | 6 ++----
hw/mips/mips_mipssim.c | 3 +--
hw/mips/mips_r4k.c | 3 +--
4 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
index 2e043cbb98..547a7d3a45 100644
--- a/hw/mips/mips_fulong2e.c
+++ b/hw/mips/mips_fulong2e.c
@@ -319,9 +319,8 @@ static void mips_fulong2e_init(MachineState *machine)
/* allocate RAM */
memory_region_allocate_system_memory(ram, NULL, "fulong2e.ram", ram_size);
- memory_region_init_ram(bios, NULL, "fulong2e.bios", BIOS_SIZE,
+ memory_region_init_rom(bios, NULL, "fulong2e.bios", BIOS_SIZE,
&error_fatal);
- memory_region_set_readonly(bios, true);
memory_region_add_subregion(address_space_mem, 0, ram);
memory_region_add_subregion(address_space_mem, 0x1fc00000LL, bios);
diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
index 66fd4d867d..cf47335ea5 100644
--- a/hw/mips/mips_jazz.c
+++ b/hw/mips/mips_jazz.c
@@ -195,9 +195,8 @@ static void mips_jazz_init(MachineState *machine,
machine->ram_size);
memory_region_add_subregion(address_space, 0, ram);
- memory_region_init_ram(bios, NULL, "mips_jazz.bios", MAGNUM_BIOS_SIZE,
+ memory_region_init_rom(bios, NULL, "mips_jazz.bios", MAGNUM_BIOS_SIZE,
&error_fatal);
- memory_region_set_readonly(bios, true);
memory_region_init_alias(bios2, NULL, "mips_jazz.bios", bios,
0, MAGNUM_BIOS_SIZE);
memory_region_add_subregion(address_space, 0x1fc00000LL, bios);
@@ -263,9 +262,8 @@ static void mips_jazz_init(MachineState *machine,
{
/* Simple ROM, so user doesn't have to provide one */
MemoryRegion *rom_mr = g_new(MemoryRegion, 1);
- memory_region_init_ram(rom_mr, NULL, "g364fb.rom", 0x80000,
+ memory_region_init_rom(rom_mr, NULL, "g364fb.rom", 0x80000,
&error_fatal);
- memory_region_set_readonly(rom_mr, true);
uint8_t *rom = memory_region_get_ram_ptr(rom_mr);
memory_region_add_subregion(address_space, 0x60000000, rom_mr);
rom[0] = 0x10; /* Mips G364 */
diff --git a/hw/mips/mips_mipssim.c b/hw/mips/mips_mipssim.c
index b934ca9d51..3fdbb21680 100644
--- a/hw/mips/mips_mipssim.c
+++ b/hw/mips/mips_mipssim.c
@@ -169,9 +169,8 @@ mips_mipssim_init(MachineState *machine)
/* Allocate RAM. */
memory_region_allocate_system_memory(ram, NULL, "mips_mipssim.ram",
ram_size);
- memory_region_init_ram(bios, NULL, "mips_mipssim.bios", BIOS_SIZE,
+ memory_region_init_rom(bios, NULL, "mips_mipssim.bios", BIOS_SIZE,
&error_fatal);
- memory_region_set_readonly(bios, true);
memory_region_add_subregion(address_space_mem, 0, ram);
diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c
index b2aec434c3..54b286ceee 100644
--- a/hw/mips/mips_r4k.c
+++ b/hw/mips/mips_r4k.c
@@ -241,9 +241,8 @@ void mips_r4k_init(MachineState *machine)
dinfo = drive_get(IF_PFLASH, 0, 0);
if ((bios_size > 0) && (bios_size <= BIOS_SIZE)) {
bios = g_new(MemoryRegion, 1);
- memory_region_init_ram(bios, NULL, "mips_r4k.bios", BIOS_SIZE,
+ memory_region_init_rom(bios, NULL, "mips_r4k.bios", BIOS_SIZE,
&error_fatal);
- memory_region_set_readonly(bios, true);
memory_region_add_subregion(get_system_memory(), 0x1fc00000, bios);
load_image_targphys(filename, 0x1fc00000, BIOS_SIZE);
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* Re: [PATCH RESEND v2 07/32] hw/mips: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 ` [PATCH RESEND v2 07/32] hw/mips: " Philippe Mathieu-Daudé
@ 2020-02-26 11:38 ` Aleksandar Markovic
0 siblings, 0 replies; 41+ messages in thread
From: Aleksandar Markovic @ 2020-02-26 11:38 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Peter Maydell, Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Mark Cave-Ayland, qemu-devel@nongnu.org, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Jean-Christophe Dubois,
qemu-block@nongnu.org, Magnus Damm, Max Reitz,
Hervé Poussineau, Joel Stanley, Marc-André Lureau,
Aleksandar Rikalo, Richard Henderson, Artyom Tarasenko,
Eduardo Habkost, Alistair Francis, Fabien Chouteau,
qemu-arm@nongnu.org, Peter Chubb, qemu-ppc@nongnu.org,
David Gibson, Kevin Wolf, qemu-riscv@nongnu.org, Igor Mitsyanko,
Bastian Koppelmann, Laurent Vivier, Subbaraya Sundeep,
Michael Walle, Palmer Dabbelt, Aleksandar Markovic, Paolo Bonzini,
Aurelien Jarno
[-- Attachment #1: Type: text/plain, Size: 4343 bytes --]
On Monday, February 24, 2020, Philippe Mathieu-Daudé <philmd@redhat.com>
wrote:
> This commit was produced with the Coccinelle script
> scripts/coccinelle/memory-region-housekeeping.cocci.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Will be applied to the next MIPS queue, planned to be sent in next few days.
> hw/mips/mips_fulong2e.c | 3 +--
> hw/mips/mips_jazz.c | 6 ++----
> hw/mips/mips_mipssim.c | 3 +--
> hw/mips/mips_r4k.c | 3 +--
> 4 files changed, 5 insertions(+), 10 deletions(-)
>
> diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c
> index 2e043cbb98..547a7d3a45 100644
> --- a/hw/mips/mips_fulong2e.c
> +++ b/hw/mips/mips_fulong2e.c
> @@ -319,9 +319,8 @@ static void mips_fulong2e_init(MachineState *machine)
>
> /* allocate RAM */
> memory_region_allocate_system_memory(ram, NULL, "fulong2e.ram",
> ram_size);
> - memory_region_init_ram(bios, NULL, "fulong2e.bios", BIOS_SIZE,
> + memory_region_init_rom(bios, NULL, "fulong2e.bios", BIOS_SIZE,
> &error_fatal);
> - memory_region_set_readonly(bios, true);
>
> memory_region_add_subregion(address_space_mem, 0, ram);
> memory_region_add_subregion(address_space_mem, 0x1fc00000LL, bios);
> diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c
> index 66fd4d867d..cf47335ea5 100644
> --- a/hw/mips/mips_jazz.c
> +++ b/hw/mips/mips_jazz.c
> @@ -195,9 +195,8 @@ static void mips_jazz_init(MachineState *machine,
> machine->ram_size);
> memory_region_add_subregion(address_space, 0, ram);
>
> - memory_region_init_ram(bios, NULL, "mips_jazz.bios", MAGNUM_BIOS_SIZE,
> + memory_region_init_rom(bios, NULL, "mips_jazz.bios", MAGNUM_BIOS_SIZE,
> &error_fatal);
> - memory_region_set_readonly(bios, true);
> memory_region_init_alias(bios2, NULL, "mips_jazz.bios", bios,
> 0, MAGNUM_BIOS_SIZE);
> memory_region_add_subregion(address_space, 0x1fc00000LL, bios);
> @@ -263,9 +262,8 @@ static void mips_jazz_init(MachineState *machine,
> {
> /* Simple ROM, so user doesn't have to provide one */
> MemoryRegion *rom_mr = g_new(MemoryRegion, 1);
> - memory_region_init_ram(rom_mr, NULL, "g364fb.rom", 0x80000,
> + memory_region_init_rom(rom_mr, NULL, "g364fb.rom", 0x80000,
> &error_fatal);
> - memory_region_set_readonly(rom_mr, true);
> uint8_t *rom = memory_region_get_ram_ptr(rom_mr);
> memory_region_add_subregion(address_space, 0x60000000,
> rom_mr);
> rom[0] = 0x10; /* Mips G364 */
> diff --git a/hw/mips/mips_mipssim.c b/hw/mips/mips_mipssim.c
> index b934ca9d51..3fdbb21680 100644
> --- a/hw/mips/mips_mipssim.c
> +++ b/hw/mips/mips_mipssim.c
> @@ -169,9 +169,8 @@ mips_mipssim_init(MachineState *machine)
> /* Allocate RAM. */
> memory_region_allocate_system_memory(ram, NULL, "mips_mipssim.ram",
> ram_size);
> - memory_region_init_ram(bios, NULL, "mips_mipssim.bios", BIOS_SIZE,
> + memory_region_init_rom(bios, NULL, "mips_mipssim.bios", BIOS_SIZE,
> &error_fatal);
> - memory_region_set_readonly(bios, true);
>
> memory_region_add_subregion(address_space_mem, 0, ram);
>
> diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c
> index b2aec434c3..54b286ceee 100644
> --- a/hw/mips/mips_r4k.c
> +++ b/hw/mips/mips_r4k.c
> @@ -241,9 +241,8 @@ void mips_r4k_init(MachineState *machine)
> dinfo = drive_get(IF_PFLASH, 0, 0);
> if ((bios_size > 0) && (bios_size <= BIOS_SIZE)) {
> bios = g_new(MemoryRegion, 1);
> - memory_region_init_ram(bios, NULL, "mips_r4k.bios", BIOS_SIZE,
> + memory_region_init_rom(bios, NULL, "mips_r4k.bios", BIOS_SIZE,
> &error_fatal);
> - memory_region_set_readonly(bios, true);
> memory_region_add_subregion(get_system_memory(), 0x1fc00000,
> bios);
>
> load_image_targphys(filename, 0x1fc00000, BIOS_SIZE);
> --
> 2.21.1
>
>
>
[-- Attachment #2: Type: text/html, Size: 5489 bytes --]
^ permalink raw reply [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 08/32] hw/m68k: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (6 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 07/32] hw/mips: " Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 09/32] hw/net: " Philippe Mathieu-Daudé
` (23 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/m68k/q800.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/hw/m68k/q800.c b/hw/m68k/q800.c
index 1e32363688..8083326d37 100644
--- a/hw/m68k/q800.c
+++ b/hw/m68k/q800.c
@@ -402,13 +402,12 @@ static void q800_init(MachineState *machine)
uint8_t *ptr;
/* allocate and load BIOS */
rom = g_malloc(sizeof(*rom));
- memory_region_init_ram(rom, NULL, "m68k_mac.rom", MACROM_SIZE,
+ memory_region_init_rom(rom, NULL, "m68k_mac.rom", MACROM_SIZE,
&error_abort);
if (bios_name == NULL) {
bios_name = MACROM_FILENAME;
}
filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
- memory_region_set_readonly(rom, true);
memory_region_add_subregion(get_system_memory(), MACROM_ADDR, rom);
/* Load MacROM binary */
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 09/32] hw/net: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (7 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 08/32] hw/m68k: " Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 10/32] hw/pci-host: " Philippe Mathieu-Daudé
` (22 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/net/dp8393x.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c
index a134d431ae..6bcdfe1a35 100644
--- a/hw/net/dp8393x.c
+++ b/hw/net/dp8393x.c
@@ -916,13 +916,12 @@ static void dp8393x_realize(DeviceState *dev, Error **errp)
s->watchdog = timer_new_ns(QEMU_CLOCK_VIRTUAL, dp8393x_watchdog, s);
s->regs[SONIC_SR] = 0x0004; /* only revision recognized by Linux */
- memory_region_init_ram(&s->prom, OBJECT(dev),
- "dp8393x-prom", SONIC_PROM_SIZE, &local_err);
+ memory_region_init_rom(&s->prom, OBJECT(dev), "dp8393x-prom",
+ SONIC_PROM_SIZE, &local_err);
if (local_err) {
error_propagate(errp, local_err);
return;
}
- memory_region_set_readonly(&s->prom, true);
prom = memory_region_get_ram_ptr(&s->prom);
checksum = 0;
for (i = 0; i < 6; i++) {
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 10/32] hw/pci-host: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (8 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 09/32] hw/net: " Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-25 0:23 ` David Gibson
2020-02-24 20:55 ` [PATCH RESEND v2 11/32] hw/ppc: " Philippe Mathieu-Daudé
` (21 subsequent siblings)
31 siblings, 1 reply; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/pci-host/prep.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c
index 1aff72bec6..1a02e9a670 100644
--- a/hw/pci-host/prep.c
+++ b/hw/pci-host/prep.c
@@ -325,9 +325,8 @@ static void raven_realize(PCIDevice *d, Error **errp)
d->config[0x0D] = 0x10; // latency_timer
d->config[0x34] = 0x00; // capabilities_pointer
- memory_region_init_ram_nomigrate(&s->bios, OBJECT(s), "bios", BIOS_SIZE,
- &error_fatal);
- memory_region_set_readonly(&s->bios, true);
+ memory_region_init_rom_nomigrate(&s->bios, OBJECT(s), "bios", BIOS_SIZE,
+ &error_fatal);
memory_region_add_subregion(get_system_memory(), (uint32_t)(-BIOS_SIZE),
&s->bios);
if (s->bios_name) {
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* Re: [PATCH RESEND v2 10/32] hw/pci-host: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 ` [PATCH RESEND v2 10/32] hw/pci-host: " Philippe Mathieu-Daudé
@ 2020-02-25 0:23 ` David Gibson
0 siblings, 0 replies; 41+ messages in thread
From: David Gibson @ 2020-02-25 0:23 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Peter Maydell, Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Mark Cave-Ayland, qemu-devel, KONRAD Frederic, Alistair Francis,
Edgar E. Iglesias, Max Reitz, qemu-block, Magnus Damm,
Hervé Poussineau, Joel Stanley, Palmer Dabbelt,
Aleksandar Rikalo, Artyom Tarasenko, Eduardo Habkost,
Jean-Christophe Dubois, Alistair Francis, Fabien Chouteau,
qemu-arm, Peter Chubb, Marc-André Lureau, Richard Henderson,
Kevin Wolf, qemu-riscv, Igor Mitsyanko, Bastian Koppelmann,
Laurent Vivier, Subbaraya Sundeep, Michael Walle, qemu-ppc,
Aleksandar Markovic, Paolo Bonzini, Aurelien Jarno
[-- Attachment #1: Type: text/plain, Size: 1409 bytes --]
On Mon, Feb 24, 2020 at 09:55:11PM +0100, Philippe Mathieu-Daudé wrote:
> This commit was produced with the Coccinelle script
> scripts/coccinelle/memory-region-housekeeping.cocci.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> hw/pci-host/prep.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c
> index 1aff72bec6..1a02e9a670 100644
> --- a/hw/pci-host/prep.c
> +++ b/hw/pci-host/prep.c
> @@ -325,9 +325,8 @@ static void raven_realize(PCIDevice *d, Error **errp)
> d->config[0x0D] = 0x10; // latency_timer
> d->config[0x34] = 0x00; // capabilities_pointer
>
> - memory_region_init_ram_nomigrate(&s->bios, OBJECT(s), "bios", BIOS_SIZE,
> - &error_fatal);
> - memory_region_set_readonly(&s->bios, true);
> + memory_region_init_rom_nomigrate(&s->bios, OBJECT(s), "bios", BIOS_SIZE,
> + &error_fatal);
> memory_region_add_subregion(get_system_memory(), (uint32_t)(-BIOS_SIZE),
> &s->bios);
> if (s->bios_name) {
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 11/32] hw/ppc: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (9 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 10/32] hw/pci-host: " Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-25 0:23 ` David Gibson
2020-02-24 20:55 ` [PATCH RESEND v2 12/32] hw/riscv: " Philippe Mathieu-Daudé
` (20 subsequent siblings)
31 siblings, 1 reply; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/ppc/mac_newworld.c | 3 +--
hw/ppc/mac_oldworld.c | 3 +--
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
index 464d012103..566413e479 100644
--- a/hw/ppc/mac_newworld.c
+++ b/hw/ppc/mac_newworld.c
@@ -156,13 +156,12 @@ static void ppc_core99_init(MachineState *machine)
memory_region_add_subregion(get_system_memory(), 0, ram);
/* allocate and load BIOS */
- memory_region_init_ram(bios, NULL, "ppc_core99.bios", BIOS_SIZE,
+ memory_region_init_rom(bios, NULL, "ppc_core99.bios", BIOS_SIZE,
&error_fatal);
if (bios_name == NULL)
bios_name = PROM_FILENAME;
filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
- memory_region_set_readonly(bios, true);
memory_region_add_subregion(get_system_memory(), PROM_ADDR, bios);
/* Load OpenBIOS (ELF) */
diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
index 7318d7e9b4..8b22ff60b8 100644
--- a/hw/ppc/mac_oldworld.c
+++ b/hw/ppc/mac_oldworld.c
@@ -132,13 +132,12 @@ static void ppc_heathrow_init(MachineState *machine)
memory_region_add_subregion(sysmem, 0, ram);
/* allocate and load BIOS */
- memory_region_init_ram(bios, NULL, "ppc_heathrow.bios", BIOS_SIZE,
+ memory_region_init_rom(bios, NULL, "ppc_heathrow.bios", BIOS_SIZE,
&error_fatal);
if (bios_name == NULL)
bios_name = PROM_FILENAME;
filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
- memory_region_set_readonly(bios, true);
memory_region_add_subregion(sysmem, PROM_ADDR, bios);
/* Load OpenBIOS (ELF) */
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* Re: [PATCH RESEND v2 11/32] hw/ppc: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 ` [PATCH RESEND v2 11/32] hw/ppc: " Philippe Mathieu-Daudé
@ 2020-02-25 0:23 ` David Gibson
0 siblings, 0 replies; 41+ messages in thread
From: David Gibson @ 2020-02-25 0:23 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Peter Maydell, Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Mark Cave-Ayland, qemu-devel, KONRAD Frederic, Alistair Francis,
Edgar E. Iglesias, Max Reitz, qemu-block, Magnus Damm,
Hervé Poussineau, Joel Stanley, Palmer Dabbelt,
Aleksandar Rikalo, Artyom Tarasenko, Eduardo Habkost,
Jean-Christophe Dubois, Alistair Francis, Fabien Chouteau,
qemu-arm, Peter Chubb, Marc-André Lureau, Richard Henderson,
Kevin Wolf, qemu-riscv, Igor Mitsyanko, Bastian Koppelmann,
Laurent Vivier, Subbaraya Sundeep, Michael Walle, qemu-ppc,
Aleksandar Markovic, Paolo Bonzini, Aurelien Jarno
[-- Attachment #1: Type: text/plain, Size: 2301 bytes --]
On Mon, Feb 24, 2020 at 09:55:12PM +0100, Philippe Mathieu-Daudé wrote:
> This commit was produced with the Coccinelle script
> scripts/coccinelle/memory-region-housekeeping.cocci.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> hw/ppc/mac_newworld.c | 3 +--
> hw/ppc/mac_oldworld.c | 3 +--
> 2 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
> index 464d012103..566413e479 100644
> --- a/hw/ppc/mac_newworld.c
> +++ b/hw/ppc/mac_newworld.c
> @@ -156,13 +156,12 @@ static void ppc_core99_init(MachineState *machine)
> memory_region_add_subregion(get_system_memory(), 0, ram);
>
> /* allocate and load BIOS */
> - memory_region_init_ram(bios, NULL, "ppc_core99.bios", BIOS_SIZE,
> + memory_region_init_rom(bios, NULL, "ppc_core99.bios", BIOS_SIZE,
> &error_fatal);
>
> if (bios_name == NULL)
> bios_name = PROM_FILENAME;
> filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
> - memory_region_set_readonly(bios, true);
> memory_region_add_subregion(get_system_memory(), PROM_ADDR, bios);
>
> /* Load OpenBIOS (ELF) */
> diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
> index 7318d7e9b4..8b22ff60b8 100644
> --- a/hw/ppc/mac_oldworld.c
> +++ b/hw/ppc/mac_oldworld.c
> @@ -132,13 +132,12 @@ static void ppc_heathrow_init(MachineState *machine)
> memory_region_add_subregion(sysmem, 0, ram);
>
> /* allocate and load BIOS */
> - memory_region_init_ram(bios, NULL, "ppc_heathrow.bios", BIOS_SIZE,
> + memory_region_init_rom(bios, NULL, "ppc_heathrow.bios", BIOS_SIZE,
> &error_fatal);
>
> if (bios_name == NULL)
> bios_name = PROM_FILENAME;
> filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
> - memory_region_set_readonly(bios, true);
> memory_region_add_subregion(sysmem, PROM_ADDR, bios);
>
> /* Load OpenBIOS (ELF) */
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 12/32] hw/riscv: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (10 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 11/32] hw/ppc: " Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 13/32] hw/sh4: " Philippe Mathieu-Daudé
` (19 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/riscv/sifive_e.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/hw/riscv/sifive_e.c b/hw/riscv/sifive_e.c
index 8a6b0348df..6f6360a619 100644
--- a/hw/riscv/sifive_e.c
+++ b/hw/riscv/sifive_e.c
@@ -208,9 +208,8 @@ static void riscv_sifive_e_soc_realize(DeviceState *dev, Error **errp)
memmap[SIFIVE_E_PWM2].base, memmap[SIFIVE_E_PWM2].size);
/* Flash memory */
- memory_region_init_ram(&s->xip_mem, NULL, "riscv.sifive.e.xip",
- memmap[SIFIVE_E_XIP].size, &error_fatal);
- memory_region_set_readonly(&s->xip_mem, true);
+ memory_region_init_rom(&s->xip_mem, NULL, "riscv.sifive.e.xip",
+ memmap[SIFIVE_E_XIP].size, &error_fatal);
memory_region_add_subregion(sys_mem, memmap[SIFIVE_E_XIP].base,
&s->xip_mem);
}
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 13/32] hw/sh4: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (11 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 12/32] hw/riscv: " Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 14/32] hw/sparc: " Philippe Mathieu-Daudé
` (18 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/sh4/shix.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/hw/sh4/shix.c b/hw/sh4/shix.c
index 2fc2915428..56c7d29bf5 100644
--- a/hw/sh4/shix.c
+++ b/hw/sh4/shix.c
@@ -53,8 +53,7 @@ static void shix_init(MachineState *machine)
cpu = SUPERH_CPU(cpu_create(machine->cpu_type));
/* Allocate memory space */
- memory_region_init_ram(rom, NULL, "shix.rom", 0x4000, &error_fatal);
- memory_region_set_readonly(rom, true);
+ memory_region_init_rom(rom, NULL, "shix.rom", 0x4000, &error_fatal);
memory_region_add_subregion(sysmem, 0x00000000, rom);
memory_region_init_ram(&sdram[0], NULL, "shix.sdram1", 0x01000000,
&error_fatal);
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 14/32] hw/sparc: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (12 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 13/32] hw/sh4: " Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-25 10:32 ` KONRAD Frederic
2020-02-24 20:55 ` [PATCH RESEND v2 15/32] scripts/cocci: Patch to detect potential use of memory_region_init_rom Philippe Mathieu-Daudé
` (17 subsequent siblings)
31 siblings, 1 reply; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/sparc/leon3.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
index f5a087dd86..23d0bdbd71 100644
--- a/hw/sparc/leon3.c
+++ b/hw/sparc/leon3.c
@@ -256,8 +256,7 @@ static void leon3_generic_hw_init(MachineState *machine)
/* Allocate BIOS */
prom_size = 8 * MiB;
- memory_region_init_ram(prom, NULL, "Leon3.bios", prom_size, &error_fatal);
- memory_region_set_readonly(prom, true);
+ memory_region_init_rom(prom, NULL, "Leon3.bios", prom_size, &error_fatal);
memory_region_add_subregion(address_space_mem, LEON3_PROM_OFFSET, prom);
/* Load boot prom */
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* Re: [PATCH RESEND v2 14/32] hw/sparc: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 ` [PATCH RESEND v2 14/32] hw/sparc: " Philippe Mathieu-Daudé
@ 2020-02-25 10:32 ` KONRAD Frederic
0 siblings, 0 replies; 41+ messages in thread
From: KONRAD Frederic @ 2020-02-25 10:32 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, QEMU Developers
Le 2/24/20 à 9:55 PM, Philippe Mathieu-Daudé a écrit :
> This commit was produced with the Coccinelle script
> scripts/coccinelle/memory-region-housekeeping.cocci.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Looks good to me.
Reviewed-by: KONRAD Frederic <frederic.konrad@adacore.com>
Thanks,
Fred
> ---
> hw/sparc/leon3.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
> index f5a087dd86..23d0bdbd71 100644
> --- a/hw/sparc/leon3.c
> +++ b/hw/sparc/leon3.c
> @@ -256,8 +256,7 @@ static void leon3_generic_hw_init(MachineState *machine)
>
> /* Allocate BIOS */
> prom_size = 8 * MiB;
> - memory_region_init_ram(prom, NULL, "Leon3.bios", prom_size, &error_fatal);
> - memory_region_set_readonly(prom, true);
> + memory_region_init_rom(prom, NULL, "Leon3.bios", prom_size, &error_fatal);
> memory_region_add_subregion(address_space_mem, LEON3_PROM_OFFSET, prom);
>
> /* Load boot prom */
>
^ permalink raw reply [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 15/32] scripts/cocci: Patch to detect potential use of memory_region_init_rom
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (13 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 14/32] hw/sparc: " Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 16/32] hw/arm/stm32: Use memory_region_init_rom() with read-only regions Philippe Mathieu-Daudé
` (16 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
Add a semantic patch to detect potential replacement of
memory_region_init_ram(readonly) by memory_region_init_rom().
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
.../memory-region-housekeeping.cocci | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/scripts/coccinelle/memory-region-housekeeping.cocci b/scripts/coccinelle/memory-region-housekeeping.cocci
index ee3923d369..9cdde71bb1 100644
--- a/scripts/coccinelle/memory-region-housekeeping.cocci
+++ b/scripts/coccinelle/memory-region-housekeeping.cocci
@@ -29,6 +29,25 @@ symbol true;
)
+@possible_memory_region_init_rom@
+expression E1, E2, E3, E4, E5;
+position p;
+@@
+(
+ memory_region_init_ram@p(E1, E2, E3, E4, E5);
+ ...
+ memory_region_set_readonly(E1, true);
+|
+ memory_region_init_ram_nomigrate@p(E1, E2, E3, E4, E5);
+ ...
+ memory_region_set_readonly(E1, true);
+)
+@script:python@
+p << possible_memory_region_init_rom.p;
+@@
+cocci.print_main("potential use of memory_region_init_rom*() in ", p)
+
+
// Replace by-hand memory_region_init_ram_nomigrate/vmstate_register_ram
// code sequences with use of the new memory_region_init_ram function.
// Similarly for the _rom and _rom_device functions.
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 16/32] hw/arm/stm32: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (14 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 15/32] scripts/cocci: Patch to detect potential use of memory_region_init_rom Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 17/32] hw/ppc/ppc405: " Philippe Mathieu-Daudé
` (15 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
The scripts/coccinelle/memory-region-housekeeping.cocci reported:
* TODO [[view:./hw/arm/stm32f205_soc.c::face=ovl-face1::linb=96::colb=4::cole=26][potential use of memory_region_init_rom*() in ./hw/arm/stm32f205_soc.c::96]]
* TODO [[view:./hw/arm/stm32f405_soc.c::face=ovl-face1::linb=98::colb=4::cole=26][potential use of memory_region_init_rom*() in ./hw/arm/stm32f405_soc.c::98]]
We can indeed replace the memory_region_init_ram() and
memory_region_set_readonly() calls by memory_region_init_rom().
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/arm/stm32f205_soc.c | 4 +---
hw/arm/stm32f405_soc.c | 4 +---
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/hw/arm/stm32f205_soc.c b/hw/arm/stm32f205_soc.c
index 627fd446f5..2de56275b7 100644
--- a/hw/arm/stm32f205_soc.c
+++ b/hw/arm/stm32f205_soc.c
@@ -93,12 +93,10 @@ static void stm32f205_soc_realize(DeviceState *dev_soc, Error **errp)
MemoryRegion *flash = g_new(MemoryRegion, 1);
MemoryRegion *flash_alias = g_new(MemoryRegion, 1);
- memory_region_init_ram(flash, NULL, "STM32F205.flash", FLASH_SIZE,
+ memory_region_init_rom(flash, NULL, "STM32F205.flash", FLASH_SIZE,
&error_fatal);
memory_region_init_alias(flash_alias, NULL, "STM32F205.flash.alias",
flash, 0, FLASH_SIZE);
-
- memory_region_set_readonly(flash, true);
memory_region_set_readonly(flash_alias, true);
memory_region_add_subregion(system_memory, FLASH_BASE_ADDRESS, flash);
diff --git a/hw/arm/stm32f405_soc.c b/hw/arm/stm32f405_soc.c
index 9bcad97853..b8fca13f95 100644
--- a/hw/arm/stm32f405_soc.c
+++ b/hw/arm/stm32f405_soc.c
@@ -95,7 +95,7 @@ static void stm32f405_soc_realize(DeviceState *dev_soc, Error **errp)
Error *err = NULL;
int i;
- memory_region_init_ram(&s->flash, NULL, "STM32F405.flash", FLASH_SIZE,
+ memory_region_init_rom(&s->flash, NULL, "STM32F405.flash", FLASH_SIZE,
&err);
if (err != NULL) {
error_propagate(errp, err);
@@ -103,8 +103,6 @@ static void stm32f405_soc_realize(DeviceState *dev_soc, Error **errp)
}
memory_region_init_alias(&s->flash_alias, NULL, "STM32F405.flash.alias",
&s->flash, 0, FLASH_SIZE);
-
- memory_region_set_readonly(&s->flash, true);
memory_region_set_readonly(&s->flash_alias, true);
memory_region_add_subregion(system_memory, FLASH_BASE_ADDRESS, &s->flash);
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 17/32] hw/ppc/ppc405: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (15 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 16/32] hw/arm/stm32: Use memory_region_init_rom() with read-only regions Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-25 0:24 ` David Gibson
2020-02-24 20:55 ` [PATCH RESEND v2 18/32] hw/i386/pc_sysfw: Simplify using memory_region_init_alias() Philippe Mathieu-Daudé
` (14 subsequent siblings)
31 siblings, 1 reply; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
The scripts/coccinelle/memory-region-housekeeping.cocci reported:
* TODO [[view:./hw/ppc/ppc405_boards.c::face=ovl-face1::linb=195::colb=8::cole=30][potential use of memory_region_init_rom*() in ./hw/ppc/ppc405_boards.c::195]]
* TODO [[view:./hw/ppc/ppc405_boards.c::face=ovl-face1::linb=464::colb=8::cole=30][potential use of memory_region_init_rom*() in ./hw/ppc/ppc405_boards.c::464]]
We can indeed replace the memory_region_init_ram() and
memory_region_set_readonly() calls by memory_region_init_rom().
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/ppc/ppc405_boards.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c
index 1f721feed6..5afe023253 100644
--- a/hw/ppc/ppc405_boards.c
+++ b/hw/ppc/ppc405_boards.c
@@ -192,7 +192,7 @@ static void ref405ep_init(MachineState *machine)
#endif
{
bios = g_new(MemoryRegion, 1);
- memory_region_init_ram(bios, NULL, "ef405ep.bios", BIOS_SIZE,
+ memory_region_init_rom(bios, NULL, "ef405ep.bios", BIOS_SIZE,
&error_fatal);
if (bios_name == NULL)
@@ -216,7 +216,6 @@ static void ref405ep_init(MachineState *machine)
/* Avoid an uninitialized variable warning */
bios_size = -1;
}
- memory_region_set_readonly(bios, true);
}
/* Register FPGA */
ref405ep_fpga_init(sysmem, 0xF0300000);
@@ -461,7 +460,7 @@ static void taihu_405ep_init(MachineState *machine)
if (bios_name == NULL)
bios_name = BIOS_FILENAME;
bios = g_new(MemoryRegion, 1);
- memory_region_init_ram(bios, NULL, "taihu_405ep.bios", BIOS_SIZE,
+ memory_region_init_rom(bios, NULL, "taihu_405ep.bios", BIOS_SIZE,
&error_fatal);
filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
if (filename) {
@@ -479,7 +478,6 @@ static void taihu_405ep_init(MachineState *machine)
error_report("Could not load PowerPC BIOS '%s'", bios_name);
exit(1);
}
- memory_region_set_readonly(bios, true);
}
/* Register Linux flash */
dinfo = drive_get(IF_PFLASH, 0, fl_idx);
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* Re: [PATCH RESEND v2 17/32] hw/ppc/ppc405: Use memory_region_init_rom() with read-only regions
2020-02-24 20:55 ` [PATCH RESEND v2 17/32] hw/ppc/ppc405: " Philippe Mathieu-Daudé
@ 2020-02-25 0:24 ` David Gibson
0 siblings, 0 replies; 41+ messages in thread
From: David Gibson @ 2020-02-25 0:24 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Peter Maydell, Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Mark Cave-Ayland, qemu-devel, KONRAD Frederic, Alistair Francis,
Edgar E. Iglesias, Max Reitz, qemu-block, Magnus Damm,
Hervé Poussineau, Joel Stanley, Palmer Dabbelt,
Aleksandar Rikalo, Artyom Tarasenko, Eduardo Habkost,
Jean-Christophe Dubois, Alistair Francis, Fabien Chouteau,
qemu-arm, Peter Chubb, Marc-André Lureau, Richard Henderson,
Kevin Wolf, qemu-riscv, Igor Mitsyanko, Bastian Koppelmann,
Laurent Vivier, Subbaraya Sundeep, Michael Walle, qemu-ppc,
Aleksandar Markovic, Paolo Bonzini, Aurelien Jarno
[-- Attachment #1: Type: text/plain, Size: 2718 bytes --]
On Mon, Feb 24, 2020 at 09:55:18PM +0100, Philippe Mathieu-Daudé wrote:
> The scripts/coccinelle/memory-region-housekeeping.cocci reported:
> * TODO [[view:./hw/ppc/ppc405_boards.c::face=ovl-face1::linb=195::colb=8::cole=30][potential use of memory_region_init_rom*() in ./hw/ppc/ppc405_boards.c::195]]
> * TODO [[view:./hw/ppc/ppc405_boards.c::face=ovl-face1::linb=464::colb=8::cole=30][potential use of memory_region_init_rom*() in ./hw/ppc/ppc405_boards.c::464]]
>
> We can indeed replace the memory_region_init_ram() and
> memory_region_set_readonly() calls by memory_region_init_rom().
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> hw/ppc/ppc405_boards.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c
> index 1f721feed6..5afe023253 100644
> --- a/hw/ppc/ppc405_boards.c
> +++ b/hw/ppc/ppc405_boards.c
> @@ -192,7 +192,7 @@ static void ref405ep_init(MachineState *machine)
> #endif
> {
> bios = g_new(MemoryRegion, 1);
> - memory_region_init_ram(bios, NULL, "ef405ep.bios", BIOS_SIZE,
> + memory_region_init_rom(bios, NULL, "ef405ep.bios", BIOS_SIZE,
> &error_fatal);
>
> if (bios_name == NULL)
> @@ -216,7 +216,6 @@ static void ref405ep_init(MachineState *machine)
> /* Avoid an uninitialized variable warning */
> bios_size = -1;
> }
> - memory_region_set_readonly(bios, true);
> }
> /* Register FPGA */
> ref405ep_fpga_init(sysmem, 0xF0300000);
> @@ -461,7 +460,7 @@ static void taihu_405ep_init(MachineState *machine)
> if (bios_name == NULL)
> bios_name = BIOS_FILENAME;
> bios = g_new(MemoryRegion, 1);
> - memory_region_init_ram(bios, NULL, "taihu_405ep.bios", BIOS_SIZE,
> + memory_region_init_rom(bios, NULL, "taihu_405ep.bios", BIOS_SIZE,
> &error_fatal);
> filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
> if (filename) {
> @@ -479,7 +478,6 @@ static void taihu_405ep_init(MachineState *machine)
> error_report("Could not load PowerPC BIOS '%s'", bios_name);
> exit(1);
> }
> - memory_region_set_readonly(bios, true);
> }
> /* Register Linux flash */
> dinfo = drive_get(IF_PFLASH, 0, fl_idx);
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 18/32] hw/i386/pc_sysfw: Simplify using memory_region_init_alias()
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (16 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 17/32] hw/ppc/ppc405: " Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-25 10:05 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 19/32] hw/i386/pc_sysfw: Remove unused 'ram_size' argument Philippe Mathieu-Daudé
` (13 subsequent siblings)
31 siblings, 1 reply; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
The scripts/coccinelle/memory-region-housekeeping.cocci reported:
* TODO [[view:hw/i386/pc_sysfw.c::face=ovl-face1::linb=67::colb=4::cole=26][potential use of memory_region_init_rom*() in hw/i386/pc_sysfw.c::67]]
pc_isa_bios_init() does a manual copy of a part of the BIOS,
from a read-only region. We can simplify by directly aliasing
the same part.
Before:
(qemu) info mtree
memory-region: system
0000000000000000-ffffffffffffffff (prio 0, i/o): system
0000000000000000-0000000007ffffff (prio 0, ram): alias ram-below-4g @pc.ram 0000000000000000-0000000007ffffff
0000000000000000-ffffffffffffffff (prio -1, i/o): pci
00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
00000000000e0000-00000000000fffff (prio 1, rom): isa-bios
...
00000000fff00000-00000000ffffffff (prio 0, romd): system.flash0
After:
(qemu) info mtree
memory-region: system
0000000000000000-ffffffffffffffff (prio 0, i/o): system
0000000000000000-0000000007ffffff (prio 0, ram): alias ram-below-4g @pc.ram 0000000000000000-0000000007ffffff
0000000000000000-ffffffffffffffff (prio -1, i/o): pci
00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
00000000000e0000-00000000000fffff (prio 1, romd): alias isa-bios @system.flash0 00000000000e0000-00000000000fffff
...
00000000fff00000-00000000ffffffff (prio 0, romd): system.flash0
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/i386/pc_sysfw.c | 24 ++++++------------------
1 file changed, 6 insertions(+), 18 deletions(-)
diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c
index f5f3f466b0..e864c09ea8 100644
--- a/hw/i386/pc_sysfw.c
+++ b/hw/i386/pc_sysfw.c
@@ -54,31 +54,19 @@ static void pc_isa_bios_init(MemoryRegion *rom_memory,
MemoryRegion *flash_mem,
int ram_size)
{
- int isa_bios_size;
- MemoryRegion *isa_bios;
- uint64_t flash_size;
- void *flash_ptr, *isa_bios_ptr;
-
- flash_size = memory_region_size(flash_mem);
+ uint64_t isa_bios_size;
+ MemoryRegion *isa_bios = g_new(MemoryRegion, 1);
+ uint64_t flash_size = memory_region_size(flash_mem);
/* map the last 128KB of the BIOS in ISA space */
isa_bios_size = MIN(flash_size, 128 * KiB);
- isa_bios = g_malloc(sizeof(*isa_bios));
- memory_region_init_ram(isa_bios, NULL, "isa-bios", isa_bios_size,
- &error_fatal);
+ memory_region_init_alias(isa_bios, NULL, "isa-bios", flash_mem,
+ flash_size - isa_bios_size,
+ isa_bios_size);
memory_region_add_subregion_overlap(rom_memory,
0x100000 - isa_bios_size,
isa_bios,
1);
-
- /* copy ISA rom image from top of flash memory */
- flash_ptr = memory_region_get_ram_ptr(flash_mem);
- isa_bios_ptr = memory_region_get_ram_ptr(isa_bios);
- memcpy(isa_bios_ptr,
- ((uint8_t*)flash_ptr) + (flash_size - isa_bios_size),
- isa_bios_size);
-
- memory_region_set_readonly(isa_bios, true);
}
static PFlashCFI01 *pc_pflash_create(PCMachineState *pcms,
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* Re: [PATCH RESEND v2 18/32] hw/i386/pc_sysfw: Simplify using memory_region_init_alias()
2020-02-24 20:55 ` [PATCH RESEND v2 18/32] hw/i386/pc_sysfw: Simplify using memory_region_init_alias() Philippe Mathieu-Daudé
@ 2020-02-25 10:05 ` Philippe Mathieu-Daudé
2020-02-25 12:39 ` Paolo Bonzini
0 siblings, 1 reply; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-25 10:05 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell, Dr. David Alan Gilbert
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Mark Cave-Ayland, KONRAD Frederic, Alistair Francis,
Edgar E. Iglesias, Subbaraya Sundeep, qemu-block, Magnus Damm,
Hervé Poussineau, Joel Stanley, Marc-André Lureau,
Aleksandar Rikalo, David Gibson, Artyom Tarasenko,
Eduardo Habkost, Jean-Christophe Dubois, Alistair Francis,
Fabien Chouteau, qemu-arm, Peter Chubb, Palmer Dabbelt,
Richard Henderson, Kevin Wolf, qemu-riscv, Igor Mitsyanko,
Bastian Koppelmann, Laurent Vivier, Max Reitz, Michael Walle,
qemu-ppc, Aleksandar Markovic, Aurelien Jarno
On 2/24/20 9:55 PM, Philippe Mathieu-Daudé wrote:
> The scripts/coccinelle/memory-region-housekeeping.cocci reported:
> * TODO [[view:hw/i386/pc_sysfw.c::face=ovl-face1::linb=67::colb=4::cole=26][potential use of memory_region_init_rom*() in hw/i386/pc_sysfw.c::67]]
>
> pc_isa_bios_init() does a manual copy of a part of the BIOS,
> from a read-only region. We can simplify by directly aliasing
> the same part.
>
> Before:
>
> (qemu) info mtree
> memory-region: system
> 0000000000000000-ffffffffffffffff (prio 0, i/o): system
> 0000000000000000-0000000007ffffff (prio 0, ram): alias ram-below-4g @pc.ram 0000000000000000-0000000007ffffff
> 0000000000000000-ffffffffffffffff (prio -1, i/o): pci
> 00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
> 00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
> 00000000000e0000-00000000000fffff (prio 1, rom): isa-bios
> ...
> 00000000fff00000-00000000ffffffff (prio 0, romd): system.flash0
>
> After:
>
> (qemu) info mtree
> memory-region: system
> 0000000000000000-ffffffffffffffff (prio 0, i/o): system
> 0000000000000000-0000000007ffffff (prio 0, ram): alias ram-below-4g @pc.ram 0000000000000000-0000000007ffffff
> 0000000000000000-ffffffffffffffff (prio -1, i/o): pci
> 00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
> 00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
> 00000000000e0000-00000000000fffff (prio 1, romd): alias isa-bios @system.flash0 00000000000e0000-00000000000fffff
> ...
> 00000000fff00000-00000000ffffffff (prio 0, romd): system.flash0
IIUC migrating old -> new is OK, the previous ROM copy is discarded.
What about new -> old, does it require specific handling? Do we care?
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> hw/i386/pc_sysfw.c | 24 ++++++------------------
> 1 file changed, 6 insertions(+), 18 deletions(-)
>
> diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c
> index f5f3f466b0..e864c09ea8 100644
> --- a/hw/i386/pc_sysfw.c
> +++ b/hw/i386/pc_sysfw.c
> @@ -54,31 +54,19 @@ static void pc_isa_bios_init(MemoryRegion *rom_memory,
> MemoryRegion *flash_mem,
> int ram_size)
> {
> - int isa_bios_size;
> - MemoryRegion *isa_bios;
> - uint64_t flash_size;
> - void *flash_ptr, *isa_bios_ptr;
> -
> - flash_size = memory_region_size(flash_mem);
> + uint64_t isa_bios_size;
> + MemoryRegion *isa_bios = g_new(MemoryRegion, 1);
> + uint64_t flash_size = memory_region_size(flash_mem);
>
> /* map the last 128KB of the BIOS in ISA space */
> isa_bios_size = MIN(flash_size, 128 * KiB);
> - isa_bios = g_malloc(sizeof(*isa_bios));
> - memory_region_init_ram(isa_bios, NULL, "isa-bios", isa_bios_size,
> - &error_fatal);
> + memory_region_init_alias(isa_bios, NULL, "isa-bios", flash_mem,
> + flash_size - isa_bios_size,
> + isa_bios_size);
> memory_region_add_subregion_overlap(rom_memory,
> 0x100000 - isa_bios_size,
> isa_bios,
> 1);
> -
> - /* copy ISA rom image from top of flash memory */
> - flash_ptr = memory_region_get_ram_ptr(flash_mem);
> - isa_bios_ptr = memory_region_get_ram_ptr(isa_bios);
> - memcpy(isa_bios_ptr,
> - ((uint8_t*)flash_ptr) + (flash_size - isa_bios_size),
> - isa_bios_size);
> -
> - memory_region_set_readonly(isa_bios, true);
> }
>
> static PFlashCFI01 *pc_pflash_create(PCMachineState *pcms,
>
^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: [PATCH RESEND v2 18/32] hw/i386/pc_sysfw: Simplify using memory_region_init_alias()
2020-02-25 10:05 ` Philippe Mathieu-Daudé
@ 2020-02-25 12:39 ` Paolo Bonzini
0 siblings, 0 replies; 41+ messages in thread
From: Paolo Bonzini @ 2020-02-25 12:39 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel, Peter Maydell,
Dr. David Alan Gilbert
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Mark Cave-Ayland, KONRAD Frederic, Alistair Francis,
Edgar E. Iglesias, Subbaraya Sundeep, qemu-block, Magnus Damm,
Hervé Poussineau, Joel Stanley, Marc-André Lureau,
Aleksandar Rikalo, David Gibson, Artyom Tarasenko,
Eduardo Habkost, Jean-Christophe Dubois, Alistair Francis,
Fabien Chouteau, qemu-arm, Peter Chubb, Palmer Dabbelt,
Richard Henderson, Kevin Wolf, qemu-riscv, Igor Mitsyanko,
Bastian Koppelmann, Laurent Vivier, Max Reitz, Michael Walle,
qemu-ppc, Aleksandar Markovic, Aurelien Jarno
On 25/02/20 11:05, Philippe Mathieu-Daudé wrote:
>>
>> pc_isa_bios_init() does a manual copy of a part of the BIOS,
>> from a read-only region. We can simplify by directly aliasing
>> the same part.
>>
>> Before:
>>
>> (qemu) info mtree
>> memory-region: system
>> 0000000000000000-ffffffffffffffff (prio 0, i/o): system
>> 0000000000000000-0000000007ffffff (prio 0, ram): alias
>> ram-below-4g @pc.ram 0000000000000000-0000000007ffffff
>> 0000000000000000-ffffffffffffffff (prio -1, i/o): pci
>> 00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
>> 00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
>> 00000000000e0000-00000000000fffff (prio 1, rom): isa-bios
>> ...
>> 00000000fff00000-00000000ffffffff (prio 0, romd): system.flash0
>>
>> After:
>>
>> (qemu) info mtree
>> memory-region: system
>> 0000000000000000-ffffffffffffffff (prio 0, i/o): system
>> 0000000000000000-0000000007ffffff (prio 0, ram): alias
>> ram-below-4g @pc.ram 0000000000000000-0000000007ffffff
>> 0000000000000000-ffffffffffffffff (prio -1, i/o): pci
>> 00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
>> 00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
>> 00000000000e0000-00000000000fffff (prio 1, romd): alias
>> isa-bios @system.flash0 00000000000e0000-00000000000fffff
>> ...
>> 00000000fff00000-00000000ffffffff (prio 0, romd): system.flash0
>
> IIUC migrating old -> new is OK, the previous ROM copy is discarded.
>
> What about new -> old, does it require specific handling? Do we care?
Old->new is broken because the "isa-bios" memory region is not found.
qemu-system-x86_64: Unknown ramblock "isa-bios", cannot accept migration
qemu-system-x86_64: error while loading state for instance 0x0 of device 'ram'
qemu-system-x86_64: load of migration failed: Invalid argument
Paolo
^ permalink raw reply [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 19/32] hw/i386/pc_sysfw: Remove unused 'ram_size' argument
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (17 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 18/32] hw/i386/pc_sysfw: Simplify using memory_region_init_alias() Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 20/32] scripts/cocci: Patch to remove unnecessary memory_region_set_readonly() Philippe Mathieu-Daudé
` (12 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, qemu-trivial, Magnus Damm, Hervé Poussineau,
Joel Stanley, Marc-André Lureau, Aleksandar Rikalo,
David Gibson, Artyom Tarasenko, Eduardo Habkost,
Jean-Christophe Dubois, Alistair Francis, Fabien Chouteau,
qemu-arm, Peter Chubb, Palmer Dabbelt, Richard Henderson,
Kevin Wolf, qemu-riscv, Igor Mitsyanko, Bastian Koppelmann,
Laurent Vivier, Max Reitz, Michael Walle, qemu-ppc,
Aleksandar Markovic, Aurelien Jarno
While named 'ram_size', this argument holds the size of the
flash. Since it is unused, remove it.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
Cc: qemu-trivial@nongnu.org
hw/i386/pc_sysfw.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c
index e864c09ea8..07b35ee9d9 100644
--- a/hw/i386/pc_sysfw.c
+++ b/hw/i386/pc_sysfw.c
@@ -51,8 +51,7 @@
#define FLASH_SECTOR_SIZE 4096
static void pc_isa_bios_init(MemoryRegion *rom_memory,
- MemoryRegion *flash_mem,
- int ram_size)
+ MemoryRegion *flash_mem)
{
uint64_t isa_bios_size;
MemoryRegion *isa_bios = g_new(MemoryRegion, 1);
@@ -182,7 +181,7 @@ static void pc_system_flash_map(PCMachineState *pcms,
if (i == 0) {
flash_mem = pflash_cfi01_get_memory(system_flash);
- pc_isa_bios_init(rom_memory, flash_mem, size);
+ pc_isa_bios_init(rom_memory, flash_mem);
/* Encrypt the pflash boot ROM */
if (kvm_memcrypt_enabled()) {
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 20/32] scripts/cocci: Patch to remove unnecessary memory_region_set_readonly()
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (18 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 19/32] hw/i386/pc_sysfw: Remove unused 'ram_size' argument Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 21/32] hw/arm: Remove unnecessary memory_region_set_readonly() on ROM alias Philippe Mathieu-Daudé
` (11 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
Add a semantic patch to remove memory_region_set_readonly() calls
on ROM memory regions.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
.../coccinelle/memory-region-housekeeping.cocci | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/scripts/coccinelle/memory-region-housekeeping.cocci b/scripts/coccinelle/memory-region-housekeeping.cocci
index 9cdde71bb1..5e6b31d8ba 100644
--- a/scripts/coccinelle/memory-region-housekeeping.cocci
+++ b/scripts/coccinelle/memory-region-housekeeping.cocci
@@ -48,6 +48,21 @@ p << possible_memory_region_init_rom.p;
cocci.print_main("potential use of memory_region_init_rom*() in ", p)
+// Do not call memory_region_set_readonly() on ROM alias
+@@
+expression ROM, E1, E2, E3, E4;
+expression ALIAS, E5, E6, E7, E8;
+@@
+(
+ memory_region_init_rom(ROM, E1, E2, E3, E4);
+|
+ memory_region_init_rom_nomigrate(ROM, E1, E2, E3, E4);
+)
+ ...
+ memory_region_init_alias(ALIAS, E5, E6, ROM, E7, E8);
+- memory_region_set_readonly(ALIAS, true);
+
+
// Replace by-hand memory_region_init_ram_nomigrate/vmstate_register_ram
// code sequences with use of the new memory_region_init_ram function.
// Similarly for the _rom and _rom_device functions.
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 21/32] hw/arm: Remove unnecessary memory_region_set_readonly() on ROM alias
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (19 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 20/32] scripts/cocci: Patch to remove unnecessary memory_region_set_readonly() Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 22/32] scripts/cocci: Patch to let devices own their MemoryRegions Philippe Mathieu-Daudé
` (10 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/arm/exynos4210.c | 1 -
hw/arm/stm32f205_soc.c | 1 -
hw/arm/stm32f405_soc.c | 1 -
3 files changed, 3 deletions(-)
diff --git a/hw/arm/exynos4210.c b/hw/arm/exynos4210.c
index 3af6502a5e..4e1fd7edb3 100644
--- a/hw/arm/exynos4210.c
+++ b/hw/arm/exynos4210.c
@@ -320,7 +320,6 @@ static void exynos4210_realize(DeviceState *socdev, Error **errp)
&s->irom_mem,
0,
EXYNOS4210_IROM_SIZE);
- memory_region_set_readonly(&s->irom_alias_mem, true);
memory_region_add_subregion(system_mem, EXYNOS4210_IROM_MIRROR_BASE_ADDR,
&s->irom_alias_mem);
diff --git a/hw/arm/stm32f205_soc.c b/hw/arm/stm32f205_soc.c
index 2de56275b7..6e93726d45 100644
--- a/hw/arm/stm32f205_soc.c
+++ b/hw/arm/stm32f205_soc.c
@@ -97,7 +97,6 @@ static void stm32f205_soc_realize(DeviceState *dev_soc, Error **errp)
&error_fatal);
memory_region_init_alias(flash_alias, NULL, "STM32F205.flash.alias",
flash, 0, FLASH_SIZE);
- memory_region_set_readonly(flash_alias, true);
memory_region_add_subregion(system_memory, FLASH_BASE_ADDRESS, flash);
memory_region_add_subregion(system_memory, 0, flash_alias);
diff --git a/hw/arm/stm32f405_soc.c b/hw/arm/stm32f405_soc.c
index b8fca13f95..d590cd040d 100644
--- a/hw/arm/stm32f405_soc.c
+++ b/hw/arm/stm32f405_soc.c
@@ -103,7 +103,6 @@ static void stm32f405_soc_realize(DeviceState *dev_soc, Error **errp)
}
memory_region_init_alias(&s->flash_alias, NULL, "STM32F405.flash.alias",
&s->flash, 0, FLASH_SIZE);
- memory_region_set_readonly(&s->flash_alias, true);
memory_region_add_subregion(system_memory, FLASH_BASE_ADDRESS, &s->flash);
memory_region_add_subregion(system_memory, 0, &s->flash_alias);
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 22/32] scripts/cocci: Patch to let devices own their MemoryRegions
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (20 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 21/32] hw/arm: Remove unnecessary memory_region_set_readonly() on ROM alias Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 23/32] hw/arm: Let devices own the MemoryRegion they create Philippe Mathieu-Daudé
` (9 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
When a device creates a MemoryRegion without setting its ownership,
the MemoryRegion is added to the machine "/unattached" container in
the QOM tree.
Example with the Samsung SMDKC210 board:
$ arm-softmmu/qemu-system-arm -M smdkc210 -S -monitor stdio
(qemu) info qom-tree
/machine (smdkc210-machine)
/unattached (container)
/io[0] (qemu:memory-region)
/exynos4210.dram0[0] (qemu:memory-region)
/exynos4210.irom[0] (qemu:memory-region)
/exynos4210.iram[0] (qemu:memory-region)
/exynos4210.chipid[0] (qemu:memory-region)
...
/device[26] (exynos4210.uart)
/exynos4210.uart[0] (qemu:memory-region)
/soc (exynos4210)
^
\__ [*]
The irom/iram/chipid regions should go under 'soc' at [*].
Add a semantic patch to let the device own the memory region.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
v2: Remove memory_region_init_ram() change which might break migration
(Peter Maydell)
---
.../memory-region-housekeeping.cocci | 56 +++++++++++++++++++
1 file changed, 56 insertions(+)
diff --git a/scripts/coccinelle/memory-region-housekeeping.cocci b/scripts/coccinelle/memory-region-housekeeping.cocci
index 5e6b31d8ba..c768d8140a 100644
--- a/scripts/coccinelle/memory-region-housekeeping.cocci
+++ b/scripts/coccinelle/memory-region-housekeeping.cocci
@@ -101,3 +101,59 @@ expression ERRP;
+memory_region_init_rom_device(MR, NULL, OPS, OPAQUE, NAME, SIZE, ERRP);
...
-vmstate_register_ram_global(MR);
+
+
+// Device is owner
+@@
+typedef DeviceState;
+identifier device_fn, dev, obj;
+expression E1, E2, E3, E4, E5;
+@@
+static void device_fn(DeviceState *dev, ...)
+{
+ ...
+ Object *obj = OBJECT(dev);
+ <+...
+(
+- memory_region_init(E1, NULL, E2, E3);
++ memory_region_init(E1, obj, E2, E3);
+|
+- memory_region_init_io(E1, NULL, E2, E3, E4, E5);
++ memory_region_init_io(E1, obj, E2, E3, E4, E5);
+|
+- memory_region_init_alias(E1, NULL, E2, E3, E4, E5);
++ memory_region_init_alias(E1, obj, E2, E3, E4, E5);
+|
+- memory_region_init_rom(E1, NULL, E2, E3, E4);
++ memory_region_init_rom(E1, obj, E2, E3, E4);
+|
+- memory_region_init_ram_shared_nomigrate(E1, NULL, E2, E3, E4, E5);
++ memory_region_init_ram_shared_nomigrate(E1, obj, E2, E3, E4, E5);
+)
+ ...+>
+}
+@@
+identifier device_fn, dev;
+expression E1, E2, E3, E4, E5;
+@@
+static void device_fn(DeviceState *dev, ...)
+{
+ <+...
+(
+- memory_region_init(E1, NULL, E2, E3);
++ memory_region_init(E1, OBJECT(dev), E2, E3);
+|
+- memory_region_init_io(E1, NULL, E2, E3, E4, E5);
++ memory_region_init_io(E1, OBJECT(dev), E2, E3, E4, E5);
+|
+- memory_region_init_alias(E1, NULL, E2, E3, E4, E5);
++ memory_region_init_alias(E1, OBJECT(dev), E2, E3, E4, E5);
+|
+- memory_region_init_rom(E1, NULL, E2, E3, E4);
++ memory_region_init_rom(E1, OBJECT(dev), E2, E3, E4);
+|
+- memory_region_init_ram_shared_nomigrate(E1, NULL, E2, E3, E4, E5);
++ memory_region_init_ram_shared_nomigrate(E1, OBJECT(dev), E2, E3, E4, E5);
+)
+ ...+>
+}
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 23/32] hw/arm: Let devices own the MemoryRegion they create
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (21 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 22/32] scripts/cocci: Patch to let devices own their MemoryRegions Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 24/32] hw/char: " Philippe Mathieu-Daudé
` (8 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
Avoid orphan memory regions being added in the /unattached QOM
container.
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/arm/exynos4210.c | 12 ++++++------
hw/arm/fsl-imx25.c | 10 +++++-----
hw/arm/fsl-imx31.c | 6 +++---
hw/arm/fsl-imx6.c | 6 +++---
hw/arm/fsl-imx6ul.c | 9 +++++----
hw/arm/msf2-soc.c | 6 +++---
hw/arm/nrf51_soc.c | 2 +-
hw/arm/stm32f205_soc.c | 8 ++++----
hw/arm/stm32f405_soc.c | 9 +++++----
hw/arm/xlnx-zynqmp.c | 11 +++++------
10 files changed, 40 insertions(+), 39 deletions(-)
diff --git a/hw/arm/exynos4210.c b/hw/arm/exynos4210.c
index 4e1fd7edb3..1f7253ef6f 100644
--- a/hw/arm/exynos4210.c
+++ b/hw/arm/exynos4210.c
@@ -305,20 +305,20 @@ static void exynos4210_realize(DeviceState *socdev, Error **errp)
/*** Memory ***/
/* Chip-ID and OMR */
- memory_region_init_io(&s->chipid_mem, NULL, &exynos4210_chipid_and_omr_ops,
- NULL, "exynos4210.chipid", sizeof(chipid_and_omr));
+ memory_region_init_io(&s->chipid_mem, OBJECT(socdev),
+ &exynos4210_chipid_and_omr_ops, NULL,
+ "exynos4210.chipid", sizeof(chipid_and_omr));
memory_region_add_subregion(system_mem, EXYNOS4210_CHIPID_ADDR,
&s->chipid_mem);
/* Internal ROM */
- memory_region_init_rom(&s->irom_mem, NULL, "exynos4210.irom",
+ memory_region_init_rom(&s->irom_mem, OBJECT(socdev), "exynos4210.irom",
EXYNOS4210_IROM_SIZE, &error_fatal);
memory_region_add_subregion(system_mem, EXYNOS4210_IROM_BASE_ADDR,
&s->irom_mem);
/* mirror of iROM */
- memory_region_init_alias(&s->irom_alias_mem, NULL, "exynos4210.irom_alias",
- &s->irom_mem,
- 0,
+ memory_region_init_alias(&s->irom_alias_mem, OBJECT(socdev),
+ "exynos4210.irom_alias", &s->irom_mem, 0,
EXYNOS4210_IROM_SIZE);
memory_region_add_subregion(system_mem, EXYNOS4210_IROM_MIRROR_BASE_ADDR,
&s->irom_alias_mem);
diff --git a/hw/arm/fsl-imx25.c b/hw/arm/fsl-imx25.c
index da3471b395..104bff6d61 100644
--- a/hw/arm/fsl-imx25.c
+++ b/hw/arm/fsl-imx25.c
@@ -247,16 +247,16 @@ static void fsl_imx25_realize(DeviceState *dev, Error **errp)
}
/* initialize 2 x 16 KB ROM */
- memory_region_init_rom(&s->rom[0], NULL,
- "imx25.rom0", FSL_IMX25_ROM0_SIZE, &err);
+ memory_region_init_rom(&s->rom[0], OBJECT(dev), "imx25.rom0",
+ FSL_IMX25_ROM0_SIZE, &err);
if (err) {
error_propagate(errp, err);
return;
}
memory_region_add_subregion(get_system_memory(), FSL_IMX25_ROM0_ADDR,
&s->rom[0]);
- memory_region_init_rom(&s->rom[1], NULL,
- "imx25.rom1", FSL_IMX25_ROM1_SIZE, &err);
+ memory_region_init_rom(&s->rom[1], OBJECT(dev), "imx25.rom1",
+ FSL_IMX25_ROM1_SIZE, &err);
if (err) {
error_propagate(errp, err);
return;
@@ -275,7 +275,7 @@ static void fsl_imx25_realize(DeviceState *dev, Error **errp)
&s->iram);
/* internal RAM (128 KB) is aliased over 128 MB - 128 KB */
- memory_region_init_alias(&s->iram_alias, NULL, "imx25.iram_alias",
+ memory_region_init_alias(&s->iram_alias, OBJECT(dev), "imx25.iram_alias",
&s->iram, 0, FSL_IMX25_IRAM_ALIAS_SIZE);
memory_region_add_subregion(get_system_memory(), FSL_IMX25_IRAM_ALIAS_ADDR,
&s->iram_alias);
diff --git a/hw/arm/fsl-imx31.c b/hw/arm/fsl-imx31.c
index 55e90d104b..8472d2e911 100644
--- a/hw/arm/fsl-imx31.c
+++ b/hw/arm/fsl-imx31.c
@@ -206,7 +206,7 @@ static void fsl_imx31_realize(DeviceState *dev, Error **errp)
}
/* On a real system, the first 16k is a `secure boot rom' */
- memory_region_init_rom(&s->secure_rom, NULL, "imx31.secure_rom",
+ memory_region_init_rom(&s->secure_rom, OBJECT(dev), "imx31.secure_rom",
FSL_IMX31_SECURE_ROM_SIZE, &err);
if (err) {
error_propagate(errp, err);
@@ -216,7 +216,7 @@ static void fsl_imx31_realize(DeviceState *dev, Error **errp)
&s->secure_rom);
/* There is also a 16k ROM */
- memory_region_init_rom(&s->rom, NULL, "imx31.rom",
+ memory_region_init_rom(&s->rom, OBJECT(dev), "imx31.rom",
FSL_IMX31_ROM_SIZE, &err);
if (err) {
error_propagate(errp, err);
@@ -236,7 +236,7 @@ static void fsl_imx31_realize(DeviceState *dev, Error **errp)
&s->iram);
/* internal RAM (16 KB) is aliased over 256 MB - 16 KB */
- memory_region_init_alias(&s->iram_alias, NULL, "imx31.iram_alias",
+ memory_region_init_alias(&s->iram_alias, OBJECT(dev), "imx31.iram_alias",
&s->iram, 0, FSL_IMX31_IRAM_ALIAS_SIZE);
memory_region_add_subregion(get_system_memory(), FSL_IMX31_IRAM_ALIAS_ADDR,
&s->iram_alias);
diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c
index ecc62855f2..9c09f71435 100644
--- a/hw/arm/fsl-imx6.c
+++ b/hw/arm/fsl-imx6.c
@@ -405,7 +405,7 @@ static void fsl_imx6_realize(DeviceState *dev, Error **errp)
}
/* ROM memory */
- memory_region_init_rom(&s->rom, NULL, "imx6.rom",
+ memory_region_init_rom(&s->rom, OBJECT(dev), "imx6.rom",
FSL_IMX6_ROM_SIZE, &err);
if (err) {
error_propagate(errp, err);
@@ -415,7 +415,7 @@ static void fsl_imx6_realize(DeviceState *dev, Error **errp)
&s->rom);
/* CAAM memory */
- memory_region_init_rom(&s->caam, NULL, "imx6.caam",
+ memory_region_init_rom(&s->caam, OBJECT(dev), "imx6.caam",
FSL_IMX6_CAAM_MEM_SIZE, &err);
if (err) {
error_propagate(errp, err);
@@ -435,7 +435,7 @@ static void fsl_imx6_realize(DeviceState *dev, Error **errp)
&s->ocram);
/* internal OCRAM (256 KB) is aliased over 1 MB */
- memory_region_init_alias(&s->ocram_alias, NULL, "imx6.ocram_alias",
+ memory_region_init_alias(&s->ocram_alias, OBJECT(dev), "imx6.ocram_alias",
&s->ocram, 0, FSL_IMX6_OCRAM_ALIAS_SIZE);
memory_region_add_subregion(get_system_memory(), FSL_IMX6_OCRAM_ALIAS_ADDR,
&s->ocram_alias);
diff --git a/hw/arm/fsl-imx6ul.c b/hw/arm/fsl-imx6ul.c
index c405b68d1d..f4a9ed6c4f 100644
--- a/hw/arm/fsl-imx6ul.c
+++ b/hw/arm/fsl-imx6ul.c
@@ -543,7 +543,7 @@ static void fsl_imx6ul_realize(DeviceState *dev, Error **errp)
/*
* ROM memory
*/
- memory_region_init_rom(&s->rom, NULL, "imx6ul.rom",
+ memory_region_init_rom(&s->rom, OBJECT(dev), "imx6ul.rom",
FSL_IMX6UL_ROM_SIZE, &error_abort);
memory_region_add_subregion(get_system_memory(), FSL_IMX6UL_ROM_ADDR,
&s->rom);
@@ -551,7 +551,7 @@ static void fsl_imx6ul_realize(DeviceState *dev, Error **errp)
/*
* CAAM memory
*/
- memory_region_init_rom(&s->caam, NULL, "imx6ul.caam",
+ memory_region_init_rom(&s->caam, OBJECT(dev), "imx6ul.caam",
FSL_IMX6UL_CAAM_MEM_SIZE, &error_abort);
memory_region_add_subregion(get_system_memory(), FSL_IMX6UL_CAAM_MEM_ADDR,
&s->caam);
@@ -568,8 +568,9 @@ static void fsl_imx6ul_realize(DeviceState *dev, Error **errp)
/*
* internal OCRAM (128 KB) is aliased over 512 KB
*/
- memory_region_init_alias(&s->ocram_alias, NULL, "imx6ul.ocram_alias",
- &s->ocram, 0, FSL_IMX6UL_OCRAM_ALIAS_SIZE);
+ memory_region_init_alias(&s->ocram_alias, OBJECT(dev),
+ "imx6ul.ocram_alias", &s->ocram, 0,
+ FSL_IMX6UL_OCRAM_ALIAS_SIZE);
memory_region_add_subregion(get_system_memory(),
FSL_IMX6UL_OCRAM_ALIAS_ADDR, &s->ocram_alias);
}
diff --git a/hw/arm/msf2-soc.c b/hw/arm/msf2-soc.c
index 8f84692e64..588d643b8d 100644
--- a/hw/arm/msf2-soc.c
+++ b/hw/arm/msf2-soc.c
@@ -96,7 +96,7 @@ static void m2sxxx_soc_realize(DeviceState *dev_soc, Error **errp)
MemoryRegion *nvm_alias = g_new(MemoryRegion, 1);
MemoryRegion *sram = g_new(MemoryRegion, 1);
- memory_region_init_rom(nvm, NULL, "MSF2.eNVM", s->envm_size,
+ memory_region_init_rom(nvm, OBJECT(dev_soc), "MSF2.eNVM", s->envm_size,
&error_fatal);
/*
* On power-on, the eNVM region 0x60000000 is automatically
@@ -104,8 +104,8 @@ static void m2sxxx_soc_realize(DeviceState *dev_soc, Error **errp)
* start address (0x0). We do not support remapping other eNVM,
* eSRAM and DDR regions by guest(via Sysreg) currently.
*/
- memory_region_init_alias(nvm_alias, NULL, "MSF2.eNVM",
- nvm, 0, s->envm_size);
+ memory_region_init_alias(nvm_alias, OBJECT(dev_soc), "MSF2.eNVM", nvm, 0,
+ s->envm_size);
memory_region_add_subregion(system_memory, ENVM_BASE_ADDRESS, nvm);
memory_region_add_subregion(system_memory, 0, nvm_alias);
diff --git a/hw/arm/nrf51_soc.c b/hw/arm/nrf51_soc.c
index 4817a76ae0..57eff63f0d 100644
--- a/hw/arm/nrf51_soc.c
+++ b/hw/arm/nrf51_soc.c
@@ -165,7 +165,7 @@ static void nrf51_soc_realize(DeviceState *dev_soc, Error **errp)
}
/* STUB Peripherals */
- memory_region_init_io(&s->clock, NULL, &clock_ops, NULL,
+ memory_region_init_io(&s->clock, OBJECT(dev_soc), &clock_ops, NULL,
"nrf51_soc.clock", 0x1000);
memory_region_add_subregion_overlap(&s->container,
NRF51_IOMEM_BASE, &s->clock, -1);
diff --git a/hw/arm/stm32f205_soc.c b/hw/arm/stm32f205_soc.c
index 6e93726d45..118c342559 100644
--- a/hw/arm/stm32f205_soc.c
+++ b/hw/arm/stm32f205_soc.c
@@ -93,10 +93,10 @@ static void stm32f205_soc_realize(DeviceState *dev_soc, Error **errp)
MemoryRegion *flash = g_new(MemoryRegion, 1);
MemoryRegion *flash_alias = g_new(MemoryRegion, 1);
- memory_region_init_rom(flash, NULL, "STM32F205.flash", FLASH_SIZE,
- &error_fatal);
- memory_region_init_alias(flash_alias, NULL, "STM32F205.flash.alias",
- flash, 0, FLASH_SIZE);
+ memory_region_init_rom(flash, OBJECT(dev_soc), "STM32F205.flash",
+ FLASH_SIZE, &error_fatal);
+ memory_region_init_alias(flash_alias, OBJECT(dev_soc),
+ "STM32F205.flash.alias", flash, 0, FLASH_SIZE);
memory_region_add_subregion(system_memory, FLASH_BASE_ADDRESS, flash);
memory_region_add_subregion(system_memory, 0, flash_alias);
diff --git a/hw/arm/stm32f405_soc.c b/hw/arm/stm32f405_soc.c
index d590cd040d..4f10ce6176 100644
--- a/hw/arm/stm32f405_soc.c
+++ b/hw/arm/stm32f405_soc.c
@@ -95,14 +95,15 @@ static void stm32f405_soc_realize(DeviceState *dev_soc, Error **errp)
Error *err = NULL;
int i;
- memory_region_init_rom(&s->flash, NULL, "STM32F405.flash", FLASH_SIZE,
- &err);
+ memory_region_init_rom(&s->flash, OBJECT(dev_soc), "STM32F405.flash",
+ FLASH_SIZE, &err);
if (err != NULL) {
error_propagate(errp, err);
return;
}
- memory_region_init_alias(&s->flash_alias, NULL, "STM32F405.flash.alias",
- &s->flash, 0, FLASH_SIZE);
+ memory_region_init_alias(&s->flash_alias, OBJECT(dev_soc),
+ "STM32F405.flash.alias", &s->flash, 0,
+ FLASH_SIZE);
memory_region_add_subregion(system_memory, FLASH_BASE_ADDRESS, &s->flash);
memory_region_add_subregion(system_memory, 0, &s->flash_alias);
diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c
index cab0160ae9..49f1c8d0de 100644
--- a/hw/arm/xlnx-zynqmp.c
+++ b/hw/arm/xlnx-zynqmp.c
@@ -318,9 +318,9 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp)
ddr_low_size = XLNX_ZYNQMP_MAX_LOW_RAM_SIZE;
ddr_high_size = ram_size - XLNX_ZYNQMP_MAX_LOW_RAM_SIZE;
- memory_region_init_alias(&s->ddr_ram_high, NULL,
- "ddr-ram-high", s->ddr_ram,
- ddr_low_size, ddr_high_size);
+ memory_region_init_alias(&s->ddr_ram_high, OBJECT(dev),
+ "ddr-ram-high", s->ddr_ram, ddr_low_size,
+ ddr_high_size);
memory_region_add_subregion(get_system_memory(),
XLNX_ZYNQMP_HIGH_RAM_START,
&s->ddr_ram_high);
@@ -330,9 +330,8 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp)
ddr_low_size = ram_size;
}
- memory_region_init_alias(&s->ddr_ram_low, NULL,
- "ddr-ram-low", s->ddr_ram,
- 0, ddr_low_size);
+ memory_region_init_alias(&s->ddr_ram_low, OBJECT(dev), "ddr-ram-low",
+ s->ddr_ram, 0, ddr_low_size);
memory_region_add_subregion(get_system_memory(), 0, &s->ddr_ram_low);
/* Create the four OCM banks */
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 24/32] hw/char: Let devices own the MemoryRegion they create
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (22 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 23/32] hw/arm: Let devices own the MemoryRegion they create Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 25/32] hw/core: " Philippe Mathieu-Daudé
` (7 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
Avoid orphan memory regions being added in the /unattached QOM
container.
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/char/serial.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/hw/char/serial.c b/hw/char/serial.c
index 9298881af9..2ab8b69e03 100644
--- a/hw/char/serial.c
+++ b/hw/char/serial.c
@@ -997,7 +997,7 @@ static void serial_io_realize(DeviceState *dev, Error **errp)
return;
}
- memory_region_init_io(&s->io, NULL, &serial_io_ops, s, "serial", 8);
+ memory_region_init_io(&s->io, OBJECT(dev), &serial_io_ops, s, "serial", 8);
sysbus_init_mmio(SYS_BUS_DEVICE(sio), &s->io);
sysbus_init_irq(SYS_BUS_DEVICE(sio), &s->irq);
}
@@ -1106,8 +1106,9 @@ static void serial_mm_realize(DeviceState *dev, Error **errp)
return;
}
- memory_region_init_io(&s->io, NULL, &serial_mm_ops[smm->endianness], smm,
- "serial", 8 << smm->regshift);
+ memory_region_init_io(&s->io, OBJECT(dev),
+ &serial_mm_ops[smm->endianness], smm, "serial",
+ 8 << smm->regshift);
sysbus_init_mmio(SYS_BUS_DEVICE(smm), &s->io);
sysbus_init_irq(SYS_BUS_DEVICE(smm), &smm->serial.irq);
}
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 25/32] hw/core: Let devices own the MemoryRegion they create
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (23 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 24/32] hw/char: " Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 26/32] hw/display: " Philippe Mathieu-Daudé
` (6 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
Avoid orphan memory regions being added in the /unattached QOM
container.
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/core/platform-bus.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/core/platform-bus.c b/hw/core/platform-bus.c
index 22c5f76dd0..d494e5cec1 100644
--- a/hw/core/platform-bus.c
+++ b/hw/core/platform-bus.c
@@ -187,7 +187,8 @@ static void platform_bus_realize(DeviceState *dev, Error **errp)
d = SYS_BUS_DEVICE(dev);
pbus = PLATFORM_BUS_DEVICE(dev);
- memory_region_init(&pbus->mmio, NULL, "platform bus", pbus->mmio_size);
+ memory_region_init(&pbus->mmio, OBJECT(dev), "platform bus",
+ pbus->mmio_size);
sysbus_init_mmio(d, &pbus->mmio);
pbus->used_irqs = bitmap_new(pbus->num_irqs);
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 26/32] hw/display: Let devices own the MemoryRegion they create
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (24 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 25/32] hw/core: " Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 27/32] hw/dma: " Philippe Mathieu-Daudé
` (5 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
Avoid orphan memory regions being added in the /unattached QOM
container.
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/display/g364fb.c | 3 ++-
hw/display/macfb.c | 4 ++--
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/hw/display/g364fb.c b/hw/display/g364fb.c
index 55185c95c6..adcba96e34 100644
--- a/hw/display/g364fb.c
+++ b/hw/display/g364fb.c
@@ -477,7 +477,8 @@ static void g364fb_init(DeviceState *dev, G364State *s)
s->con = graphic_console_init(dev, 0, &g364fb_ops, s);
- memory_region_init_io(&s->mem_ctrl, NULL, &g364fb_ctrl_ops, s, "ctrl", 0x180000);
+ memory_region_init_io(&s->mem_ctrl, OBJECT(dev), &g364fb_ctrl_ops, s,
+ "ctrl", 0x180000);
memory_region_init_ram_ptr(&s->mem_vram, NULL, "vram",
s->vram_size, s->vram);
vmstate_register_ram(&s->mem_vram, dev);
diff --git a/hw/display/macfb.c b/hw/display/macfb.c
index 8bff16d535..b68faff4bb 100644
--- a/hw/display/macfb.c
+++ b/hw/display/macfb.c
@@ -362,8 +362,8 @@ static void macfb_common_realize(DeviceState *dev, MacfbState *s, Error **errp)
return;
}
- memory_region_init_io(&s->mem_ctrl, NULL, &macfb_ctrl_ops, s, "macfb-ctrl",
- 0x1000);
+ memory_region_init_io(&s->mem_ctrl, OBJECT(dev), &macfb_ctrl_ops, s,
+ "macfb-ctrl", 0x1000);
memory_region_init_ram_nomigrate(&s->mem_vram, OBJECT(s), "macfb-vram",
MACFB_VRAM_SIZE, errp);
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 27/32] hw/dma: Let devices own the MemoryRegion they create
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (25 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 26/32] hw/display: " Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 28/32] hw/riscv: " Philippe Mathieu-Daudé
` (4 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
Avoid orphan memory regions being added in the /unattached QOM
container.
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/dma/i8257.c | 2 +-
hw/dma/rc4030.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/hw/dma/i8257.c b/hw/dma/i8257.c
index bad8debae4..ef15c06d77 100644
--- a/hw/dma/i8257.c
+++ b/hw/dma/i8257.c
@@ -553,7 +553,7 @@ static void i8257_realize(DeviceState *dev, Error **errp)
I8257State *d = I8257(dev);
int i;
- memory_region_init_io(&d->channel_io, NULL, &channel_io_ops, d,
+ memory_region_init_io(&d->channel_io, OBJECT(dev), &channel_io_ops, d,
"dma-chan", 8 << d->dshift);
memory_region_add_subregion(isa_address_space_io(isa),
d->base, &d->channel_io);
diff --git a/hw/dma/rc4030.c b/hw/dma/rc4030.c
index c4cf8236f4..f62eb3d2a3 100644
--- a/hw/dma/rc4030.c
+++ b/hw/dma/rc4030.c
@@ -679,9 +679,9 @@ static void rc4030_realize(DeviceState *dev, Error **errp)
s->periodic_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL,
rc4030_periodic_timer, s);
- memory_region_init_io(&s->iomem_chipset, NULL, &rc4030_ops, s,
+ memory_region_init_io(&s->iomem_chipset, o, &rc4030_ops, s,
"rc4030.chipset", 0x300);
- memory_region_init_io(&s->iomem_jazzio, NULL, &jazzio_ops, s,
+ memory_region_init_io(&s->iomem_jazzio, o, &jazzio_ops, s,
"rc4030.jazzio", 0x00001000);
memory_region_init_iommu(&s->dma_mr, sizeof(s->dma_mr),
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 28/32] hw/riscv: Let devices own the MemoryRegion they create
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (26 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 27/32] hw/dma: " Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [PATCH RESEND v2 29/32] hw/input/milkymist-softusb: Remove unused 'pmem_ptr' field Philippe Mathieu-Daudé
` (3 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
Avoid orphan memory regions being added in the /unattached QOM
container.
This commit was produced with the Coccinelle script
scripts/coccinelle/memory-region-housekeeping.cocci.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/riscv/sifive_e.c | 6 +++---
hw/riscv/sifive_u.c | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/riscv/sifive_e.c b/hw/riscv/sifive_e.c
index 6f6360a619..64eb8ce536 100644
--- a/hw/riscv/sifive_e.c
+++ b/hw/riscv/sifive_e.c
@@ -145,8 +145,8 @@ static void riscv_sifive_e_soc_realize(DeviceState *dev, Error **errp)
&error_abort);
/* Mask ROM */
- memory_region_init_rom(&s->mask_rom, NULL, "riscv.sifive.e.mrom",
- memmap[SIFIVE_E_MROM].size, &error_fatal);
+ memory_region_init_rom(&s->mask_rom, OBJECT(dev), "riscv.sifive.e.mrom",
+ memmap[SIFIVE_E_MROM].size, &error_fatal);
memory_region_add_subregion(sys_mem,
memmap[SIFIVE_E_MROM].base, &s->mask_rom);
@@ -208,7 +208,7 @@ static void riscv_sifive_e_soc_realize(DeviceState *dev, Error **errp)
memmap[SIFIVE_E_PWM2].base, memmap[SIFIVE_E_PWM2].size);
/* Flash memory */
- memory_region_init_rom(&s->xip_mem, NULL, "riscv.sifive.e.xip",
+ memory_region_init_rom(&s->xip_mem, OBJECT(dev), "riscv.sifive.e.xip",
memmap[SIFIVE_E_XIP].size, &error_fatal);
memory_region_add_subregion(sys_mem, memmap[SIFIVE_E_XIP].base,
&s->xip_mem);
diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c
index 0e12b3ccef..be7d438db1 100644
--- a/hw/riscv/sifive_u.c
+++ b/hw/riscv/sifive_u.c
@@ -497,7 +497,7 @@ static void riscv_sifive_u_soc_realize(DeviceState *dev, Error **errp)
&error_abort);
/* boot rom */
- memory_region_init_rom(mask_rom, NULL, "riscv.sifive.u.mrom",
+ memory_region_init_rom(mask_rom, OBJECT(dev), "riscv.sifive.u.mrom",
memmap[SIFIVE_U_MROM].size, &error_fatal);
memory_region_add_subregion(system_memory, memmap[SIFIVE_U_MROM].base,
mask_rom);
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [PATCH RESEND v2 29/32] hw/input/milkymist-softusb: Remove unused 'pmem_ptr' field
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (27 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 28/32] hw/riscv: " Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [RFC PATCH RESEND v2 30/32] hw/input/milkymist-softusb: Let devices own the MemoryRegion they create Philippe Mathieu-Daudé
` (2 subsequent siblings)
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, qemu-trivial, Magnus Damm, Hervé Poussineau,
Joel Stanley, Marc-André Lureau, Aleksandar Rikalo,
David Gibson, Artyom Tarasenko, Eduardo Habkost,
Jean-Christophe Dubois, Alistair Francis, Fabien Chouteau,
qemu-arm, Peter Chubb, Palmer Dabbelt, Richard Henderson,
Kevin Wolf, qemu-riscv, Igor Mitsyanko, Bastian Koppelmann,
Laurent Vivier, Max Reitz, Michael Walle, qemu-ppc,
Aleksandar Markovic, Aurelien Jarno
In commit 029ad4bcf3 we removed softusb_{read, write}_pmem(),
we can also remove the 'pmem_ptr' field.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
Cc: qemu-trivial@nongnu.org
hw/input/milkymist-softusb.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/hw/input/milkymist-softusb.c b/hw/input/milkymist-softusb.c
index 3e0a7eb0bd..7deeb1294f 100644
--- a/hw/input/milkymist-softusb.c
+++ b/hw/input/milkymist-softusb.c
@@ -64,7 +64,6 @@ struct MilkymistSoftUsbState {
MemoryRegion dmem;
qemu_irq irq;
- void *pmem_ptr;
void *dmem_ptr;
/* device properties */
@@ -263,7 +262,6 @@ static void milkymist_softusb_realize(DeviceState *dev, Error **errp)
memory_region_init_ram_nomigrate(&s->pmem, OBJECT(s), "milkymist-softusb.pmem",
s->pmem_size, &error_fatal);
vmstate_register_ram_global(&s->pmem);
- s->pmem_ptr = memory_region_get_ram_ptr(&s->pmem);
sysbus_init_mmio(sbd, &s->pmem);
memory_region_init_ram_nomigrate(&s->dmem, OBJECT(s), "milkymist-softusb.dmem",
s->dmem_size, &error_fatal);
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [RFC PATCH RESEND v2 30/32] hw/input/milkymist-softusb: Let devices own the MemoryRegion they create
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (28 preceding siblings ...)
2020-02-24 20:55 ` [PATCH RESEND v2 29/32] hw/input/milkymist-softusb: Remove unused 'pmem_ptr' field Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [RFC PATCH RESEND v2 31/32] hw/net/milkymist-minimac2: " Philippe Mathieu-Daudé
2020-02-24 20:55 ` [RFC PATCH RESEND v2 32/32] hw/block/onenand: " Philippe Mathieu-Daudé
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
Avoid orphan memory regions being added in the /unattached QOM
container.
Note this change break the migration of the LM32 milkymist machine.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/input/milkymist-softusb.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/hw/input/milkymist-softusb.c b/hw/input/milkymist-softusb.c
index 7deeb1294f..72bc7bae1e 100644
--- a/hw/input/milkymist-softusb.c
+++ b/hw/input/milkymist-softusb.c
@@ -259,13 +259,11 @@ static void milkymist_softusb_realize(DeviceState *dev, Error **errp)
sysbus_init_mmio(sbd, &s->regs_region);
/* register pmem and dmem */
- memory_region_init_ram_nomigrate(&s->pmem, OBJECT(s), "milkymist-softusb.pmem",
+ memory_region_init_ram(&s->pmem, OBJECT(s), "milkymist-softusb.pmem",
s->pmem_size, &error_fatal);
- vmstate_register_ram_global(&s->pmem);
sysbus_init_mmio(sbd, &s->pmem);
- memory_region_init_ram_nomigrate(&s->dmem, OBJECT(s), "milkymist-softusb.dmem",
+ memory_region_init_ram(&s->dmem, OBJECT(s), "milkymist-softusb.dmem",
s->dmem_size, &error_fatal);
- vmstate_register_ram_global(&s->dmem);
s->dmem_ptr = memory_region_get_ram_ptr(&s->dmem);
sysbus_init_mmio(sbd, &s->dmem);
@@ -275,8 +273,8 @@ static void milkymist_softusb_realize(DeviceState *dev, Error **errp)
static const VMStateDescription vmstate_milkymist_softusb = {
.name = "milkymist-softusb",
- .version_id = 1,
- .minimum_version_id = 1,
+ .version_id = 2,
+ .minimum_version_id = 2,
.fields = (VMStateField[]) {
VMSTATE_UINT32_ARRAY(regs, MilkymistSoftUsbState, R_MAX),
VMSTATE_HID_KEYBOARD_DEVICE(hid_kbd, MilkymistSoftUsbState),
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [RFC PATCH RESEND v2 31/32] hw/net/milkymist-minimac2: Let devices own the MemoryRegion they create
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (29 preceding siblings ...)
2020-02-24 20:55 ` [RFC PATCH RESEND v2 30/32] hw/input/milkymist-softusb: Let devices own the MemoryRegion they create Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
2020-02-24 20:55 ` [RFC PATCH RESEND v2 32/32] hw/block/onenand: " Philippe Mathieu-Daudé
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
Avoid orphan memory regions being added in the /unattached QOM
container.
Note this change break the migration of the LM32 milkymist machine.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/net/milkymist-minimac2.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/net/milkymist-minimac2.c b/hw/net/milkymist-minimac2.c
index 1ba01754ee..9582b5f8a3 100644
--- a/hw/net/milkymist-minimac2.c
+++ b/hw/net/milkymist-minimac2.c
@@ -473,9 +473,9 @@ static void milkymist_minimac2_realize(DeviceState *dev, Error **errp)
sysbus_init_mmio(sbd, &s->regs_region);
/* register buffers memory */
- memory_region_init_ram_nomigrate(&s->buffers, OBJECT(dev), "milkymist-minimac2.buffers",
+ memory_region_init_ram(&s->buffers, OBJECT(dev),
+ "milkymist-minimac2.buffers",
buffers_size, &error_fatal);
- vmstate_register_ram_global(&s->buffers);
s->rx0_buf = memory_region_get_ram_ptr(&s->buffers);
s->rx1_buf = s->rx0_buf + MINIMAC2_BUFFER_SIZE;
s->tx_buf = s->rx1_buf + MINIMAC2_BUFFER_SIZE;
@@ -506,8 +506,8 @@ static const VMStateDescription vmstate_milkymist_minimac2_mdio = {
static const VMStateDescription vmstate_milkymist_minimac2 = {
.name = "milkymist-minimac2",
- .version_id = 1,
- .minimum_version_id = 1,
+ .version_id = 2,
+ .minimum_version_id = 2,
.fields = (VMStateField[]) {
VMSTATE_UINT32_ARRAY(regs, MilkymistMinimac2State, R_MAX),
VMSTATE_UINT16_ARRAY(phy_regs, MilkymistMinimac2State, R_PHY_MAX),
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [RFC PATCH RESEND v2 32/32] hw/block/onenand: Let devices own the MemoryRegion they create
2020-02-24 20:55 [PATCH RESEND v2 00/32] hw: Sanitize various MemoryRegion calls Philippe Mathieu-Daudé
` (30 preceding siblings ...)
2020-02-24 20:55 ` [RFC PATCH RESEND v2 31/32] hw/net/milkymist-minimac2: " Philippe Mathieu-Daudé
@ 2020-02-24 20:55 ` Philippe Mathieu-Daudé
31 siblings, 0 replies; 41+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-24 20:55 UTC (permalink / raw)
To: qemu-devel, Paolo Bonzini, Peter Maydell
Cc: Sagar Karandikar, Michael S. Tsirkin, Jason Wang,
Philippe Mathieu-Daudé, Mark Cave-Ayland, KONRAD Frederic,
Alistair Francis, Edgar E. Iglesias, Subbaraya Sundeep,
qemu-block, Magnus Damm, Hervé Poussineau, Joel Stanley,
Marc-André Lureau, Aleksandar Rikalo, David Gibson,
Artyom Tarasenko, Eduardo Habkost, Jean-Christophe Dubois,
Alistair Francis, Fabien Chouteau, qemu-arm, Peter Chubb,
Palmer Dabbelt, Richard Henderson, Kevin Wolf, qemu-riscv,
Igor Mitsyanko, Bastian Koppelmann, Laurent Vivier, Max Reitz,
Michael Walle, qemu-ppc, Aleksandar Markovic, Aurelien Jarno
Avoid orphan memory regions being added in the /unattached QOM
container.
Note this change break the migration of the nSeries machines.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/block/onenand.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/hw/block/onenand.c b/hw/block/onenand.c
index 898ac563a3..f49db0b2ee 100644
--- a/hw/block/onenand.c
+++ b/hw/block/onenand.c
@@ -173,8 +173,8 @@ static int onenand_post_load(void *opaque, int version_id)
static const VMStateDescription vmstate_onenand = {
.name = "onenand",
- .version_id = 1,
- .minimum_version_id = 1,
+ .version_id = 2,
+ .minimum_version_id = 2,
.pre_save = onenand_pre_save,
.post_load = onenand_post_load,
.fields = (VMStateField[]) {
@@ -809,9 +809,8 @@ static void onenand_realize(DeviceState *dev, Error **errp)
}
s->otp = memset(g_malloc((64 + 2) << PAGE_SHIFT),
0xff, (64 + 2) << PAGE_SHIFT);
- memory_region_init_ram_nomigrate(&s->ram, OBJECT(s), "onenand.ram",
+ memory_region_init_ram(&s->ram, OBJECT(s), "onenand.ram",
0xc000 << s->shift, &error_fatal);
- vmstate_register_ram_global(&s->ram);
ram = memory_region_get_ram_ptr(&s->ram);
s->boot[0] = ram + (0x0000 << s->shift);
s->boot[1] = ram + (0x8000 << s->shift);
--
2.21.1
^ permalink raw reply related [flat|nested] 41+ messages in thread