Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp429826pxb; Wed, 3 Mar 2021 06:54:09 -0800 (PST) X-Google-Smtp-Source: ABdhPJyHoaZeIXyzFElRLH0urAEMih88vHV5/XgliSskosS67cUzoLMdAfQS2CB6CEGIjSK09yCb X-Received: by 2002:a17:906:af84:: with SMTP id mj4mr26498171ejb.84.1614783169079; Wed, 03 Mar 2021 06:52:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614783169; cv=none; d=google.com; s=arc-20160816; b=i8DkLwg3EV4Zj5ymWx8DMDQKwRyp6qNMhSe41X3SxFyEz5TjbSlWEZMlnb/tjL4g7A +zrP6F08RhzDB1R/ZDyXfIr13pByJqq32FnG4zVmQqK3Wajxp6IvGTcl99JoB9sboc7i PzkKWoVUDEdC2z32VCCGdGKHuVCcJnBR0QyDH9uwXdjOO9q6KSwbxoQ/ujYvOikEL3UG uZ3aAiZchIyVKRaWJV3UBBQqrbnfmbrnKSku0WzBwAiwuqayF/URi3kze5pzLSbnUIMN eMdrT9vZralXXFCrA9P0WR87v/jSNTYYfGeAFmVxZJ7RR+dPPyViJuyUarmgd9+wHnHV osOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=vgGKXwg3Y7ijnAs3UxltHq+hXFTewCmlhDIUj8KioKo=; b=aMCCdJ2jzF6771OZn1b2t3scSAESqBlosFjrxM1afvWqYpv77Jb//xjQ5P314uSK8F 8qvpCsxfAmUxCXEfPsGCAXtGho4bDYWCZBPiFOLm6dV25Ar3tfWOuIcDuIzoGRTflGMs iKOls4ylP3MURCz+knRScqG4HSTWX2yv2byKMOGun93W+rg83Cmzs/rJusE1jK30sIZH Lrzc+LqAaRl/mqlK8+oGoW0cPp9esA6u4OFk0LTeuvdpzpiFp9+6spMUnKAtz9d9RGpd OxXRW1OJYRUtnPe2tbDTO0XYuB5AqZS3VOrl5/zylNHKdKtK/1N7ZZBnsGGJQXdiEX0K Jjvw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=dQKtf5F1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v17si3369583eds.386.2021.03.03.06.51.23; Wed, 03 Mar 2021 06:52:49 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=dQKtf5F1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244265AbhCAVwz (ORCPT + 99 others); Mon, 1 Mar 2021 16:52:55 -0500 Received: from mail.kernel.org ([198.145.29.99]:45400 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238349AbhCARYW (ORCPT ); Mon, 1 Mar 2021 12:24:22 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id D7EB765072; Mon, 1 Mar 2021 16:49:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1614617389; bh=XBAr2lIpFsU9MyPV06OL694jPOiqJZGhNcFmfpkuy38=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dQKtf5F1KiZ7hYp4NDmUkimtR3p8fTdV3g9+Se7S2aa3CMUMSVTWeeRy4PwsfhAVY Ag010TXIb0HHR09yTf81aGwANsh/RiHHUo/5bpKb8M1OA+kr8MK1mn9Ifgy4n9/di7 6Lv4rsBJCv1fMMQxDZfLh3Io+JgvPgpT9UwzfwTs= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Juergen Gross , Jan Beulich , Paul Durrant , Wei Liu , "David S. Miller" , Sasha Levin Subject: [PATCH 5.4 056/340] xen/netback: fix spurious event detection for common event case Date: Mon, 1 Mar 2021 17:10:00 +0100 Message-Id: <20210301161051.075826877@linuxfoundation.org> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20210301161048.294656001@linuxfoundation.org> References: <20210301161048.294656001@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Juergen Gross [ Upstream commit a3daf3d39132b405781be8d9ede0c449b244b64e ] In case of a common event for rx and tx queue the event should be regarded to be spurious if no rx and no tx requests are pending. Unfortunately the condition for testing that is wrong causing to decide a event being spurious if no rx OR no tx requests are pending. Fix that plus using local variables for rx/tx pending indicators in order to split function calls and if condition. Fixes: 23025393dbeb3b ("xen/netback: use lateeoi irq binding") Signed-off-by: Juergen Gross Reviewed-by: Jan Beulich Reviewed-by: Paul Durrant Reviewed-by: Wei Liu Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/xen-netback/interface.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c index e889488b84a03..8090895873011 100644 --- a/drivers/net/xen-netback/interface.c +++ b/drivers/net/xen-netback/interface.c @@ -162,13 +162,15 @@ irqreturn_t xenvif_interrupt(int irq, void *dev_id) { struct xenvif_queue *queue = dev_id; int old; + bool has_rx, has_tx; old = atomic_fetch_or(NETBK_COMMON_EOI, &queue->eoi_pending); WARN(old, "Interrupt while EOI pending\n"); - /* Use bitwise or as we need to call both functions. */ - if ((!xenvif_handle_tx_interrupt(queue) | - !xenvif_handle_rx_interrupt(queue))) { + has_tx = xenvif_handle_tx_interrupt(queue); + has_rx = xenvif_handle_rx_interrupt(queue); + + if (!has_rx && !has_tx) { atomic_andnot(NETBK_COMMON_EOI, &queue->eoi_pending); xen_irq_lateeoi(irq, XEN_EOI_FLAG_SPURIOUS); } -- 2.27.0