static u32 flow_hash(const struct sw_flow_key *key,
                     const struct sw_flow_key_range *range)
 {
-       int key_start = range->start;
-       int key_end = range->end;
-       const u32 *hash_key = (const u32 *)((const u8 *)key + key_start);
-       int hash_u32s = (key_end - key_start) >> 2;
+       const u32 *hash_key = (const u32 *)((const u8 *)key + range->start);
 
        /* Make sure number of hash bytes are multiple of u32. */
-       BUILD_BUG_ON(sizeof(long) % sizeof(u32));
+       int hash_u32s = range_n_bytes(range) >> 2;
 
        return jhash2(hash_key, hash_u32s, 0);
 }