Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp2282432imc; Tue, 12 Mar 2019 10:31:49 -0700 (PDT) X-Google-Smtp-Source: APXvYqx1s3lK00Mrp0j3Irurl109fjIh1NFD9gNPhX7V+fiYKU3ZS9h+H6PR1ukJPELULJHULrxF X-Received: by 2002:a63:e050:: with SMTP id n16mr35963651pgj.210.1552411908940; Tue, 12 Mar 2019 10:31:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552411908; cv=none; d=google.com; s=arc-20160816; b=OcpAJdupXb1CrTkSmqH9qQFJZReZPqwlWLGuJN8TsVL564FCx32g7NwIvr6EK0gz7G gSSb+pC9KtmpRFw5Qw1I9OiOFag6CdT8Nx9KFt9a2JFKl0kNzq78/M8QrT/xUwrTkHsV IZQZnUKDrkGly5/xFMlQo1dne49IcvpzuL7JN0xyiFLhjfKIiCIHgLgXFsB4OqpOv9Zn mavL9GAMH/4QOCji1d5xdefC34GUpMSnaIbB4C0ZPw4FogMyEiYPblY8SXYL1FWCVslh jE/r2h8OGJTqFH7SUmpRFxrn+uSlcH99KHHVyrE5wd7Gst0GAWCaE8WW6kckVTxo6S9z svYQ== 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=ekEUWVIPS6IGUjRkkg4rYqT4T6oyxTTriqITvGh5Vbo=; b=amo4Xt2hc1cn03hXUtzLfo3u071RQc2Q/wW/o1hFrhx0JGCBh+u/8qMQbLapBQELw0 n/bby8UGOXhk4F3Dni1d6ltG8YUlkh9Ug/yrg/7gtESOP/RJJWy+l6jv5cvD2zrvmz9r EzK1hWR1/ioeYUm9f5dN7wG0SYy1nVZRvdh+TpkQqWjL6pyjJDIdG2RTn4be11mA/Oe1 u+7esN2Q6VIz9HrfNOqYxxvaWYyR7yxiKI07sbEjMGXa508wkE9w8pyLtQQpOFTTy3Fp 20taT7aqDWcFnJFK2+1XHRZXQkAyP/5Pvyew1x2zH2FHxB7Iy1WylbZdsEHSlV2NoBDd EMEw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Kw0H5+Hp; 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 b13si7627515pgt.374.2019.03.12.10.31.32; Tue, 12 Mar 2019 10:31:48 -0700 (PDT) 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=Kw0H5+Hp; 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 S1728168AbfCLRab (ORCPT + 99 others); Tue, 12 Mar 2019 13:30:31 -0400 Received: from mail.kernel.org ([198.145.29.99]:60744 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729517AbfCLRRQ (ORCPT ); Tue, 12 Mar 2019 13:17:16 -0400 Received: from localhost (unknown [104.133.8.98]) (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 3244721874; Tue, 12 Mar 2019 17:17:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1552411036; bh=S9FFNboo1CPnTlB0u0t3IuC7pji7zYwgt5316U25/ik=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Kw0H5+HprGVSrHaHMlutFvN813tp3WkdNm7tnxlS0/TlrK8UR4tquwbqMWmzDT90F TXrbWZtiOvYxfT5smkqLmeJrK7xIygn0m1QZ9t9pe2QPCgEcM9RemTJJD8ZY3Skf3v 6QNQ5PkYyFiH5FgL5ArePFg1u2QoIDy1H5qMQrhI= 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.9 14/96] bnxt_en: Drop oversize TX packets to prevent errors. Date: Tue, 12 Mar 2019 10:09:32 -0700 Message-Id: <20190312171035.626885470@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312171034.530434962@linuxfoundation.org> References: <20190312171034.530434962@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.9-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 @@ -428,6 +428,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);