[PATCH] Revert "irqbypass: do not start cons/prod when failed connect"
Zhu, Lingshan
lingshan.zhu at intel.com
Mon May 10 01:32:54 PDT 2021
On 5/10/2021 3:09 PM, Zhu, Lingshan wrote:
>
>
> On 5/10/2021 12:34 PM, Jason Wang wrote:
>>
>> 在 2021/5/10 上午11:00, Zhu, Lingshan 写道:
>>>
>>>
>>> On 5/10/2021 10:43 AM, Jason Wang wrote:
>>>>
>>>> 在 2021/5/8 下午3:11, Zhu Lingshan 写道:
>>>>> This reverts commit a979a6aa009f3c99689432e0cdb5402a4463fb88.
>>>>>
>>>>> The reverted commit may cause VM freeze on arm64 platform.
>>>>> Because on arm64 platform, stop a consumer will suspend the VM,
>>>>> the VM will freeze without a start consumer
>>>>>
>>>>> Signed-off-by: Zhu Lingshan <lingshan.zhu at intel.com>
>>>>
>>>>
>>>> Acked-by: Jason Wang <jasowang at redhat.com>
>>>>
>>>> Please resubmit with the formal process of stable
>>>> (stable-kernel-rules.rst).
>>> sure, I will re-submit it to stable kernel once it is merged into
>>> Linus tree.
>>>
>>> Thanks
>>
>>
>> I think it's better to resubmit (option 1), see how
>> stable-kernel-rules.rst said:
>>
>> ""
>>
>> :ref:`option_1` is **strongly** preferred, is the easiest and most
>> common.
>> :ref:`option_2` and :ref:`option_3` are more useful if the patch
>> isn't deemed
>> worthy at the time it is applied to a public git tree (for instance,
>> because
>> it deserves more regression testing first).
>>
>> """
>>
>> Thanks
> OK, works for me, I will add cc stable, and resubmit it soon
>
> Thanks!
I just seeMarc has already added "Cc: stable at vger.kernel.org", and he
would take the patch in his tree,
so I think no need to resend.
Thanks,
Zhu Lingshan
>>
>>
>>>>
>>>> Thanks
>>>>
>>>>
>>>>> ---
>>>>> virt/lib/irqbypass.c | 16 ++++++----------
>>>>> 1 file changed, 6 insertions(+), 10 deletions(-)
>>>>>
>>>>> diff --git a/virt/lib/irqbypass.c b/virt/lib/irqbypass.c
>>>>> index c9bb3957f58a..28fda42e471b 100644
>>>>> --- a/virt/lib/irqbypass.c
>>>>> +++ b/virt/lib/irqbypass.c
>>>>> @@ -40,21 +40,17 @@ static int __connect(struct
>>>>> irq_bypass_producer *prod,
>>>>> if (prod->add_consumer)
>>>>> ret = prod->add_consumer(prod, cons);
>>>>> - if (ret)
>>>>> - goto err_add_consumer;
>>>>> -
>>>>> - ret = cons->add_producer(cons, prod);
>>>>> - if (ret)
>>>>> - goto err_add_producer;
>>>>> + if (!ret) {
>>>>> + ret = cons->add_producer(cons, prod);
>>>>> + if (ret && prod->del_consumer)
>>>>> + prod->del_consumer(prod, cons);
>>>>> + }
>>>>> if (cons->start)
>>>>> cons->start(cons);
>>>>> if (prod->start)
>>>>> prod->start(prod);
>>>>> -err_add_producer:
>>>>> - if (prod->del_consumer)
>>>>> - prod->del_consumer(prod, cons);
>>>>> -err_add_consumer:
>>>>> +
>>>>> return ret;
>>>>> }
>>>>
>>>
>>
>
More information about the linux-arm-kernel
mailing list