The loop does two things: map legacy -drive to properties, and collect
all the backends for use after the loop. The next patch will factor
out the former for reuse in hw/arm/virt.c. To make that easier,
rearrange the loop so it does the first thing first, and the second
thing second.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
hw/i386/pc_sysfw.c | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c
index c628540774..75925f5d3f 100644
--- a/hw/i386/pc_sysfw.c
+++ b/hw/i386/pc_sysfw.c
@@ -280,21 +280,19 @@ void pc_system_firmware_init(PCMachineState *pcms,
/* Map legacy -drive if=pflash to machine properties */
for (i = 0; i < ARRAY_SIZE(pcms->flash); i++) {
- pflash_blk[i] = pflash_cfi01_get_blk(pcms->flash[i]);
pflash_drv = drive_get(IF_PFLASH, 0, i);
- if (!pflash_drv) {
- continue;
+ if (pflash_drv) {
+ loc_push_none(&loc);
+ qemu_opts_loc_restore(pflash_drv->opts);
+ if (pflash_cfi01_get_blk(pcms->flash[i])) {
+ error_report("clashes with -machine");
+ exit(1);
+ }
+ qdev_prop_set_drive(DEVICE(pcms->flash[i]), "drive",
+ blk_by_legacy_dinfo(pflash_drv), &error_fatal);
+ loc_pop(&loc);
}
- loc_push_none(&loc);
- qemu_opts_loc_restore(pflash_drv->opts);
- if (pflash_blk[i]) {
- error_report("clashes with -machine");
- exit(1);
- }
- pflash_blk[i] = blk_by_legacy_dinfo(pflash_drv);
- qdev_prop_set_drive(DEVICE(pcms->flash[i]),
- "drive", pflash_blk[i], &error_fatal);
- loc_pop(&loc);
+ pflash_blk[i] = pflash_cfi01_get_blk(pcms->flash[i]);
}
/* Reject gaps */
--
2.17.2
On 04/16/19 11:13, Markus Armbruster wrote:
> The loop does two things: map legacy -drive to properties, and collect
> all the backends for use after the loop. The next patch will factor
> out the former for reuse in hw/arm/virt.c. To make that easier,
> rearrange the loop so it does the first thing first, and the second
> thing second.
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
> hw/i386/pc_sysfw.c | 24 +++++++++++-------------
> 1 file changed, 11 insertions(+), 13 deletions(-)
>
> diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c
> index c628540774..75925f5d3f 100644
> --- a/hw/i386/pc_sysfw.c
> +++ b/hw/i386/pc_sysfw.c
> @@ -280,21 +280,19 @@ void pc_system_firmware_init(PCMachineState *pcms,
>
> /* Map legacy -drive if=pflash to machine properties */
> for (i = 0; i < ARRAY_SIZE(pcms->flash); i++) {
> - pflash_blk[i] = pflash_cfi01_get_blk(pcms->flash[i]);
> pflash_drv = drive_get(IF_PFLASH, 0, i);
> - if (!pflash_drv) {
> - continue;
> + if (pflash_drv) {
> + loc_push_none(&loc);
> + qemu_opts_loc_restore(pflash_drv->opts);
> + if (pflash_cfi01_get_blk(pcms->flash[i])) {
> + error_report("clashes with -machine");
> + exit(1);
> + }
> + qdev_prop_set_drive(DEVICE(pcms->flash[i]), "drive",
> + blk_by_legacy_dinfo(pflash_drv), &error_fatal);
> + loc_pop(&loc);
> }
> - loc_push_none(&loc);
> - qemu_opts_loc_restore(pflash_drv->opts);
> - if (pflash_blk[i]) {
> - error_report("clashes with -machine");
> - exit(1);
> - }
> - pflash_blk[i] = blk_by_legacy_dinfo(pflash_drv);
> - qdev_prop_set_drive(DEVICE(pcms->flash[i]),
> - "drive", pflash_blk[i], &error_fatal);
> - loc_pop(&loc);
> + pflash_blk[i] = pflash_cfi01_get_blk(pcms->flash[i]);
> }
>
> /* Reject gaps */
>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
On 4/16/19 11:13 AM, Markus Armbruster wrote:
> The loop does two things: map legacy -drive to properties, and collect
> all the backends for use after the loop. The next patch will factor
> out the former for reuse in hw/arm/virt.c. To make that easier,
> rearrange the loop so it does the first thing first, and the second
> thing second.
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
> hw/i386/pc_sysfw.c | 24 +++++++++++-------------
> 1 file changed, 11 insertions(+), 13 deletions(-)
>
> diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c
> index c628540774..75925f5d3f 100644
> --- a/hw/i386/pc_sysfw.c
> +++ b/hw/i386/pc_sysfw.c
> @@ -280,21 +280,19 @@ void pc_system_firmware_init(PCMachineState *pcms,
>
> /* Map legacy -drive if=pflash to machine properties */
> for (i = 0; i < ARRAY_SIZE(pcms->flash); i++) {
> - pflash_blk[i] = pflash_cfi01_get_blk(pcms->flash[i]);
> pflash_drv = drive_get(IF_PFLASH, 0, i);
> - if (!pflash_drv) {
> - continue;
> + if (pflash_drv) {
> + loc_push_none(&loc);
> + qemu_opts_loc_restore(pflash_drv->opts);
> + if (pflash_cfi01_get_blk(pcms->flash[i])) {
> + error_report("clashes with -machine");
> + exit(1);
> + }
> + qdev_prop_set_drive(DEVICE(pcms->flash[i]), "drive",
> + blk_by_legacy_dinfo(pflash_drv), &error_fatal);
> + loc_pop(&loc);
> }
> - loc_push_none(&loc);
> - qemu_opts_loc_restore(pflash_drv->opts);
> - if (pflash_blk[i]) {
> - error_report("clashes with -machine");
> - exit(1);
> - }
> - pflash_blk[i] = blk_by_legacy_dinfo(pflash_drv);
> - qdev_prop_set_drive(DEVICE(pcms->flash[i]),
> - "drive", pflash_blk[i], &error_fatal);
> - loc_pop(&loc);
> + pflash_blk[i] = pflash_cfi01_get_blk(pcms->flash[i]);
> }
>
> /* Reject gaps */
>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
© 2016 - 2026 Red Hat, Inc.