gru: fix istatus race in GRU tlb dropin
authorJack Steiner <steiner@sgi.com>
Wed, 16 Dec 2009 00:48:03 +0000 (16:48 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 16 Dec 2009 15:20:14 +0000 (07:20 -0800)
commitb61fc69bb61838e99b368d208e6e2ee363eba2a1
treee499fe1d706cab16561551b3ff49f9f5450659b1
parent091f1a10614db89a108cda980425799730d73d8a
gru: fix istatus race in GRU tlb dropin

TLB dropins require updates to the CBR instruction istatus field.  This is
needed to resolve race conditions in the chip.

The code currently uses the user address of the CBR.  This works but opens
up additional endcases related to stealing of contexts and accessing the
CBR from tasks that do not have access to the user address space.  (Some
of this non-user task access is debug code that is not currently being
pushed to the community).

User CBRs are also directly accessible using the kernel mapping of the
CBR.  Change the TLB dropin code to use the the kernel mapping of the CBR.

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