mbox series

[net-next,v2,0/3] compiler_types: add Endianness-dependent __counted_by_{le, be}

Message ID 20240327142241.1745989-1-aleksander.lobakin@intel.com
Headers show
Series compiler_types: add Endianness-dependent __counted_by_{le, be} | expand

Message

Alexander Lobakin March 27, 2024, 2:22 p.m. UTC
Some structures contain flexible arrays at the end and the counter for
them, but the counter has explicit Endianness and thus __counted_by()
can't be used directly.

To increase test coverage for potential problems without breaking
anything, introduce __counted_by_{le,be} defined depending on platform's
Endianness to either __counted_by() when applicable or noop otherwise.
The first user will be virtchnl2.h from idpf just as example with 9 flex
structures having Little Endian counters.

Maybe it would be a good idea to introduce such attributes on compiler
level if possible, but for now let's stop on what we have.

Alexander Lobakin (3):
  compiler_types: add Endianness-dependent __counted_by_{le,be}
  idpf: make virtchnl2.h self-contained
  idpf: sprinkle __counted_by{,_le}() in the virtchnl2 header

 Documentation/conf.py                       |  2 ++
 scripts/kernel-doc                          |  1 +
 include/linux/compiler_types.h              | 11 ++++++++++
 drivers/net/ethernet/intel/idpf/idpf_txrx.h |  2 ++
 drivers/net/ethernet/intel/idpf/virtchnl2.h | 24 ++++++++++-----------
 5 files changed, 28 insertions(+), 12 deletions(-)

---
From v1[0]:
* fix compilation of #2 (Jakub);
* pick Acked-bys (Gustavo).

From RFC[1]:

* teach kdoc new attributes (Simon, Kees);
* add Acked-by (Kees);
* fix a couple typos;
* send to net-next (Kees).

[0] https://lore.kernel.org/netdev/20240326164116.645718-1-aleksander.lobakin@intel.com
[1] https://lore.kernel.org/netdev/20240318130354.2713265-1-aleksander.lobakin@intel.com

Comments

Przemek Kitszel March 28, 2024, 10:11 a.m. UTC | #1
On 3/27/24 15:22, Alexander Lobakin wrote:
> Some structures contain flexible arrays at the end and the counter for
> them, but the counter has explicit Endianness and thus __counted_by()
> can't be used directly.
> 
> To increase test coverage for potential problems without breaking
> anything, introduce __counted_by_{le,be} defined depending on platform's
> Endianness to either __counted_by() when applicable or noop otherwise.
> The first user will be virtchnl2.h from idpf just as example with 9 flex
> structures having Little Endian counters.
> 
> Maybe it would be a good idea to introduce such attributes on compiler
> level if possible, but for now let's stop on what we have.
> 
> Alexander Lobakin (3):
>    compiler_types: add Endianness-dependent __counted_by_{le,be}
>    idpf: make virtchnl2.h self-contained
>    idpf: sprinkle __counted_by{,_le}() in the virtchnl2 header
> 
>   Documentation/conf.py                       |  2 ++
>   scripts/kernel-doc                          |  1 +
>   include/linux/compiler_types.h              | 11 ++++++++++
>   drivers/net/ethernet/intel/idpf/idpf_txrx.h |  2 ++
>   drivers/net/ethernet/intel/idpf/virtchnl2.h | 24 ++++++++++-----------
>   5 files changed, 28 insertions(+), 12 deletions(-)
> 
> ---
>  From v1[0]:
> * fix compilation of #2 (Jakub);
> * pick Acked-bys (Gustavo).
> 
>  From RFC[1]:
> 
> * teach kdoc new attributes (Simon, Kees);
> * add Acked-by (Kees);
> * fix a couple typos;
> * send to net-next (Kees).
> 
> [0] https://lore.kernel.org/netdev/20240326164116.645718-1-aleksander.lobakin@intel.com
> [1] https://lore.kernel.org/netdev/20240318130354.2713265-1-aleksander.lobakin@intel.com

nice,
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
patchwork-bot+netdevbpf@kernel.org March 29, 2024, 2:20 a.m. UTC | #2
Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Wed, 27 Mar 2024 15:22:38 +0100 you wrote:
> Some structures contain flexible arrays at the end and the counter for
> them, but the counter has explicit Endianness and thus __counted_by()
> can't be used directly.
> 
> To increase test coverage for potential problems without breaking
> anything, introduce __counted_by_{le,be} defined depending on platform's
> Endianness to either __counted_by() when applicable or noop otherwise.
> The first user will be virtchnl2.h from idpf just as example with 9 flex
> structures having Little Endian counters.
> 
> [...]

Here is the summary with links:
  - [net-next,v2,1/3] compiler_types: add Endianness-dependent __counted_by_{le,be}
    https://git.kernel.org/netdev/net-next/c/ca7e324e8ad3
  - [net-next,v2,2/3] idpf: make virtchnl2.h self-contained
    https://git.kernel.org/netdev/net-next/c/c00d33f1fc79
  - [net-next,v2,3/3] idpf: sprinkle __counted_by{,_le}() in the virtchnl2 header
    https://git.kernel.org/netdev/net-next/c/93d24acfa05e

You are awesome, thank you!