Re: Problem with commit bf22ff45bed664aefb5c4e43029057a199b7070c

From: Juergen Gross
Date: Fri Jul 07 2017 - 13:08:54 EST


On 07/07/17 18:41, Thomas Gleixner wrote:
> On Fri, 7 Jul 2017, Juergen Gross wrote:
>
>> Commit bf22ff45bed664aefb5c4e43029057a199b7070c ("genirq: Avoid
>> unnecessary low level irq function calls") breaks Xen guest
>> save/restore handling.
>>
>> The main problem are the PV devices using Xen event channels as
>> interrupt sources which are represented as an "irq chip" in the kernel.
>> When saving the guest the event channels are masked internally. At
>> restore time event channels are re-established and unmasked via
>> irq_startup(). Unfortunately above commit will let the unmask operation
>> be a nop as the irq handling doesn't know about the masking done before.
>
> Rightfully so. Making assumptions about the inner workings of core code is
> always wrong.

That was my thought, too. :-)

>> I have a patch repairing the issue, but I'm not sure if this way to do
>> it would be accepted. I have exported mask_irq() and I'm doing the
>> masking now through this function. Would the attached patch be
>> acceptable? Or is there a better way to solve the problem?
>
> Without looking at the patch (too lazy to fiddle with attachments right
> now), this is definitely wrong. I'll have a look later tonight.

Thank you very much


Juergen