Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp2731000imj; Mon, 11 Feb 2019 07:39:00 -0800 (PST) X-Google-Smtp-Source: AHgI3IZEV8K7LKMMsJ9QsjMVHx4VP1ndknX9j3eku34/jCb8vmrswV1OISptF53tQLFa//ulsxQh X-Received: by 2002:a17:902:6e0f:: with SMTP id u15mr37573518plk.175.1549899540858; Mon, 11 Feb 2019 07:39:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549899540; cv=none; d=google.com; s=arc-20160816; b=fafFjZ85kmfpfZf4mEt/Qi0BSvWtRboI6IrliofgQBtefCy7D6mzwPq/6KwOpaN6Fw q3D/eXEcs3RmPs7XTS8v9Qg8+hZo//ga3TMCeDX3NyGgsnzRjNYflVWJjuz2ub1fif/m BJk01Cge8VLIKXPG/WJ0K+5arunJK1ZyBbNKbz60FIjS9pnBEpZs6qivfLQ27T+zkVyQ ygWLDQPOgNORu364LKKRIMqM1bTFxkxpPbtZANMTlXcjoLlVoF4TSQL+D5yWIjVfmk+m JmcfdVEXPyOcae5cA5S630EJqnhr/Ml2zgNL0vbPyBZm+aeJ9ukUABrleFtXiGIhcRde CNuw== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=cC0aVXm+DqXuT6qMZg/WiM6ChOz0LgK0RO/cIdJ39gA=; b=PMvyjhmkd8xuzueespTc+FmPfXBYRBP9AcwfrjTRgzfDt+fnjFP/vfMSTxMSoEWXA8 5+t+TrQ1UWe6jQ4kPKJY5CRsI2vIAIPuQ+QUCrux/KgKlJpVakT66LNdMYdkzZeWzpkw sptMcGK3r0RsZ4jvX7p0yia+loGakekIBKS56PHrFRh7lV0oGbGv+RLUgFSqdrvF4OG7 FtxOVVf0/d/1/nf3OXj7t3GUctapVYQ6GKNKPhtsKC2stgPREe3oJ2dv67P/qLngYCjH B10bDWzv/ng8GAI1GsTCPi279yT7ByY5naJPUtJzFTipUYKno5d4oMlASJQ9tP78L1hi 73Qw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=2YFg9zmx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 193si8648791pgc.220.2019.02.11.07.38.43; Mon, 11 Feb 2019 07:39:00 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=2YFg9zmx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389222AbfBKPhP (ORCPT + 99 others); Mon, 11 Feb 2019 10:37:15 -0500 Received: from mail.kernel.org ([198.145.29.99]:37286 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387801AbfBKOvT (ORCPT ); Mon, 11 Feb 2019 09:51:19 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A609820700; Mon, 11 Feb 2019 14:51:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1549896678; bh=/Uth2yVs47cZWNc0aro3mml8pIjQbMmWFyM79Zvgc30=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=2YFg9zmx1AtIAUY18029Q3sZHyTp0iOEdm0YVVRH4DgUGTMOV1yVLfnbocQb3o8E4 WR8/75KA1krjTbwbwCC1oEIf8pCckk4+6oE8TZqb2VeeGmLNjEpR5uBexydJ4c9SJi iqFNMkGurdqW5mfXt9+So1b/YYE1Uru/SDpmFho4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Chris Healy , Andrew Lunn , "David S. Miller" Subject: [PATCH 4.19 265/313] net: dsa: mv88e6xxx: Fix counting of ATU violations Date: Mon, 11 Feb 2019 15:19:05 +0100 Message-Id: <20190211141911.017231195@linuxfoundation.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190211141852.749630980@linuxfoundation.org> References: <20190211141852.749630980@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.19-stable review patch. If anyone has any objections, please let me know. ------------------ From: Andrew Lunn [ Upstream commit 75c05a74e745ae7d663b04d75777af80ada2233c ] The ATU port vector contains a bit per port of the switch. The code wrongly used it as a port number, and incremented a port counter. This resulted in the wrong interfaces counter being incremented, and potentially going off the end of the array of ports. Fix this by using the source port ID for the violation, which really is a port number. Reported-by: Chris Healy Tested-by: Chris Healy Fixes: 65f60e4582bd ("net: dsa: mv88e6xxx: Keep ATU/VTU violation statistics") Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/dsa/mv88e6xxx/global1_atu.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) --- a/drivers/net/dsa/mv88e6xxx/global1_atu.c +++ b/drivers/net/dsa/mv88e6xxx/global1_atu.c @@ -314,6 +314,7 @@ static irqreturn_t mv88e6xxx_g1_atu_prob { struct mv88e6xxx_chip *chip = dev_id; struct mv88e6xxx_atu_entry entry; + int spid; int err; u16 val; @@ -336,6 +337,8 @@ static irqreturn_t mv88e6xxx_g1_atu_prob if (err) goto out; + spid = entry.state; + if (val & MV88E6XXX_G1_ATU_OP_AGE_OUT_VIOLATION) { dev_err_ratelimited(chip->dev, "ATU age out violation for %pM\n", @@ -344,23 +347,23 @@ static irqreturn_t mv88e6xxx_g1_atu_prob if (val & MV88E6XXX_G1_ATU_OP_MEMBER_VIOLATION) { dev_err_ratelimited(chip->dev, - "ATU member violation for %pM portvec %x\n", - entry.mac, entry.portvec); - chip->ports[entry.portvec].atu_member_violation++; + "ATU member violation for %pM portvec %x spid %d\n", + entry.mac, entry.portvec, spid); + chip->ports[spid].atu_member_violation++; } if (val & MV88E6XXX_G1_ATU_OP_MISS_VIOLATION) { dev_err_ratelimited(chip->dev, - "ATU miss violation for %pM portvec %x\n", - entry.mac, entry.portvec); - chip->ports[entry.portvec].atu_miss_violation++; + "ATU miss violation for %pM portvec %x spid %d\n", + entry.mac, entry.portvec, spid); + chip->ports[spid].atu_miss_violation++; } if (val & MV88E6XXX_G1_ATU_OP_FULL_VIOLATION) { dev_err_ratelimited(chip->dev, - "ATU full violation for %pM portvec %x\n", - entry.mac, entry.portvec); - chip->ports[entry.portvec].atu_full_violation++; + "ATU full violation for %pM portvec %x spid %d\n", + entry.mac, entry.portvec, spid); + chip->ports[spid].atu_full_violation++; } mutex_unlock(&chip->reg_lock);