diff options
author | Xie He <xie.he.0141@gmail.com> | 2020-10-19 23:34:20 -0700 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2020-10-21 17:58:26 -0700 |
commit | 5fce1e43e2d5bf2f7e3224d7b99b1c65ab2c26e2 (patch) | |
tree | 0085eb62bfa2cbb08fd1407c75bbb34b24efebaf /drivers/net/wan | |
parent | 01c4ceae0a38a0bdbfea6896f41efcd985a9c064 (diff) | |
download | lwn-5fce1e43e2d5bf2f7e3224d7b99b1c65ab2c26e2.tar.gz lwn-5fce1e43e2d5bf2f7e3224d7b99b1c65ab2c26e2.zip |
net: hdlc_raw_eth: Clear the IFF_TX_SKB_SHARING flag after calling ether_setup
This driver calls ether_setup to set up the network device.
The ether_setup function would add the IFF_TX_SKB_SHARING flag to the
device. This flag indicates that it is safe to transmit shared skbs to
the device.
However, this is not true. This driver may pad the frame (in eth_tx)
before transmission, so the skb may be modified.
Fixes: 550fd08c2ceb ("net: Audit drivers to identify those needing IFF_TX_SKB_SHARING cleared")
Cc: Neil Horman <nhorman@tuxdriver.com>
Cc: Krzysztof Halasa <khc@pm.waw.pl>
Signed-off-by: Xie He <xie.he.0141@gmail.com>
Link: https://lore.kernel.org/r/20201020063420.187497-1-xie.he.0141@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/wan')
-rw-r--r-- | drivers/net/wan/hdlc_raw_eth.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wan/hdlc_raw_eth.c b/drivers/net/wan/hdlc_raw_eth.c index 08e0a46501de..c70a518b8b47 100644 --- a/drivers/net/wan/hdlc_raw_eth.c +++ b/drivers/net/wan/hdlc_raw_eth.c @@ -99,6 +99,7 @@ static int raw_eth_ioctl(struct net_device *dev, struct ifreq *ifr) old_qlen = dev->tx_queue_len; ether_setup(dev); dev->tx_queue_len = old_qlen; + dev->priv_flags &= ~IFF_TX_SKB_SHARING; eth_hw_addr_random(dev); call_netdevice_notifiers(NETDEV_POST_TYPE_CHANGE, dev); netif_dormant_off(dev); |