slub: tid must be retrieved from the percpu area of the current processor
authorChristoph Lameter <cl@linux.com>
Wed, 23 Jan 2013 21:45:48 +0000 (21:45 +0000)
committerPekka Enberg <penberg@kernel.org>
Fri, 5 Apr 2013 11:23:06 +0000 (14:23 +0300)
commit7cccd80b4397699902aced1ad3d692d384aaab77
tree010bad7b7e3d3969f6050406b448fbcbc57cdca0
parent4d7868e6475d478172581828021bd8a356726679
slub: tid must be retrieved from the percpu area of the current processor

As Steven Rostedt has pointer out: rescheduling could occur on a
different processor after the determination of the per cpu pointer and
before the tid is retrieved. This could result in allocation from the
wrong node in slab_alloc().

The effect is much more severe in slab_free() where we could free to the
freelist of the wrong page.

The window for something like that occurring is pretty small but it is
possible.

Signed-off-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
mm/slub.c