tipc: delete the unlikely branch in tipc_aead_encrypt
authorXin Long <lucien.xin@gmail.com>
Wed, 24 Nov 2021 17:11:12 +0000 (12:11 -0500)
committerJakub Kicinski <kuba@kernel.org>
Fri, 26 Nov 2021 04:58:16 +0000 (20:58 -0800)
When a skb comes to tipc_aead_encrypt(), it's always linear. The
unlikely check 'skb_cloned(skb) && tailen <= skb_tailroom(skb)'
can completely be taken care of in skb_cow_data() by the code
in branch "if (!skb_has_frag_list())".

Also, remove the 'TODO:' annotation, as the pages in skbs are not
writable, see more on commit 3cf4375a0904 ("tipc: do not write
skb_shinfo frags when doing decrytion").

Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Jon Maloy <jmaloy@redhat.com>
Link: https://lore.kernel.org/r/47a478da0b6095b76e3cbe7a75cbd25d9da1df9a.1637773872.git.lucien.xin@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/tipc/crypto.c

index b4d9419a015b1b984119ffd85c546ab6d5f3fdcc..81116312b753d3c38110f3634a2eebfdb1dbc5d8 100644 (file)
@@ -761,21 +761,10 @@ static int tipc_aead_encrypt(struct tipc_aead *aead, struct sk_buff *skb,
                         skb_tailroom(skb), tailen);
        }
 
-       if (unlikely(!skb_cloned(skb) && tailen <= skb_tailroom(skb))) {
-               nsg = 1;
-               trailer = skb;
-       } else {
-               /* TODO: We could avoid skb_cow_data() if skb has no frag_list
-                * e.g. by skb_fill_page_desc() to add another page to the skb
-                * with the wanted tailen... However, page skbs look not often,
-                * so take it easy now!
-                * Cloned skbs e.g. from link_xmit() seems no choice though :(
-                */
-               nsg = skb_cow_data(skb, tailen, &trailer);
-               if (unlikely(nsg < 0)) {
-                       pr_err("TX: skb_cow_data() returned %d\n", nsg);
-                       return nsg;
-               }
+       nsg = skb_cow_data(skb, tailen, &trailer);
+       if (unlikely(nsg < 0)) {
+               pr_err("TX: skb_cow_data() returned %d\n", nsg);
+               return nsg;
        }
 
        pskb_put(skb, trailer, tailen);