Files
kernel/include/linux
Pravin B Shelar abca7c4965 mm: fix slab->page _count corruption when using slub
On arches that do not support this_cpu_cmpxchg_double() slab_lock is used
to do atomic cmpxchg() on double word which contains page->_count.  The
page count can be changed from get_page() or put_page() without taking
slab_lock.  That corrupts page counter.

Fix it by moving page->_count out of cmpxchg_double data.  So that slub
does no change it while updating slub meta-data in struct page.

[akpm@linux-foundation.org: use standard comment layout, tweak comment text]
Reported-by: Amey Bhide <abhide@nicira.com>
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-06-20 14:39:35 -07:00
..
2012-05-07 15:39:35 -07:00
2012-04-23 14:23:32 +03:00
2012-05-15 17:30:30 -04:00
2012-05-08 14:13:25 -07:00
2012-04-14 15:24:26 -04:00
2012-05-02 14:15:27 -05:00
2012-05-25 12:46:23 +05:30
2012-05-10 12:00:56 +02:00
2012-04-30 15:30:18 -07:00
2012-05-17 15:36:35 -04:00
2012-05-29 23:28:33 -04:00
2012-04-25 12:25:05 +02:00
2012-04-27 10:46:45 +08:00
2012-05-22 11:32:31 +02:00
2012-05-12 14:28:14 +02:00
2012-04-21 16:26:33 -04:00
2012-05-07 10:58:57 -06:00
2012-05-21 21:09:38 +02:00
2012-04-09 11:16:55 -07:00
2012-05-31 17:49:30 -07:00
2012-05-31 17:49:32 -07:00
2012-05-31 17:49:26 -07:00
2012-05-31 17:49:30 -07:00
2012-05-11 10:56:56 +01:00
2012-05-29 23:28:41 -04:00
2012-05-09 13:58:06 -07:00
2012-05-22 15:20:28 -04:00
2012-05-29 22:33:55 -04:00
2012-05-08 20:25:42 +02:00
2012-04-12 15:10:33 -04:00
2012-05-26 14:17:30 -04:00
2012-06-05 18:38:47 -04:00
2012-05-16 15:17:08 -04:00
2012-05-21 14:31:48 +01:00
2012-05-14 14:15:32 -07:00
2012-06-06 17:08:00 +02:00
2012-05-12 15:53:42 -04:00
2012-05-17 08:51:59 -07:00
2012-04-18 15:57:31 -07:00
2012-06-01 12:58:52 -04:00
2012-05-31 17:49:26 -07:00
2012-05-08 12:35:06 +02:00
2012-04-15 12:44:40 -04:00
2012-05-14 18:53:19 -04:00
2012-05-21 16:16:58 -07:00
2012-05-22 12:16:16 +09:30