aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2007-12-12 10:36:59 -0800
committerDavid S. Miller <davem@davemloft.net>2008-01-28 14:57:21 -0800
commit815f4e57e9fc67456624ecde0515a901368c78d2 (patch)
treea93d4c3922d9711a6d29d909c8d79694c931e2a4
parent3f71c81ac37b27b824e9ce18fe17438dc2af4a16 (diff)
[IPSEC]: Make xfrm_lookup flags argument a bit-field
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>
-rw-r--r--include/net/dst.h5
-rw-r--r--net/xfrm/xfrm_policy.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/include/net/dst.h b/include/net/dst.h
index e86b9a008eb..aaa2dbb5017 100644
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -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,
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 95dc581861e..3d516d57b5b 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -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);