summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorJuergen Gross <jgross@suse.com>2020-11-03 17:22:38 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-11-18 18:25:03 +0100
commitea31e9d9320404ddf74ad1d23c77cacd98d9e78c (patch)
treeda4942561519988b65ab082045c7b603f7df764e /kernel
parent732d4f2eb4160cae14978b15d5b01f0d59915a32 (diff)
xen/events: block rogue events for some time
commit 5f7f77400ab5b357b5fdb7122c3442239672186c upstream. In order to avoid high dom0 load due to rogue guests sending events at high frequency, block those events in case there was no action needed in dom0 to handle the events. This is done by adding a per-event counter, which set to zero in case an EOI without the XEN_EOI_FLAG_SPURIOUS is received from a backend driver, and incremented when this flag has been set. In case the counter is 2 or higher delay the EOI by 1 << (cnt - 2) jiffies, but not more than 1 second. In order not to waste memory shorten the per-event refcnt to two bytes (it should normally never exceed a value of 2). Add an overflow check to evtchn_get() to make sure the 2 bytes really won't overflow. This is part of XSA-332. Cc: stable@vger.kernel.org Signed-off-by: Juergen Gross <jgross@suse.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Reviewed-by: Wei Liu <wl@xen.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions