lkml.org 
[lkml]   [2018]   [Sep]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.18 003/145] net: mac802154: tx: expand tailroom if necessary
    Date
    4.18-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Alexander Aring <aring@mojatatu.com>

    commit f9c52831133050c6b82aa8b6831c92da2bbf2a0b upstream.

    This patch is necessary if case of AF_PACKET or other socket interface
    which I am aware of it and didn't allocated the necessary room.

    Reported-by: David Palma <david.palma@ntnu.no>
    Reported-by: Rabi Narayan Sahoo <rabinarayans0828@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Alexander Aring <aring@mojatatu.com>
    Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    net/mac802154/tx.c | 15 ++++++++++++++-
    1 file changed, 14 insertions(+), 1 deletion(-)

    --- a/net/mac802154/tx.c
    +++ b/net/mac802154/tx.c
    @@ -63,8 +63,21 @@ ieee802154_tx(struct ieee802154_local *l
    int ret;

    if (!(local->hw.flags & IEEE802154_HW_TX_OMIT_CKSUM)) {
    - u16 crc = crc_ccitt(0, skb->data, skb->len);
    + struct sk_buff *nskb;
    + u16 crc;

    + if (unlikely(skb_tailroom(skb) < IEEE802154_FCS_LEN)) {
    + nskb = skb_copy_expand(skb, 0, IEEE802154_FCS_LEN,
    + GFP_ATOMIC);
    + if (likely(nskb)) {
    + consume_skb(skb);
    + skb = nskb;
    + } else {
    + goto err_tx;
    + }
    + }
    +
    + crc = crc_ccitt(0, skb->data, skb->len);
    put_unaligned_le16(crc, skb_put(skb, 2));
    }


    \
     
     \ /
      Last update: 2018-09-07 23:59    [W:3.251 / U:0.276 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site