All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eduardo Habkost <ehabkost@redhat.com>
To: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Cc: qemu-devel@nongnu.org, lersek@redhat.com, somlo@cmu.edu,
	mst@redhat.com, pbonzini@redhat.com, rjones@redhat.com,
	imammedo@redhat.com, peter.maydell@linaro.org
Subject: Re: [Qemu-devel] [PATCHv8 2/3] fw_cfg: move qdev_init_nofail() from fw_cfg_init1() to callers
Date: Tue, 11 Jul 2017 18:12:13 -0300	[thread overview]
Message-ID: <20170711211213.GE6020@localhost.localdomain> (raw)
In-Reply-To: <1499803333-9052-3-git-send-email-mark.cave-ayland@ilande.co.uk>

On Tue, Jul 11, 2017 at 09:02:12PM +0100, Mark Cave-Ayland wrote:
> When looking to instantiate a TYPE_FW_CFG_MEM or TYPE_FW_CFG_IO device to be
> able to wire it up differently, it is much more convenient for the caller to
> instantiate the device and have the fw_cfg default files already preloaded
> during realize.
> 
> Move fw_cfg_init1() to the end of both the fw_cfg_mem_realize() and
> fw_cfg_io_realize() functions so it no longer needs to be called manually
> when instantiating the device, and also rename it to fw_cfg_common_realize()
> which better describes its new purpose.
> 
> Since it is now the responsibility of the machine to wire up the fw_cfg device
> it is necessary to introduce a object_property_add_child() call into
> fw_cfg_init_io() and fw_cfg_init_mem() to link the fw_cfg device to the root
> machine object as before.
> 
> Finally with the previous change to fw_cfg_find() we can now remove the
> assert() preventing multiple fw_cfg devices being instantiated and replace
> them with a simple call to fw_cfg_find() at realize time instead. This allows
> us to remove FW_CFG_NAME and FW_CFG_PATH since they are no longer required.
> 
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
[...]
> @@ -1096,6 +1097,12 @@ static void fw_cfg_io_realize(DeviceState *dev, Error **errp)
>                                &fw_cfg_dma_mem_ops, FW_CFG(s), "fwcfg.dma",
>                                sizeof(dma_addr_t));
>      }
> +
> +    fw_cfg_common_realize(dev, &local_err);
> +    if (local_err) {
> +        error_propagate(errp, local_err);
> +        return;
> +    }
>  }

"if (local_err)" is redundant, as error_propagate() does nothing
if local_err is NULL.  "return" is also unnecessary here.  You
also don't need local_err/error_propagate() if you are not
looking at the value of local_err at all.  This means those 5
lines can be simply written as:

    fw_cfg_common_realize(dev, errp);

(Sorry for not noticing that in v7)

>  
>  static void fw_cfg_io_class_init(ObjectClass *klass, void *data)
> @@ -1162,6 +1169,12 @@ static void fw_cfg_mem_realize(DeviceState *dev, Error **errp)
>                                sizeof(dma_addr_t));
>          sysbus_init_mmio(sbd, &FW_CFG(s)->dma_iomem);
>      }
> +
> +    fw_cfg_common_realize(dev, &local_err);
> +    if (local_err) {
> +        error_propagate(errp, local_err);
> +        return;
> +    }

Same as above.


>  }
>  
>  static void fw_cfg_mem_class_init(ObjectClass *klass, void *data)
> -- 
> 1.7.10.4
> 

-- 
Eduardo

  reply	other threads:[~2017-07-11 21:12 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-11 20:02 [Qemu-devel] [PATCHv8 0/3] fw_cfg: qdev-related tidy-ups Mark Cave-Ayland
2017-07-11 20:02 ` [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 20:10   ` Eduardo Habkost
2017-07-11 20:15     ` Mark Cave-Ayland
2017-07-11 20:18     ` Michael S. Tsirkin
2017-07-11 20:26       ` Mark Cave-Ayland
2017-07-11 20:28         ` Eduardo Habkost
2017-07-11 20:49         ` Peter Maydell
2017-07-11 20:58           ` Eduardo Habkost
2017-07-11 21:04             ` Peter Maydell
2017-07-11 21:30           ` Laszlo Ersek
2017-07-11 20:02 ` [Qemu-devel] [PATCHv8 2/3] fw_cfg: move qdev_init_nofail() from fw_cfg_init1() to callers Mark Cave-Ayland
2017-07-11 21:12   ` Eduardo Habkost [this message]
2017-07-11 20:02 ` [Qemu-devel] [PATCHv8 3/3] fw_cfg: move QOM type defines and fw_cfg types into fw_cfg.h Mark Cave-Ayland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170711211213.GE6020@localhost.localdomain \
    --to=ehabkost@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=lersek@redhat.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rjones@redhat.com \
    --cc=somlo@cmu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.