|
From: | Kai |
Subject: | Re: [PATCH] qdev: not add devices to bus in reverse order |
Date: | Wed, 17 Jan 2024 12:23:00 +0800 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 |
On 1/9/24 17:52, kai.kang@windriver.com wrote:
From: Kai Kang <kai.kang@windriver.com> When this section of source codes were added via commit: * 02e2da45c4 Add common BusState it added devices to bus with LIST_INSERT_HEAD() which operated on the single direction list. It didn't have something like LIST_INSERT_TAIL() at that time and kept that way when turned to QTAILQ. Then it causes the fist device in qemu command line inserted at the end of the bus child link list. And when realize them, the first device will be the last one to be realized. Replace QTAILQ_INSERT_HEAD_RCU() with QTAILQ_INSERT_TAIL_RCU() to make sure that devices are added to bus with the sequence in the command line.
Ping.
Signed-off-by: Kai Kang <kai.kang@windriver.com> --- hw/core/qdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 43d863b0c5..5e2ff43715 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -89,7 +89,7 @@ static void bus_add_child(BusState *bus, DeviceState *child) kid->child = child; object_ref(OBJECT(kid->child));- QTAILQ_INSERT_HEAD_RCU(&bus->children, kid, sibling);+ QTAILQ_INSERT_TAIL_RCU(&bus->children, kid, sibling);/* This transfers ownership of kid->child to the property. */snprintf(name, sizeof(name), "child[%d]", kid->index);
-- Kai Kang Wind River Linux
[Prev in Thread] | Current Thread | [Next in Thread] |