[SUNRPC]: annotate hash_ip()
authorAl Viro <viro@zeniv.linux.org.uk>
Wed, 8 Nov 2006 08:22:34 +0000 (00:22 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Sun, 3 Dec 2006 05:21:16 +0000 (21:21 -0800)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sunrpc/svcauth_unix.c

index e1bd933629fe59316f21fbcd8738b21e687c60e3..a0a953a430c29957e7204b03061da0604d8c4cf5 100644 (file)
@@ -101,9 +101,9 @@ static void ip_map_put(struct kref *kref)
  * IP addresses in reverse-endian (i.e. on a little-endian machine).
  * So use a trivial but reliable hash instead
  */
-static inline int hash_ip(unsigned long ip)
+static inline int hash_ip(__be32 ip)
 {
-       int hash = ip ^ (ip>>16);
+       int hash = (__force u32)ip ^ ((__force u32)ip>>16);
        return (hash ^ (hash>>8)) & 0xff;
 }
 #endif
@@ -284,7 +284,7 @@ static struct ip_map *ip_map_lookup(char *class, struct in_addr addr)
        ip.m_addr = addr;
        ch = sunrpc_cache_lookup(&ip_map_cache, &ip.h,
                                 hash_str(class, IP_HASHBITS) ^
-                                hash_ip((unsigned long)addr.s_addr));
+                                hash_ip(addr.s_addr));
 
        if (ch)
                return container_of(ch, struct ip_map, h);
@@ -313,7 +313,7 @@ static int ip_map_update(struct ip_map *ipm, struct unix_domain *udom, time_t ex
        ch = sunrpc_cache_update(&ip_map_cache,
                                 &ip.h, &ipm->h,
                                 hash_str(ipm->m_class, IP_HASHBITS) ^
-                                hash_ip((unsigned long)ipm->m_addr.s_addr));
+                                hash_ip(ipm->m_addr.s_addr));
        if (!ch)
                return -ENOMEM;
        cache_put(ch, &ip_map_cache);