git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.5.x5
[linux-2.6.git]
/
include
/
asm-ppc64
/
spinlock.h
diff --git
a/include/asm-ppc64/spinlock.h
b/include/asm-ppc64/spinlock.h
index
45a6f75
..
a9b2a11
100644
(file)
--- a/
include/asm-ppc64/spinlock.h
+++ b/
include/asm-ppc64/spinlock.h
@@
-23,10
+23,16
@@
typedef struct {
volatile unsigned int lock;
typedef struct {
volatile unsigned int lock;
+#ifdef CONFIG_PREEMPT
+ unsigned int break_lock;
+#endif
} spinlock_t;
typedef struct {
volatile signed int lock;
} spinlock_t;
typedef struct {
volatile signed int lock;
+#ifdef CONFIG_PREEMPT
+ unsigned int break_lock;
+#endif
} rwlock_t;
#ifdef __KERNEL__
} rwlock_t;
#ifdef __KERNEL__
@@
-57,7
+63,7
@@
static __inline__ void _raw_spin_unlock(spinlock_t *lock)
#if defined(CONFIG_PPC_SPLPAR) || defined(CONFIG_PPC_ISERIES)
/* We only yield to the hypervisor if we are in shared processor mode */
#if defined(CONFIG_PPC_SPLPAR) || defined(CONFIG_PPC_ISERIES)
/* We only yield to the hypervisor if we are in shared processor mode */
-#define SHARED_PROCESSOR (get_paca()->lppaca.
xSharedP
roc)
+#define SHARED_PROCESSOR (get_paca()->lppaca.
shared_p
roc)
extern void __spin_yield(spinlock_t *lock);
extern void __rw_yield(rwlock_t *lock);
#else /* SPLPAR || ISERIES */
extern void __spin_yield(spinlock_t *lock);
extern void __rw_yield(rwlock_t *lock);
#else /* SPLPAR || ISERIES */
@@
-141,17
+147,9
@@
static void __inline__ _raw_spin_lock_flags(spinlock_t *lock, unsigned long flag
#define RW_LOCK_UNLOCKED (rwlock_t) { 0 }
#define rwlock_init(x) do { *(x) = RW_LOCK_UNLOCKED; } while(0)
#define RW_LOCK_UNLOCKED (rwlock_t) { 0 }
#define rwlock_init(x) do { *(x) = RW_LOCK_UNLOCKED; } while(0)
-#define rwlock_is_locked(x) ((x)->lock)
-static __inline__ int is_read_locked(rwlock_t *rw)
-{
- return rw->lock > 0;
-}
-
-static __inline__ int is_write_locked(rwlock_t *rw)
-{
- return rw->lock < 0;
-}
+#define read_can_lock(rw) ((rw)->lock >= 0)
+#define write_can_lock(rw) (!(rw)->lock)
static __inline__ void _raw_write_unlock(rwlock_t *rw)
{
static __inline__ void _raw_write_unlock(rwlock_t *rw)
{