diff options
author | Anton Blanchard <anton@samba.org> | 2010-02-09 20:03:06 -0500 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2010-02-16 22:03:15 -0500 |
commit | 66d99b883419b8df6d0a24ca957da7ab4831cf6e (patch) | |
tree | 78950f0267b698314487fa6c514481d811e6da0c /arch/powerpc/mm/hash_native_64.c | |
parent | 864b9e6fd76489aab422bac62162f57c52e06ed8 (diff) |
powerpc: Convert open coded native hashtable bit lock
Now we have real bit locks use them instead of open coding it.
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/mm/hash_native_64.c')
-rw-r--r-- | arch/powerpc/mm/hash_native_64.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/powerpc/mm/hash_native_64.c b/arch/powerpc/mm/hash_native_64.c index 056d23a1b105..9e1aa4f99fac 100644 --- a/arch/powerpc/mm/hash_native_64.c +++ b/arch/powerpc/mm/hash_native_64.c | |||
@@ -122,7 +122,7 @@ static inline void native_lock_hpte(struct hash_pte *hptep) | |||
122 | unsigned long *word = &hptep->v; | 122 | unsigned long *word = &hptep->v; |
123 | 123 | ||
124 | while (1) { | 124 | while (1) { |
125 | if (!test_and_set_bit(HPTE_LOCK_BIT, word)) | 125 | if (!test_and_set_bit_lock(HPTE_LOCK_BIT, word)) |
126 | break; | 126 | break; |
127 | while(test_bit(HPTE_LOCK_BIT, word)) | 127 | while(test_bit(HPTE_LOCK_BIT, word)) |
128 | cpu_relax(); | 128 | cpu_relax(); |
@@ -133,8 +133,7 @@ static inline void native_unlock_hpte(struct hash_pte *hptep) | |||
133 | { | 133 | { |
134 | unsigned long *word = &hptep->v; | 134 | unsigned long *word = &hptep->v; |
135 | 135 | ||
136 | asm volatile("lwsync":::"memory"); | 136 | clear_bit_unlock(HPTE_LOCK_BIT, word); |
137 | clear_bit(HPTE_LOCK_BIT, word); | ||
138 | } | 137 | } |
139 | 138 | ||
140 | static long native_hpte_insert(unsigned long hpte_group, unsigned long va, | 139 | static long native_hpte_insert(unsigned long hpte_group, unsigned long va, |