xfrm: SA lookups signature with mark
[cascardo/linux.git] / net / key / af_key.c
index da2fe5f..aae3cd8 100644 (file)
@@ -43,6 +43,8 @@ struct netns_pfkey {
 };
 static DEFINE_MUTEX(pfkey_mutex);
 
+#define DUMMY_MARK 0
+static struct xfrm_mark dummy_mark = {0, 0};
 struct pfkey_sock {
        /* struct sock must be the first member of struct pfkey_sock */
        struct sock     sk;
@@ -647,7 +649,7 @@ static struct  xfrm_state *pfkey_xfrm_state_lookup(struct net *net, struct sadb_
        if (!xaddr)
                return NULL;
 
-       return xfrm_state_lookup(net, xaddr, sa->sadb_sa_spi, proto, family);
+       return xfrm_state_lookup(net, DUMMY_MARK, xaddr, sa->sadb_sa_spi, proto, family);
 }
 
 #define PFKEY_ALIGN8(a) (1 + (((a) - 1) | (8 - 1)))
@@ -1316,7 +1318,7 @@ static int pfkey_getspi(struct sock *sk, struct sk_buff *skb, struct sadb_msg *h
        }
 
        if (hdr->sadb_msg_seq) {
-               x = xfrm_find_acq_byseq(net, hdr->sadb_msg_seq);
+               x = xfrm_find_acq_byseq(net, DUMMY_MARK, hdr->sadb_msg_seq);
                if (x && xfrm_addr_cmp(&x->id.daddr, xdaddr, family)) {
                        xfrm_state_put(x);
                        x = NULL;
@@ -1324,7 +1326,7 @@ static int pfkey_getspi(struct sock *sk, struct sk_buff *skb, struct sadb_msg *h
        }
 
        if (!x)
-               x = xfrm_find_acq(net, mode, reqid, proto, xdaddr, xsaddr, 1, family);
+               x = xfrm_find_acq(net, &dummy_mark, mode, reqid, proto, xdaddr, xsaddr, 1, family);
 
        if (x == NULL)
                return -ENOENT;
@@ -1373,7 +1375,7 @@ static int pfkey_acquire(struct sock *sk, struct sk_buff *skb, struct sadb_msg *
        if (hdr->sadb_msg_seq == 0 || hdr->sadb_msg_errno == 0)
                return 0;
 
-       x = xfrm_find_acq_byseq(net, hdr->sadb_msg_seq);
+       x = xfrm_find_acq_byseq(net, DUMMY_MARK, hdr->sadb_msg_seq);
        if (x == NULL)
                return 0;
 
@@ -2572,8 +2574,8 @@ static int pfkey_spdget(struct sock *sk, struct sk_buff *skb, struct sadb_msg *h
                return -EINVAL;
 
        delete = (hdr->sadb_msg_type == SADB_X_SPDDELETE2);
-       xp = xfrm_policy_byid(net, XFRM_POLICY_TYPE_MAIN, dir,
-                             pol->sadb_x_policy_id, delete, &err);
+       xp = xfrm_policy_byid(net, XFRM_POLICY_TYPE_MAIN,
+                             dir, pol->sadb_x_policy_id, delete, &err);
        if (xp == NULL)
                return -ENOENT;