[IPSEC]: Make xfrm_lookup flags argument a bit-field
authorHerbert Xu <herbert@gondor.apana.org.au>
Wed, 12 Dec 2007 18:36:59 +0000 (10:36 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 22:57:21 +0000 (14:57 -0800)
This patch introduces an enum for bits in the flags argument of xfrm_lookup.
This is so that we can cram more information into it later.

Since all current users use just the values 0 and 1, XFRM_LOOKUP_WAIT has
been added with the value 1 << 0 to represent the current meaning of flags.

The test in __xfrm_lookup has been changed accordingly.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/dst.h
net/xfrm/xfrm_policy.c

index e86b9a008ebf300ec118c2fd909f05eca1c10e11..aaa2dbb501793097d524c04df8d5bd4f74f7020c 100644 (file)
@@ -265,6 +265,11 @@ static inline struct dst_entry *dst_check(struct dst_entry *dst, u32 cookie)
 
 extern void            dst_init(void);
 
+/* Flags for xfrm_lookup flags argument. */
+enum {
+       XFRM_LOOKUP_WAIT = 1 << 0,
+};
+
 struct flowi;
 #ifndef CONFIG_XFRM
 static inline int xfrm_lookup(struct dst_entry **dst_p, struct flowi *fl,
index 95dc581861e8298e1c67b3dcf3a038f4d3c554a9..3d516d57b5b2dc70538a9b74b969662b95670c7b 100644 (file)
@@ -1565,7 +1565,7 @@ restart:
                                xfrm_pol_put(policy);
                                return -EREMOTE;
                        }
-                       if (err == -EAGAIN && flags) {
+                       if (err == -EAGAIN && (flags & XFRM_LOOKUP_WAIT)) {
                                DECLARE_WAITQUEUE(wait, current);
 
                                add_wait_queue(&km_waitq, &wait);