diff options
-rw-r--r-- | net/ipv4/tunnel4.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/net/ipv4/tunnel4.c b/net/ipv4/tunnel4.c index d619d2e83f5d..978b3fd61e65 100644 --- a/net/ipv4/tunnel4.c +++ b/net/ipv4/tunnel4.c | |||
@@ -17,6 +17,11 @@ static struct xfrm_tunnel *tunnel4_handlers; | |||
17 | static struct xfrm_tunnel *tunnel64_handlers; | 17 | static struct xfrm_tunnel *tunnel64_handlers; |
18 | static DEFINE_MUTEX(tunnel4_mutex); | 18 | static DEFINE_MUTEX(tunnel4_mutex); |
19 | 19 | ||
20 | static inline struct xfrm_tunnel **fam_handlers(unsigned short family) | ||
21 | { | ||
22 | return (family == AF_INET) ? &tunnel4_handlers : &tunnel64_handlers; | ||
23 | } | ||
24 | |||
20 | int xfrm4_tunnel_register(struct xfrm_tunnel *handler, unsigned short family) | 25 | int xfrm4_tunnel_register(struct xfrm_tunnel *handler, unsigned short family) |
21 | { | 26 | { |
22 | struct xfrm_tunnel **pprev; | 27 | struct xfrm_tunnel **pprev; |
@@ -25,8 +30,7 @@ int xfrm4_tunnel_register(struct xfrm_tunnel *handler, unsigned short family) | |||
25 | 30 | ||
26 | mutex_lock(&tunnel4_mutex); | 31 | mutex_lock(&tunnel4_mutex); |
27 | 32 | ||
28 | for (pprev = (family == AF_INET) ? &tunnel4_handlers : &tunnel64_handlers; | 33 | for (pprev = fam_handlers(family); *pprev; pprev = &(*pprev)->next) { |
29 | *pprev; pprev = &(*pprev)->next) { | ||
30 | if ((*pprev)->priority > priority) | 34 | if ((*pprev)->priority > priority) |
31 | break; | 35 | break; |
32 | if ((*pprev)->priority == priority) | 36 | if ((*pprev)->priority == priority) |
@@ -53,8 +57,7 @@ int xfrm4_tunnel_deregister(struct xfrm_tunnel *handler, unsigned short family) | |||
53 | 57 | ||
54 | mutex_lock(&tunnel4_mutex); | 58 | mutex_lock(&tunnel4_mutex); |
55 | 59 | ||
56 | for (pprev = (family == AF_INET) ? &tunnel4_handlers : &tunnel64_handlers; | 60 | for (pprev = fam_handlers(family); *pprev; pprev = &(*pprev)->next) { |
57 | *pprev; pprev = &(*pprev)->next) { | ||
58 | if (*pprev == handler) { | 61 | if (*pprev == handler) { |
59 | *pprev = handler->next; | 62 | *pprev = handler->next; |
60 | ret = 0; | 63 | ret = 0; |