All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Eric Dumazet <edumazet@google.com>,
	RENARD Pierre-Francois <pfrenard@gmail.com>,
	Stefan Wahren <stefan.wahren@i2se.com>,
	Woojung Huh <woojung.huh@microchip.com>,
	Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>,
	"David S . Miller" <davem@davemloft.net>,
	Sasha Levin <sashal@kernel.org>,
	linux-usb@vger.kernel.org, netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 4.19 35/56] net: usb: lan78xx: limit size of local TSO packets
Date: Fri, 24 Jan 2020 09:19:51 -0500	[thread overview]
Message-ID: <20200124142012.29752-35-sashal@kernel.org> (raw)
In-Reply-To: <20200124142012.29752-1-sashal@kernel.org>

From: Eric Dumazet <edumazet@google.com>

[ Upstream commit f8d7408a4d7f60f8b2df0f81decdc882dd9c20dc ]

lan78xx_tx_bh() makes sure to not exceed MAX_SINGLE_PACKET_SIZE
bytes in the aggregated packets it builds, but does
nothing to prevent large GSO packets being submitted.

Pierre-Francois reported various hangs when/if TSO is enabled.

For localy generated packets, we can use netif_set_gso_max_size()
to limit the size of TSO packets.

Note that forwarded packets could still hit the issue,
so a complete fix might require implementing .ndo_features_check
for this driver, forcing a software segmentation if the size
of the TSO packet exceeds MAX_SINGLE_PACKET_SIZE.

Fixes: 55d7de9de6c3 ("Microchip's LAN7800 family USB 2/3 to 10/100/1000 Ethernet device driver")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: RENARD Pierre-Francois <pfrenard@gmail.com>
Tested-by: RENARD Pierre-Francois <pfrenard@gmail.com>
Cc: Stefan Wahren <stefan.wahren@i2se.com>
Cc: Woojung Huh <woojung.huh@microchip.com>
Cc: Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/net/usb/lan78xx.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index 42715520c0706..7d708aeb45763 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -3769,6 +3769,7 @@ static int lan78xx_probe(struct usb_interface *intf,
 
 	/* MTU range: 68 - 9000 */
 	netdev->max_mtu = MAX_SINGLE_PACKET_SIZE;
+	netif_set_gso_max_size(netdev, MAX_SINGLE_PACKET_SIZE - MAX_HEADER);
 
 	dev->ep_blkin = (intf->cur_altsetting)->endpoint + 0;
 	dev->ep_blkout = (intf->cur_altsetting)->endpoint + 1;
-- 
2.20.1


  parent reply	other threads:[~2020-01-24 14:29 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-24 14:19 [PATCH AUTOSEL 4.19 01/56] batman-adv: Fix DAT candidate selection on little endian systems Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 02/56] ARM: dts: meson8: fix the size of the PMU registers Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 03/56] dt-bindings: reset: meson8b: fix duplicate reset IDs Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 04/56] ARM: dts: sun8i: a83t: Correct USB3503 GPIOs polarity Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 05/56] ARM: dts: am57xx-beagle-x15/am57xx-idk: Remove "gpios" for endpoint dt nodes Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 06/56] ARM: dts: beagle-x15-common: Model 5V0 regulator Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 07/56] soc: ti: wkup_m3_ipc: Fix race condition with rproc_boot Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 08/56] tools lib traceevent: Fix memory leakage in filter_event Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 09/56] ARM: dts: imx6q-dhcom: fix rtc compatible Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 10/56] ARM: dts: imx6q-dhcom: Fix SGTL5000 VDDIO regulator connection Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 11/56] rseq: Unregister rseq for clone CLONE_VM Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 12/56] clk: Don't try to enable critical clocks if prepare failed Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 13/56] clk: sunxi-ng: h6-r: Fix AR100/R_APB2 parent order Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 14/56] mac80211: mesh: restrict airtime metric to peered established plinks Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 15/56] x86/resctrl: Fix potential memory leak Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 16/56] clk: qcom: gcc-sdm845: Add missing flag to votable GDSCs Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 17/56] clk: mmp2: Fix the order of timer mux parents Sasha Levin
2020-01-24 14:19 ` [alsa-devel] [PATCH AUTOSEL 4.19 18/56] ASoC: rt5640: Fix NULL dereference on module unload Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 19/56] ARM: dts: imx7: Fix Toradex Colibri iMX7S 256MB NAND flash support Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [Intel-wired-lan] [PATCH AUTOSEL 4.19 20/56] ixgbevf: Remove limit of 10 entries for unicast filter list Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [Intel-wired-lan] [PATCH AUTOSEL 4.19 21/56] ixgbe: Fix calculation of queue with VFs and flow director on interface flap Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [Intel-wired-lan] [PATCH AUTOSEL 4.19 22/56] igb: Fix SGMII SFP module discovery for 100FX/LX Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 23/56] sh_eth: check sh_eth_cpu_data::dual_port when dumping registers Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 24/56] platform/x86: GPD pocket fan: Allow somewhat lower/higher temperature limits Sasha Levin
2020-01-24 14:19 ` [alsa-devel] [PATCH AUTOSEL 4.19 25/56] ASoC: msm8916-wcd-analog: Fix selected events for MIC BIAS External1 Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [alsa-devel] [PATCH AUTOSEL 4.19 26/56] ASoC: sti: fix possible sleep-in-atomic Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [alsa-devel] [PATCH AUTOSEL 4.19 27/56] ASoC: msm8916-wcd-analog: Fix MIC BIAS Internal1 Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [alsa-devel] [PATCH AUTOSEL 4.19 28/56] ASoC: msm8916-wcd-digital: Reset RX interpolation path after use Sasha Levin
2020-01-24 14:19   ` Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 29/56] netfilter: fix a use-after-free in mtype_destroy() Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 30/56] netfilter: arp_tables: init netns pointer in xt_tgdtor_param struct Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 31/56] qmi_wwan: Add support for Quectel RM500Q Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 32/56] NFC: pn533: fix bulk-message timeout Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 33/56] parisc: Use proper printk format for resource_size_t Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 34/56] ptp: free ptp device pin descriptors properly Sasha Levin
2020-01-24 14:19 ` Sasha Levin [this message]
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 36/56] r8152: add missing endpoint sanity check Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 37/56] wireless: fix enabling channel 12 for custom regulatory domain Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 38/56] cfg80211: Fix radar event during another phy CAC Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 39/56] mac80211: Fix TKIP replay protection immediately after key setup Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 40/56] wireless: wext: avoid gcc -O3 warning Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 41/56] cfg80211: check for set_wiphy_params Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 42/56] tick/sched: Annotate lockless access to last_jiffies_update Sasha Levin
2020-01-24 14:19 ` [PATCH AUTOSEL 4.19 43/56] mlxsw: spectrum: Wipe xstats.backlog of down ports Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.19 44/56] hv_netvsc: Fix memory leak when removing rndis device Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.19 45/56] bpf: Fix incorrect verifier simulation of ARSH under ALU32 Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.19 46/56] net/wan/fsl_ucc_hdlc: fix out of bounds write on array utdm_info Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.19 47/56] scsi: mptfusion: Fix double fetch bug in ioctl Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.19 48/56] netfilter: nf_tables: store transaction list locally while requesting module Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.19 49/56] netfilter: nft_tunnel: fix null-attribute check Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.19 50/56] netfilter: nft_tunnel: ERSPAN_VERSION must not be null Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.19 51/56] netfilter: nf_tables: remove WARN and add NLA_STRING upper limits Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.19 52/56] netfilter: nf_tables: fix flowtable list del corruption Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.19 53/56] net: hns: fix soft lockup when there is not enough memory Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.19 54/56] net: dsa: bcm_sf2: Configure IMP port for 2Gb/sec Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.19 55/56] bnxt_en: Fix ipv6 RFS filter matching logic Sasha Levin
2020-01-24 14:20 ` [PATCH AUTOSEL 4.19 56/56] riscv: delete temporary files Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200124142012.29752-35-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=UNGLinuxDriver@microchip.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pfrenard@gmail.com \
    --cc=stable@vger.kernel.org \
    --cc=stefan.wahren@i2se.com \
    --cc=woojung.huh@microchip.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.