lkml.org 
[lkml]   [2008]   [Apr]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subjectslab: fix cache_cache bootstrap in kmem_cache_init()
    -stable review patch.  If anyone has any objections, please let us know.
    ---------------------

    From: Daniel Yeisley <dan.yeisley@unisys.com>

    upstream commit: ec1f5eeeb5a79a0d48036de649a3498da42db565

    Commit 556a169dab38b5100df6f4a45b655dddd3db94c1 ("slab: fix bootstrap on
    memoryless node") introduced bootstrap-time cache_cache list3s for all nodes
    but forgot that initkmem_list3 needs to be accessed by [somevalue + node]. This
    patch fixes list_add() corruption in mm/slab.c seen on the ES7000.

    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: Olaf Hering <olaf@aepfle.de>
    Signed-off-by: Dan Yeisley <dan.yeisley@unisys.com>
    Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
    Signed-off-by: Christoph Lameter <clameter@sgi.com>
    Signed-off-by: Chris Wright <chrisw@sous-sol.org>
    ---
    mm/slab.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/mm/slab.c
    +++ b/mm/slab.c
    @@ -1484,7 +1484,7 @@ void __init kmem_cache_init(void)
    list_add(&cache_cache.next, &cache_chain);
    cache_cache.colour_off = cache_line_size();
    cache_cache.array[smp_processor_id()] = &initarray_cache.cache;
    - cache_cache.nodelists[node] = &initkmem_list3[CACHE_CACHE];
    + cache_cache.nodelists[node] = &initkmem_list3[CACHE_CACHE + node];

    /*
    * struct kmem_cache size depends on nr_node_ids, which
    @@ -1605,7 +1605,7 @@ void __init kmem_cache_init(void)
    int nid;

    for_each_online_node(nid) {
    - init_list(&cache_cache, &initkmem_list3[CACHE_CACHE], nid);
    + init_list(&cache_cache, &initkmem_list3[CACHE_CACHE + nid], nid);

    init_list(malloc_sizes[INDEX_AC].cs_cachep,
    &initkmem_list3[SIZE_AC + nid], nid);
    --


    \
     
     \ /
      Last update: 2008-04-17 03:15    [W:4.081 / U:0.272 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site