public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* 2.6.13-rc2 hangs at boot
@ 2005-07-06 13:47 Tero Roponen
  2005-07-07  1:27 ` Jon Smirl
  0 siblings, 1 reply; 23+ messages in thread
From: Tero Roponen @ 2005-07-06 13:47 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel

Hi,

my computer (a ThinkPad 380XD laptop) hangs at boot in 2.6.13-rc2.
When I revert the patch below everything seems to be fine.

thanks,
Tero Roponen


Patch to revert:

Author: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Date: Wed, 15 Jun 2005 14:59:27 +0000 (+0400)
Source: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=299de0343c7d18448a69c635378342e9214b14af

  [PATCH] PCI: pci_assign_unassigned_resources() on x86

  - Add sanity check for io[port,mem]_resource in setup-bus.c. These
    resources look like "free" as they have no parents, but obviously
    we must not touch them.
  - In i386.c:pci_allocate_bus_resources(), if a bridge resource cannot be
    allocated for some reason, then clear its flags. This prevents any child
    allocations in this range, so the setup-bus code will work with a clean
    resource sub-tree.
  - i386.c:pcibios_enable_resources() doesn't enable bridges, as it checks
    only resources 0-5, which looks like a clear bug to me. I suspect it
    might break hotplug as well in some cases.

  From: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
  Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

--- a/arch/i386/pci/common.c
+++ b/arch/i386/pci/common.c
@@ -165,6 +165,7 @@ static int __init pcibios_init(void)
 	if ((pci_probe & PCI_BIOS_SORT) && !(pci_probe & PCI_NO_SORT))
 		pcibios_sort();
 #endif
+	pci_assign_unassigned_resources();
 	return 0;
 }

--- a/arch/i386/pci/i386.c
+++ b/arch/i386/pci/i386.c
@@ -106,11 +106,16 @@ static void __init pcibios_allocate_bus_
 		if ((dev = bus->self)) {
 			for (idx = PCI_BRIDGE_RESOURCES; idx < PCI_NUM_RESOURCES; idx++) {
 				r = &dev->resource[idx];
-				if (!r->start)
+				if (!r->flags)
 					continue;
 				pr = pci_find_parent_resource(dev, r);
-				if (!pr || request_resource(pr, r) < 0)
+				if (!r->start || !pr || request_resource(pr, r) < 0) {
 					printk(KERN_ERR "PCI: Cannot allocate resource region %d of bridge %s\n", idx, pci_name(dev));
+					/* Something is wrong with the region.
+					   Invalidate the resource to prevent child
+					   resource allocations in this range. */
+					r->flags = 0;
+				}
 			}
 		}
 		pcibios_allocate_bus_resources(&bus->children);
@@ -227,7 +232,7 @@ int pcibios_enable_resources(struct pci_

 	pci_read_config_word(dev, PCI_COMMAND, &cmd);
 	old_cmd = cmd;
-	for(idx=0; idx<6; idx++) {
+	for(idx = 0; idx < PCI_NUM_RESOURCES; idx++) {
 		/* Only set up the requested stuff */
 		if (!(mask & (1<<idx)))
 			continue;
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -273,6 +273,8 @@ find_free_bus_resource(struct pci_bus *b

 	for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) {
 		r = bus->resource[i];
+		if (r == &ioport_resource || r == &iomem_resource)
+			continue;
 		if (r && (r->flags & type_mask) == type && !r->parent)
 			return r;
 	}

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.13-rc2 hangs at boot
  2005-07-06 13:47 2.6.13-rc2 hangs at boot Tero Roponen
@ 2005-07-07  1:27 ` Jon Smirl
  2005-07-07  9:59   ` Ivan Kokshaysky
                     ` (2 more replies)
  0 siblings, 3 replies; 23+ messages in thread
From: Jon Smirl @ 2005-07-07  1:27 UTC (permalink / raw)
  To: Tero Roponen, ink; +Cc: gregkh, linux-kernel

I'm dead on a Dell PE400SC without reverting this.

On 7/6/05, Tero Roponen <teanropo@cc.jyu.fi> wrote:
> Hi,
> 
> my computer (a ThinkPad 380XD laptop) hangs at boot in 2.6.13-rc2.
> When I revert the patch below everything seems to be fine.
> 
> thanks,
> Tero Roponen
> 
> 
> Patch to revert:
> 
> Author: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
> Date: Wed, 15 Jun 2005 14:59:27 +0000 (+0400)
> Source: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=299de0343c7d18448a69c635378342e9214b14af
> 
>   [PATCH] PCI: pci_assign_unassigned_resources() on x86
> 
>   - Add sanity check for io[port,mem]_resource in setup-bus.c. These
>     resources look like "free" as they have no parents, but obviously
>     we must not touch them.
>   - In i386.c:pci_allocate_bus_resources(), if a bridge resource cannot be
>     allocated for some reason, then clear its flags. This prevents any child
>     allocations in this range, so the setup-bus code will work with a clean
>     resource sub-tree.
>   - i386.c:pcibios_enable_resources() doesn't enable bridges, as it checks
>     only resources 0-5, which looks like a clear bug to me. I suspect it
>     might break hotplug as well in some cases.
> 
>   From: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
>   Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
> 
> --- a/arch/i386/pci/common.c
> +++ b/arch/i386/pci/common.c
> @@ -165,6 +165,7 @@ static int __init pcibios_init(void)
>         if ((pci_probe & PCI_BIOS_SORT) && !(pci_probe & PCI_NO_SORT))
>                 pcibios_sort();
>  #endif
> +       pci_assign_unassigned_resources();
>         return 0;
>  }
> 
> --- a/arch/i386/pci/i386.c
> +++ b/arch/i386/pci/i386.c
> @@ -106,11 +106,16 @@ static void __init pcibios_allocate_bus_
>                 if ((dev = bus->self)) {
>                         for (idx = PCI_BRIDGE_RESOURCES; idx < PCI_NUM_RESOURCES; idx++) {
>                                 r = &dev->resource[idx];
> -                               if (!r->start)
> +                               if (!r->flags)
>                                         continue;
>                                 pr = pci_find_parent_resource(dev, r);
> -                               if (!pr || request_resource(pr, r) < 0)
> +                               if (!r->start || !pr || request_resource(pr, r) < 0) {
>                                         printk(KERN_ERR "PCI: Cannot allocate resource region %d of bridge %s\n", idx, pci_name(dev));
> +                                       /* Something is wrong with the region.
> +                                          Invalidate the resource to prevent child
> +                                          resource allocations in this range. */
> +                                       r->flags = 0;
> +                               }
>                         }
>                 }
>                 pcibios_allocate_bus_resources(&bus->children);
> @@ -227,7 +232,7 @@ int pcibios_enable_resources(struct pci_
> 
>         pci_read_config_word(dev, PCI_COMMAND, &cmd);
>         old_cmd = cmd;
> -       for(idx=0; idx<6; idx++) {
> +       for(idx = 0; idx < PCI_NUM_RESOURCES; idx++) {
>                 /* Only set up the requested stuff */
>                 if (!(mask & (1<<idx)))
>                         continue;
> --- a/drivers/pci/setup-bus.c
> +++ b/drivers/pci/setup-bus.c
> @@ -273,6 +273,8 @@ find_free_bus_resource(struct pci_bus *b
> 
>         for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) {
>                 r = bus->resource[i];
> +               if (r == &ioport_resource || r == &iomem_resource)
> +                       continue;
>                 if (r && (r->flags & type_mask) == type && !r->parent)
>                         return r;
>         }
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 


-- 
Jon Smirl
jonsmirl@gmail.com

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.13-rc2 hangs at boot
  2005-07-07  1:27 ` Jon Smirl
@ 2005-07-07  9:59   ` Ivan Kokshaysky
  2005-07-07 10:33     ` Tero Roponen
  2005-07-07 13:59     ` Jon Smirl
       [not found]   ` <20050728233408.550939d4.akpm@osdl.org>
  2005-08-04 20:49   ` 2.6.13-rc2 hangs at boot Andrew Morton
  2 siblings, 2 replies; 23+ messages in thread
From: Ivan Kokshaysky @ 2005-07-07  9:59 UTC (permalink / raw)
  To: Jon Smirl; +Cc: Tero Roponen, gregkh, linux-kernel

On Wed, Jul 06, 2005 at 09:27:11PM -0400, Jon Smirl wrote:
> I'm dead on a Dell PE400SC without reverting this.

Jon, can you try this one instead:
http://lkml.org/lkml/2005/7/6/273

If it doesn't help, I'd like to see 'lspci -vv' from your machine.

Ivan.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.13-rc2 hangs at boot
  2005-07-07  9:59   ` Ivan Kokshaysky
@ 2005-07-07 10:33     ` Tero Roponen
  2005-07-07 12:31       ` Ivan Kokshaysky
  2005-07-07 13:59     ` Jon Smirl
  1 sibling, 1 reply; 23+ messages in thread
From: Tero Roponen @ 2005-07-07 10:33 UTC (permalink / raw)
  To: Ivan Kokshaysky; +Cc: Jon Smirl, gregkh, linux-kernel

On Thu, 7 Jul 2005, Ivan Kokshaysky wrote:

> On Wed, Jul 06, 2005 at 09:27:11PM -0400, Jon Smirl wrote:
> > I'm dead on a Dell PE400SC without reverting this.
>
> Jon, can you try this one instead:
> http://lkml.org/lkml/2005/7/6/273
>
> If it doesn't help, I'd like to see 'lspci -vv' from your machine.
>
> Ivan.
>

Hi,

I tested that patch, but it didn't work.

When I boot 2.6.12 or 2.6.13-rc1 everything is fine.

Working 2.6.12 prints this while booting:

...
hda: IBM-DPLA-25120, ATA DISK drive
hdb: SANYO CRD-S372B, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
Probing IDE interface ide2...
Probing IDE interface ide3...
Probing IDE interface ide4...
Probing IDE interface ide5...
hda: max request size: 128KiB
hda: 10009440 sectors (5124 MB) w/468KiB Cache, CHS=10592/15/63, UDMA(33)
hda: cache flushes not supported
 hda: hda1 hda2 hda3 < hda5 hda6 hda7 hda8 hda9 hda10 > hda4
...

2.6.13-rc2 with and without tested patch display this:
...
hda: cache flushes not supported
 hda: hda1 hda2 hda3 <

Then it hangs for a while and shows something like this:

dma_timer_expiry: dma status == 0x61

thanks,
Tero Roponen


lspci -vv output:


00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (rev 02)
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR+
	Latency: 64
	Region 0: Memory at <unassigned> (32-bit, prefetchable)

00:02.0 CardBus bridge: Texas Instruments PCI1250 (rev 02)
	Subsystem: IBM ThinkPad 600
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 168, Cache Line Size 08
	Interrupt: pin A routed to IRQ 11
	Region 0: Memory at 50000000 (32-bit, non-prefetchable) [size=4K]
	Bus: primary=00, secondary=01, subordinate=04, sec-latency=176
	Memory window 0: 04000000-043ff000 (prefetchable)
	Memory window 1: 04400000-047ff000
	I/O window 0: 00004000-000040ff
	I/O window 1: 00004400-000044ff
	BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset+ 16bInt+ PostWrite+
	16-bit legacy interface ports at 0001

00:02.1 CardBus bridge: Texas Instruments PCI1250 (rev 02)
	Subsystem: IBM ThinkPad 600
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 168, Cache Line Size 08
	Interrupt: pin B routed to IRQ 11
	Region 0: Memory at 51000000 (32-bit, non-prefetchable) [size=4K]
	Bus: primary=00, secondary=05, subordinate=08, sec-latency=176
	Memory window 0: 04800000-04bff000 (prefetchable)
	Memory window 1: 04c00000-04fff000
	I/O window 0: 00004800-000048ff
	I/O window 1: 00004c00-00004cff
	BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset+ 16bInt+ PostWrite+
	16-bit legacy interface ports at 0001

00:03.0 VGA compatible controller: Neomagic Corporation NM2160 [MagicGraph 128XD] (rev 01) (prog-if 00 [VGA])
	Subsystem: IBM MagicGraph 128XD
	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Interrupt: pin A routed to IRQ 11
	Region 0: Memory at 48000000 (32-bit, prefetchable) [size=16M]
	Region 1: Memory at 49000000 (32-bit, non-prefetchable) [size=2M]
	Region 2: Memory at 49400000 (32-bit, non-prefetchable) [size=1M]

00:06.0 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 01)
	Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 0

00:06.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01) (prog-if 80 [Master])
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 32
	Region 4: I/O ports at fcf0 [size=16]

00:06.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01) (prog-if 00 [UHCI])
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Latency: 48
	Interrupt: pin D routed to IRQ 11
	Region 4: I/O ports at 9000 [size=32]

00:06.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 01)
	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
	Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
	Interrupt: pin ? routed to IRQ 9


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.13-rc2 hangs at boot
  2005-07-07 10:33     ` Tero Roponen
@ 2005-07-07 12:31       ` Ivan Kokshaysky
  2005-07-07 12:47         ` Tero Roponen
  0 siblings, 1 reply; 23+ messages in thread
From: Ivan Kokshaysky @ 2005-07-07 12:31 UTC (permalink / raw)
  To: Tero Roponen; +Cc: Jon Smirl, gregkh, linux-kernel

On Thu, Jul 07, 2005 at 01:33:46PM +0300, Tero Roponen wrote:
> 00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (rev 02)
> 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
> 	Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR+
> 	Latency: 64
> 	Region 0: Memory at <unassigned> (32-bit, prefetchable)
			    ^^^^^^^^^^^^
I'd bet this is the cause of your problem.
The pci_assign_unassigned_resources() is not aware of potential
problems with i386 host bridges and just reassigns this region.
Which effectively turns the DMA off on your machine, I guess.

The patch here (against clean 2.6.13-rc2) should fix that.

Ivan.

--- 2.6.13-rc2/arch/i386/pci/i386.c	Thu Jul  7 15:38:54 2005
+++ linux/arch/i386/pci/i386.c	Thu Jul  7 15:40:26 2005
@@ -176,10 +176,6 @@ static int __init pcibios_assign_resourc
 	for_each_pci_dev(dev) {
 		int class = dev->class >> 8;
 
-		/* Don't touch classless devices and host bridges */
-		if (!class || class == PCI_CLASS_BRIDGE_HOST)
-			continue;
-
 		for(idx=0; idx<6; idx++) {
 			r = &dev->resource[idx];
 
@@ -195,8 +191,15 @@ static int __init pcibios_assign_resourc
 			 *  the BIOS forgot to do so or because we have decided the old
 			 *  address was unusable for some reason.
 			 */
-			if (!r->start && r->end)
-				pci_assign_resource(dev, idx);
+			if (!r->start && r->end) {
+				/* Don't touch classless devices and host
+				   bridges and also hide their unassigned
+				   resources from the rest of PCI subsystem. */
+				if (!class || class == PCI_CLASS_BRIDGE_HOST)
+					r->flags = 0;
+				else
+					pci_assign_resource(dev, idx);
+			}
 		}
 
 		if (pci_probe & PCI_ASSIGN_ROMS) {

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.13-rc2 hangs at boot
  2005-07-07 12:31       ` Ivan Kokshaysky
@ 2005-07-07 12:47         ` Tero Roponen
  2005-07-07 13:41           ` Ivan Kokshaysky
  0 siblings, 1 reply; 23+ messages in thread
From: Tero Roponen @ 2005-07-07 12:47 UTC (permalink / raw)
  To: Ivan Kokshaysky; +Cc: Jon Smirl, gregkh, linux-kernel

On Thu, 7 Jul 2005, Ivan Kokshaysky wrote:

> On Thu, Jul 07, 2005 at 01:33:46PM +0300, Tero Roponen wrote:
> > 00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (rev 02)
> > 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
> > 	Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR+
> > 	Latency: 64
> > 	Region 0: Memory at <unassigned> (32-bit, prefetchable)
> 			    ^^^^^^^^^^^^
> I'd bet this is the cause of your problem.
> The pci_assign_unassigned_resources() is not aware of potential
> problems with i386 host bridges and just reassigns this region.
> Which effectively turns the DMA off on your machine, I guess.
>
> The patch here (against clean 2.6.13-rc2) should fix that.
>
> Ivan.

Hi,

I just tested the patch, but it didn't help. It still hangs.

-
Tero Roponen

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.13-rc2 hangs at boot
@ 2005-07-07 13:11 Mikael Pettersson
  0 siblings, 0 replies; 23+ messages in thread
From: Mikael Pettersson @ 2005-07-07 13:11 UTC (permalink / raw)
  To: gregkh, ink, teanropo; +Cc: linux-kernel

On Wed, 6 Jul 2005 16:47:28 +0300 (EEST), Tero Roponen wrote:
>my computer (a ThinkPad 380XD laptop) hangs at boot in 2.6.13-rc2.
>When I revert the patch below everything seems to be fine.

Same here: my Targa Visionary 811 Athlon64 laptop
hangs during boot with 2.6.13-rc2, unless I revert
the patch below. -rc1 worked OK.

/Mikael

>thanks,
>Tero Roponen
>
>
>Patch to revert:
>
>Author: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
>Date: Wed, 15 Jun 2005 14:59:27 +0000 (+0400)
>Source: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=299de0343c7d18448a69c635378342e9214b14af
>
>  [PATCH] PCI: pci_assign_unassigned_resources() on x86
>
>  - Add sanity check for io[port,mem]_resource in setup-bus.c. These
>    resources look like "free" as they have no parents, but obviously
>    we must not touch them.
>  - In i386.c:pci_allocate_bus_resources(), if a bridge resource cannot be
>    allocated for some reason, then clear its flags. This prevents any child
>    allocations in this range, so the setup-bus code will work with a clean
>    resource sub-tree.
>  - i386.c:pcibios_enable_resources() doesn't enable bridges, as it checks
>    only resources 0-5, which looks like a clear bug to me. I suspect it
>    might break hotplug as well in some cases.
>
>  From: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
>  Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
>
>--- a/arch/i386/pci/common.c
>+++ b/arch/i386/pci/common.c
>@@ -165,6 +165,7 @@ static int __init pcibios_init(void)
> 	if ((pci_probe & PCI_BIOS_SORT) && !(pci_probe & PCI_NO_SORT))
> 		pcibios_sort();
> #endif
>+	pci_assign_unassigned_resources();
> 	return 0;
> }
>
>--- a/arch/i386/pci/i386.c
>+++ b/arch/i386/pci/i386.c
>@@ -106,11 +106,16 @@ static void __init pcibios_allocate_bus_
> 		if ((dev = bus->self)) {
> 			for (idx = PCI_BRIDGE_RESOURCES; idx < PCI_NUM_RESOURCES; idx++) {
> 				r = &dev->resource[idx];
>-				if (!r->start)
>+				if (!r->flags)
> 					continue;
> 				pr = pci_find_parent_resource(dev, r);
>-				if (!pr || request_resource(pr, r) < 0)
>+				if (!r->start || !pr || request_resource(pr, r) < 0) {
> 					printk(KERN_ERR "PCI: Cannot allocate resource region %d of bridge %s\n", idx, pci_name(dev));
>+					/* Something is wrong with the region.
>+					   Invalidate the resource to prevent child
>+					   resource allocations in this range. */
>+					r->flags = 0;
>+				}
> 			}
> 		}
> 		pcibios_allocate_bus_resources(&bus->children);
>@@ -227,7 +232,7 @@ int pcibios_enable_resources(struct pci_
>
> 	pci_read_config_word(dev, PCI_COMMAND, &cmd);
> 	old_cmd = cmd;
>-	for(idx=0; idx<6; idx++) {
>+	for(idx = 0; idx < PCI_NUM_RESOURCES; idx++) {
> 		/* Only set up the requested stuff */
> 		if (!(mask & (1<<idx)))
> 			continue;
>--- a/drivers/pci/setup-bus.c
>+++ b/drivers/pci/setup-bus.c
>@@ -273,6 +273,8 @@ find_free_bus_resource(struct pci_bus *b
>
> 	for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) {
> 		r = bus->resource[i];
>+		if (r == &ioport_resource || r == &iomem_resource)
>+			continue;
> 		if (r && (r->flags & type_mask) == type && !r->parent)
> 			return r;
> 	}
>-
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at  http://www.tux.org/lkml/
>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.13-rc2 hangs at boot
  2005-07-07 12:47         ` Tero Roponen
@ 2005-07-07 13:41           ` Ivan Kokshaysky
  2005-07-07 13:53             ` Tero Roponen
  2005-07-07 14:13             ` Tero Roponen
  0 siblings, 2 replies; 23+ messages in thread
From: Ivan Kokshaysky @ 2005-07-07 13:41 UTC (permalink / raw)
  To: Tero Roponen; +Cc: Jon Smirl, gregkh, linux-kernel

On Thu, Jul 07, 2005 at 03:47:58PM +0300, Tero Roponen wrote:
> I just tested the patch, but it didn't help. It still hangs.

Well, the code in setup-bus.c does actually know about host
bridges, so the patch was just no-op...

Tero (and others), can you post dmesg from working kernel and,
if possible, from 2.6.13-rc2 captured from serial console?

Ivan.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.13-rc2 hangs at boot
  2005-07-07 13:41           ` Ivan Kokshaysky
@ 2005-07-07 13:53             ` Tero Roponen
  2005-07-07 14:13             ` Tero Roponen
  1 sibling, 0 replies; 23+ messages in thread
From: Tero Roponen @ 2005-07-07 13:53 UTC (permalink / raw)
  To: Ivan Kokshaysky; +Cc: Jon Smirl, gregkh, linux-kernel

On Thu, 7 Jul 2005, Ivan Kokshaysky wrote:

> On Thu, Jul 07, 2005 at 03:47:58PM +0300, Tero Roponen wrote:
> > I just tested the patch, but it didn't help. It still hangs.
>
> Well, the code in setup-bus.c does actually know about host
> bridges, so the patch was just no-op...
>
> Tero (and others), can you post dmesg from working kernel and,
> if possible, from 2.6.13-rc2 captured from serial console?
>
> Ivan.
>

Below is my dmesg from 2.6.12. Unfortunately, I don't have
another machine available, so I can't use serial console.

-
Tero Roponen

Linux version 2.6.12 (terrop@laptop) (gcc version 4.0.0 20050525 (Red Hat 4.0.0-9)) #2 Sat Jun 18 11:03:55 EEST 2005
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 0000000003fd0000 (usable)
 BIOS-e820: 0000000003fd0000 - 0000000003fdf000 (ACPI data)
 BIOS-e820: 0000000003fdf000 - 0000000003fe0000 (ACPI NVS)
 BIOS-e820: 0000000003fe0000 - 0000000004000000 (reserved)
 BIOS-e820: 00000000fffe0000 - 0000000100000000 (reserved)
63MB LOWMEM available.
On node 0 totalpages: 16336
  DMA zone: 4096 pages, LIFO batch:1
  Normal zone: 12240 pages, LIFO batch:3
  HighMem zone: 0 pages, LIFO batch:1
DMI 2.0 present.
Allocating PCI resources starting at 04000000 (gap: 04000000:fbfe0000)
Built 1 zonelists
Kernel command line:
Initializing CPU#0
PID hash table entries: 256 (order: 8, 4096 bytes)
Detected 265.384 MHz processor.
Using tsc for high-res timesource
Console: colour VGA+ 80x25
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 61404k/65344k available (1856k kernel code, 3456k reserved, 683k data, 136k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay loop... 521.21 BogoMIPS (lpj=260608)
Mount-cache hash table entries: 512
CPU: After generic identify, caps: 0183f9ff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: After vendor identify, caps: 0183f9ff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 512K
CPU: After all inits, caps: 0183f9ff 00000000 00000000 00000040 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: Intel Pentium II (Deschutes) stepping 02
Enabling fast FPU save and restore... done.
Checking 'hlt' instruction... OK.
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xfd880, last bus=0
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
Linux Plug and Play Support v0.97 (c) Adam Belay
PnPBIOS: Scanning system for PnP BIOS support...
PnPBIOS: Found PnP BIOS installation structure at 0xc00fe700
PnPBIOS: PnP BIOS version 1.0, entry 0xf0000:0xe724, dseg 0xf0000
PnPBIOS: 20 nodes reported by PnP BIOS; 20 recorded by driver
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
Boot video device is 0000:00:03.0
PCI: Using IRQ router PIIX/ICH [8086/7110] at 0000:00:06.0
pnp: 00:0a: ioport range 0x4d0-0x4d1 has been reserved
pnp: 00:0a: ioport range 0x15e0-0x15ef has been reserved
pnp: 00:0a: ioport range 0xef00-0xefaf could not be reserved
IBM machine detected. Enabling interrupts during APM calls.
apm: BIOS version 1.2 Flags 0x03 (Driver version 1.16ac)
Initializing Cryptographic API
Limiting direct PCI/PCI transfers.
PCI: Found IRQ 11 for device 0000:00:03.0
PCI: Sharing IRQ 11 with 0000:00:02.0
neofb: mapped io at c4800000
Autodetected internal display
Panel is a 800x600 color TFT display
neofb: mapped framebuffer at c4a80000
neofb v0.4.2: 2048kB VRAM, using 800x600, 37.878kHz, 60Hz
Console: switching to colour frame buffer device 100x37
fb0: MagicGraph 128XD frame buffer device
Real Time Clock Driver v1.12
PNP: PS/2 Controller [PNP0303,PNP0f13] at 0x60,0x64 irq 1,12
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing disabled
ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
io scheduler noop registered
io scheduler anticipatory registered
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller at PCI slot 0000:00:06.1
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0xfcf0-0xfcf7, BIOS settings: hda:DMA, hdb:DMA
Probing IDE interface ide0...
hda: IBM-DPLA-25120, ATA DISK drive
hdb: SANYO CRD-S372B, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
Probing IDE interface ide2...
Probing IDE interface ide3...
Probing IDE interface ide4...
Probing IDE interface ide5...
hda: max request size: 128KiB
hda: 10009440 sectors (5124 MB) w/468KiB Cache, CHS=10592/15/63, UDMA(33)
hda: cache flushes not supported
 hda: hda1 hda2 hda3 < hda5 hda6 hda7 hda8 hda9 hda10 > hda4
mice: PS/2 mouse device common for all mice
input: PC Speaker
NET: Registered protocol family 2
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
Initializing IPsec netlink socket
NET: Registered protocol family 1
NET: Registered protocol family 17
NET: Registered protocol family 15
input: AT Translated Set 2 keyboard on isa0060/serio0
ReiserFS: hda6: found reiserfs format "3.6" with standard journal
ReiserFS: hda6: using ordered data mode
ReiserFS: hda6: journal params: device hda6, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda6: checking transaction log (hda6)
ReiserFS: hda6: Using r5 hash to sort names
VFS: Mounted root (reiserfs filesystem) readonly.
Freeing unused kernel memory: 136k freed
input: PS/2 Generic Mouse on isa0060/serio1
hdb: ATAPI 24X CD-ROM drive, 256kB Cache, DMA
Uniform CD-ROM driver Revision: 3.20
Floppy drive(s): fd0 is 1.44M
FDC 0 is a National Semiconductor PC87306
Linux Kernel Card Services
  options:  [pci] [cardbus] [pm]
PCI: Found IRQ 11 for device 0000:00:02.0
PCI: Sharing IRQ 11 with 0000:00:03.0
Yenta: CardBus bridge found at 0000:00:02.0 [1014:0092]
Yenta: Enabling burst memory read transactions
Yenta: Using CSCINT to route CSC interrupts to PCI
Yenta: Routing CardBus interrupts to PCI
Yenta TI: socket 0000:00:02.0, mfunc 0xfba97543, devctl 0x62
Yenta: ISA IRQ mask 0x0498, PCI irq 11
Socket status: 30000006
PCI: Found IRQ 11 for device 0000:00:02.1
Yenta: CardBus bridge found at 0000:00:02.1 [1014:0092]
Yenta: Using CSCINT to route CSC interrupts to PCI
Yenta: Routing CardBus interrupts to PCI
Yenta TI: socket 0000:00:02.1, mfunc 0xfba97543, devctl 0x62
Yenta: ISA IRQ mask 0x0498, PCI irq 11
Socket status: 30000010
ReiserFS: hda2: found reiserfs format "3.6" with standard journal
ReiserFS: hda2: using ordered data mode
ReiserFS: hda2: journal params: device hda2, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda2: checking transaction log (hda2)
ReiserFS: hda2: Using r5 hash to sort names
ReiserFS: hda5: found reiserfs format "3.6" with standard journal
ReiserFS: hda5: using ordered data mode
ReiserFS: hda5: journal params: device hda5, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda5: checking transaction log (hda5)
ReiserFS: hda5: Using r5 hash to sort names
kjournald starting.  Commit interval 5 seconds
EXT3 FS on hda7, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
ReiserFS: hda8: found reiserfs format "3.6" with standard journal
ReiserFS: hda8: using ordered data mode
ReiserFS: hda8: journal params: device hda8, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda8: checking transaction log (hda8)
ReiserFS: hda8: Using tea hash to sort names
kjournald starting.  Commit interval 5 seconds
EXT3 FS on hda10, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
cs: IO port probe 0xc00-0xcff: clean.
cs: IO port probe 0xc00-0xcff: clean.
cs: IO port probe 0x800-0x8ff: clean.
cs: IO port probe 0x800-0x8ff: clean.
cs: IO port probe 0x100-0x4ff: excluding 0x200-0x207 0x220-0x22f 0x378-0x37f
cs: IO port probe 0x100-0x4ff: excluding 0x200-0x207 0x220-0x22f 0x378-0x37f
cs: IO port probe 0xa00-0xaff: clean.
cs: IO port probe 0xa00-0xaff: clean.
cs: memory probe 0xa0000000-0xa0ffffff: clean.
eth0: Xircom: port 0x300, irq 3, hwaddr 00:80:C7:72:21:6B
Adding 131064k swap on /usr/SWAPFILE.  Priority:-1 extents:206
eth0: switching to 10Base2 port
eth0: MII selected
eth0: media 10Base2, silicon revision 4
eth0: MII selected
eth0: media 10Base2, silicon revision 4
eth0: MII selected
eth0: media 10Base2, silicon revision 4
atkbd.c: Keyboard on isa0060/serio0 reports too many keys pressed.
atkbd.c: Keyboard on isa0060/serio0 reports too many keys pressed.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.13-rc2 hangs at boot
  2005-07-07  9:59   ` Ivan Kokshaysky
  2005-07-07 10:33     ` Tero Roponen
@ 2005-07-07 13:59     ` Jon Smirl
  1 sibling, 0 replies; 23+ messages in thread
From: Jon Smirl @ 2005-07-07 13:59 UTC (permalink / raw)
  To: Ivan Kokshaysky; +Cc: Tero Roponen, gregkh, linux-kernel

Initialized end = 0 fixed me.

On 7/7/05, Ivan Kokshaysky <ink@jurassic.park.msu.ru> wrote:
> On Wed, Jul 06, 2005 at 09:27:11PM -0400, Jon Smirl wrote:
> > I'm dead on a Dell PE400SC without reverting this.
> 
> Jon, can you try this one instead:
> http://lkml.org/lkml/2005/7/6/273
> 
> If it doesn't help, I'd like to see 'lspci -vv' from your machine.
> 
> Ivan.
> 


-- 
Jon Smirl
jonsmirl@gmail.com

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.13-rc2 hangs at boot
  2005-07-07 13:41           ` Ivan Kokshaysky
  2005-07-07 13:53             ` Tero Roponen
@ 2005-07-07 14:13             ` Tero Roponen
  2005-07-08  6:28               ` Ivan Kokshaysky
  1 sibling, 1 reply; 23+ messages in thread
From: Tero Roponen @ 2005-07-07 14:13 UTC (permalink / raw)
  To: Ivan Kokshaysky; +Cc: Jon Smirl, gregkh, linux-kernel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 631 bytes --]

On Thu, 7 Jul 2005, Ivan Kokshaysky wrote:

> On Thu, Jul 07, 2005 at 03:47:58PM +0300, Tero Roponen wrote:
> > I just tested the patch, but it didn't help. It still hangs.
>
> Well, the code in setup-bus.c does actually know about host
> bridges, so the patch was just no-op...
>
> Tero (and others), can you post dmesg from working kernel and,
> if possible, from 2.6.13-rc2 captured from serial console?
>
> Ivan.
>

I applied your original patch (the no-op one) and the
end=0 patch. With those applied I could boot into login
prompt.

Attached are lspci -vv and dmesg outputs from
2.6.12 and 2.6.13-rc2 kernels.

-
Tero Roponen

[-- Attachment #2: Type: APPLICATION/octet-stream, Size: 920 bytes --]

[-- Attachment #3: Type: APPLICATION/octet-stream, Size: 918 bytes --]

[-- Attachment #4: Type: APPLICATION/octet-stream, Size: 3310 bytes --]

[-- Attachment #5: Type: APPLICATION/octet-stream, Size: 3200 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.13-rc2 hangs at boot
  2005-07-07 14:13             ` Tero Roponen
@ 2005-07-08  6:28               ` Ivan Kokshaysky
  2005-07-08  7:57                 ` [SOLVED] " Tero Roponen
  0 siblings, 1 reply; 23+ messages in thread
From: Ivan Kokshaysky @ 2005-07-08  6:28 UTC (permalink / raw)
  To: Tero Roponen; +Cc: Jon Smirl, gregkh, linux-kernel

On Thu, Jul 07, 2005 at 05:13:49PM +0300, Tero Roponen wrote:
> I applied your original patch (the no-op one) and the
> end=0 patch. With those applied I could boot into login
> prompt.

Puzzling. None of these patches should affect your setup.
And you still have DMA timeouts...

> Attached are lspci -vv and dmesg outputs from
> 2.6.12 and 2.6.13-rc2 kernels.

The only difference is that under 2.6.13-rc2 the cardbus ranges
are a lot bigger. With the patch here your PCI setup should be
identical to 2.6.12. I don't think this fixes DMA problem,
but just to be sure...

Ivan.

--- 2.6.13-rc2/drivers/pci/setup-bus.c	Thu Jul  7 01:32:43 2005
+++ linux/drivers/pci/setup-bus.c	Fri Jul  8 10:25:20 2005
@@ -40,8 +40,8 @@
  * FIXME: IO should be max 256 bytes.  However, since we may
  * have a P2P bridge below a cardbus bridge, we need 4K.
  */
-#define CARDBUS_IO_SIZE		(4096)
-#define CARDBUS_MEM_SIZE	(32*1024*1024)
+#define CARDBUS_IO_SIZE		(256)
+#define CARDBUS_MEM_SIZE	(4*1024*1024)
 
 static void __devinit
 pbus_assign_resources_sorted(struct pci_bus *bus)

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [SOLVED] Re: 2.6.13-rc2 hangs at boot
  2005-07-08  6:28               ` Ivan Kokshaysky
@ 2005-07-08  7:57                 ` Tero Roponen
  2005-07-08  9:19                   ` Ivan Kokshaysky
  0 siblings, 1 reply; 23+ messages in thread
From: Tero Roponen @ 2005-07-08  7:57 UTC (permalink / raw)
  To: Ivan Kokshaysky; +Cc: Jon Smirl, gregkh, linux-kernel

On Fri, 8 Jul 2005, Ivan Kokshaysky wrote:

Thanks! Vanilla 2.6.13-rc2 with below patch applied
works perfectly!

-
Tero Roponen


> On Thu, Jul 07, 2005 at 05:13:49PM +0300, Tero Roponen wrote:
> > I applied your original patch (the no-op one) and the
> > end=0 patch. With those applied I could boot into login
> > prompt.
>
> Puzzling. None of these patches should affect your setup.
> And you still have DMA timeouts...
>
> > Attached are lspci -vv and dmesg outputs from
> > 2.6.12 and 2.6.13-rc2 kernels.
>
> The only difference is that under 2.6.13-rc2 the cardbus ranges
> are a lot bigger. With the patch here your PCI setup should be
> identical to 2.6.12. I don't think this fixes DMA problem,
> but just to be sure...
>
> Ivan.
>
> --- 2.6.13-rc2/drivers/pci/setup-bus.c	Thu Jul  7 01:32:43 2005
> +++ linux/drivers/pci/setup-bus.c	Fri Jul  8 10:25:20 2005
> @@ -40,8 +40,8 @@
>   * FIXME: IO should be max 256 bytes.  However, since we may
>   * have a P2P bridge below a cardbus bridge, we need 4K.
>   */
> -#define CARDBUS_IO_SIZE		(4096)
> -#define CARDBUS_MEM_SIZE	(32*1024*1024)
> +#define CARDBUS_IO_SIZE		(256)
> +#define CARDBUS_MEM_SIZE	(4*1024*1024)
>
>  static void __devinit
>  pbus_assign_resources_sorted(struct pci_bus *bus)
>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [SOLVED] Re: 2.6.13-rc2 hangs at boot
  2005-07-08  7:57                 ` [SOLVED] " Tero Roponen
@ 2005-07-08  9:19                   ` Ivan Kokshaysky
  2005-07-08  9:38                     ` Tero Roponen
  0 siblings, 1 reply; 23+ messages in thread
From: Ivan Kokshaysky @ 2005-07-08  9:19 UTC (permalink / raw)
  To: Tero Roponen; +Cc: Jon Smirl, gregkh, linux-kernel

On Fri, Jul 08, 2005 at 10:57:56AM +0300, Tero Roponen wrote:
> Thanks! Vanilla 2.6.13-rc2 with below patch applied
> works perfectly!

Thanks for testing. Though, bad news are that it's still unclear
why your machine doesn't like large cardbus windows and therefore
how to fix that correctly.

May I ask you to do couple of another tests with following variations
of the latest patch (this will help to determine whether it's IO or
MEM ranges to blame)?
1. 
#define CARDBUS_IO_SIZE		(256)
#define CARDBUS_MEM_SIZE	(32*1024*1024)

2.
#define CARDBUS_IO_SIZE		(4096)
#define CARDBUS_MEM_SIZE	(4*1024*1024)

Ivan.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [SOLVED] Re: 2.6.13-rc2 hangs at boot
  2005-07-08  9:19                   ` Ivan Kokshaysky
@ 2005-07-08  9:38                     ` Tero Roponen
  2005-07-08  9:45                       ` Ivan Kokshaysky
  0 siblings, 1 reply; 23+ messages in thread
From: Tero Roponen @ 2005-07-08  9:38 UTC (permalink / raw)
  To: Ivan Kokshaysky; +Cc: Jon Smirl, gregkh, linux-kernel

On Fri, 8 Jul 2005, Ivan Kokshaysky wrote:

> On Fri, Jul 08, 2005 at 10:57:56AM +0300, Tero Roponen wrote:
> > Thanks! Vanilla 2.6.13-rc2 with below patch applied
> > works perfectly!
>
> Thanks for testing. Though, bad news are that it's still unclear
> why your machine doesn't like large cardbus windows and therefore
> how to fix that correctly.
>

> May I ask you to do couple of another tests with following variations
> of the latest patch (this will help to determine whether it's IO or
> MEM ranges to blame)?
> 1.
> #define CARDBUS_IO_SIZE		(256)
> #define CARDBUS_MEM_SIZE	(32*1024*1024)

This works correctly.



>
> 2.
> #define CARDBUS_IO_SIZE		(4096)
> #define CARDBUS_MEM_SIZE	(4*1024*1024)

This hangs at boot.



>
> Ivan.
>

-
Tero Roponen

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [SOLVED] Re: 2.6.13-rc2 hangs at boot
  2005-07-08  9:38                     ` Tero Roponen
@ 2005-07-08  9:45                       ` Ivan Kokshaysky
  0 siblings, 0 replies; 23+ messages in thread
From: Ivan Kokshaysky @ 2005-07-08  9:45 UTC (permalink / raw)
  To: Tero Roponen; +Cc: Jon Smirl, gregkh, linux-kernel

On Fri, Jul 08, 2005 at 12:38:28PM +0300, Tero Roponen wrote:
> > #define CARDBUS_IO_SIZE		(256)
> > #define CARDBUS_MEM_SIZE	(32*1024*1024)
> 
> This works correctly.

Thanks a lot. I'll go read the cardbus spec.

Ivan.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* 2.6.14-rc4: dma_timer_expiry [was 2.6.13-rc2 hangs at boot]
       [not found]   ` <20050728233408.550939d4.akpm@osdl.org>
@ 2005-07-29  8:09     ` Tero Roponen
  2005-07-29  8:24       ` Andrew Morton
  0 siblings, 1 reply; 23+ messages in thread
From: Tero Roponen @ 2005-07-29  8:09 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Jon Smirl, ink, gregkh, linux-kernel

Hi,

I just tested 2.6.13-rc4. At boot it prints:
"dma_timer_expiry: dma status == 0x61" many times.
That's the same problem as in 2.6.13-rc2.

If I apply the following patch, everything seems to be fine.
I'm not sure if this is the right thing to do, but it works for me.

-
Tero Roponen


--- 2.6.13-rc2/drivers/pci/setup-bus.c	Thu Jul  7 01:32:43 2005
+++ linux/drivers/pci/setup-bus.c	Fri Jul  8 10:25:20 2005
@@ -40,8 +40,8 @@
  * FIXME: IO should be max 256 bytes.  However, since we may
  * have a P2P bridge below a cardbus bridge, we need 4K.
  */
-#define CARDBUS_IO_SIZE		(4096)
-#define CARDBUS_MEM_SIZE	(32*1024*1024)
+#define CARDBUS_IO_SIZE		(256)
+#define CARDBUS_MEM_SIZE	(32*1024*1024)

 static void __devinit
 pbus_assign_resources_sorted(struct pci_bus *bus)


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.14-rc4: dma_timer_expiry [was 2.6.13-rc2 hangs at boot]
  2005-07-29  8:09     ` 2.6.14-rc4: dma_timer_expiry [was 2.6.13-rc2 hangs at boot] Tero Roponen
@ 2005-07-29  8:24       ` Andrew Morton
  2005-07-29  8:35         ` Tero Roponen
  0 siblings, 1 reply; 23+ messages in thread
From: Andrew Morton @ 2005-07-29  8:24 UTC (permalink / raw)
  To: Tero Roponen; +Cc: jonsmirl, ink, gregkh, linux-kernel

Tero Roponen <teanropo@cc.jyu.fi> wrote:
>
> Hi,
> 
> I just tested 2.6.13-rc4. At boot it prints:
> "dma_timer_expiry: dma status == 0x61" many times.
> That's the same problem as in 2.6.13-rc2.
> 
> If I apply the following patch, everything seems to be fine.
> I'm not sure if this is the right thing to do, but it works for me.
> 
> -
> Tero Roponen
> 
> 
> --- 2.6.13-rc2/drivers/pci/setup-bus.c	Thu Jul  7 01:32:43 2005
> +++ linux/drivers/pci/setup-bus.c	Fri Jul  8 10:25:20 2005
> @@ -40,8 +40,8 @@
>   * FIXME: IO should be max 256 bytes.  However, since we may
>   * have a P2P bridge below a cardbus bridge, we need 4K.
>   */
> -#define CARDBUS_IO_SIZE		(4096)
> -#define CARDBUS_MEM_SIZE	(32*1024*1024)
> +#define CARDBUS_IO_SIZE		(256)
> +#define CARDBUS_MEM_SIZE	(32*1024*1024)
> 

hm, how did you come up with that fix?  Those numbers have been like that
since forever.

What's the latest 2.6 kernel which worked OK?

Would it be possible for you to generate the `dmesg -s 100000' output for
both good and bad kernels, see what the differences are?

Thanks.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.14-rc4: dma_timer_expiry [was 2.6.13-rc2 hangs at boot]
  2005-07-29  8:24       ` Andrew Morton
@ 2005-07-29  8:35         ` Tero Roponen
  2005-07-29  9:39           ` Andrew Morton
  0 siblings, 1 reply; 23+ messages in thread
From: Tero Roponen @ 2005-07-29  8:35 UTC (permalink / raw)
  To: Andrew Morton; +Cc: jonsmirl, ink, gregkh, linux-kernel

On Fri, 29 Jul 2005, Andrew Morton wrote:

> Tero Roponen <teanropo@cc.jyu.fi> wrote:
> >
> > Hi,
> >
> > I just tested 2.6.13-rc4. At boot it prints:
> > "dma_timer_expiry: dma status == 0x61" many times.
> > That's the same problem as in 2.6.13-rc2.
> >
> > If I apply the following patch, everything seems to be fine.
> > I'm not sure if this is the right thing to do, but it works for me.
> >
> > -
> > Tero Roponen
> >
> >
> > --- 2.6.13-rc2/drivers/pci/setup-bus.c	Thu Jul  7 01:32:43 2005
> > +++ linux/drivers/pci/setup-bus.c	Fri Jul  8 10:25:20 2005
> > @@ -40,8 +40,8 @@
> >   * FIXME: IO should be max 256 bytes.  However, since we may
> >   * have a P2P bridge below a cardbus bridge, we need 4K.
> >   */
> > -#define CARDBUS_IO_SIZE		(4096)
> > -#define CARDBUS_MEM_SIZE	(32*1024*1024)
> > +#define CARDBUS_IO_SIZE		(256)
> > +#define CARDBUS_MEM_SIZE	(32*1024*1024)
> >
>
> hm, how did you come up with that fix?  Those numbers have been like that
> since forever.
>
> What's the latest 2.6 kernel which worked OK?
>
> Would it be possible for you to generate the `dmesg -s 100000' output for
> both good and bad kernels, see what the differences are?
>
> Thanks.

Hi,

that patch was from Ivan Kokshaysky (http://lkml.org/lkml/2005/7/8/25)

My original report is here: http://lkml.org/lkml/2005/7/6/174

-
Tero Roponen

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.14-rc4: dma_timer_expiry [was 2.6.13-rc2 hangs at boot]
  2005-07-29  8:35         ` Tero Roponen
@ 2005-07-29  9:39           ` Andrew Morton
  2005-08-01  7:22             ` Ivan Kokshaysky
  0 siblings, 1 reply; 23+ messages in thread
From: Andrew Morton @ 2005-07-29  9:39 UTC (permalink / raw)
  To: Tero Roponen; +Cc: jonsmirl, ink, gregkh, linux-kernel

Tero Roponen <teanropo@cc.jyu.fi> wrote:
>
> On Fri, 29 Jul 2005, Andrew Morton wrote:
> 
> > Tero Roponen <teanropo@cc.jyu.fi> wrote:
> > >
> > > Hi,
> > >
> > > I just tested 2.6.13-rc4. At boot it prints:
> > > "dma_timer_expiry: dma status == 0x61" many times.
> > > That's the same problem as in 2.6.13-rc2.
> > >
> > > If I apply the following patch, everything seems to be fine.
> > > I'm not sure if this is the right thing to do, but it works for me.
> > >
> > > -
> > > Tero Roponen
> > >
> > >
> > > --- 2.6.13-rc2/drivers/pci/setup-bus.c	Thu Jul  7 01:32:43 2005
> > > +++ linux/drivers/pci/setup-bus.c	Fri Jul  8 10:25:20 2005
> > > @@ -40,8 +40,8 @@
> > >   * FIXME: IO should be max 256 bytes.  However, since we may
> > >   * have a P2P bridge below a cardbus bridge, we need 4K.
> > >   */
> > > -#define CARDBUS_IO_SIZE		(4096)
> > > -#define CARDBUS_MEM_SIZE	(32*1024*1024)
> > > +#define CARDBUS_IO_SIZE		(256)
> > > +#define CARDBUS_MEM_SIZE	(32*1024*1024)
> > >
> >
> > hm, how did you come up with that fix?  Those numbers have been like that
> > since forever.
> >
> > What's the latest 2.6 kernel which worked OK?
> >
> > Would it be possible for you to generate the `dmesg -s 100000' output for
> > both good and bad kernels, see what the differences are?
> >
> > Thanks.
> 
> Hi,
> 
> that patch was from Ivan Kokshaysky (http://lkml.org/lkml/2005/7/8/25)

OK.

> My original report is here: http://lkml.org/lkml/2005/7/6/174

I see.  Ivan, do we know what's going on here?

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.14-rc4: dma_timer_expiry [was 2.6.13-rc2 hangs at boot]
  2005-07-29  9:39           ` Andrew Morton
@ 2005-08-01  7:22             ` Ivan Kokshaysky
  2005-08-01  7:42               ` Tero Roponen
  0 siblings, 1 reply; 23+ messages in thread
From: Ivan Kokshaysky @ 2005-08-01  7:22 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Tero Roponen, jonsmirl, gregkh, linux-kernel, Mikael Pettersson

On Fri, Jul 29, 2005 at 02:39:21AM -0700, Andrew Morton wrote:
> Tero Roponen <teanropo@cc.jyu.fi> wrote:
> > My original report is here: http://lkml.org/lkml/2005/7/6/174
> 
> I see.  Ivan, do we know what's going on here?

Sort of. The 4K cardbus windows are working fine for non-x86
architectures where all IO resources are usually well known
and added to the resource tree properly.
However, on x86 there are sometimes "hidden" system IO port
ranges that aren't reported by BIOS, so the large (4K) cardbus
windows overlap these ranges.

Actually I don't like reducing CARDBUS_IO_SIZE to 256 bytes, because
we lose an ability to handle cards with built-in p2p bridges (which
require 4K for IO), plus it won't fix Sony VAIO problem.

Tero and Mikael, can you try this one-liner instead?

Ivan.

--- 2.6.13-rc4/include/asm-i386/pci.h	Sun Jul 31 14:32:09 2005
+++ linux/include/asm-i386/pci.h	Mon Aug  1 08:29:18 2005
@@ -18,7 +18,7 @@ extern unsigned int pcibios_assign_all_b
 #define pcibios_scan_all_fns(a, b)	0
 
 extern unsigned long pci_mem_start;
-#define PCIBIOS_MIN_IO		0x1000
+#define PCIBIOS_MIN_IO		0x2000
 #define PCIBIOS_MIN_MEM		(pci_mem_start)
 
 #define PCIBIOS_MIN_CARDBUS_IO	0x4000

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.14-rc4: dma_timer_expiry [was 2.6.13-rc2 hangs at boot]
  2005-08-01  7:22             ` Ivan Kokshaysky
@ 2005-08-01  7:42               ` Tero Roponen
  0 siblings, 0 replies; 23+ messages in thread
From: Tero Roponen @ 2005-08-01  7:42 UTC (permalink / raw)
  To: Ivan Kokshaysky
  Cc: Andrew Morton, jonsmirl, gregkh, linux-kernel, Mikael Pettersson

On Mon, 1 Aug 2005, Ivan Kokshaysky wrote:

> On Fri, Jul 29, 2005 at 02:39:21AM -0700, Andrew Morton wrote:
> > Tero Roponen <teanropo@cc.jyu.fi> wrote:
> > > My original report is here: http://lkml.org/lkml/2005/7/6/174
> >
> > I see.  Ivan, do we know what's going on here?
>
> Sort of. The 4K cardbus windows are working fine for non-x86
> architectures where all IO resources are usually well known
> and added to the resource tree properly.
> However, on x86 there are sometimes "hidden" system IO port
> ranges that aren't reported by BIOS, so the large (4K) cardbus
> windows overlap these ranges.
>
> Actually I don't like reducing CARDBUS_IO_SIZE to 256 bytes, because
> we lose an ability to handle cards with built-in p2p bridges (which
> require 4K for IO), plus it won't fix Sony VAIO problem.
>
> Tero and Mikael, can you try this one-liner instead?
>
> Ivan.
>
> --- 2.6.13-rc4/include/asm-i386/pci.h	Sun Jul 31 14:32:09 2005
> +++ linux/include/asm-i386/pci.h	Mon Aug  1 08:29:18 2005
> @@ -18,7 +18,7 @@ extern unsigned int pcibios_assign_all_b
>  #define pcibios_scan_all_fns(a, b)	0
>
>  extern unsigned long pci_mem_start;
> -#define PCIBIOS_MIN_IO		0x1000
> +#define PCIBIOS_MIN_IO		0x2000
>  #define PCIBIOS_MIN_MEM		(pci_mem_start)
>
>  #define PCIBIOS_MIN_CARDBUS_IO	0x4000
>

Thanks, this works for me!

I hope this will be in 2.6.13 final.

-
Tero Roponen

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: 2.6.13-rc2 hangs at boot
  2005-07-07  1:27 ` Jon Smirl
  2005-07-07  9:59   ` Ivan Kokshaysky
       [not found]   ` <20050728233408.550939d4.akpm@osdl.org>
@ 2005-08-04 20:49   ` Andrew Morton
  2 siblings, 0 replies; 23+ messages in thread
From: Andrew Morton @ 2005-08-04 20:49 UTC (permalink / raw)
  To: Jon Smirl; +Cc: teanropo, ink, gregkh, linux-kernel

Jon Smirl <jonsmirl@gmail.com> wrote:
>
> I'm dead on a Dell PE400SC without reverting this.
> 
> On 7/6/05, Tero Roponen <teanropo@cc.jyu.fi> wrote:
> > Hi,
> > 
> > my computer (a ThinkPad 380XD laptop) hangs at boot in 2.6.13-rc2.
> > When I revert the patch below everything seems to be fine.
> > 
> > thanks,
> > Tero Roponen
> > 
> > 
> > Patch to revert:
> > 
> > Author: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
> > Date: Wed, 15 Jun 2005 14:59:27 +0000 (+0400)
> > Source: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=299de0343c7d18448a69c635378342e9214b14af

Guys, I'm going to assume that all these problems are fixed in 2.6.13-rc6
due to various fixes and reversions.

If that's not correct then please raise new reports, preferably at
bugzilla.kernel.org, thanks.


^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2005-08-04 20:51 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-06 13:47 2.6.13-rc2 hangs at boot Tero Roponen
2005-07-07  1:27 ` Jon Smirl
2005-07-07  9:59   ` Ivan Kokshaysky
2005-07-07 10:33     ` Tero Roponen
2005-07-07 12:31       ` Ivan Kokshaysky
2005-07-07 12:47         ` Tero Roponen
2005-07-07 13:41           ` Ivan Kokshaysky
2005-07-07 13:53             ` Tero Roponen
2005-07-07 14:13             ` Tero Roponen
2005-07-08  6:28               ` Ivan Kokshaysky
2005-07-08  7:57                 ` [SOLVED] " Tero Roponen
2005-07-08  9:19                   ` Ivan Kokshaysky
2005-07-08  9:38                     ` Tero Roponen
2005-07-08  9:45                       ` Ivan Kokshaysky
2005-07-07 13:59     ` Jon Smirl
     [not found]   ` <20050728233408.550939d4.akpm@osdl.org>
2005-07-29  8:09     ` 2.6.14-rc4: dma_timer_expiry [was 2.6.13-rc2 hangs at boot] Tero Roponen
2005-07-29  8:24       ` Andrew Morton
2005-07-29  8:35         ` Tero Roponen
2005-07-29  9:39           ` Andrew Morton
2005-08-01  7:22             ` Ivan Kokshaysky
2005-08-01  7:42               ` Tero Roponen
2005-08-04 20:49   ` 2.6.13-rc2 hangs at boot Andrew Morton
  -- strict thread matches above, loose matches on Subject: below --
2005-07-07 13:11 Mikael Pettersson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox