OSDN Git Service

xen/events: don't unmask an event channel when an eoi is pending
authorJuergen Gross <jgross@suse.com>
Sat, 6 Mar 2021 16:18:32 +0000 (17:18 +0100)
committerBoris Ostrovsky <boris.ostrovsky@oracle.com>
Wed, 10 Mar 2021 22:37:29 +0000 (16:37 -0600)
commit25da4618af240fbec6112401498301a6f2bc9702
tree7bd0d28344accddb22c9eb0cebf16d8f70515a1c
parent9e77d96b8e2724ed00380189f7b0ded61113b39f
xen/events: don't unmask an event channel when an eoi is pending

An event channel should be kept masked when an eoi is pending for it.
When being migrated to another cpu it might be unmasked, though.

In order to avoid this keep three different flags for each event channel
to be able to distinguish "normal" masking/unmasking from eoi related
masking/unmasking and temporary masking. The event channel should only
be able to generate an interrupt if all flags are cleared.

Cc: stable@vger.kernel.org
Fixes: 54c9de89895e ("xen/events: add a new "late EOI" evtchn framework")
Reported-by: Julien Grall <julien@xen.org>
Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Tested-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Link: https://lore.kernel.org/r/20210306161833.4552-3-jgross@suse.com
[boris -- corrected Fixed tag format]

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
drivers/xen/events/events_2l.c
drivers/xen/events/events_base.c
drivers/xen/events/events_fifo.c
drivers/xen/events/events_internal.h