gru: fix potential use-after-free when purging GRU tlbs
authorJack Steiner <steiner@sgi.com>
Wed, 17 Jun 2009 23:28:33 +0000 (16:28 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 18 Jun 2009 20:04:04 +0000 (13:04 -0700)
commit1926ee85a903d189c5702eed6531be321e33eb47
tree1ae951591d3be09b86479800e2a4f03f119f4d78
parentb1b19fcfa417cf62447413d6e8b9b6598adf00b9
gru: fix potential use-after-free when purging GRU tlbs

Fix potential SGI GRU bug that could cause a use-after-free.  If one
thread in a task is flushing the GRU and another thread destroys the GRU
context, there is the potential to access a table after it has been freed.

Copy the gms pointer to a local variable before unlocking the gts table.
Note that no refcnt is needed for the gms - the reference is held
indirectly by the task's mm_struct.

Signed-off-by: Jack Steiner <steiner@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/misc/sgi-gru/grufault.c