[PATCH] ipv6: Correct/silence an endian warning in ip6_multipath_l3_keys

Kunwu Chan posted 1 patch 2 years, 1 month ago
There is a newer version of this series
net/ipv6/route.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] ipv6: Correct/silence an endian warning in ip6_multipath_l3_keys
Posted by Kunwu Chan 2 years, 1 month ago
net/ipv6/route.c:2332:39: warning: incorrect type in assignment (different base types)
net/ipv6/route.c:2332:39:    expected unsigned int [usertype] flow_label
net/ipv6/route.c:2332:39:    got restricted __be32

Signed-off-by: Kunwu Chan <chentao@kylinos.cn>
---
 net/ipv6/route.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index b132feae3393..692c811eb786 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -2329,7 +2329,7 @@ static void ip6_multipath_l3_keys(const struct sk_buff *skb,
 	} else {
 		keys->addrs.v6addrs.src = key_iph->saddr;
 		keys->addrs.v6addrs.dst = key_iph->daddr;
-		keys->tags.flow_label = ip6_flowlabel(key_iph);
+		keys->tags.flow_label = be32_to_cpu(ip6_flowlabel(key_iph));
 		keys->basic.ip_proto = key_iph->nexthdr;
 	}
 }
-- 
2.34.1
Re: [PATCH] ipv6: Correct/silence an endian warning in ip6_multipath_l3_keys
Posted by Eric Dumazet 2 years, 1 month ago
On Fri, Nov 17, 2023 at 6:06 PM Kunwu Chan <chentao@kylinos.cn> wrote:
>
> net/ipv6/route.c:2332:39: warning: incorrect type in assignment (different base types)
> net/ipv6/route.c:2332:39:    expected unsigned int [usertype] flow_label
> net/ipv6/route.c:2332:39:    got restricted __be32
>
> Signed-off-by: Kunwu Chan <chentao@kylinos.cn>

Same remark, we need a Fixes: tag

> ---
>  net/ipv6/route.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/ipv6/route.c b/net/ipv6/route.c
> index b132feae3393..692c811eb786 100644
> --- a/net/ipv6/route.c
> +++ b/net/ipv6/route.c
> @@ -2329,7 +2329,7 @@ static void ip6_multipath_l3_keys(const struct sk_buff *skb,
>         } else {
>                 keys->addrs.v6addrs.src = key_iph->saddr;
>                 keys->addrs.v6addrs.dst = key_iph->daddr;
> -               keys->tags.flow_label = ip6_flowlabel(key_iph);
> +               keys->tags.flow_label = be32_to_cpu(ip6_flowlabel(key_iph));
>                 keys->basic.ip_proto = key_iph->nexthdr;
>         }

This is not consistent with line 2541 doing:

hash_keys.tags.flow_label = (__force u32)flowi6_get_flowlabel(fl6);
Re: [PATCH] ipv6: Correct/silence an endian warning in ip6_multipath_l3_keys
Posted by Kunwu Chan 2 years, 1 month ago
Hi Eric,
Thank you very much for the suggestion, I have modified and resent the 
patch as suggested.

On 2023/11/18 01:29, Eric Dumazet wrote:
> On Fri, Nov 17, 2023 at 6:06 PM Kunwu Chan <chentao@kylinos.cn> wrote:
>>
>> net/ipv6/route.c:2332:39: warning: incorrect type in assignment (different base types)
>> net/ipv6/route.c:2332:39:    expected unsigned int [usertype] flow_label
>> net/ipv6/route.c:2332:39:    got restricted __be32
>>
>> Signed-off-by: Kunwu Chan <chentao@kylinos.cn>
> 
> Same remark, we need a Fixes: tag
> 
>> ---
>>   net/ipv6/route.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/net/ipv6/route.c b/net/ipv6/route.c
>> index b132feae3393..692c811eb786 100644
>> --- a/net/ipv6/route.c
>> +++ b/net/ipv6/route.c
>> @@ -2329,7 +2329,7 @@ static void ip6_multipath_l3_keys(const struct sk_buff *skb,
>>          } else {
>>                  keys->addrs.v6addrs.src = key_iph->saddr;
>>                  keys->addrs.v6addrs.dst = key_iph->daddr;
>> -               keys->tags.flow_label = ip6_flowlabel(key_iph);
>> +               keys->tags.flow_label = be32_to_cpu(ip6_flowlabel(key_iph));
>>                  keys->basic.ip_proto = key_iph->nexthdr;
>>          }
> 
> This is not consistent with line 2541 doing:
> 
> hash_keys.tags.flow_label = (__force u32)flowi6_get_flowlabel(fl6);
[PATCH v2] ipv6: Correct/silence an endian warning in ip6_multipath_l3_keys
Posted by Kunwu Chan 2 years, 1 month ago
net/ipv6/route.c:2332:39: warning: incorrect type in assignment (different base types)
net/ipv6/route.c:2332:39:    expected unsigned int [usertype] flow_label
net/ipv6/route.c:2332:39:    got restricted __be32

Fixes: fa1be7e01ea8 ("ipv6: omit traffic class when calculating flow hash")
Suggested-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Kunwu Chan <chentao@kylinos.cn>
---
 net/ipv6/route.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index b132feae3393..1fdae8d71339 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -2329,7 +2329,7 @@ static void ip6_multipath_l3_keys(const struct sk_buff *skb,
 	} else {
 		keys->addrs.v6addrs.src = key_iph->saddr;
 		keys->addrs.v6addrs.dst = key_iph->daddr;
-		keys->tags.flow_label = ip6_flowlabel(key_iph);
+		keys->tags.flow_label = (__force u32)ip6_flowlabel(key_iph);
 		keys->basic.ip_proto = key_iph->nexthdr;
 	}
 }
-- 
2.34.1
Re: [PATCH v2] ipv6: Correct/silence an endian warning in ip6_multipath_l3_keys
Posted by Paolo Abeni 2 years, 1 month ago
On Sun, 2023-11-19 at 22:39 +0800, Kunwu Chan wrote:
> net/ipv6/route.c:2332:39: warning: incorrect type in assignment (different base types)
> net/ipv6/route.c:2332:39:    expected unsigned int [usertype] flow_label
> net/ipv6/route.c:2332:39:    got restricted __be32
> 
> Fixes: fa1be7e01ea8 ("ipv6: omit traffic class when calculating flow hash")

This does not look like the correct fixes tag, sparse warning is
preexistent. Likely 23aebdacb05dab9efdf22b9e0413491cbd5f128f

Please sent a new revision with the correct tag, thanks

Paolo
Re: [PATCH v2] ipv6: Correct/silence an endian warning in ip6_multipath_l3_keys
Posted by Kunwu Chan 2 years, 1 month ago
Thanks for your reply.

I'll update it in v3,and add send it in a new thread.


Thanks,
Kunwu

On 2023/11/21 20:11, Paolo Abeni wrote:
> This does not look like the correct fixes tag, sparse warning is
> preexistent. Likely 23aebdacb05dab9efdf22b9e0413491cbd5f128f
> 
> Please sent a new revision with the correct tag, thanks