[IA64] Fix nasty VMLPT problem...
authorPeter Chubb <peterc@gelato.unsw.edu.au>
Wed, 24 Aug 2005 03:07:00 +0000 (20:07 -0700)
committerTony Luck <tony.luck@intel.com>
Wed, 31 Aug 2005 15:35:22 +0000 (08:35 -0700)
commit6cf07a8cc86a0b471466c7fe45892f7ef434015b
treeb1565448216586580ee34e6fa156353e8ec0540e
parent714d2dc14914f0f7bb008effe830c99eb47c75df
[IA64] Fix nasty VMLPT problem...

I've solved the problem I was having with the simulator and not
booting Debian.

The problem is that the number of bits for the virtual linear array
short-format VHPT (Virtually mapped linear page table, VMLPT for
short) is being tested incorrectly.

There are two problems:
      1. The PAL call that should tell the kernel the size of the
      virtual address space isn't implemented for the simulator, so
      the kernel uses the default 50.  This is addressed separately
      in dc90e95f310f4f821c905b2aec8e9449bb3270fa

      2.  In arch/ia64/mm/init.c there's code to calcualte the size
      of the VMLPT based on the number of implemented virtual address
      bits and the page size.  It checks to see if the VMLPT base
      address overlaps the top of the mapped region, but this check
      doesn't allow for the address space hole, and in fact will
      never trigger.

Here's an alternative test and panic, that I think is more accurate.

Signed-off-by: Peter Chubb <peterc@gelato.unsw.edu.au>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/mm/init.c