[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 12 Dec 2017 15:24:16 +0000
From: Lorenzo Pieralisi <lorenzo.pieralisi@....com>
To: David Laight <David.Laight@...LAB.COM>
Cc: 'Niklas Cassel' <niklas.cassel@...s.com>,
"linux-pci@...r.kernel.org" <linux-pci@...r.kernel.org>,
"kishon@...com" <kishon@...com>, Niklas Cassel <niklass@...s.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v4 0/3] Fix find_first_zero_bit() usage
On Tue, Dec 12, 2017 at 02:33:52PM +0000, David Laight wrote:
> From: Niklas Cassel
> > find_first_zero_bit()'s parameter 'size' is defined in bits,
> > not in bytes.
> >
> > Calling find_first_zero_bit() with the wrong size unit
> > will lead to insidious bugs.
> >
> > Fix all uses of find_first_zero_bit() called with
> > sizeof() as size argument in drivers/pci.
> ...
>
> Isn't all this code just using the wrong function.
> Shouldn't they be using ffz() (or whatever it is called)
> to find the first zero in a numeric argument rather that
> find_first_zero_bit() which is intended for large bitmaps.
>
> Perhaps the type for 'large bitmaps' should be:
> struct {
> unsigned long bitmap_bits[0];
> } bitmap;
> rather than unsigned long[].
David,
I think you are referring to patch 3, which is a fix for the current
find_first_zero_bit() usage. The point is, I think that
struct pci_epc_group.function_num_map should actually be converted
to a bitmap (and therefore using find_first_zero_bit() on it is the
right API); patch 3 is just a fix for current code.
Unless you think patch 3 is technically wrong I would go ahead
with the series as-is for fixes and we will refactor
struct pci_epc_group.function_num_map usage to a proper bitmap
for the upcoming merge window.
Lorenzo
Powered by blists - more mailing lists