Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp3075607ybt; Mon, 29 Jun 2020 14:40:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx7LzHYxk9m6DqnYL8vAPj7E32Y+ZZZZkCQuwS6gf+Hbhi6EzK/RqPx9G62gRaons8VNyCJ X-Received: by 2002:a17:906:456:: with SMTP id e22mr10524043eja.178.1593466830673; Mon, 29 Jun 2020 14:40:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593466830; cv=none; d=google.com; s=arc-20160816; b=P9ZfqMy942GEYEepp8twEnvn6uf8qJ06kWXAx5BRpB7pWSce/Tr0JAT/Le/hKCaqKO eiHgHG7vsyEvjyWMFcLiqgosn98Mqa1DMEjkjtddVZZbOiQcs3msuwRyVpF1hwGiokOK DCLcTTeJpfnmBcJLYRZq2S1hctwgp4MAxqSXfBSqjn6Khigv0wBEalyRvdekk+A9WNzL m+mEHt/PrSZ1Bq9DrAX45vlsXnUyonLqCN1Hwa7ahm4OzdlWJrDIpGeV8/DEzssip1sL asmUltUY4MXzRoqioMSHnfmPkAgDw0Hn4DGCZQTx6ldWIFhgrq+xMMaQjkoxv9QOkfmC 1vmQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=5lccH909424kf3SaLk3mwHcIZe3hzHMOxHqAn1mWhnc=; b=rtYCgq1TMtZHYiKUKlzz6otJeXPbJxfXM7X9/+VAwMLKJGrQufqyIk9enkc+ImgDuJ mcbOSXXQtKG2YZbyy6oSUniyKJJ7Lz7xqVQpwGUHoVsY5DrRPACzwI2cAQF0KktJL7QF XL6I1Wwu+41MWJdGS7LPf6ahZ2fRJQ4vOc+ZK7bs21AR+8Nk66cdJ9+ApAqM0rR5sFYU NWSE7zz/apvyk7BOajxNmErWAuPukApZ7E1CbwQZ+kR03xPk8VNdlrERVZ9nkR2ejrcU OxxoAJqSUQYHVIckVZOzYApvDrdReQEdL9wb30BmA0xuIRueTIZMkNP22xl/Em1yMOBL p54Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=StE01DfE; 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=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f8si438358edv.497.2020.06.29.14.40.07; Mon, 29 Jun 2020 14:40:30 -0700 (PDT) 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=@kernel.org header.s=default header.b=StE01DfE; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732390AbgF2Vje (ORCPT + 99 others); Mon, 29 Jun 2020 17:39:34 -0400 Received: from mail.kernel.org ([198.145.29.99]:60672 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728325AbgF2Skb (ORCPT ); Mon, 29 Jun 2020 14:40:31 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2490723EB3; Mon, 29 Jun 2020 15:18:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1593443903; bh=um6uLRaw7yzcdv0KweyEdePc+kM+tlhpRsre8nvAxfM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=StE01DfEwuezSkCyM+WBoPb8p49jAzhDrlKsA4lBrY9SWyjmYkUud6LjZUbsKKMmX DZj2oTIYWKja66YdaWEgi16vCThIfvrl6V0Et1iVA1/hwX30b0AWACeC19wdlBFzDM aNKalFb9guHkqtWZz8mjIba+r//5iLVcpNhg3P7k= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Claudiu Manoil , "David S . Miller" , Greg Kroah-Hartman Subject: [PATCH 5.7 003/265] enetc: Fix tx rings bitmap iteration range, irq handling Date: Mon, 29 Jun 2020 11:13:56 -0400 Message-Id: <20200629151818.2493727-4-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200629151818.2493727-1-sashal@kernel.org> References: <20200629151818.2493727-1-sashal@kernel.org> MIME-Version: 1.0 X-KernelTest-Patch: http://kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.7.7-rc1.gz X-KernelTest-Tree: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git X-KernelTest-Branch: linux-5.7.y X-KernelTest-Patches: git://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git X-KernelTest-Version: 5.7.7-rc1 X-KernelTest-Deadline: 2020-07-01T15:14+00:00 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Claudiu Manoil [ Upstream commit 0574e2000fc3103cbc69ba82ec1175ce171fdf5e ] The rings bitmap of an interrupt vector encodes which of the device's rings were assigned to that interrupt vector. Hence the iteration range of the tx rings bitmap (for_each_set_bit()) should be the total number of Tx rings of that netdevice instead of the number of rings assigned to the interrupt vector. Since there are 2 cores, and one interrupt vector for each core, the number of rings asigned to an interrupt vector is half the number of available rings. The impact of this error is that the upper half of the tx rings could still generate interrupts during napi polling. Fixes: d4fd0404c1c9 ("enetc: Introduce basic PF and VF ENETC ethernet drivers") Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/freescale/enetc/enetc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c b/drivers/net/ethernet/freescale/enetc/enetc.c index ccf2611f4a203..4486a0db8ef0c 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc.c +++ b/drivers/net/ethernet/freescale/enetc/enetc.c @@ -266,7 +266,7 @@ static irqreturn_t enetc_msix(int irq, void *data) /* disable interrupts */ enetc_wr_reg(v->rbier, 0); - for_each_set_bit(i, &v->tx_rings_map, v->count_tx_rings) + for_each_set_bit(i, &v->tx_rings_map, ENETC_MAX_NUM_TXQS) enetc_wr_reg(v->tbier_base + ENETC_BDR_OFF(i), 0); napi_schedule_irqoff(&v->napi); @@ -302,7 +302,7 @@ static int enetc_poll(struct napi_struct *napi, int budget) /* enable interrupts */ enetc_wr_reg(v->rbier, ENETC_RBIER_RXTIE); - for_each_set_bit(i, &v->tx_rings_map, v->count_tx_rings) + for_each_set_bit(i, &v->tx_rings_map, ENETC_MAX_NUM_TXQS) enetc_wr_reg(v->tbier_base + ENETC_BDR_OFF(i), ENETC_TBIER_TXTIE); -- 2.25.1