All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Elder <elder@linaro.org>
To: David Laight <David.Laight@ACULAB.COM>,
	"subashab@codeaurora.org" <subashab@codeaurora.org>,
	"stranche@codeaurora.org" <stranche@codeaurora.org>,
	"davem@davemloft.net" <davem@davemloft.net>,
	"kuba@kernel.org" <kuba@kernel.org>
Cc: "sharathv@codeaurora.org" <sharathv@codeaurora.org>,
	"bjorn.andersson@linaro.org" <bjorn.andersson@linaro.org>,
	"evgreen@chromium.org" <evgreen@chromium.org>,
	"cpratapa@codeaurora.org" <cpratapa@codeaurora.org>,
	"elder@kernel.org" <elder@kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH net-next v2 5/6] net: qualcomm: rmnet: don't use C bit-fields in rmnet checksum trailer
Date: Mon, 8 Mar 2021 08:19:37 -0600	[thread overview]
Message-ID: <bef760ad-7f24-f83a-ce3d-957b72b635de@linaro.org> (raw)
In-Reply-To: <a2954816677f4ae1b27e4cb8e38da0a1@AcuMS.aculab.com>

On 3/8/21 7:53 AM, David Laight wrote:
> ...
>>>> -	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.
> 
> Even for the checksum offset a simple 'offset << CONSTANT'
> is enough.

I do not want the code to assume the field resides in the
bottom of the register.

> If it is the bottom bits then even that isn't really needed.
> You might want to mask off high bits - but that is an error
> path that needs to have been checked earlier.

Using u32_get_bits() (etc.) is a general-purpose way of
setting and extracting bit fields from registers.  In a
way, it might be overkill here.  On the other hand, we
can expect additional structures to be defined in
<linux/if_rmnet.h>.  If we handle fields in this common
way now, they can be handled the same way for new
structures.

I think your implication is right, that this could be
done possibly more simply without the helper functions.

Let me do the BIT() fix on version 3.  If others echo
your thoughts about not using the u32_get_bits() family
of helper functions, I can address that in version 4.

					-Alex


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


  reply	other threads:[~2021-03-08 14:20 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-06  3:15 [PATCH net-next v2 0/6] net: qualcomm: rmnet: stop using C bit-fields Alex Elder
2021-03-06  3:15 ` [PATCH net-next v2 1/6] net: qualcomm: rmnet: mark trailer field endianness Alex Elder
2021-03-06  3:15 ` [PATCH net-next v2 2/6] net: qualcomm: rmnet: simplify some byte order logic Alex Elder
2021-03-06  3:15 ` [PATCH net-next v2 3/6] net: qualcomm: rmnet: kill RMNET_MAP_GET_*() accessor macros Alex Elder
2021-03-06  3:15 ` [PATCH net-next v2 4/6] net: qualcomm: rmnet: use field masks instead of C bit-fields Alex Elder
2021-03-06  3:15 ` [PATCH net-next v2 5/6] net: qualcomm: rmnet: don't use C bit-fields in rmnet checksum trailer Alex Elder
2021-03-08 10:13   ` David Laight
2021-03-08 13:39     ` Alex Elder
2021-03-08 13:53       ` David Laight
2021-03-08 14:19         ` Alex Elder [this message]
2021-03-06  3:15 ` [PATCH net-next v2 6/6] net: qualcomm: rmnet: don't use C bit-fields in rmnet checksum header Alex Elder
2021-03-08 10:18   ` David Laight
2021-03-08 13:59     ` Alex Elder
2021-03-08 14:10       ` David Laight

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=bef760ad-7f24-f83a-ce3d-957b72b635de@linaro.org \
    --to=elder@linaro.org \
    --cc=David.Laight@ACULAB.COM \
    --cc=bjorn.andersson@linaro.org \
    --cc=cpratapa@codeaurora.org \
    --cc=davem@davemloft.net \
    --cc=elder@kernel.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 \
    --cc=subashab@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.