Version 3 of this series uses BIT() rather than GENMASK() to define single-bit masks. It then uses a simple AND (&) operation rather than (e.g.) u8_get_bits() to access such flags. This was suggested by David Laight and really prefer the result. With Bjorn's permission I have preserved his Reviewed-by tags on the first five patches.
Version 2 fixed bugs in the way the value written into the header was computed. The series was first posted here: https://lore.kernel.org/netdev/20210304223431.15045-1-el...@linaro.org/ Below is a summary of the original description. This series converts data structures defined in <linux/if_rmnet.h> so they use integral field values with bitfield masks rather than relying on C bit-fields. - The first three patches lay the ground work for the others. - The first adds endianness notation to a structure. - The second simplifies a bit of complicated code. - The third open-codes some macros that needlessly obscured some simple code. - Each of the last three patches converts one of the structures defined in <linux/if_rmnet.h> so it no longer uses C bit-fields. -Alex Alex Elder (6): net: qualcomm: rmnet: mark trailer field endianness net: qualcomm: rmnet: simplify some byte order logic net: qualcomm: rmnet: kill RMNET_MAP_GET_*() accessor macros net: qualcomm: rmnet: use field masks instead of C bit-fields net: qualcomm: rmnet: don't use C bit-fields in rmnet checksum trailer net: qualcomm: rmnet: don't use C bit-fields in rmnet checksum header .../ethernet/qualcomm/rmnet/rmnet_handlers.c | 11 ++-- .../net/ethernet/qualcomm/rmnet/rmnet_map.h | 12 ---- .../qualcomm/rmnet/rmnet_map_command.c | 11 +++- .../ethernet/qualcomm/rmnet/rmnet_map_data.c | 60 ++++++++--------- include/linux/if_rmnet.h | 65 +++++++++---------- 5 files changed, 70 insertions(+), 89 deletions(-) -- 2.27.0