[XFRM]: Simplify xfrm_spi_hash
It can use __xfrm{4,6}_addr_hash().
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
net/xfrm/xfrm_state.c | 27 ++++++---------------------
1 files changed, 6 insertions(+), 21 deletions(-)
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 9b3ab5c..3e8485a 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -86,35 +86,20 @@ static inline unsigned int xfrm_dst_hash
return __xfrm_dst_hash(addr, reqid, family, xfrm_state_hmask);
}
-static inline unsigned int __xfrm4_spi_hash(xfrm_address_t *addr, u32 spi, u8
proto,
- unsigned int hmask)
-{
- unsigned int h;
- h = ntohl(addr->a4^spi^proto);
- h = (h ^ (h>>10) ^ (h>>20)) & hmask;
- return h;
-}
-
-static inline unsigned int __xfrm6_spi_hash(xfrm_address_t *addr, u32 spi, u8
proto,
- unsigned int hmask)
-{
- unsigned int h;
- h = ntohl(addr->a6[2]^addr->a6[3]^spi^proto);
- h = (h ^ (h>>10) ^ (h>>20)) & hmask;
- return h;
-}
-
static inline unsigned int
__xfrm_spi_hash(xfrm_address_t *addr, u32 spi, u8 proto, unsigned short family,
unsigned int hmask)
{
+ unsigned int h = spi ^ proto;
switch (family) {
case AF_INET:
- return __xfrm4_spi_hash(addr, spi, proto, hmask);
+ h ^= __xfrm4_addr_hash(addr);
+ break;
case AF_INET6:
- return __xfrm6_spi_hash(addr, spi, proto, hmask);
+ h ^= __xfrm6_addr_hash(addr);
+ break;
}
- return 0; /*XXX*/
+ return (h ^ (h >> 10) ^ (h >> 20)) & hmask;
}
static inline unsigned int
--
1.4.2.rc2.g3e042
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html