Re: [BUG 2.6.31-rc1] HIGHMEM64G causes hang in PCI init on 32-bit x86

Mikael Pettersson
2009-06-27T09:42:32Z

Grant Grundler writes:
> On Sat, Jun 27, 2009 at 03:13:52AM +0200, Mikael Pettersson wrote:
> > Mikael Pettersson writes:
> ...
> > > CPU: Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz stepping 06
> > > Checking 'hlt' instruction... OK.
> > > PCI: PCI BIOS revision 3.00 entry at 0xf0031, last bus=2
> ...
> > > pci 0000:00:1e.0: transparent bridge
> > > pci 0000:00:1f.0: PIIX/ICH IRQ router [8086:2810]
> > >
> > > At this point the kernel hangs hard until rebooted.
>
> ...
> > I've now identified commit 95ee14e4379c5e19c0897c872350570402014742
> > "x86: cap iomem_resource to addressable physical memory" by hpa (cc:d)
> > as the culprit. Reverting it fixes my boot hang.
>
> Mikael,
> thanks for tracking this down...can you dump the value of c->x86_phys_bits
> please?

Sure. This is from 2.6.31-rc1 with the commit commented out and
replaced by a debug printk:

identify_cpu: ->x86_phys_bits == 36, would change iomem_resource.end from 0xffffffffffffffff to 0x0000000fffffffff

which looks correct for HIGHMEM64G.