On Fri, 14 Jul 2017 10:40:06 +0100
Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> wrote:
> 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>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
> ---
> hw/nvram/fw_cfg.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c
> index 99bdbc2..ac52b50 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)