diff options
author | Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> | 2017-07-14 10:40:06 +0100 |
---|---|---|
committer | Eduardo Habkost <ehabkost@redhat.com> | 2017-07-17 15:41:30 -0300 |
commit | 6e99c075a0171b7ff74386749125510a6641ea49 (patch) | |
tree | 976e829b54baf84e0feb94aa4b9ef797ab284c3f /hw/nvram/fw_cfg.c | |
parent | ebcc479eee740937e70a94a468effcf2126a572b (diff) | |
download | qemu-6e99c075a0171b7ff74386749125510a6641ea49.zip qemu-6e99c075a0171b7ff74386749125510a6641ea49.tar.gz qemu-6e99c075a0171b7ff74386749125510a6641ea49.tar.bz2 |
fw_cfg: switch fw_cfg_find() to locate the fw_cfg device by type rather than path
This will enable the fw_cfg device to be placed anywhere within the QOM tree
regardless of its machine location.
Note that we also add a comment to document the behaviour that we return NULL to
indicate failure where either no fw_cfg device or multiple fw_cfg devices are
found.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Message-Id: <1500025208-14827-2-git-send-email-mark.cave-ayland@ilande.co.uk>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Diffstat (limited to 'hw/nvram/fw_cfg.c')
-rw-r--r-- | hw/nvram/fw_cfg.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c index e881e3b..3a988b6 100644 --- a/hw/nvram/fw_cfg.c +++ b/hw/nvram/fw_cfg.c @@ -1017,7 +1017,8 @@ FWCfgState *fw_cfg_init_mem(hwaddr ctl_addr, hwaddr data_addr) FWCfgState *fw_cfg_find(void) { - return FW_CFG(object_resolve_path(FW_CFG_PATH, NULL)); + /* Returns NULL unless there is exactly one fw_cfg device */ + return FW_CFG(object_resolve_path_type("", TYPE_FW_CFG, NULL)); } static void fw_cfg_class_init(ObjectClass *klass, void *data) |