[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCHv8 1/3] fw_cfg: switch fw_cfg_find() to locate th
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-devel] [PATCHv8 1/3] fw_cfg: switch fw_cfg_find() to locate the fw_cfg device by type rather than path |
Date: |
Tue, 11 Jul 2017 17:10:59 -0300 |
User-agent: |
Mutt/1.8.0 (2017-02-23) |
On Tue, Jul 11, 2017 at 09:02:11PM +0100, Mark Cave-Ayland 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 <address@hidden>
> ---
> hw/nvram/fw_cfg.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c
> index 99bdbc2..8ef889a 100644
> --- a/hw/nvram/fw_cfg.c
> +++ b/hw/nvram/fw_cfg.c
> @@ -1017,7 +1017,12 @@ 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 FWCfgState if only one fw_cfg device type exists. If zero or
> + more than one fw_cfg device are found then NULL is returned as per the
> + object_resolve_path_type() documentation. This behaviour is correct as
> + it ensures that we detect both missing fw_cfg devices and multiple
> + fw_cfg devices which could result in unpredictable behaviour. */
> + return FW_CFG(object_resolve_path_type("", TYPE_FW_CFG, NULL));
> }
I believe a one-line "returns NULL unless there is exactly one
fw_cfg device" (similar to the one at find_vmgenid_dev()) would
suffice. :)
--
Eduardo
- [Qemu-devel] [PATCHv8 0/3] fw_cfg: qdev-related tidy-ups, Mark Cave-Ayland, 2017/07/11
- [Qemu-devel] [PATCHv8 1/3] fw_cfg: switch fw_cfg_find() to locate the fw_cfg device by type rather than path, Mark Cave-Ayland, 2017/07/11
- Re: [Qemu-devel] [PATCHv8 1/3] fw_cfg: switch fw_cfg_find() to locate the fw_cfg device by type rather than path,
Eduardo Habkost <=
- Re: [Qemu-devel] [PATCHv8 1/3] fw_cfg: switch fw_cfg_find() to locate the fw_cfg device by type rather than path, Mark Cave-Ayland, 2017/07/11
- Re: [Qemu-devel] [PATCHv8 1/3] fw_cfg: switch fw_cfg_find() to locate the fw_cfg device by type rather than path, Michael S. Tsirkin, 2017/07/11
- Re: [Qemu-devel] [PATCHv8 1/3] fw_cfg: switch fw_cfg_find() to locate the fw_cfg device by type rather than path, Mark Cave-Ayland, 2017/07/11
- Re: [Qemu-devel] [PATCHv8 1/3] fw_cfg: switch fw_cfg_find() to locate the fw_cfg device by type rather than path, Eduardo Habkost, 2017/07/11
- Re: [Qemu-devel] [PATCHv8 1/3] fw_cfg: switch fw_cfg_find() to locate the fw_cfg device by type rather than path, Peter Maydell, 2017/07/11
- Re: [Qemu-devel] [PATCHv8 1/3] fw_cfg: switch fw_cfg_find() to locate the fw_cfg device by type rather than path, Eduardo Habkost, 2017/07/11
- Re: [Qemu-devel] [PATCHv8 1/3] fw_cfg: switch fw_cfg_find() to locate the fw_cfg device by type rather than path, Peter Maydell, 2017/07/11
- Re: [Qemu-devel] [PATCHv8 1/3] fw_cfg: switch fw_cfg_find() to locate the fw_cfg device by type rather than path, Laszlo Ersek, 2017/07/11
[Qemu-devel] [PATCHv8 2/3] fw_cfg: move qdev_init_nofail() from fw_cfg_init1() to callers, Mark Cave-Ayland, 2017/07/11