Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp1930763ybl; Tue, 3 Dec 2019 15:12:10 -0800 (PST) X-Google-Smtp-Source: APXvYqzTDTtdygbjTSDoziuq2Vl/NhDTmm34rbQu92kfFSP26iYiO9lx92TSgnIMm1oCLbVO/3Xl X-Received: by 2002:aca:c715:: with SMTP id x21mr99808oif.146.1575414730571; Tue, 03 Dec 2019 15:12:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1575414730; cv=none; d=google.com; s=arc-20160816; b=iPxiIr3+kZxyAMTWSaq6qPlfX0NsIbcfToRoZp26+wYl3JXvhV03ydZcjbJt/pJRRc QOoqATHGhTS9nk25y4OH4VhnrKCXbcrUfW9PH7o7EvhYXgwrWoCLE4KL0nuPBISID2OV LYmQxPAuW+NWoAFCthm8LyCDf5T8gnOEkiTnh/d59gkJiMKbp2/8TZzY05EEVtpx0tua K7HmiYLrLv2nuNHF3hQ9bV2VUvhqTr+5xa3HB8+10QyTGzHjsz3wIS/2raZliUcr4cZM wAPnRATMb7tN01vNdla2BsZpy6ciIb82tF/8Dn7uujKfvNb++v3WOpSPo1qapkQPoXSE z0hA== 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=rt+5wFC3OSTBVwx8/aOGYcSYP8cQhg4lcvdsnBAg9BU=; b=VCk+u5biVCvUsXjg1HLC8gScvnnRyxZuVcguiYB2GK9/apingSBPLrMvn8E9QR6ynp HRv4D5aePbF0XseVL04+tI+eaMw0KHIo1/YJ2J4MjRmajbcgKhZ563UK4z0/MHXIKJJI DwY+bK9xWgV65saq/5lW9DxOnMKvVbUyND3KXMs4Wm0C/VbRdklDjkDTO5zth5QgGGVr 2bzIMX9OjOZVS7XsNLPapuOAVpM1PniFUOQpKRYgcolYbNXFsx9NMsyMRYVpd5m3U17u 9qAZ8IaHRazAuhkrYGtjNDnc5ETKkFWWXWPr6UL1dlv1xH0w6BJ6QXS1gaYMeaQkE+SZ BZ1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="fLyp/Tnh"; 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 s206si2223961oib.73.2019.12.03.15.11.58; Tue, 03 Dec 2019 15:12:10 -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="fLyp/Tnh"; 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 S1728817AbfLCXLD (ORCPT + 99 others); Tue, 3 Dec 2019 18:11:03 -0500 Received: from mail.kernel.org ([198.145.29.99]:56198 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728574AbfLCWlj (ORCPT ); Tue, 3 Dec 2019 17:41:39 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.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 D25AE20684; Tue, 3 Dec 2019 22:41:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575412899; bh=plkKtLAsyDuFJg/YpcbFdJkboKAp8rYwkIi9sDfq+jc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fLyp/TnhBhbDmQ98czl1PnLXXrb0VyxZGE+vKdVwldvvJOBc4deX0ldK4+qXUONXV PXM06ZX6upgMuRufy/J0sjbZIKvfOmHAktIuKgcbxr0O7BTzDTLfH+QIZbiu2LcCzJ 94ogWlwDdtKmaJGBREOaGfxO4IQuUM8No6PYw6Bc= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= , Marc Kleine-Budde , Sasha Levin Subject: [PATCH 5.3 059/135] can: flexcan: increase error counters if skb enqueueing via can_rx_offload_queue_sorted() fails Date: Tue, 3 Dec 2019 23:34:59 +0100 Message-Id: <20191203213021.829145542@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191203213005.828543156@linuxfoundation.org> References: <20191203213005.828543156@linuxfoundation.org> User-Agent: quilt/0.66 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 From: Marc Kleine-Budde [ Upstream commit 758124335a9dd649ab820bfb5b328170919ee7dc ] The call to can_rx_offload_queue_sorted() may fail and return an error (in the current implementation due to resource shortage). The passed skb is consumed. This patch adds incrementing of the appropriate error counters to let the device statistics reflect that there's a problem. Reported-by: Martin Hundebøll Signed-off-by: Marc Kleine-Budde Signed-off-by: Sasha Levin --- drivers/net/can/flexcan.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c index 56fa98d7aa90c..a4f0fa94d136a 100644 --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c @@ -658,6 +658,7 @@ static void flexcan_irq_bus_err(struct net_device *dev, u32 reg_esr) struct can_frame *cf; bool rx_errors = false, tx_errors = false; u32 timestamp; + int err; timestamp = priv->read(®s->timer) << 16; @@ -706,7 +707,9 @@ static void flexcan_irq_bus_err(struct net_device *dev, u32 reg_esr) if (tx_errors) dev->stats.tx_errors++; - can_rx_offload_queue_sorted(&priv->offload, skb, timestamp); + err = can_rx_offload_queue_sorted(&priv->offload, skb, timestamp); + if (err) + dev->stats.rx_fifo_errors++; } static void flexcan_irq_state(struct net_device *dev, u32 reg_esr) @@ -719,6 +722,7 @@ static void flexcan_irq_state(struct net_device *dev, u32 reg_esr) int flt; struct can_berr_counter bec; u32 timestamp; + int err; timestamp = priv->read(®s->timer) << 16; @@ -750,7 +754,9 @@ static void flexcan_irq_state(struct net_device *dev, u32 reg_esr) if (unlikely(new_state == CAN_STATE_BUS_OFF)) can_bus_off(dev); - can_rx_offload_queue_sorted(&priv->offload, skb, timestamp); + err = can_rx_offload_queue_sorted(&priv->offload, skb, timestamp); + if (err) + dev->stats.rx_fifo_errors++; } static inline struct flexcan_priv *rx_offload_to_priv(struct can_rx_offload *offload) -- 2.20.1