On Wed, 3 Sep 2008 22:21:54 -0700 (PDT) Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > > 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. Below.. > 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? Yes, the Vaio had a vacation in New York. Last kernel it booted was 2.6.26-rc8-mm1. --- x 2008-09-03 21:38:24.000000000 -0700 +++ y 2008-09-03 22:29:04.000000000 -0700 ... @@ -503,15 +503,15 @@ 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 pci 0000:06:05.0: CardBus bridge, secondary bus 0000:07 pci 0000:06:05.0: IO window: 0x002400-0x0024ff pci 0000:06:05.0: IO window: 0x002800-0x0028ff -pci 0000:06:05.0: MEM window: 0x54000000-0x57ffffff +pci 0000:06:05.0: PREFETCH window: 0x50000000-0x53ffffff +pci 0000:06:05.0: MEM window: 0x58000000-0x5bffffff pci 0000:00:1e.0: PCI bridge, secondary bus 0000:06 pci 0000:00:1e.0: IO window: 0x2000-0x2fff pci 0000:00:1e.0: MEM window: 0xb0100000-0xb01fffff -pci 0000:00:1e.0: PREFETCH window: disabled +pci 0000:00:1e.0: PREFETCH window: 0x00000050000000-0x00000053ffffff pci 0000:00:1e.0: setting latency timer to 64 pci 0000:06:05.0: power state changed by ACPI to D0 found new irq_cfg for irq 21 @@ -522,13 +522,13 @@ bus: 00 index 1 mmio: [0, ffffffff] bus: 06 index 0 io port: [2000, 2fff] bus: 06 index 1 mmio: [b0100000, b01fffff] -bus: 06 index 2 mmio: [0, 0] +bus: 06 index 2 mmio: [50000000, 53ffffff] bus: 06 index 3 io port: [0, ffff] bus: 06 index 4 mmio: [0, ffffffff] bus: 07 index 0 io port: [2400, 24ff] bus: 07 index 1 io port: [2800, 28ff] -bus: 07 index 2 mmio: [0, 3ffffff] -bus: 07 index 3 mmio: [54000000, 57ffffff] +bus: 07 index 2 mmio: [50000000, 53ffffff] +bus: 07 index 3 mmio: [58000000, 5bffffff] initcall pcibios_assign_resources+0x0/0x70 returned 0 after 0 msecs calling inet_init+0x0/0x1c3 NET: Registered protocol family 2 also... @@ -860,16 +860,11 @@ sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sda: sda1 sda2 sda3 < sda5 sda6 > sd 2:0:0:0: [sda] Attached SCSI disk -initcall piix_init+0x0/0x27 returned 0 after 1128 msecs +initcall piix_init+0x0/0x27 returned 0 after 1136 msecs calling nonstatic_sysfs_init+0x0/0xf initcall nonstatic_sysfs_init+0x0/0xf returned 0 after 0 msecs calling yenta_socket_init+0x0/0x16 yenta_cardbus 0000:06:05.0: CardBus bridge found [104d:818f] -yenta_cardbus 0000:06:05.0: CardBus bridge, secondary bus 0000:07 -yenta_cardbus 0000:06:05.0: IO window: 0x002400-0x0024ff -yenta_cardbus 0000:06:05.0: IO window: 0x002800-0x0028ff -yenta_cardbus 0000:06:05.0: PREFETCH window: 0x50400000-0x507fffff -yenta_cardbus 0000:06:05.0: MEM window: 0x54000000-0x57ffffff yenta_cardbus 0000:06:05.0: Using CSCINT to route CSC interrupts to PCI yenta_cardbus 0000:06:05.0: Routing CardBus interrupts to PCI yenta_cardbus 0000:06:05.0: TI: mfunc 0x01001b22, devctl 0x64 @@ -878,7 +873,8 @@ pci_bus 0000:06: Raising subordinate bus# of parent bus (#06) from #07 to #0a yenta_cardbus 0000:06:05.0: pcmcia: parent PCI bridge I/O window: 0x2000 - 0x2fff yenta_cardbus 0000:06:05.0: pcmcia: parent PCI bridge Memory window: 0xb0100000 - 0xb01fffff -initcall yenta_socket_init+0x0/0x16 returned 0 after 499 msecs +yenta_cardbus 0000:06:05.0: pcmcia: parent PCI bridge Memory window: 0x50000000 - 0x53ffffff +initcall yenta_socket_init+0x0/0x16 returned 0 after 492 msecs calling mon_init+0x0/0xee initcall mon_init+0x0/0xee returned 0 after 0 msecs calling i8042_init+0x0/0x357 Full dmesg: http://userweb.kernel.org/~akpm/dmesg-sony-2.txt -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html