All of lore.kernel.org
 help / color / mirror / Atom feed
From: subashab@codeaurora.org
To: Alex Elder <elder@linaro.org>
Cc: stranche@codeaurora.org, davem@davemloft.net, kuba@kernel.org,
	sharathv@codeaurora.org, bjorn.andersson@linaro.org,
	evgreen@chromium.org, cpratapa@codeaurora.org, elder@kernel.org,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH net-next 0/6] net: qualcomm: rmnet: stop using C bit-fields
Date: Thu, 04 Mar 2021 20:44:54 -0700	[thread overview]
Message-ID: <3a4a4c26494c12f9961c50e2d4b83c99@codeaurora.org> (raw)
In-Reply-To: <20210304223431.15045-1-elder@linaro.org>

On 2021-03-04 15:34, Alex Elder wrote:
> This series converts data structures defined in <linux/if_rmnet.h>
> so they use integral field values with bitfield masks rather than
> rely on C bit-fields.
> 
> I first proposed doing something like this long ago when my confusion
> about this code (and the memory layout it was supposed to represent)
> led me to believe it was erroneous:
>   
> https://lore.kernel.org/netdev/20190520135354.18628-1-elder@linaro.org/
> 
> It came up again recently, when Sharath Chandra Vurukala proposed
> a new structure in "if_rmnet.h", again using C bit-fields.  I asked
> whether the new structure could use field masks, and Jakub requested
> that this be done.
> 
> https://lore.kernel.org/netdev/1613079324-20166-1-git-send-email-sharathv@
> codeaurora.org/
> I volunteered to convert the existing RMNet code to use bitfield
> masks, and that is what I'm doing here.
> 
> The first three patches are more or less preparation work for the
> last three.
>   - The first marks two fields in an existing structure explicitly
>     big endian.  They are unused by current code, so this should
>     have no impact.
>   - The second simplifies some code that computes the value of a
>     field in a header in a somewhat obfuscated way.
>   - The third eliminates some trivial accessor macros, open-coding
>     them instead.  I believe the accessors actually do more harm
>     than good.
>   - The last three convert the structures defined in "if_rmnet.h"
>     so they are defined only with integral fields, each having
>     well-defined byte order.  Where sub-fields are needed, field
>     masks are defined so they can be encoded or extracted using
>     functions like be16_get_bits() or u8_encode_bits(), defined
>     in <linux/bitfield.h>.  The three structures converted are,
>     in order:  rmnet_map_header, rmnet_map_dl_csum_trailer, and
>     rmnet_map_ul_csum_header.
> 
> 					-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(-)

Can you share what all tests have been done with these patches

  parent reply	other threads:[~2021-03-05  3:45 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-04 22:34 [PATCH net-next 0/6] net: qualcomm: rmnet: stop using C bit-fields Alex Elder
2021-03-04 22:34 ` [PATCH net-next 1/6] net: qualcomm: rmnet: mark trailer field endianness Alex Elder
2021-03-05  4:03   ` Bjorn Andersson
2021-03-04 22:34 ` [PATCH net-next 2/6] net: qualcomm: rmnet: simplify some byte order logic Alex Elder
2021-03-05  4:07   ` Bjorn Andersson
2021-03-05 21:02     ` Alex Elder
2021-03-04 22:34 ` [PATCH net-next 3/6] net: qualcomm: rmnet: kill RMNET_MAP_GET_*() accessor macros Alex Elder
2021-03-05  4:16   ` Bjorn Andersson
2021-03-04 22:34 ` [PATCH net-next 4/6] net: qualcomm: rmnet: use field masks instead of C bit-fields Alex Elder
2021-03-05  4:50   ` Bjorn Andersson
2021-03-04 22:34 ` [PATCH net-next 5/6] net: qualcomm: rmnet: don't use C bit-fields in rmnet checksum trailer Alex Elder
2021-03-05  4:54   ` Bjorn Andersson
2021-03-04 22:34 ` [PATCH net-next 6/6] net: qualcomm: rmnet: don't use C bit-fields in rmnet checksum header Alex Elder
2021-03-05  5:26   ` Bjorn Andersson
2021-03-05 20:48     ` Alex Elder
2021-03-05  6:22   ` kernel test robot
2021-03-05  6:22     ` kernel test robot
2021-03-05 12:59     ` Alex Elder
2021-03-05 12:59       ` Alex Elder
2021-03-04 22:43 ` [PATCH net-next 0/6] net: qualcomm: rmnet: stop using C bit-fields Alex Elder
2021-03-05  3:44 ` subashab [this message]
2021-03-05  4:51   ` Alex Elder

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3a4a4c26494c12f9961c50e2d4b83c99@codeaurora.org \
    --to=subashab@codeaurora.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=cpratapa@codeaurora.org \
    --cc=davem@davemloft.net \
    --cc=elder@kernel.org \
    --cc=elder@linaro.org \
    --cc=evgreen@chromium.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=sharathv@codeaurora.org \
    --cc=stranche@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.