[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