lkml.org 
[lkml]   [2020]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 042/757] net: hdlc_raw_eth: Clear the IFF_TX_SKB_SHARING flag after calling ether_setup
    Date
    From: Xie He <xie.he.0141@gmail.com>

    [ Upstream commit 5fce1e43e2d5bf2f7e3224d7b99b1c65ab2c26e2 ]

    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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/net/wan/hdlc_raw_eth.c | 1 +
    1 file changed, 1 insertion(+)

    --- 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_devi
    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);

    \
     
     \ /
      Last update: 2020-10-27 17:10    [W:4.187 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site