On 3/8/21 4:13 AM, David Laight wrote:
From: Alex Elder
Sent: 06 March 2021 03:16
Replace the use of C bit-fields in the rmnet_map_dl_csum_trailer
structure with a single one-byte field, using constant field masks
to encode or get at embedded values.

Signed-off-by: Alex Elder <el...@linaro.org>
Reviewed-by: Bjorn Andersson <bjorn.anders...@linaro.org>
---
  .../ethernet/qualcomm/rmnet/rmnet_map_data.c    |  2 +-
  include/linux/if_rmnet.h                        | 17 +++++++----------
  2 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/drivers/net/ethernet/qualcomm/rmnet/rmnet_map_data.c
b/drivers/net/ethernet/qualcomm/rmnet/rmnet_map_data.c
index 3291f252d81b0..29d485b868a65 100644
--- a/drivers/net/ethernet/qualcomm/rmnet/rmnet_map_data.c
+++ b/drivers/net/ethernet/qualcomm/rmnet/rmnet_map_data.c
@@ -365,7 +365,7 @@ int rmnet_map_checksum_downlink_packet(struct sk_buff *skb, 
u16 len)

        csum_trailer = (struct rmnet_map_dl_csum_trailer *)(skb->data + len);

-       if (!csum_trailer->valid) {
+       if (!u8_get_bits(csum_trailer->flags, MAP_CSUM_DL_VALID_FMASK)) {
Is that just an overcomplicated way of saying:
        if (!(csum_trailer->flags & MAP_CSUM_DL_VALID_FMASK)) {
Yes it is.  I defined and used all the field masks in a
consistent way, but I do think it will read better the
way you suggest.  Bjorn also asked me privately whether
GENMASK(15, 15) was just the same as BIT(15) (it is).

I will post version 3 of the series, identifying which
fields are single bit/Boolean.  For those I will define
the value using BIT() and will set/extract using simple
AND/OR operators.  I won't use the _FMASK suffix on such
fields.

Thanks a lot for your comment/question/suggestion.  I
like it.

                                        -Alex

     David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, 
UK
Registration No: 1397386 (Wales)



Reply via email to