aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/xfrm.h
diff options
context:
space:
mode:
authorYOSHIFUJI Hideaki / 吉藤英明 <yoshfuji@linux-ipv6.org>2013-01-29 07:48:50 -0500
committerDavid S. Miller <davem@davemloft.net>2013-01-29 22:58:40 -0500
commit70e94e66aec255aff276397f5ed3f3626c548f1c (patch)
treef8a266b768f73394271a58a90b7d8375705079df /include/net/xfrm.h
parentff88b30c717f21dffba6784cae4d3287da16f6ef (diff)
xfrm: Convert xfrm_addr_cmp() to boolean xfrm_addr_equal().
All users of xfrm_addr_cmp() use its result as boolean. Introduce xfrm_addr_equal() (which is equal to !xfrm_addr_cmp()) and convert all users. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/xfrm.h')
-rw-r--r--include/net/xfrm.h25
1 files changed, 12 insertions, 13 deletions
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index 0d8a797f0441..de34883e8b16 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -1574,27 +1574,26 @@ extern struct xfrm_algo_desc *xfrm_calg_get_byname(const char *name, int probe);
1574extern struct xfrm_algo_desc *xfrm_aead_get_byname(const char *name, int icv_len, 1574extern struct xfrm_algo_desc *xfrm_aead_get_byname(const char *name, int icv_len,
1575 int probe); 1575 int probe);
1576 1576
1577static inline int xfrm_addr_cmp(const xfrm_address_t *a, 1577static inline bool xfrm6_addr_equal(const xfrm_address_t *a,
1578 const xfrm_address_t *b, 1578 const xfrm_address_t *b)
1579 int family) 1579{
1580 return ipv6_addr_equal((const struct in6_addr *)a,
1581 (const struct in6_addr *)b);
1582}
1583
1584static inline bool xfrm_addr_equal(const xfrm_address_t *a,
1585 const xfrm_address_t *b,
1586 sa_family_t family)
1580{ 1587{
1581 switch (family) { 1588 switch (family) {
1582 default: 1589 default:
1583 case AF_INET: 1590 case AF_INET:
1584 return (__force u32)a->a4 - (__force u32)b->a4; 1591 return ((__force u32)a->a4 ^ (__force u32)b->a4) == 0;
1585 case AF_INET6: 1592 case AF_INET6:
1586 return ipv6_addr_cmp((const struct in6_addr *)a, 1593 return xfrm6_addr_equal(a, b);
1587 (const struct in6_addr *)b);
1588 } 1594 }
1589} 1595}
1590 1596
1591static inline bool xfrm6_addr_equal(const xfrm_address_t *a,
1592 const xfrm_address_t *b)
1593{
1594 return ipv6_addr_equal((const struct in6_addr *)a,
1595 (const struct in6_addr *)b);
1596}
1597
1598static inline int xfrm_policy_id2dir(u32 index) 1597static inline int xfrm_policy_id2dir(u32 index)
1599{ 1598{
1600 return index & 7; 1599 return index & 7;