From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linutronix.de (146.0.238.70:993) by crypto-ml.lab.linutronix.de with IMAP4-SSL for ; 24 Feb 2019 15:13:20 -0000 Received: from mga02.intel.com ([134.134.136.20]) by Galois.linutronix.de with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1gxvO4-0001Tj-6Z for speck@linutronix.de; Sun, 24 Feb 2019 16:08:16 +0100 From: Andi Kleen Subject: [MODERATED] [PATCH v6 32/43] MDSv6 Date: Sun, 24 Feb 2019 07:07:38 -0800 Message-Id: <891da9847b013eddae132a7cac4f9b243cd44323.1551019522.git.ak@linux.intel.com> In-Reply-To: References: In-Reply-To: References: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 To: speck@linutronix.de Cc: Andi Kleen List-ID: Xen has its own call back system that multiplexes a single interrupt. Most Xen handlers do not touch user data, but a few non performance critical ones do. Add explicit clearing to those. The fast paths for block and network IO are not impacted. Signed-off-by: Andi Kleen --- drivers/input/misc/xen-kbdfront.c | 3 ++- drivers/video/fbdev/xen-fbfront.c | 2 ++ drivers/xen/pvcalls-front.c | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/input/misc/xen-kbdfront.c b/drivers/input/misc/xen-kbdfront.c index 24bc5c5d876f..e7cf4fffcc8b 100644 --- a/drivers/input/misc/xen-kbdfront.c +++ b/drivers/input/misc/xen-kbdfront.c @@ -19,6 +19,7 @@ #include #include #include +#include #include @@ -193,7 +194,7 @@ static irqreturn_t input_handler(int rq, void *dev_id) mb(); /* ensure we got ring contents */ page->in_cons = cons; notify_remote_via_irq(info->irq); - + lazy_clear_cpu(); return IRQ_HANDLED; } diff --git a/drivers/video/fbdev/xen-fbfront.c b/drivers/video/fbdev/xen-fbfront.c index 6a4bbc9e1fb0..55c4cefd6a24 100644 --- a/drivers/video/fbdev/xen-fbfront.c +++ b/drivers/video/fbdev/xen-fbfront.c @@ -28,6 +28,7 @@ #include #include #include +#include #include @@ -358,6 +359,7 @@ static irqreturn_t xenfb_event_handler(int rq, void *dev_id) /* Flush dirty rectangle: */ xenfb_refresh(info, INT_MAX, INT_MAX, -INT_MAX, -INT_MAX); + lazy_clear_cpu(); return IRQ_HANDLED; } diff --git a/drivers/xen/pvcalls-front.c b/drivers/xen/pvcalls-front.c index 8a249c95c193..e01eb88cddfd 100644 --- a/drivers/xen/pvcalls-front.c +++ b/drivers/xen/pvcalls-front.c @@ -15,6 +15,7 @@ #include #include #include +#include #include @@ -219,6 +220,7 @@ static irqreturn_t pvcalls_front_event_handler(int irq, void *dev_id) */ smp_wmb(); bedata->rsp[req_id].req_id = req_id; + lazy_clear_cpu(); } done = 1; -- 2.17.2