linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Laight <David.Laight@ACULAB.COM>
To: "'Lorenzo Pieralisi'" <lorenzo.pieralisi@arm.com>
Cc: "'Niklas Cassel'" <niklas.cassel@axis.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"kishon@ti.com" <kishon@ti.com>, Niklas Cassel <niklass@axis.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: RE: [PATCH v4 0/3] Fix find_first_zero_bit() usage
Date: Tue, 12 Dec 2017 15:39:47 +0000	[thread overview]
Message-ID: <963608b179be4d5297082dcf915ac924@AcuMS.aculab.com> (raw)
In-Reply-To: <20171212152416.GA1262@e107981-ln.cambridge.arm.com>

From: Lorenzo Pieralisi
> Sent: 12 December 2017 15:24
> 
> 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.

I may not have looked very closely at these patches, but IIRC some other
similar ones were using explicit foo |= 1 << bit to set the bit.

While technically correct (changes 4 or 8 to 32 or 64) it might be
better described as '8 * sizeof xxxx'.
Then the code is correct regardless of the bitmap size (unless smaller
than a long on (probably) BE systems).

	David

  reply	other threads:[~2017-12-12 15:39 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-12 14:16 [PATCH v4 0/3] Fix find_first_zero_bit() usage Niklas Cassel
2017-12-12 14:16 ` [PATCH v4 1/3] PCI: designware-ep: " Niklas Cassel
2017-12-14 11:03   ` Kishon Vijay Abraham I
2017-12-12 14:16 ` [PATCH v4 2/3] PCI: endpoint: Fix error handling in pci_epc_epf_link() Niklas Cassel
2017-12-14 11:07   ` Kishon Vijay Abraham I
2017-12-14 12:07     ` Lorenzo Pieralisi
2017-12-14 12:13       ` Kishon Vijay Abraham I
2017-12-12 14:16 ` [PATCH v4 3/3] PCI: endpoint: Fix find_first_zero_bit() usage Niklas Cassel
2017-12-14 11:09   ` Kishon Vijay Abraham I
2017-12-12 14:33 ` [PATCH v4 0/3] " David Laight
2017-12-12 15:24   ` Lorenzo Pieralisi
2017-12-12 15:39     ` David Laight [this message]
2017-12-13 21:59 ` Bjorn Helgaas
2017-12-14 13:32   ` Niklas Cassel
2017-12-14 13:47     ` Lorenzo Pieralisi
2017-12-14 23:21       ` Bjorn Helgaas
2017-12-15  9:42         ` Lorenzo Pieralisi
2017-12-14 10:51 ` Lorenzo Pieralisi
2017-12-14 11:25   ` Kishon Vijay Abraham I

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=963608b179be4d5297082dcf915ac924@AcuMS.aculab.com \
    --to=david.laight@aculab.com \
    --cc=kishon@ti.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=niklas.cassel@axis.com \
    --cc=niklass@axis.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).