From: Greg Kroah-Hartman Date: Tue, 16 Dec 2008 23:41:12 +0000 (-0800) Subject: another .27 patch X-Git-Tag: v2.6.27.10~3 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=279557a29ad2472abe7aaf311c4540cf5495fbd5;p=thirdparty%2Fkernel%2Fstable-queue.git another .27 patch --- diff --git a/queue-2.6.27/series b/queue-2.6.27/series index f01e4bd8576..0c1358e88b7 100644 --- a/queue-2.6.27/series +++ b/queue-2.6.27/series @@ -19,3 +19,4 @@ sunrpc-fix-a-performance-regression-in-the-rpc-authentication-code.patch b1isa-fix-b1isa_exit-to-really-remove-registered-capi-controllers.patch macfb-do-not-overflow-fb_fix_screeninfo.id.patch v4l-dvb-avoid-writing-outside-shadow.bytes-array.patch +setup_per_zone_pages_min-take-zone-lock-instead-of-zone-lru_lock.patch diff --git a/queue-2.6.27/setup_per_zone_pages_min-take-zone-lock-instead-of-zone-lru_lock.patch b/queue-2.6.27/setup_per_zone_pages_min-take-zone-lock-instead-of-zone-lru_lock.patch new file mode 100644 index 00000000000..949ddba0194 --- /dev/null +++ b/queue-2.6.27/setup_per_zone_pages_min-take-zone-lock-instead-of-zone-lru_lock.patch @@ -0,0 +1,45 @@ +From 1125b4e3949949b44a7c80b619507c6f61d62911 Mon Sep 17 00:00:00 2001 +From: Gerald Schaefer +Date: Sat, 18 Oct 2008 20:27:11 -0700 +Subject: setup_per_zone_pages_min(): take zone->lock instead of zone->lru_lock + +From: Gerald Schaefer + +commit 1125b4e3949949b44a7c80b619507c6f61d62911 upstream. + +This replaces zone->lru_lock in setup_per_zone_pages_min() with zone->lock. +There seems to be no need for the lru_lock anymore, but there is a need for +zone->lock instead, because that function may call move_freepages() via +setup_zone_migrate_reserve(). + +Signed-off-by: Gerald Schaefer +Acked-by: KAMEZAWA Hiroyuki +Tested-by: Yasunori Goto +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + mm/page_alloc.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/mm/page_alloc.c ++++ b/mm/page_alloc.c +@@ -4224,7 +4224,7 @@ void setup_per_zone_pages_min(void) + for_each_zone(zone) { + u64 tmp; + +- spin_lock_irqsave(&zone->lru_lock, flags); ++ spin_lock_irqsave(&zone->lock, flags); + tmp = (u64)pages_min * zone->present_pages; + do_div(tmp, lowmem_pages); + if (is_highmem(zone)) { +@@ -4256,7 +4256,7 @@ void setup_per_zone_pages_min(void) + zone->pages_low = zone->pages_min + (tmp >> 2); + zone->pages_high = zone->pages_min + (tmp >> 1); + setup_zone_migrate_reserve(zone); +- spin_unlock_irqrestore(&zone->lru_lock, flags); ++ spin_unlock_irqrestore(&zone->lock, flags); + } + + /* update totalreserve_pages */