xfrm: remove state and template sort indirections from xfrm_state_afinfo
No module dependency, placing this in xfrm_state.c avoids need for an indirection. This also removes the state spinlock -- I don't see why we would need to hold it during sorting. This in turn allows to remove the 'net' argument passed to xfrm_tmpl_sort. Last, remove the EXPORT_SYMBOL, there are no modular callers. For the CONFIG_IPV6=m case, vmlinux size increase is about 300 byte. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Šī revīzija ir iekļauta:

revīziju iesūtīja
Steffen Klassert

vecāks
e46817472a
revīzija
3aaf3915a3
@@ -353,8 +353,6 @@ struct xfrm_state_afinfo {
|
||||
const struct xfrm_type *type_map[IPPROTO_MAX];
|
||||
const struct xfrm_type_offload *type_offload_map[IPPROTO_MAX];
|
||||
|
||||
int (*tmpl_sort)(struct xfrm_tmpl **dst, struct xfrm_tmpl **src, int n);
|
||||
int (*state_sort)(struct xfrm_state **dst, struct xfrm_state **src, int n);
|
||||
int (*output)(struct net *net, struct sock *sk, struct sk_buff *skb);
|
||||
int (*output_finish)(struct sock *sk, struct sk_buff *skb);
|
||||
int (*extract_input)(struct xfrm_state *x,
|
||||
@@ -1501,21 +1499,19 @@ struct xfrm_state *xfrm_state_lookup_byaddr(struct net *net, u32 mark,
|
||||
u8 proto,
|
||||
unsigned short family);
|
||||
#ifdef CONFIG_XFRM_SUB_POLICY
|
||||
int xfrm_tmpl_sort(struct xfrm_tmpl **dst, struct xfrm_tmpl **src, int n,
|
||||
unsigned short family, struct net *net);
|
||||
int xfrm_state_sort(struct xfrm_state **dst, struct xfrm_state **src, int n,
|
||||
void xfrm_tmpl_sort(struct xfrm_tmpl **dst, struct xfrm_tmpl **src, int n,
|
||||
unsigned short family);
|
||||
void xfrm_state_sort(struct xfrm_state **dst, struct xfrm_state **src, int n,
|
||||
unsigned short family);
|
||||
#else
|
||||
static inline int xfrm_tmpl_sort(struct xfrm_tmpl **dst, struct xfrm_tmpl **src,
|
||||
int n, unsigned short family, struct net *net)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int xfrm_state_sort(struct xfrm_state **dst, struct xfrm_state **src,
|
||||
static inline void xfrm_tmpl_sort(struct xfrm_tmpl **d, struct xfrm_tmpl **s,
|
||||
int n, unsigned short family)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline void xfrm_state_sort(struct xfrm_state **d, struct xfrm_state **s,
|
||||
int n, unsigned short family)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user