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>
This commit is contained in:
parent
ebcc479eee
commit
6e99c075a0
@ -1017,7 +1017,8 @@ FWCfgState *fw_cfg_init_mem(hwaddr ctl_addr, hwaddr data_addr)
|
|||||||
|
|
||||||
FWCfgState *fw_cfg_find(void)
|
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)
|
static void fw_cfg_class_init(ObjectClass *klass, void *data)
|
||||||
|
Loading…
Reference in New Issue
Block a user