diff options
| author | Radu Pirea (NXP OSS) <radu-nicolae.pirea@oss.nxp.com> | 2023-12-19 16:53:26 +0200 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2023-12-27 13:08:09 +0000 | 
| commit | b34ab3527b9622ca4910df24ff5beed5aa66c6b5 (patch) | |
| tree | b2cb7de7e075298661c14d14d5025cc235863356 | |
| parent | 90abde49ea85a8af9a56bbab8c419aefc77f919a (diff) | |
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) <radu-nicolae.pirea@oss.nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | drivers/net/macsec.c | 25 | 
1 files changed, 5 insertions, 20 deletions
diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c index 9663050a852d..972bd816292a 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;  | 
