lkml.org 
[lkml]   [2008]   [Sep]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: linux-next: Tree for September 3
    On Thu, 4 Sep 2008 01:50:58 -0700 (PDT) Linus Torvalds <torvalds@linux-foundation.org> wrote:

    >
    > commit 5f17cfce5776c566d64430f543a289e5cfa4538b
    > Author: Linus Torvalds <torvalds@linux-foundation.org>
    > Date: Thu Sep 4 01:33:59 2008 -0700
    >
    > PCI: fix pbus_size_mem() resource alignment for CardBus controllers
    >
    > Commit 884525655d07fdee9245716b998ecdc45cdd8007 ("PCI: clean up resource
    > alignment management") changed the resource handling to mark how a
    > resource was aligned on a per-resource basis.
    >
    > Thus, instead of looking at the resource number to determine whether it
    > was a bridge resource or a regular resource (they have different
    > alignment rules), we should just ask the resource for its alignment
    > directly.
    >
    > The reason this broke only cardbus resources was that for the other
    > types of resources, the old way of deciding alignment actually still
    > happened to work. But CardBus bridge resources had been changed by
    > commit 934b7024f0ed29003c95cef447d92737ab86dc4f ("Fix cardbus resource
    > allocation") to look more like regular resources than PCI bridge
    > resources from an alignment handling standpoint.
    >
    > Reported-and-tested-by: Andrew Morton <akpm@linux-foundation.org>
    > Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
    > Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
    > Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    > ---
    > drivers/pci/setup-bus.c | 5 +++--
    > 1 files changed, 3 insertions(+), 2 deletions(-)
    >
    > diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
    > index 82634a2..1aad599 100644
    > --- a/drivers/pci/setup-bus.c
    > +++ b/drivers/pci/setup-bus.c
    > @@ -352,11 +352,12 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask, unsigned long
    > continue;
    > r_size = r->end - r->start + 1;
    > /* For bridges size != alignment */
    > - align = (i < PCI_BRIDGE_RESOURCES) ? r_size : r->start;
    > + align = resource_alignment(r);
    > order = __ffs(align) - 20;
    > if (order > 11) {
    > - dev_warn(&dev->dev, "BAR %d too large: "
    > + dev_warn(&dev->dev, "BAR %d bad alignment %llx: "
    > "%#016llx-%#016llx\n", i,
    > + (unsigned long long)align,
    > (unsigned long long)r->start,
    > (unsigned long long)r->end);
    > r->flags = 0;

    Is this worth backporting into 2.6.26.x?


    \
     
     \ /
      Last update: 2008-09-04 11:01    [W:0.029 / U:58.904 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site