[PATCH] net: sched: Fix restricted __be16 degrades to integer

Kunwu Chan posted 1 patch 2 years, 1 month ago
net/sched/cls_api.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH] net: sched: Fix restricted __be16 degrades to integer
Posted by Kunwu Chan 2 years, 1 month ago
net/sched/cls_api.c:2010:25: warning: restricted __be16 degrades to integer
net/sched/cls_api.c:2695:50: warning: restricted __be16 degrades to integer

Signed-off-by: Kunwu Chan <chentao@kylinos.cn>
---
 net/sched/cls_api.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index f73f39f61f66..4c47490eb0c1 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -2007,7 +2007,7 @@ static int tcf_fill_node(struct net *net, struct sk_buff *skb,
 		tcm->tcm_ifindex = TCM_IFINDEX_MAGIC_BLOCK;
 		tcm->tcm_block_index = block->index;
 	}
-	tcm->tcm_info = TC_H_MAKE(tp->prio, tp->protocol);
+	tcm->tcm_info = TC_H_MAKE(tp->prio, be16_to_cpu(tp->protocol));
 	if (nla_put_string(skb, TCA_KIND, tp->ops->kind))
 		goto nla_put_failure;
 	if (nla_put_u32(skb, TCA_CHAIN, tp->chain->index))
@@ -2692,7 +2692,7 @@ static bool tcf_chain_dump(struct tcf_chain *chain, struct Qdisc *q, u32 parent,
 		    TC_H_MAJ(tcm->tcm_info) != tp->prio)
 			continue;
 		if (TC_H_MIN(tcm->tcm_info) &&
-		    TC_H_MIN(tcm->tcm_info) != tp->protocol)
+		    TC_H_MIN(tcm->tcm_info) != be16_to_cpu(tp->protocol))
 			continue;
 		if (*p_index > index_start)
 			memset(&cb->args[1], 0,
-- 
2.34.1
Re: [PATCH] net: sched: Fix restricted __be16 degrades to integer
Posted by Pedro Tammela 2 years, 1 month ago
On 17/11/2023 07:18, Kunwu Chan wrote:
> net/sched/cls_api.c:2010:25: warning: restricted __be16 degrades to integer
> net/sched/cls_api.c:2695:50: warning: restricted __be16 degrades to integer
> 
> Signed-off-by: Kunwu Chan <chentao@kylinos.cn>
> ---
>   net/sched/cls_api.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
> index f73f39f61f66..4c47490eb0c1 100644
> --- a/net/sched/cls_api.c
> +++ b/net/sched/cls_api.c
> @@ -2007,7 +2007,7 @@ static int tcf_fill_node(struct net *net, struct sk_buff *skb,
>   		tcm->tcm_ifindex = TCM_IFINDEX_MAGIC_BLOCK;
>   		tcm->tcm_block_index = block->index;
>   	}
> -	tcm->tcm_info = TC_H_MAKE(tp->prio, tp->protocol);
> +	tcm->tcm_info = TC_H_MAKE(tp->prio, be16_to_cpu(tp->protocol));
>   	if (nla_put_string(skb, TCA_KIND, tp->ops->kind))
>   		goto nla_put_failure;
>   	if (nla_put_u32(skb, TCA_CHAIN, tp->chain->index))
> @@ -2692,7 +2692,7 @@ static bool tcf_chain_dump(struct tcf_chain *chain, struct Qdisc *q, u32 parent,
>   		    TC_H_MAJ(tcm->tcm_info) != tp->prio)
>   			continue;
>   		if (TC_H_MIN(tcm->tcm_info) &&
> -		    TC_H_MIN(tcm->tcm_info) != tp->protocol)
> +		    TC_H_MIN(tcm->tcm_info) != be16_to_cpu(tp->protocol))
>   			continue;
>   		if (*p_index > index_start)
>   			memset(&cb->args[1], 0,

I don't believe there's something to fix here
Re: [PATCH] net: sched: Fix restricted __be16 degrades to integer
Posted by Simon Horman 2 years, 1 month ago
On Fri, Nov 17, 2023 at 09:06:11AM -0300, Pedro Tammela wrote:
> On 17/11/2023 07:18, Kunwu Chan wrote:
> > net/sched/cls_api.c:2010:25: warning: restricted __be16 degrades to integer
> > net/sched/cls_api.c:2695:50: warning: restricted __be16 degrades to integer
> > 
> > Signed-off-by: Kunwu Chan <chentao@kylinos.cn>
> > ---
> >   net/sched/cls_api.c | 4 ++--
> >   1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
> > index f73f39f61f66..4c47490eb0c1 100644
> > --- a/net/sched/cls_api.c
> > +++ b/net/sched/cls_api.c
> > @@ -2007,7 +2007,7 @@ static int tcf_fill_node(struct net *net, struct sk_buff *skb,
> >   		tcm->tcm_ifindex = TCM_IFINDEX_MAGIC_BLOCK;
> >   		tcm->tcm_block_index = block->index;
> >   	}
> > -	tcm->tcm_info = TC_H_MAKE(tp->prio, tp->protocol);
> > +	tcm->tcm_info = TC_H_MAKE(tp->prio, be16_to_cpu(tp->protocol));
> >   	if (nla_put_string(skb, TCA_KIND, tp->ops->kind))
> >   		goto nla_put_failure;
> >   	if (nla_put_u32(skb, TCA_CHAIN, tp->chain->index))
> > @@ -2692,7 +2692,7 @@ static bool tcf_chain_dump(struct tcf_chain *chain, struct Qdisc *q, u32 parent,
> >   		    TC_H_MAJ(tcm->tcm_info) != tp->prio)
> >   			continue;
> >   		if (TC_H_MIN(tcm->tcm_info) &&
> > -		    TC_H_MIN(tcm->tcm_info) != tp->protocol)
> > +		    TC_H_MIN(tcm->tcm_info) != be16_to_cpu(tp->protocol))
> >   			continue;
> >   		if (*p_index > index_start)
> >   			memset(&cb->args[1], 0,
> 
> I don't believe there's something to fix here

Hi,

as there are two patches addressing similar problems let's discuss
an appropriate approach (or not) in one place. I'd like to suggest here:

Link: https://lore.kernel.org/netdev/20231120100417.GM186930@vergenet.net/