mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
net: switch secpath to use skb extension infrastructure
Remove skb->sp and allocate secpath storage via extension infrastructure. This also reduces sk_buff by 8 bytes on x86_64. Total size of allyesconfig kernel is reduced slightly, as there is less inlined code (one conditional atomic op instead of two on skb_clone). No differences in throughput in following ipsec performance tests: - transport mode with aes on 10GB link - tunnel mode between two network namespaces with aes and null cipher Signed-off-by: Florian Westphal <[email protected]> Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
a84e3f5333
commit
4165079ba3
5 changed files with 59 additions and 83 deletions
|
|
@ -1096,7 +1096,6 @@ struct xfrm_offload {
|
|||
};
|
||||
|
||||
struct sec_path {
|
||||
refcount_t refcnt;
|
||||
int len;
|
||||
int olen;
|
||||
|
||||
|
|
@ -1104,32 +1103,13 @@ struct sec_path {
|
|||
struct xfrm_offload ovec[XFRM_MAX_OFFLOAD_DEPTH];
|
||||
};
|
||||
|
||||
static inline struct sec_path *
|
||||
secpath_get(struct sec_path *sp)
|
||||
{
|
||||
if (sp)
|
||||
refcount_inc(&sp->refcnt);
|
||||
return sp;
|
||||
}
|
||||
|
||||
void __secpath_destroy(struct sec_path *sp);
|
||||
|
||||
static inline void
|
||||
secpath_put(struct sec_path *sp)
|
||||
{
|
||||
if (sp && refcount_dec_and_test(&sp->refcnt))
|
||||
__secpath_destroy(sp);
|
||||
}
|
||||
|
||||
struct sec_path *secpath_dup(struct sec_path *src);
|
||||
struct sec_path *secpath_set(struct sk_buff *skb);
|
||||
|
||||
static inline void
|
||||
secpath_reset(struct sk_buff *skb)
|
||||
{
|
||||
#ifdef CONFIG_XFRM
|
||||
secpath_put(skb->sp);
|
||||
skb->sp = NULL;
|
||||
skb_ext_del(skb, SKB_EXT_SEC_PATH);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue