[NET] sem2mutex: net/
[linux-2.6.git] / net / ipv4 / xfrm4_tunnel.c
index 413191f..b08d56b 100644 (file)
@@ -5,6 +5,7 @@
 
 #include <linux/skbuff.h>
 #include <linux/module.h>
+#include <linux/mutex.h>
 #include <net/xfrm.h>
 #include <net/ip.h>
 #include <net/protocol.h>
@@ -26,19 +27,19 @@ static int ipip_xfrm_rcv(struct xfrm_state *x, struct xfrm_decap_state *decap, s
 }
 
 static struct xfrm_tunnel *ipip_handler;
-static DECLARE_MUTEX(xfrm4_tunnel_sem);
+static DEFINE_MUTEX(xfrm4_tunnel_mutex);
 
 int xfrm4_tunnel_register(struct xfrm_tunnel *handler)
 {
        int ret;
 
-       down(&xfrm4_tunnel_sem);
+       mutex_lock(&xfrm4_tunnel_mutex);
        ret = 0;
        if (ipip_handler != NULL)
                ret = -EINVAL;
        if (!ret)
                ipip_handler = handler;
-       up(&xfrm4_tunnel_sem);
+       mutex_unlock(&xfrm4_tunnel_mutex);
 
        return ret;
 }
@@ -49,13 +50,13 @@ int xfrm4_tunnel_deregister(struct xfrm_tunnel *handler)
 {
        int ret;
 
-       down(&xfrm4_tunnel_sem);
+       mutex_lock(&xfrm4_tunnel_mutex);
        ret = 0;
        if (ipip_handler != handler)
                ret = -EINVAL;
        if (!ret)
                ipip_handler = NULL;
-       up(&xfrm4_tunnel_sem);
+       mutex_unlock(&xfrm4_tunnel_mutex);
 
        synchronize_net();
 
@@ -78,13 +79,12 @@ static int ipip_rcv(struct sk_buff *skb)
 static void ipip_err(struct sk_buff *skb, u32 info)
 {
        struct xfrm_tunnel *handler = ipip_handler;
-       u32 arg = info;
 
        if (handler)
-               handler->err_handler(skb, &arg);
+               handler->err_handler(skb, info);
 }
 
-static int ipip_init_state(struct xfrm_state *x, void *args)
+static int ipip_init_state(struct xfrm_state *x)
 {
        if (!x->props.mode)
                return -EINVAL;