From: Radu Pirea (NXP OSS) Date: Tue, 19 Dec 2023 14:53:26 +0000 (+0200) Subject: net: macsec: use skb_ensure_writable_head_tail to expand the skb X-Git-Tag: v6.8-rc1~131^2~84^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b34ab3527b9622ca4910df24ff5beed5aa66c6b5;p=thirdparty%2Flinux.git net: macsec: use skb_ensure_writable_head_tail to expand the skb Use skb_ensure_writable_head_tail to expand the skb if needed instead of reimplementing a similar operation. Signed-off-by: Radu Pirea (NXP OSS) Signed-off-by: David S. Miller --- diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c index 9663050a852d8..972bd816292a0 100644 --- a/drivers/net/macsec.c +++ b/drivers/net/macsec.c @@ -604,26 +604,11 @@ static struct sk_buff *macsec_encrypt(struct sk_buff *skb, return ERR_PTR(-EINVAL); } - if (unlikely(skb_headroom(skb) < MACSEC_NEEDED_HEADROOM || - skb_tailroom(skb) < MACSEC_NEEDED_TAILROOM)) { - struct sk_buff *nskb = skb_copy_expand(skb, - MACSEC_NEEDED_HEADROOM, - MACSEC_NEEDED_TAILROOM, - GFP_ATOMIC); - if (likely(nskb)) { - consume_skb(skb); - skb = nskb; - } else { - macsec_txsa_put(tx_sa); - kfree_skb(skb); - return ERR_PTR(-ENOMEM); - } - } else { - skb = skb_unshare(skb, GFP_ATOMIC); - if (!skb) { - macsec_txsa_put(tx_sa); - return ERR_PTR(-ENOMEM); - } + ret = skb_ensure_writable_head_tail(skb, dev); + if (unlikely(ret < 0)) { + macsec_txsa_put(tx_sa); + kfree_skb(skb); + return ERR_PTR(ret); } unprotected_len = skb->len;