[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] Fix duplicate device reset
From: |
Isaku Yamahata |
Subject: |
Re: [Qemu-devel] [PATCH] Fix duplicate device reset |
Date: |
Tue, 19 Jul 2011 16:22:12 +0900 |
User-agent: |
Mutt/1.5.19 (2009-01-05) |
On Tue, Jul 19, 2011 at 07:56:41AM +0200, Stefan Weil wrote:
> Am 19.07.2011 04:39, schrieb Isaku Yamahata:
>> Thank you for addressing this. Similar patches were proposed and
>> weren't merged unfortunately.
>>
>> The reason why the qdev_register_reset() in vl.c is to keep the reset order.
>> The reset for main_system_bus shouldn't registered by qbus_create_inplace().
>> But the check, bus != main_system_bus, doesn't work as intended because
>> main_system_bus is NULL in early qdev creation.
>> So there are possible ways for the fix.
>>
>> - Don't care the reset order
>> your patch +
>> remove "if (bus != main_system_bus)" in qbus_create_inplace()
>>
>> - keep the reset order
>> - instantiate main_system_bus early.
>> So the check, bus != main_system_bus in qbus_create_inplace(), will
>> work.
>> or
>> - fix the check, bus != main_system_bus in qbus_create_inplace(), somehow
>>
>> thanks,
>
> Hi,
>
> my patch does not remove sysbus_get_default(),
> so the reset order is kept because main_system_bus
> is instantiated by this call.
Yes, your patch doesn't change the order from the existing code.
I think it's not intended one.
During machine creation, someone may call sysbus_get_default().
So the reset for main_system_bus may not be the lastly registered.
The changeset of 80376c3f tries to keep the reset order, but failed.
That's the issue.
--
yamahata