quicklists: do not release off node pages early
authorChristoph Lameter <clameter@sgi.com>
Sat, 22 Dec 2007 22:03:23 +0000 (14:03 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 25 Feb 2008 23:59:18 +0000 (15:59 -0800)
dhaval@linux.vnet.ibm.com, clameter@sgi.com
Message-ID: <200712222203.lBMM3Nsk021922@imap1.linux-foundation.org>

From: Christoph Lameter <clameter@sgi.com>

patch ed367fc3a7349b17354c7acef551533337764859 in mainline.

quicklists must keep even off node pages on the quicklists until the TLB
flush has been completed.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Cc: Dhaval Giani <dhaval@linux.vnet.ibm.com>
Cc: Oliver Pinter <oliver.pntr@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
include/linux/quicklist.h

index 9371c6116df3488d995ecc2bfd3ede17f2b232e6..39b66713a0bba015c9a1d94df6c54d9e781d3991 100644 (file)
@@ -56,14 +56,6 @@ static inline void __quicklist_free(int nr, void (*dtor)(void *), void *p,
        struct page *page)
 {
        struct quicklist *q;
-       int nid = page_to_nid(page);
-
-       if (unlikely(nid != numa_node_id())) {
-               if (dtor)
-                       dtor(p);
-               __free_page(page);
-               return;
-       }
 
        q = &get_cpu_var(quicklist)[nr];
        *(void **)p = q->page;