1. 25 5月, 2008 3 次提交
    • P
      x86 boot: extend some internal memory map arrays to handle larger EFI input · 028b7858
      Paul Jackson 提交于
      Extend internal boot time memory tables to allow for up to
      three entries per node, which may be larger than the 128 E820MAX
      entries handled by the legacy BIOS E820 interface.  The EFI
      interface, if present, is capable of passing memory map
      entries for these larger node counts.
      
      This patch requires an earlier patch that rewrote code depending
      on these array sizes from using E820MAX explicitly to size loops,
      to instead using ARRAY_SIZE() of the applicable array.
      
      Another patch following this one will provide the code to pick
      up additional memory entries passed via the EFI interface from
      the BIOS and insert them in the following, now enlarged, arrays.
      Signed-off-by: NPaul Jackson <pj@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      028b7858
    • P
      x86 boot: proper use of ARRAY_SIZE instead of repeated E820MAX constant · c3965bd1
      Paul Jackson 提交于
      This patch is motivated by a subsequent patch which will allow for more
      memory map entries on EFI supported systems than can be passed via the x86
      legacy BIOS E820 interface.  The legacy interface is limited to E820MAX ==
      128 memory entries, and that "E820MAX" manifest constant was used as the
      size for several arrays and loops over those arrays.
      
      The primary change in this patch is to change code loop sizes over those
      arrays from using the constant E820MAX, to using the ARRAY_SIZE() macro
      evaluated for the array being looped.  That way, a subsequent patch can
      change the size of some of these arrays, without breaking this code.
      
      This patch also adds a parameter to the sanitize_e820_map() routine,
      which had an implicit size for the array passed it of E820MAX entries.
      This new parameter explicitly passes the size of said array.  Once again,
      this will allow a subsequent patch to change that array size for some
      calls to sanitize_e820_map() without breaking the code.
      
      As part of enhancing the sanitize_e820_map() interface this way, I further
      combined the unnecessarily distinct x86_32 and x86_64 declarations for
      this routine into a single, commonly used, declaration.
      
      This patch in itself should make no difference to the resulting kernel
      binary.
      
      [ mingo@elte.hu: merged to -tip ]
      Signed-off-by: NPaul Jackson <pj@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c3965bd1
    • Y
      x86: make e820.c to have common functions · b79cd8f1
      Yinghai Lu 提交于
      remove the duplicated copy of these functions.
      Signed-off-by: NYinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b79cd8f1