]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
xfrm4: Remove xfrm_tunnel_notifier
authorSteffen Klassert <steffen.klassert@secunet.com>
Fri, 21 Feb 2014 07:41:10 +0000 (08:41 +0100)
committerSteffen Klassert <steffen.klassert@secunet.com>
Tue, 25 Feb 2014 06:04:18 +0000 (07:04 +0100)
This was used from vti and is replaced by the IPsec protocol
multiplexer hooks. It is now unused, so remove it.

Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
include/net/xfrm.h
net/ipv4/xfrm4_mode_tunnel.c

index 33112599fa47067538cf209c5c2ad0259efb0361..8b925288a8bc0064d46f2d053c1923d3f29bb3f7 100644 (file)
@@ -1531,8 +1531,6 @@ int xfrm4_protocol_deregister(struct xfrm4_protocol *handler, unsigned char prot
 int xfrm4_tunnel_register(struct xfrm_tunnel *handler, unsigned short family);
 int xfrm4_tunnel_deregister(struct xfrm_tunnel *handler, unsigned short family);
 void xfrm4_local_error(struct sk_buff *skb, u32 mtu);
-int xfrm4_mode_tunnel_input_register(struct xfrm_tunnel_notifier *handler);
-int xfrm4_mode_tunnel_input_deregister(struct xfrm_tunnel_notifier *handler);
 int xfrm6_mode_tunnel_input_register(struct xfrm_tunnel_notifier *handler);
 int xfrm6_mode_tunnel_input_deregister(struct xfrm_tunnel_notifier *handler);
 int xfrm6_extract_header(struct sk_buff *skb);
index 31b18152528fe4dbf9e500ae0c9a2a1a5a3a2adf..05f2b484954feda957d04ff2f0300eedf9c97263 100644 (file)
 #include <net/ip.h>
 #include <net/xfrm.h>
 
-/* Informational hook. The decap is still done here. */
-static struct xfrm_tunnel_notifier __rcu *rcv_notify_handlers __read_mostly;
-static DEFINE_MUTEX(xfrm4_mode_tunnel_input_mutex);
-
-int xfrm4_mode_tunnel_input_register(struct xfrm_tunnel_notifier *handler)
-{
-       struct xfrm_tunnel_notifier __rcu **pprev;
-       struct xfrm_tunnel_notifier *t;
-       int ret = -EEXIST;
-       int priority = handler->priority;
-
-       mutex_lock(&xfrm4_mode_tunnel_input_mutex);
-
-       for (pprev = &rcv_notify_handlers;
-            (t = rcu_dereference_protected(*pprev,
-            lockdep_is_held(&xfrm4_mode_tunnel_input_mutex))) != NULL;
-            pprev = &t->next) {
-               if (t->priority > priority)
-                       break;
-               if (t->priority == priority)
-                       goto err;
-
-       }
-
-       handler->next = *pprev;
-       rcu_assign_pointer(*pprev, handler);
-
-       ret = 0;
-
-err:
-       mutex_unlock(&xfrm4_mode_tunnel_input_mutex);
-       return ret;
-}
-EXPORT_SYMBOL_GPL(xfrm4_mode_tunnel_input_register);
-
-int xfrm4_mode_tunnel_input_deregister(struct xfrm_tunnel_notifier *handler)
-{
-       struct xfrm_tunnel_notifier __rcu **pprev;
-       struct xfrm_tunnel_notifier *t;
-       int ret = -ENOENT;
-
-       mutex_lock(&xfrm4_mode_tunnel_input_mutex);
-       for (pprev = &rcv_notify_handlers;
-            (t = rcu_dereference_protected(*pprev,
-            lockdep_is_held(&xfrm4_mode_tunnel_input_mutex))) != NULL;
-            pprev = &t->next) {
-               if (t == handler) {
-                       *pprev = handler->next;
-                       ret = 0;
-                       break;
-               }
-       }
-       mutex_unlock(&xfrm4_mode_tunnel_input_mutex);
-       synchronize_net();
-
-       return ret;
-}
-EXPORT_SYMBOL_GPL(xfrm4_mode_tunnel_input_deregister);
-
 static inline void ipip_ecn_decapsulate(struct sk_buff *skb)
 {
        struct iphdr *inner_iph = ipip_hdr(skb);
@@ -127,14 +68,8 @@ static int xfrm4_mode_tunnel_output(struct xfrm_state *x, struct sk_buff *skb)
        return 0;
 }
 
-#define for_each_input_rcu(head, handler)      \
-       for (handler = rcu_dereference(head);   \
-            handler != NULL;                   \
-            handler = rcu_dereference(handler->next))
-
 static int xfrm4_mode_tunnel_input(struct xfrm_state *x, struct sk_buff *skb)
 {
-       struct xfrm_tunnel_notifier *handler;
        int err = -EINVAL;
 
        if (XFRM_MODE_SKB_CB(skb)->protocol != IPPROTO_IPIP)
@@ -143,9 +78,6 @@ static int xfrm4_mode_tunnel_input(struct xfrm_state *x, struct sk_buff *skb)
        if (!pskb_may_pull(skb, sizeof(struct iphdr)))
                goto out;
 
-       for_each_input_rcu(rcv_notify_handlers, handler)
-               handler->handler(skb);
-
        err = skb_unclone(skb, GFP_ATOMIC);
        if (err)
                goto out;