From: Linus Torvalds <torvalds@linux-foundation•org>
To: Andrew Morton <akpm@linux-foundation•org>
Cc: Stephen Rothwell <sfr@canb•auug.org.au>,
linux-next@vger•kernel.org, LKML <linux-kernel@vger•kernel.org>,
Yinghai Lu <yhlu.kernel@gmail•com>
Subject: Re: linux-next: Tree for September 3
Date: Wed, 3 Sep 2008 22:21:54 -0700 (PDT) [thread overview]
Message-ID: <alpine.LFD.1.10.0809032201510.3378@nehalem.linux-foundation.org> (raw)
In-Reply-To: <20080903214634.ea17ff53.akpm@linux-foundation.org>
On Wed, 3 Sep 2008, Andrew Morton wrote:
>
> The Vaio says:
>
> calling init_acpi_pm_clocksource+0x0/0x14a
> initcall init_acpi_pm_clocksource+0x0/0x14a returned 0 after 32 msecs
> calling pcibios_assign_resources+0x0/0x70
> pci 0000:06:05.0: BAR 9 too large: 0x00000000000000-0x00000003ffffff
Hmm. This should not be a new warning, afaik.
But it looks totally bogus.
The code does:
r_size = r->end - r->start + 1;
/* For bridges size != alignment */
align = (i < PCI_BRIDGE_RESOURCES) ? r_size : r->start;
order = __ffs(align) - 20;
if (order > 11) {
dev_warn(&dev->dev, "BAR %d too large: "
"%#016llx-%#016llx\n", i,
(unsigned long long)r->start,
(unsigned long long)r->end);
and the thing is, that's a bridge resource, so it chooses r_start as the
alignment. Which is zero. so now __ffs(align) returns a bogus value, and
you get the bogus warning.
But CARDBUS bridges are _different_ from normal PCI bridges, and the
alignment value isn't r->start. Strictly speaking it's not r_size either,
it's always a fixed alignment of 4096 for MMIO bridging, i think. Maybe.
Whatever. But our resource handling code can't handle that, and always
wants either size alignment or start alignment.
But for cardbus bridges, we should be doing size alignment, and the
problem is that that code doesn't do the proper "resource_alignment()"
use.
Can you apply this patch, just to see if it fixes things.
And do you know when this started happening? It shouldn't have been all
that recent. Maybe you haven't tried your Vaio in a while?
Linus
---
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;
next prev parent reply other threads:[~2008-09-04 5:22 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-03 9:16 linux-next: Tree for September 3 Stephen Rothwell
2008-09-04 2:32 ` [PATCH] hid: fix gyration build error Randy Dunlap
2008-09-04 6:52 ` Jiri Slaby
2008-09-04 8:06 ` Jiri Kosina
2008-09-04 4:42 ` linux-next: Tree for September 3 Andrew Morton
2008-09-04 4:46 ` Andrew Morton
2008-09-04 4:54 ` Andrew Morton
2008-09-04 4:57 ` Stephen Rothwell
2008-09-04 5:05 ` Andrew Morton
2008-09-04 5:20 ` Stephen Rothwell
2008-09-04 6:01 ` Andrew Morton
2008-09-04 7:15 ` Andrew Morton
2008-09-04 7:48 ` Stephen Rothwell
2008-09-04 9:19 ` Alan Cox
2008-09-04 9:21 ` Alan Cox
2008-09-04 11:01 ` Alan Cox
2008-09-04 14:35 ` Alan Cox
2008-09-04 5:26 ` Linus Torvalds
2008-09-04 5:42 ` Andrew Morton
2008-09-04 5:00 ` Stephen Rothwell
2008-09-04 5:21 ` Linus Torvalds [this message]
2008-09-04 5:33 ` Andrew Morton
2008-09-04 7:14 ` Yinghai Lu
2008-09-04 8:00 ` Andrew Morton
2008-09-04 8:23 ` Linus Torvalds
2008-09-04 8:02 ` Linus Torvalds
2008-09-04 8:25 ` Andrew Morton
2008-09-04 8:37 ` Andrew Morton
2008-09-04 9:03 ` Linus Torvalds
2008-09-04 8:50 ` Linus Torvalds
2008-09-04 8:57 ` Andrew Morton
2008-09-04 9:07 ` Linus Torvalds
2008-09-04 17:45 ` Andrew Morton
2008-09-04 18:05 ` Linus Torvalds
2008-09-04 18:34 ` Andrew Morton
2008-09-04 20:31 ` Eric W. Biederman
2008-09-04 20:41 ` Andrew Morton
2008-09-04 21:03 ` Eric W. Biederman
2008-09-04 22:22 ` Andrew Morton
2008-09-04 22:45 ` Thomas Gleixner
2008-09-04 23:17 ` Linus Torvalds
2008-09-05 5:39 ` Arjan van de Ven
2008-09-04 23:17 ` Andrew Morton
2008-09-04 23:25 ` Linus Torvalds
2008-09-04 23:27 ` Thomas Gleixner
2008-09-05 11:04 ` Ingo Molnar
2008-09-05 17:49 ` Andrew Morton
2008-09-09 4:39 ` Jesse Barnes
-- strict thread matches above, loose matches on Subject: below --
2009-09-03 11:59 Stephen Rothwell
2010-09-03 3:52 Stephen Rothwell
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=alpine.LFD.1.10.0809032201510.3378@nehalem.linux-foundation.org \
--to=torvalds@linux-foundation$(echo .)org \
--cc=akpm@linux-foundation$(echo .)org \
--cc=linux-kernel@vger$(echo .)kernel.org \
--cc=linux-next@vger$(echo .)kernel.org \
--cc=sfr@canb$(echo .)auug.org.au \
--cc=yhlu.kernel@gmail$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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