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 | |
| 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>
| -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, |
