Remove superfluous skb_share_check() and skb_unshare(). macsec_decrypt is only called by macsec_handle_frame which already does a skb_unshare().
Signed-off-by: Andreas Steinmetz <a...@domdv.de> --- a/drivers/net/macsec.c 2019-06-30 22:02:54.906908179 +0200 +++ b/drivers/net/macsec.c 2019-06-30 22:03:07.315785186 +0200 @@ -939,9 +939,6 @@ u16 icv_len = secy->icv_len; macsec_skb_cb(skb)->valid = false; - skb = skb_share_check(skb, GFP_ATOMIC); - if (!skb) - return ERR_PTR(-ENOMEM); ret = skb_cow_data(skb, 0, &trailer); if (unlikely(ret < 0)) { @@ -973,11 +970,6 @@ aead_request_set_crypt(req, sg, sg, len, iv); aead_request_set_ad(req, macsec_hdr_len(macsec_skb_cb(skb)->has_sci)); - skb = skb_unshare(skb, GFP_ATOMIC); - if (!skb) { - aead_request_free(req); - return ERR_PTR(-ENOMEM); - } } else { /* integrity only: all headers + data authenticated */ aead_request_set_crypt(req, sg, sg, icv_len, iv);