2023-11-17 10:18:53

by Kunwu Chan

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

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 <[email protected]>
---
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


2023-11-17 12:06:35

by Pedro Tammela

[permalink] [raw]
Subject: Re: [PATCH] net: sched: Fix restricted __be16 degrades to integer

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 <[email protected]>
> ---
> 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

2023-11-20 10:09:10

by Simon Horman

[permalink] [raw]
Subject: Re: [PATCH] net: sched: Fix restricted __be16 degrades to integer

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 <[email protected]>
> > ---
> > 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/[email protected]/