linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Carsten Haitzler <Carsten.Haitzler@arm.com>
To: Yury Norov <yury.norov@gmail.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Liviu Dudau <Liviu.Dudau@arm.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Subject: Re: [PATCH] drm/komeda: use bitmap API to convert U32 to bitmap
Date: Tue, 29 Dec 2020 12:22:16 +0000	[thread overview]
Message-ID: <808b7555-5ba2-f1fe-3800-1d5f59c47b52@arm.com> (raw)
In-Reply-To: <CAAH8bW9UvDAB4NSQB6CuhBU6D=R6Ex6=5V=Ld74hYGK474_Trw@mail.gmail.com>

On 12/28/20 8:10 PM, Yury Norov wrote:
> On Mon, Dec 28, 2020 at 11:49 AM Andy Shevchenko
> <andriy.shevchenko@linux.intel.com> wrote:
>> On Mon, Dec 28, 2020 at 11:43:43AM -0800, Yury Norov wrote:
>>> The commit be3e477effba636ad25 ("drm/komeda: Fix bit
>>> check to import to value of proper type") fixes possible
>>> out-of-bound issue related to find_first_bit() usage, but
>>> does not address the endianness problem.
>> Hmm... Can you elaborate?
>>
>> ...
>>
>>>                                    u32 comp_mask)
>>> -     unsigned long comp_mask_local = (unsigned long)comp_mask;
>> Here we convert u32 to unsigned long (LSB is kept LSB since it happens in
>> native endianess).
>>
>>> -     id = find_first_bit(&comp_mask_local, 32);
>> Here it takes an address to unsigned long and tries only lower 32 bits.
>>
>> Are you telling that find_first_bit() has an issue?
> It seems you're right, there's no issue with endianness in existing code.
> In fact, the line

Indeed Andy covered this. Take LSB32 with the cast to "local on-stack
long" and possible extend upper 32bits with 0's if needed (64bit longs).

>>> -     unsigned long comp_mask_local = (unsigned long)comp_mask;
> is an opencoded version of bitmap_from_arr32(dst, src, 32).
>
> Maybe it would be better to use the bitmap API here, but existing code is
> correct. Sorry for the noise.
While your code is seemingly also valid (I can check to be sure with
KASAN if you want still), it does seem a little less "nice to read" with
more lines of code for the same work. Is it worth making the code a
little longer here as it's not actually fixing anything to do it this
other way? DECLARE_BITMAP() is a bit of an obscure way to declare a
single unsigned long (in this case) where the compiler does the right
thing anyway with a simple assign+cast making it easier to read/follow IMHO.

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

  reply	other threads:[~2020-12-29 12:24 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-28 19:43 [PATCH] drm/komeda: use bitmap API to convert U32 to bitmap Yury Norov
2020-12-28 19:50 ` Andy Shevchenko
2020-12-28 20:10   ` Yury Norov
2020-12-29 12:22     ` Carsten Haitzler [this message]
2020-12-29 13:50       ` Andy Shevchenko
2020-12-29 18:09         ` Yury Norov
2020-12-29 18:27           ` Yury Norov

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=808b7555-5ba2-f1fe-3800-1d5f59c47b52@arm.com \
    --to=carsten.haitzler@arm.com \
    --cc=Liviu.Dudau@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rasmus.villemoes@prevas.dk \
    --cc=yury.norov@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).