Commit 2b6cf10a authored by Anton Blanchard's avatar Anton Blanchard

ppc64: add large page bit, use lwsync instead of eieio for spinlock

release.
parent 3c0d49b2
...@@ -108,7 +108,7 @@ typedef struct { ...@@ -108,7 +108,7 @@ typedef struct {
unsigned long : 2; /* Software use */ unsigned long : 2; /* Software use */
unsigned long bolted: 1; /* HPTE is "bolted" */ unsigned long bolted: 1; /* HPTE is "bolted" */
unsigned long : 1; /* Software use */ unsigned long : 1; /* Software use */
unsigned long : 1; /* Reserved */ unsigned long l: 1; /* Virtual page is large (L=1) or 4 KB (L=0) */
unsigned long h: 1; /* Hash function identifier */ unsigned long h: 1; /* Hash function identifier */
unsigned long v: 1; /* Valid (v=1) or invalid (v=0) */ unsigned long v: 1; /* Valid (v=1) or invalid (v=0) */
} Hpte_dword0; } Hpte_dword0;
......
...@@ -67,7 +67,7 @@ static __inline__ void _raw_spin_lock(spinlock_t *lock) ...@@ -67,7 +67,7 @@ static __inline__ void _raw_spin_lock(spinlock_t *lock)
static __inline__ void _raw_spin_unlock(spinlock_t *lock) static __inline__ void _raw_spin_unlock(spinlock_t *lock)
{ {
__asm__ __volatile__("eieio # spin_unlock": : :"memory"); __asm__ __volatile__("lwsync # spin_unlock": : :"memory");
lock->lock = 0; lock->lock = 0;
} }
...@@ -137,7 +137,7 @@ static __inline__ void _raw_read_unlock(rwlock_t *rw) ...@@ -137,7 +137,7 @@ static __inline__ void _raw_read_unlock(rwlock_t *rw)
unsigned int tmp; unsigned int tmp;
__asm__ __volatile__( __asm__ __volatile__(
"eieio # read_unlock\n\ "lwsync # read_unlock\n\
1: lwarx %0,0,%1\n\ 1: lwarx %0,0,%1\n\
addic %0,%0,-1\n\ addic %0,%0,-1\n\
stwcx. %0,0,%1\n\ stwcx. %0,0,%1\n\
...@@ -192,7 +192,7 @@ static __inline__ void _raw_write_lock(rwlock_t *rw) ...@@ -192,7 +192,7 @@ static __inline__ void _raw_write_lock(rwlock_t *rw)
static __inline__ void _raw_write_unlock(rwlock_t *rw) static __inline__ void _raw_write_unlock(rwlock_t *rw)
{ {
__asm__ __volatile__("eieio # write_unlock": : :"memory"); __asm__ __volatile__("lwsync # write_unlock": : :"memory");
rw->lock = 0; rw->lock = 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment