[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20080904015701.5959623a.akpm@linux-foundation.org>
Date: Thu, 4 Sep 2008 01:57:01 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Stephen Rothwell <sfr@...b.auug.org.au>,
linux-next@...r.kernel.org, LKML <linux-kernel@...r.kernel.org>,
Yinghai Lu <yhlu.kernel@...il.com>,
Ivan Kokshaysky <ink@...assic.park.msu.ru>,
Jesse Barnes <jbarnes@...tuousgeek.org>
Subject: Re: linux-next: Tree for September 3
On Thu, 4 Sep 2008 01:50:58 -0700 (PDT) Linus Torvalds <torvalds@...ux-foundation.org> wrote:
>
> commit 5f17cfce5776c566d64430f543a289e5cfa4538b
> Author: Linus Torvalds <torvalds@...ux-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@...ux-foundation.org>
> Cc: Ivan Kokshaysky <ink@...assic.park.msu.ru>
> Cc: Jesse Barnes <jbarnes@...tuousgeek.org>
> Signed-off-by: Linus Torvalds <torvalds@...ux-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?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists