Received: by 2002:ac0:aed5:0:0:0:0:0 with SMTP id t21csp5894821imb; Fri, 8 Mar 2019 04:58:53 -0800 (PST) X-Google-Smtp-Source: APXvYqwRYdutE1ZznGsVSpVJL1SF99mRXVhxRdRRtxTTyHoZeLG2esO6nSWxQA/aVqSjtmT41Sbe X-Received: by 2002:a17:902:6686:: with SMTP id e6mr18618935plk.208.1552049933808; Fri, 08 Mar 2019 04:58:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1552049933; cv=none; d=google.com; s=arc-20160816; b=UdCNEjuG+ZuAUyCJryeqkBW7ThWtZr/i0To28KXlrNLP6MYR+asLxyBlXSvXZnzcRD DA4RkoW7YXXEQIEDH0nnEq0H2zpP+c84j+EftgCixbYoQEBHniAOtvq8rjkXNtU8N/Ly nKYCops6g+7Bkx5XORH3Goetr+AWy8LUUT7ftm5031oU24YV/cVftIAYxpIdIbshSWpX k/J5VlUbU9TCt9KbVw4Wm6K1YvQR4g/gH8PVe8eLxi4JqTTlIUcQ43zplGks2FzBnYwF DCnY9205jT/SCMNDiUZV28BXSnQpCFqImAWrMSDRzPujKTfesmI1Q7xXnxchrN5gOpDX m9cQ== 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=7WrUMC/tWfoC8iqMIX/OpKlrOCSlw2ta6qLiU1lVPio=; b=tQGVe1xWqzpkkai/qyqaWnFrxCbTmTGG3B/GDW6AqbAry/rv+F42k2UbAsgXsU3xbU diCIFWFcnDtExG3su/KSBgtY7Vs6d4WF5DIbaX07YgLTKbQveYFDpAEuFCr++LuPx+Rp cHEFfN+vtxNK6MJrbf0cqxpkO6GX2rYX3E3X6n+aR5iS+DY90Snp0PJ318PqHS92OMyq cCwz4PF/qcxSk/y8UDR3+tCEv7BYhGxOe4hfD+M/vPVZ5mzPL7xMyz9SGQ/N7y4gcBPs E9KuhUMK9OofUq0kdmbQKzRVOdnguXYe98G4JRhfkGBaDvnpQb+nrn+gvnqeyl/+UTew mteQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=DXpiiZXp; 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 u22si6867648plq.145.2019.03.08.04.58.38; Fri, 08 Mar 2019 04:58:53 -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=DXpiiZXp; 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 S1727880AbfCHM5f (ORCPT + 99 others); Fri, 8 Mar 2019 07:57:35 -0500 Received: from mail.kernel.org ([198.145.29.99]:33920 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727862AbfCHM5c (ORCPT ); Fri, 8 Mar 2019 07:57:32 -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 D9AAE20449; Fri, 8 Mar 2019 12:57:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1552049851; bh=4zExt0FtGFVFpvoLOrks5FrmI9clKEbz0lm5hmL2sz0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DXpiiZXpkO2rjgmcGMKD6/wV5yFlltHmtAyCm7ZRRBfWYxaiGuXhYG1Tk4Ry4Os/U EFjeUdqW/F88N64aar7JQlpiVTUO0tD/S/LJCIAVioCfPxPuYoKiaf0teQTLn+AyXM 7YK2FovZCJ7AN2NbWy1t+ASaGQtxW5uOeUu9/+SA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Michael Chan , "David S. Miller" Subject: [PATCH 4.20 30/76] bnxt_en: Drop oversize TX packets to prevent errors. Date: Fri, 8 Mar 2019 13:49:42 +0100 Message-Id: <20190308124915.881118015@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190308124914.789210760@linuxfoundation.org> References: <20190308124914.789210760@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.20-stable review patch. If anyone has any objections, please let me know. ------------------ From: Michael Chan [ Upstream commit 2b3c6885386020b1b9d92d45e8349637e27d1f66 ] There have been reports of oversize UDP packets being sent to the driver to be transmitted, causing error conditions. The issue is likely caused by the dst of the SKB switching between 'lo' with 64K MTU and the hardware device with a smaller MTU. Patches are being proposed by Mahesh Bandewar to fix the issue. In the meantime, add a quick length check in the driver to prevent the error. The driver uses the TX packet size as index to look up an array to setup the TX BD. The array is large enough to support all MTU sizes supported by the driver. The oversize TX packet causes the driver to index beyond the array and put garbage values into the TX BD. Add a simple check to prevent this. Signed-off-by: Michael Chan Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6 ++++++ 1 file changed, 6 insertions(+) --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -497,6 +497,12 @@ normal_tx: } length >>= 9; + if (unlikely(length >= ARRAY_SIZE(bnxt_lhint_arr))) { + dev_warn_ratelimited(&pdev->dev, "Dropped oversize %d bytes TX packet.\n", + skb->len); + i = 0; + goto tx_dma_error; + } flags |= bnxt_lhint_arr[length]; txbd->tx_bd_len_flags_type = cpu_to_le32(flags);