Commit 0c51dffc authored by Xin Long's avatar Xin Long Committed by Jakub Kicinski

tipc: delete the unlikely branch in tipc_aead_encrypt

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 3cf4375a ("tipc: do not write
skb_shinfo frags when doing decrytion").
Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
Acked-by: default avatarJon Maloy <jmaloy@redhat.com>
Link: https://lore.kernel.org/r/47a478da0b6095b76e3cbe7a75cbd25d9da1df9a.1637773872.git.lucien.xin@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 4e35a4f7
......@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment