lkml.org 
[lkml]   [2009]   [May]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 1/2] x86: Sanity check the e820 against the SRAT table using e820 map only

    node_cover_memory() sanity checks the SRAT table by ensuring that all
    PXMs cover the memory reported in the e820. However, when calculating
    the size of the holes in the e820, it uses the early_node_map[] which
    contains information taken from both SRAT and e820. If the SRAT is
    missing an entry, then it is not detected that the SRAT table is
    incorrect and missing entries.

    This patch uses the e820 map to calculate the holes instead of
    early_node_map[].

    comment is from Mel.

    [ Impact: reject wrong SRAT tables ]

    Signed-off-by: Yinghai Lu <yinghai@kernel.org>
    Acked-by: Mel Gorman <mel@csn.ul.ie>

    ---
    arch/x86/mm/srat_64.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    Index: linux-2.6/arch/x86/mm/srat_64.c
    ===================================================================
    --- linux-2.6.orig/arch/x86/mm/srat_64.c
    +++ linux-2.6/arch/x86/mm/srat_64.c
    @@ -345,7 +345,7 @@ static int __init nodes_cover_memory(con
    pxmram = 0;
    }

    - e820ram = max_pfn - absent_pages_in_range(0, max_pfn);
    + e820ram = max_pfn - (e820_hole_size(0, max_pfn<<PAGE_SHIFT)>>PAGE_SHIFT);
    /* We seem to lose 3 pages somewhere. Allow a bit of slack. */
    if ((long)(e820ram - pxmram) >= 1*1024*1024) {
    printk(KERN_ERR

    \
     
     \ /
      Last update: 2009-05-08 09:41    [W:0.021 / U:63.080 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site