linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org,
	James Hughes <james.hughes@raspberrypi.org>,
	Eric Dumazet <edumazet@google.com>,
	"David S. Miller" <davem@davemloft.net>
Subject: [PATCH 4.19 17/92] net: usb: lan78xx: Add .ndo_features_check
Date: Tue, 28 Jan 2020 15:07:45 +0100	[thread overview]
Message-ID: <20200128135811.377714272@linuxfoundation.org> (raw)
In-Reply-To: <20200128135809.344954797@linuxfoundation.org>

From: James Hughes <james.hughes@raspberrypi.org>

[ Upstream commit ce896476c65d72b4b99fa09c2f33436b4198f034 ]

As reported by Eric Dumazet, there are still some outstanding
cases where the driver does not handle TSO correctly when skb's
are over a certain size. Most cases have been fixed, this patch
should ensure that forwarded SKB's that are greater than
MAX_SINGLE_PACKET_SIZE - TX_OVERHEAD are software segmented
and handled correctly.

Signed-off-by: James Hughes <james.hughes@raspberrypi.org>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/usb/lan78xx.c |   15 +++++++++++++++
 1 file changed, 15 insertions(+)

--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -31,6 +31,7 @@
 #include <linux/mdio.h>
 #include <linux/phy.h>
 #include <net/ip6_checksum.h>
+#include <net/vxlan.h>
 #include <linux/interrupt.h>
 #include <linux/irqdomain.h>
 #include <linux/irq.h>
@@ -3686,6 +3687,19 @@ static void lan78xx_tx_timeout(struct ne
 	tasklet_schedule(&dev->bh);
 }
 
+static netdev_features_t lan78xx_features_check(struct sk_buff *skb,
+						struct net_device *netdev,
+						netdev_features_t features)
+{
+	if (skb->len + TX_OVERHEAD > MAX_SINGLE_PACKET_SIZE)
+		features &= ~NETIF_F_GSO_MASK;
+
+	features = vlan_features_check(skb, features);
+	features = vxlan_features_check(skb, features);
+
+	return features;
+}
+
 static const struct net_device_ops lan78xx_netdev_ops = {
 	.ndo_open		= lan78xx_open,
 	.ndo_stop		= lan78xx_stop,
@@ -3699,6 +3713,7 @@ static const struct net_device_ops lan78
 	.ndo_set_features	= lan78xx_set_features,
 	.ndo_vlan_rx_add_vid	= lan78xx_vlan_rx_add_vid,
 	.ndo_vlan_rx_kill_vid	= lan78xx_vlan_rx_kill_vid,
+	.ndo_features_check	= lan78xx_features_check,
 };
 
 static void lan78xx_stat_monitor(struct timer_list *t)



  parent reply	other threads:[~2020-01-28 14:26 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-28 14:07 [PATCH 4.19 00/92] 4.19.100-stable review Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 01/92] can, slip: Protect tty->disc_data in write_wakeup and close with RCU Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 02/92] firestream: fix memory leaks Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 03/92] gtp: make sure only SOCK_DGRAM UDP sockets are accepted Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 04/92] ipv6: sr: remove SKB_GSO_IPXIP6 on End.D* actions Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 05/92] net: bcmgenet: Use netif_tx_napi_add() for TX NAPI Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 06/92] net: cxgb3_main: Add CAP_NET_ADMIN check to CHELSIO_GET_MEM Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 07/92] net: ip6_gre: fix moving ip6gre between namespaces Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 08/92] net, ip6_tunnel: fix namespaces move Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 09/92] net, ip_tunnel: " Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 10/92] net: rtnetlink: validate IFLA_MTU attribute in rtnl_create_link() Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 11/92] net_sched: fix datalen for ematch Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 12/92] net-sysfs: Fix reference count leak in rx|netdev_queue_add_kobject Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 13/92] net-sysfs: fix netdev_queue_add_kobject() breakage Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 14/92] net-sysfs: Call dev_hold always in netdev_queue_add_kobject Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 15/92] net-sysfs: Call dev_hold always in rx_queue_add_kobject Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 16/92] net-sysfs: Fix reference count leak Greg Kroah-Hartman
2020-01-28 14:07 ` Greg Kroah-Hartman [this message]
2020-01-28 14:07 ` [PATCH 4.19 18/92] Revert "udp: do rmem bulk free even if the rx sk queue is empty" Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 19/92] tcp_bbr: improve arithmetic division in bbr_update_bw() Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 20/92] tcp: do not leave dangling pointers in tp->highest_sack Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 21/92] tun: add mutex_unlock() call and napi.skb clearing in tun_get_user() Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 22/92] afs: Fix characters allowed into cell names Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 23/92] hwmon: (adt7475) Make volt2reg return same reg as reg2volt input Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 24/92] hwmon: (core) Do not use device managed functions for memory allocations Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 25/92] PCI: Mark AMD Navi14 GPU rev 0xc5 ATS as broken Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 26/92] tracing: trigger: Replace unneeded RCU-list traversals Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 27/92] Input: keyspan-remote - fix control-message timeouts Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 28/92] Revert "Input: synaptics-rmi4 - dont increment rmiaddr for SMBus transfers" Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 29/92] ARM: 8950/1: ftrace/recordmcount: filter relocation types Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 30/92] mmc: tegra: fix SDR50 tuning override Greg Kroah-Hartman
2020-01-28 14:07 ` [PATCH 4.19 31/92] mmc: sdhci: fix minimum clock rate for v3 controller Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 32/92] Documentation: Document arm64 kpti control Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 33/92] Input: pm8xxx-vib - fix handling of separate enable register Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 34/92] Input: sur40 - fix interface sanity checks Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 35/92] Input: gtco - fix endpoint sanity check Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 36/92] Input: aiptek " Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 37/92] Input: pegasus_notetaker " Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 38/92] Input: sun4i-ts - add a check for devm_thermal_zone_of_sensor_register Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 39/92] netfilter: nft_osf: add missing check for DREG attribute Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 40/92] hwmon: (nct7802) Fix voltage limits to wrong registers Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 41/92] scsi: RDMA/isert: Fix a recently introduced regression related to logout Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 42/92] tracing: xen: Ordered comparison of function pointers Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 43/92] do_last(): fetch directory ->i_mode and ->i_uid before its too late Greg Kroah-Hartman
2020-01-31 10:08   ` Rantala, Tommi T. (Nokia - FI/Espoo)
2020-01-31 12:20     ` Al Viro
2020-01-31 13:57       ` Rantala, Tommi T. (Nokia - FI/Espoo)
2020-01-28 14:08 ` [PATCH 4.19 44/92] net/sonic: Add mutual exclusion for accessing shared state Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 45/92] net/sonic: Clear interrupt flags immediately Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 46/92] net/sonic: Use MMIO accessors Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 47/92] net/sonic: Fix interface error stats collection Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 48/92] net/sonic: Fix receive buffer handling Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 49/92] net/sonic: Avoid needless receive descriptor EOL flag updates Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 50/92] net/sonic: Improve receive descriptor status flag check Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 51/92] net/sonic: Fix receive buffer replenishment Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 52/92] net/sonic: Quiesce SONIC before re-initializing descriptor memory Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 53/92] net/sonic: Fix command register usage Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 54/92] net/sonic: Fix CAM initialization Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 55/92] net/sonic: Prevent tx watchdog timeout Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 56/92] tracing: Use hist triggers var_ref array to destroy var_refs Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 57/92] tracing: Remove open-coding of hist trigger var_ref management Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 58/92] tracing: Fix histogram code when expression has same var as value Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 59/92] sd: Fix REQ_OP_ZONE_REPORT completion handling Greg Kroah-Hartman
2020-01-28 18:02   ` Pavel Machek
2020-01-28 18:15     ` Greg Kroah-Hartman
2020-01-29  1:05       ` Damien Le Moal
2020-01-28 14:08 ` [PATCH 4.19 60/92] crypto: geode-aes - switch to skcipher for cbc(aes) fallback Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 61/92] coresight: etb10: Do not call smp_processor_id from preemptible Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 62/92] coresight: tmc-etf: " Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 63/92] libertas: Fix two buffer overflows at parsing bss descriptor Greg Kroah-Hartman
2020-01-29 22:47   ` Pavel Machek
2020-01-28 14:08 ` [PATCH 4.19 64/92] media: v4l2-ioctl.c: zero reserved fields for S/TRY_FMT Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 65/92] scsi: iscsi: Avoid potential deadlock in iscsi_if_rx func Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 66/92] netfilter: ipset: use bitmap infrastructure completely Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 67/92] netfilter: nf_tables: add __nft_chain_type_get() Greg Kroah-Hartman
2020-01-28 18:13   ` Pavel Machek
2020-01-28 14:08 ` [PATCH 4.19 68/92] net/x25: fix nonblocking connect Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 69/92] mm/memory_hotplug: make remove_memory() take the device_hotplug_lock Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 70/92] mm, sparse: drop pgdat_resize_lock in sparse_add/remove_one_section() Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 71/92] mm, sparse: pass nid instead of pgdat to sparse_add_one_section() Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 72/92] drivers/base/memory.c: remove an unnecessary check on NR_MEM_SECTIONS Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 73/92] mm, memory_hotplug: add nid parameter to arch_remove_memory Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 74/92] mm/memory_hotplug: release memory resource after arch_remove_memory() Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 75/92] drivers/base/memory.c: clean up relics in function parameters Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 76/92] mm, memory_hotplug: update a comment in unregister_memory() Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 77/92] mm/memory_hotplug: make unregister_memory_section() never fail Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 78/92] mm/memory_hotplug: make __remove_section() " Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 79/92] powerpc/mm: Fix section mismatch warning Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 80/92] mm/memory_hotplug: make __remove_pages() and arch_remove_memory() never fail Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 88/92] mm/hotplug: kill is_dev_zone() usage in __remove_pages() Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 89/92] drivers/base/node.c: simplify unregister_memory_block_under_nodes() Greg Kroah-Hartman
2020-01-28 14:08 ` [PATCH 4.19 91/92] mm/memory_hotplug: fix try_offline_node() Greg Kroah-Hartman
2020-01-28 14:09 ` [PATCH 4.19 92/92] mm/memory_hotplug: shrink zones when offlining memory Greg Kroah-Hartman
2020-01-28 23:03 ` [PATCH 4.19 00/92] 4.19.100-stable review shuah
2020-01-29  4:54 ` Naresh Kamboju
2020-01-29 11:31 ` Pavel Machek
2020-01-29 12:57   ` Greg Kroah-Hartman
2020-01-29 13:16 ` Jon Hunter
2020-01-29 14:43 ` Guenter Roeck

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=20200128135811.377714272@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=james.hughes@raspberrypi.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).