lkml.org 
[lkml]   [2011]   [Feb]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[19/70] xen/p2m: Mark INVALID_P2M_ENTRY the mfn_list past max_pfn.
    2.6.37-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Stefan Bader <stefan.bader@canonical.com>

    commit cf04d120d9413de581437cf9a29f138ec1178f65 upstream.

    In case the mfn_list does not have enough entries to fill
    a p2m page we do not want the entries from max_pfn up to
    the boundary to be filled with unknown values. Hence
    set them to INVALID_P2M_ENTRY.

    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    arch/x86/xen/mmu.c | 16 +++++-----------
    1 file changed, 5 insertions(+), 11 deletions(-)

    --- a/arch/x86/xen/mmu.c
    +++ b/arch/x86/xen/mmu.c
    @@ -399,21 +399,15 @@ void __init xen_build_dynamic_phys_to_ma
    * As long as the mfn_list has enough entries to completely
    * fill a p2m page, pointing into the array is ok. But if
    * not the entries beyond the last pfn will be undefined.
    - * And guessing that the 'what-ever-there-is' does not take it
    - * too kindly when changing it to invalid markers, a new page
    - * is allocated, initialized and filled with the valid part.
    */
    if (unlikely(pfn + P2M_PER_PAGE > max_pfn)) {
    unsigned long p2midx;
    - unsigned long *p2m = extend_brk(PAGE_SIZE, PAGE_SIZE);
    - p2m_init(p2m);

    - for (p2midx = 0; pfn + p2midx < max_pfn; p2midx++) {
    - p2m[p2midx] = mfn_list[pfn + p2midx];
    - }
    - p2m_top[topidx][mididx] = p2m;
    - } else
    - p2m_top[topidx][mididx] = &mfn_list[pfn];
    + p2midx = max_pfn % P2M_PER_PAGE;
    + for ( ; p2midx < P2M_PER_PAGE; p2midx++)
    + mfn_list[pfn + p2midx] = INVALID_P2M_ENTRY;
    + }
    + p2m_top[topidx][mididx] = &mfn_list[pfn];
    }
    }




    \
     
     \ /
      Last update: 2011-02-22 23:35    [W:0.021 / U:30.456 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site