* [PATCH] ethdev: fix Tx queue mask endianness
@ 2023-06-29 13:58 David Marchand
2023-06-29 14:48 ` Ferruh Yigit
2023-06-29 15:31 ` Thomas Monjalon
0 siblings, 2 replies; 8+ messages in thread
From: David Marchand @ 2023-06-29 13:58 UTC (permalink / raw)
To: dev
Cc: Ori Kam, Thomas Monjalon, Ferruh Yigit, Andrew Rybchenko, Kiran Kumar K
Even if harmless, this endianness tag is incorrect as the tx_queue field
is declared as a host integer.
Additionally, this breaks OVS compilation with sparse.
Fixes: 41f6bdc7615a ("ethdev: add Tx queue flow matching item")
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
lib/ethdev/rte_flow.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
index 3fe57140f9..86ed98c562 100644
--- a/lib/ethdev/rte_flow.h
+++ b/lib/ethdev/rte_flow.h
@@ -2307,7 +2307,7 @@ struct rte_flow_item_tx_queue {
/** Default mask for RTE_FLOW_ITEM_TX_QUEUE. */
#ifndef __cplusplus
static const struct rte_flow_item_tx_queue rte_flow_item_tx_queue_mask = {
- .tx_queue = RTE_BE16(0xffff),
+ .tx_queue = 0xffff,
};
#endif
--
2.40.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ethdev: fix Tx queue mask endianness
2023-06-29 13:58 [PATCH] ethdev: fix Tx queue mask endianness David Marchand
@ 2023-06-29 14:48 ` Ferruh Yigit
2023-06-29 15:31 ` Thomas Monjalon
1 sibling, 0 replies; 8+ messages in thread
From: Ferruh Yigit @ 2023-06-29 14:48 UTC (permalink / raw)
To: David Marchand, dev
Cc: Ori Kam, Thomas Monjalon, Andrew Rybchenko, Kiran Kumar K
On 6/29/2023 2:58 PM, David Marchand wrote:
> Even if harmless, this endianness tag is incorrect as the tx_queue field
> is declared as a host integer.
> Additionally, this breaks OVS compilation with sparse.
>
> Fixes: 41f6bdc7615a ("ethdev: add Tx queue flow matching item")
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
Applied to dpdk-next-net/main, thanks.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ethdev: fix Tx queue mask endianness
2023-06-29 13:58 [PATCH] ethdev: fix Tx queue mask endianness David Marchand
2023-06-29 14:48 ` Ferruh Yigit
@ 2023-06-29 15:31 ` Thomas Monjalon
2023-06-29 15:40 ` David Marchand
1 sibling, 1 reply; 8+ messages in thread
From: Thomas Monjalon @ 2023-06-29 15:31 UTC (permalink / raw)
To: David Marchand, Ferruh Yigit, Kiran Kumar K
Cc: dev, Ori Kam, Andrew Rybchenko
29/06/2023 15:58, David Marchand:
> Even if harmless, this endianness tag is incorrect as the tx_queue field
> is declared as a host integer.
> Additionally, this breaks OVS compilation with sparse.
>
> Fixes: 41f6bdc7615a ("ethdev: add Tx queue flow matching item")
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
> lib/ethdev/rte_flow.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
> index 3fe57140f9..86ed98c562 100644
> --- a/lib/ethdev/rte_flow.h
> +++ b/lib/ethdev/rte_flow.h
> @@ -2307,7 +2307,7 @@ struct rte_flow_item_tx_queue {
> /** Default mask for RTE_FLOW_ITEM_TX_QUEUE. */
> #ifndef __cplusplus
> static const struct rte_flow_item_tx_queue rte_flow_item_tx_queue_mask = {
> - .tx_queue = RTE_BE16(0xffff),
> + .tx_queue = 0xffff,
As I said in an earlier comment about the same issue,
UINT16_MAX would be better.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ethdev: fix Tx queue mask endianness
2023-06-29 15:31 ` Thomas Monjalon
@ 2023-06-29 15:40 ` David Marchand
2023-06-29 15:42 ` Thomas Monjalon
0 siblings, 1 reply; 8+ messages in thread
From: David Marchand @ 2023-06-29 15:40 UTC (permalink / raw)
To: Thomas Monjalon
Cc: Ferruh Yigit, Kiran Kumar K, dev, Ori Kam, Andrew Rybchenko
On Thu, Jun 29, 2023 at 5:31 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 29/06/2023 15:58, David Marchand:
> > Even if harmless, this endianness tag is incorrect as the tx_queue field
> > is declared as a host integer.
> > Additionally, this breaks OVS compilation with sparse.
> >
> > Fixes: 41f6bdc7615a ("ethdev: add Tx queue flow matching item")
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > ---
> > lib/ethdev/rte_flow.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
> > index 3fe57140f9..86ed98c562 100644
> > --- a/lib/ethdev/rte_flow.h
> > +++ b/lib/ethdev/rte_flow.h
> > @@ -2307,7 +2307,7 @@ struct rte_flow_item_tx_queue {
> > /** Default mask for RTE_FLOW_ITEM_TX_QUEUE. */
> > #ifndef __cplusplus
> > static const struct rte_flow_item_tx_queue rte_flow_item_tx_queue_mask = {
> > - .tx_queue = RTE_BE16(0xffff),
> > + .tx_queue = 0xffff,
>
> As I said in an earlier comment about the same issue,
> UINT16_MAX would be better.
I don't mind updating (or maybe Ferruh can squash this directly ?) but
there are lots of uint16_t fields initialised with 0xffff in this same
file.
--
David Marchand
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ethdev: fix Tx queue mask endianness
2023-06-29 15:40 ` David Marchand
@ 2023-06-29 15:42 ` Thomas Monjalon
2023-06-29 16:14 ` Ferruh Yigit
0 siblings, 1 reply; 8+ messages in thread
From: Thomas Monjalon @ 2023-06-29 15:42 UTC (permalink / raw)
To: David Marchand, Ferruh Yigit, Ori Kam, Andrew Rybchenko
Cc: Kiran Kumar K, dev
29/06/2023 17:40, David Marchand:
> On Thu, Jun 29, 2023 at 5:31 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> > 29/06/2023 15:58, David Marchand:
> > > - .tx_queue = RTE_BE16(0xffff),
> > > + .tx_queue = 0xffff,
> >
> > As I said in an earlier comment about the same issue,
> > UINT16_MAX would be better.
>
> I don't mind updating (or maybe Ferruh can squash this directly ?) but
> there are lots of uint16_t fields initialised with 0xffff in this same
> file.
It can be made in a separate patch for all occurences.
First I would like to get some comments, what do you prefer
between 0xffff and UINT16_MAX?
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ethdev: fix Tx queue mask endianness
2023-06-29 15:42 ` Thomas Monjalon
@ 2023-06-29 16:14 ` Ferruh Yigit
2023-06-30 7:00 ` David Marchand
0 siblings, 1 reply; 8+ messages in thread
From: Ferruh Yigit @ 2023-06-29 16:14 UTC (permalink / raw)
To: Thomas Monjalon, David Marchand, Ori Kam, Andrew Rybchenko
Cc: Kiran Kumar K, dev
On 6/29/2023 4:42 PM, Thomas Monjalon wrote:
> 29/06/2023 17:40, David Marchand:
>> On Thu, Jun 29, 2023 at 5:31 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>>> 29/06/2023 15:58, David Marchand:
>>>> - .tx_queue = RTE_BE16(0xffff),
>>>> + .tx_queue = 0xffff,
>>>
>>> As I said in an earlier comment about the same issue,
>>> UINT16_MAX would be better.
>>
>> I don't mind updating (or maybe Ferruh can squash this directly ?) but
>> there are lots of uint16_t fields initialised with 0xffff in this same
>> file.
>
> It can be made in a separate patch for all occurences.
> First I would like to get some comments, what do you prefer
> between 0xffff and UINT16_MAX?
>
Both works, no strong opinion, I am OK with 0xffff,
The variable we are setting is '*_mask', and main point of the value
used is to have all bits set, and 0xff.. usage highlights it.
Not for UINT16_MAX, but for wider variables, it is easier to make
mistake and put wrong number of 'f', using 'UINTxx_MAX' macro can
prevent this mistake, this is a benefit.
And I think consistency matters more, so if you prefer 'UINTxx_MAX',
lets stick to it.
I can update above in next-net, but as far as I understand we can have a
patch to fix all occurrences.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ethdev: fix Tx queue mask endianness
2023-06-29 16:14 ` Ferruh Yigit
@ 2023-06-30 7:00 ` David Marchand
2023-06-30 7:13 ` David Marchand
0 siblings, 1 reply; 8+ messages in thread
From: David Marchand @ 2023-06-30 7:00 UTC (permalink / raw)
To: Ferruh Yigit
Cc: Thomas Monjalon, Ori Kam, Andrew Rybchenko, Kiran Kumar K, dev
On Thu, Jun 29, 2023 at 6:14 PM Ferruh Yigit <ferruh.yigit@amd.com> wrote:
>
> On 6/29/2023 4:42 PM, Thomas Monjalon wrote:
> > 29/06/2023 17:40, David Marchand:
> >> On Thu, Jun 29, 2023 at 5:31 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> >>> 29/06/2023 15:58, David Marchand:
> >>>> - .tx_queue = RTE_BE16(0xffff),
> >>>> + .tx_queue = 0xffff,
> >>>
> >>> As I said in an earlier comment about the same issue,
> >>> UINT16_MAX would be better.
> >>
> >> I don't mind updating (or maybe Ferruh can squash this directly ?) but
> >> there are lots of uint16_t fields initialised with 0xffff in this same
> >> file.
> >
> > It can be made in a separate patch for all occurences.
> > First I would like to get some comments, what do you prefer
> > between 0xffff and UINT16_MAX?
> >
>
> Both works, no strong opinion, I am OK with 0xffff,
>
> The variable we are setting is '*_mask', and main point of the value
> used is to have all bits set, and 0xff.. usage highlights it.
>
> Not for UINT16_MAX, but for wider variables, it is easier to make
> mistake and put wrong number of 'f', using 'UINTxx_MAX' macro can
> prevent this mistake, this is a benefit.
>
>
> And I think consistency matters more, so if you prefer 'UINTxx_MAX',
> lets stick to it.
>
> I can update above in next-net, but as far as I understand we can have a
> patch to fix all occurrences.
Given that we are considering unsigned integers, is there something
wrong with using (typeof(var)) -1 ?
We could define a new macro to hide this ugly detail.
--
David Marchand
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ethdev: fix Tx queue mask endianness
2023-06-30 7:00 ` David Marchand
@ 2023-06-30 7:13 ` David Marchand
0 siblings, 0 replies; 8+ messages in thread
From: David Marchand @ 2023-06-30 7:13 UTC (permalink / raw)
To: Ferruh Yigit
Cc: Thomas Monjalon, Ori Kam, Andrew Rybchenko, Kiran Kumar K, dev
On Fri, Jun 30, 2023 at 9:00 AM David Marchand
<david.marchand@redhat.com> wrote:
>
> On Thu, Jun 29, 2023 at 6:14 PM Ferruh Yigit <ferruh.yigit@amd.com> wrote:
> >
> > On 6/29/2023 4:42 PM, Thomas Monjalon wrote:
> > > 29/06/2023 17:40, David Marchand:
> > >> On Thu, Jun 29, 2023 at 5:31 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> > >>> 29/06/2023 15:58, David Marchand:
> > >>>> - .tx_queue = RTE_BE16(0xffff),
> > >>>> + .tx_queue = 0xffff,
> > >>>
> > >>> As I said in an earlier comment about the same issue,
> > >>> UINT16_MAX would be better.
> > >>
> > >> I don't mind updating (or maybe Ferruh can squash this directly ?) but
> > >> there are lots of uint16_t fields initialised with 0xffff in this same
> > >> file.
> > >
> > > It can be made in a separate patch for all occurences.
> > > First I would like to get some comments, what do you prefer
> > > between 0xffff and UINT16_MAX?
> > >
> >
> > Both works, no strong opinion, I am OK with 0xffff,
> >
> > The variable we are setting is '*_mask', and main point of the value
> > used is to have all bits set, and 0xff.. usage highlights it.
> >
> > Not for UINT16_MAX, but for wider variables, it is easier to make
> > mistake and put wrong number of 'f', using 'UINTxx_MAX' macro can
> > prevent this mistake, this is a benefit.
> >
> >
> > And I think consistency matters more, so if you prefer 'UINTxx_MAX',
> > lets stick to it.
> >
> > I can update above in next-net, but as far as I understand we can have a
> > patch to fix all occurrences.
>
> Given that we are considering unsigned integers, is there something
> wrong with using (typeof(var)) -1 ?
Or maybe get inspiration from what the Linux kernel does :-)
Like GENMASK().
--
David Marchand
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-06-30 7:13 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-29 13:58 [PATCH] ethdev: fix Tx queue mask endianness David Marchand
2023-06-29 14:48 ` Ferruh Yigit
2023-06-29 15:31 ` Thomas Monjalon
2023-06-29 15:40 ` David Marchand
2023-06-29 15:42 ` Thomas Monjalon
2023-06-29 16:14 ` Ferruh Yigit
2023-06-30 7:00 ` David Marchand
2023-06-30 7:13 ` David Marchand
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).