Thread (1 message) 1 message, 1 author, 2013-02-12

RE: [PATCH V2 for-next 1/6] IB/ipoib: Fix ipoib_neigh hashing to use the correct daddr octets

From: Hefty, Sean <hidden>
Date: 2013-02-12 16:33:23

On 2/11/2013 9:46 PM, Hefty, Sean wrote:
quoted
quoted
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
quoted
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -844,10 +844,10 @@ static u32 ipoib_addr_hash(struct ipoib_neigh_hash
*htbl,
quoted
quoted
quoted
u8 *daddr)
 	 * different subnets.
 	 */
 	 /* qpn octets[1:4) & port GUID octets[12:20) */
-	u32 *daddr_32 = (u32 *) daddr;
+	u32 *d32 = (u32 *)daddr;
 	u32 hv;

-	hv = jhash_3words(daddr_32[3], daddr_32[4], 0xFFFFFF & daddr_32[0], 0);
+	hv = jhash_3words(d32[3], d32[4], cpu_to_be32(0xFFFFFF) & d32[0], 0);
Should d32 be declared as __be32 *?
Hi Sean,

The IPoIB destination address is indeed in big endian format and
normally the pointer to it should be of type __be32.
However in this case I just want to feed it into the hash function
without the flags part.
defining d32 as __be32* will make the code a bit ugly as I'll need to
cast 3 of "jhash_3words" functions arguments.
That is,

__be32 *d32;
....

hv = jhash_3words((__force u32) d32[3], (__force u32) d32[4], (__force
u32)(cpu_to_be32(0xFFFFFF) & d32[0]), 0);
Have you run the V2 patch through sparse?
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help