All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhao Liu <zhao1.liu@intel.com>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, qemu-arm@nongnu.org,
	qemu-s390x@nongnu.org, qemu-ppc@nongnu.org,
	qemu-block@nongnu.org, Gerd Hoffmann <kraxel@redhat.com>
Subject: Re: [PATCH 11/21] hw/usb: Add QOM parentship relation with hub devices
Date: Thu, 22 Feb 2024 17:49:14 +0800	[thread overview]
Message-ID: <ZdcYmhG3zcad3RLC@intel.com> (raw)
In-Reply-To: <20240216110313.17039-12-philmd@linaro.org>

Hi Philippe,

On Fri, Feb 16, 2024 at 12:03:02PM +0100, Philippe Mathieu-Daudé wrote:
> Date: Fri, 16 Feb 2024 12:03:02 +0100
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
> Subject: [PATCH 11/21] hw/usb: Add QOM parentship relation with hub devices
> X-Mailer: git-send-email 2.41.0
> 
> QDev objects created with qdev_*new() need to manually add
> their parent relationship with object_property_add_child().
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>  hw/usb/bus.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/hw/usb/bus.c b/hw/usb/bus.c
> index a599e2552b..baad04f466 100644
> --- a/hw/usb/bus.c
> +++ b/hw/usb/bus.c
> @@ -439,6 +439,7 @@ void usb_claim_port(USBDevice *dev, Error **errp)
>              /* Create a new hub and chain it on */
>              hub = USB_DEVICE(qdev_try_new("usb-hub"));

One additional question comes to mind, should we use the qdev_new()
here?

The difference between qdev_try_new() and qdev_new() is the latter
uses assert() to ensure the passed type exists.

So if we know that type parameter is correct, we should just use
qdev_new().

Only when the caller is not sure whether the type is valid,
qdev_try_new() should be preferred.

Am I understand correctly? ;-)

>              if (hub) {
> +                object_property_add_child(OBJECT(dev), "hub", OBJECT(hub));

From the comment above the code:

/* Create a new hub and chain it on */

this only creates a new usb-hub, should the new usb-hub become the child
object of the original usb-hub?

>                  usb_realize_and_unref(hub, bus, NULL);
>              }
>          }
> -- 
> 2.41.0
> 
> 

  reply	other threads:[~2024-02-22  9:36 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-16 11:02 [PATCH 00/21] hw: More QDev cleanups Philippe Mathieu-Daudé
2024-02-16 11:02 ` [PATCH 01/21] hw/i386/pc: Do not use C99 mixed-declarations style Philippe Mathieu-Daudé
2024-02-22  9:12   ` Zhao Liu
2024-02-22 10:10     ` Philippe Mathieu-Daudé
2024-02-16 11:02 ` [PATCH 02/21] hw/i386/pc_sysfw: Use qdev_is_realized() instead of QOM API Philippe Mathieu-Daudé
2024-02-22  9:16   ` Zhao Liu
2024-02-16 11:02 ` [PATCH 03/21] hw/ppc/spapr_cpu: " Philippe Mathieu-Daudé
2024-02-22  9:56   ` Zhao Liu
2024-02-16 11:02 ` [PATCH 04/21] hw/tricore/testboard: Use qdev_new() instead of QOM basic API Philippe Mathieu-Daudé
2024-02-19 11:59   ` Bastian Koppelmann
2024-02-16 11:02 ` [PATCH 05/21] hw/ppc/pnv_bmc: Use qdev_new() instead of QOM API Philippe Mathieu-Daudé
2024-02-16 11:08   ` Cédric Le Goater
2024-02-16 11:02 ` [PATCH 06/21] hw: Replace DEVICE(object_new) -> qdev_new() Philippe Mathieu-Daudé
2024-02-22  9:50   ` Zhao Liu
2024-02-16 11:02 ` [PATCH 07/21] target: " Philippe Mathieu-Daudé
2024-02-22  9:54   ` Zhao Liu
2024-02-16 11:02 ` [PATCH 08/21] hw/isa: Inline isa_try_new() Philippe Mathieu-Daudé
2024-02-16 11:03 ` [PATCH 09/21] hw/usb: Inline usb_try_new() Philippe Mathieu-Daudé
2024-02-22  9:53   ` Zhao Liu
2024-02-16 11:03 ` [PATCH 10/21] hw/usb: Inline usb_new() Philippe Mathieu-Daudé
2024-02-22  9:55   ` Zhao Liu
2024-02-16 11:03 ` [PATCH 11/21] hw/usb: Add QOM parentship relation with hub devices Philippe Mathieu-Daudé
2024-02-22  9:49   ` Zhao Liu [this message]
2024-02-16 11:03 ` [PATCH 12/21] hw/pci-host/q35: Update q35_host_props[] comment Philippe Mathieu-Daudé
2024-02-16 11:03 ` [PATCH 13/21] hw/pci-host/raven: Embedded OrIRQ in PRePPCIState Philippe Mathieu-Daudé
2024-02-16 11:03 ` [PATCH 14/21] hw/pci-host/raven: Prefer object_initialize_child over object_initialize Philippe Mathieu-Daudé
2024-02-16 11:03 ` [PATCH 15/21] hw/core/register: " Philippe Mathieu-Daudé
2024-02-16 11:03 ` [PATCH 16/21] hw/net/can/versal: " Philippe Mathieu-Daudé
2024-02-23 11:06   ` Francisco Iglesias
2024-02-23 12:23     ` Pavel Pisa via
2024-02-23 12:23       ` Pavel Pisa via
2025-08-21 13:33   ` Peter Maydell
2024-02-16 11:03 ` [PATCH 17/21] hw/i386/iommu: " Philippe Mathieu-Daudé
2024-02-22  9:24   ` Zhao Liu
2024-02-16 11:03 ` [PATCH 18/21] hw/pci-host/versatile: Replace object_initialize() -> _child() Philippe Mathieu-Daudé
2024-02-16 11:03 ` [PATCH 19/21] hw/s390x/zpci-bus: Add QOM parentship relation with zPCI devices Philippe Mathieu-Daudé
2024-02-19 13:38   ` Thomas Huth
2024-02-19 14:37     ` Philippe Mathieu-Daudé
2024-02-16 11:03 ` [PATCH 20/21] hw/arm/mps2: Add QOM parentship relation with OR IRQ gates Philippe Mathieu-Daudé
2024-02-16 11:03 ` [PATCH 21/21] hw: Add QOM parentship relation with CPUs Philippe Mathieu-Daudé
2024-02-22  9:59   ` Zhao Liu
2025-01-12 17:23 ` [PATCH 00/21] hw: More QDev cleanups Philippe Mathieu-Daudé

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=ZdcYmhG3zcad3RLC@intel.com \
    --to=zhao1.liu@intel.com \
    --cc=kraxel@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    /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.