• Ivan Kokshaysky's avatar
    PCI: clean up resource alignment management · 88452565
    Ivan Kokshaysky authored
    Done per Linus' request and suggestions. Linus has explained that
    better than I'll be able to explain:
    
    On Thu, Mar 27, 2008 at 10:12:10AM -0700, Linus Torvalds wrote:
    > Actually, before we go any further, there might be a less intrusive
    > alternative: add just a couple of flags to the resource flags field (we
    > still have something like 8 unused bits on 32-bit), and use those to
    > implement a generic "resource_alignment()" routine.
    >
    > Two flags would do it:
    >
    >  - IORESOURCE_SIZEALIGN: size indicates alignment (regular PCI device
    >    resources)
    >
    >  - IORESOURCE_STARTALIGN: start field is alignment (PCI bus resources
    >    during probing)
    >
    > and then the case of both flags zero (or both bits set) would actually be
    > "invalid", and we would also clear the IORESOURCE_STARTALIGN flag when we
    > actually allocate the resource (so that we don't use the "start" field as
    > alignment incorrectly when it no longer indicates alignment).
    >
    > That wouldn't be totally generic, but it would have the nice property of
    > automatically at least add sanity checking for that whole "res->start has
    > the odd meaning of 'alignment' during probing" and remove the need for a
    > new field, and it would allow us to have a generic "resource_alignment()"
    > routine that just gets a resource pointer.
    
    Besides, I removed IORESOURCE_BUS_HAS_VGA flag which was unused for ages.
    Signed-off-by: default avatarIvan Kokshaysky <ink@jurassic.park.msu.ru>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Gary Hade <garyhade@us.ibm.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    88452565
resource.c 16.5 KB