forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm…
…/linux/kernel/git/tip/linux-2.6-tip * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: rtmutex: tester: Remove the remaining BKL leftovers lockdep/timers: Explain in detail the locking problems del_timer_sync() may cause rtmutex: Simplify PI algorithm and make highest prio task get lock rwsem: Remove redundant asmregparm annotation rwsem: Move duplicate function prototypes to linux/rwsem.h rwsem: Unify the duplicate rwsem_is_locked() inlines rwsem: Move duplicate init macros and functions to linux/rwsem.h rwsem: Move duplicate struct rwsem declaration to linux/rwsem.h x86: Cleanup rwsem_count_t typedef rwsem: Cleanup includes locking: Remove deprecated lock initializers cred: Replace deprecated spinlock initialization kthread: Replace deprecated spinlock initialization xtensa: Replace deprecated spinlock initialization um: Replace deprecated spinlock initialization sparc: Replace deprecated spinlock initialization mips: Replace deprecated spinlock initialization cris: Replace deprecated spinlock initialization alpha: Replace deprecated spinlock initialization rtmutex-tester: Remove BKL tests
- Loading branch information
Showing
40 changed files
with
228 additions
and
816 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,11 +13,6 @@ | |
* by Paul Mackerras <[email protected]>. | ||
*/ | ||
|
||
#include <linux/list.h> | ||
#include <linux/spinlock.h> | ||
#include <asm/atomic.h> | ||
#include <asm/system.h> | ||
|
||
/* | ||
* the semaphore definition | ||
*/ | ||
|
@@ -33,47 +28,6 @@ | |
#define RWSEM_ACTIVE_READ_BIAS RWSEM_ACTIVE_BIAS | ||
#define RWSEM_ACTIVE_WRITE_BIAS (RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS) | ||
|
||
struct rw_semaphore { | ||
long count; | ||
spinlock_t wait_lock; | ||
struct list_head wait_list; | ||
#ifdef CONFIG_DEBUG_LOCK_ALLOC | ||
struct lockdep_map dep_map; | ||
#endif | ||
}; | ||
|
||
#ifdef CONFIG_DEBUG_LOCK_ALLOC | ||
# define __RWSEM_DEP_MAP_INIT(lockname) , .dep_map = { .name = #lockname } | ||
#else | ||
# define __RWSEM_DEP_MAP_INIT(lockname) | ||
#endif | ||
|
||
#define __RWSEM_INITIALIZER(name) \ | ||
{ \ | ||
RWSEM_UNLOCKED_VALUE, \ | ||
__SPIN_LOCK_UNLOCKED((name).wait_lock), \ | ||
LIST_HEAD_INIT((name).wait_list) \ | ||
__RWSEM_DEP_MAP_INIT(name) \ | ||
} | ||
|
||
#define DECLARE_RWSEM(name) \ | ||
struct rw_semaphore name = __RWSEM_INITIALIZER(name) | ||
|
||
extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem); | ||
extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem); | ||
extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem); | ||
extern struct rw_semaphore *rwsem_downgrade_wake(struct rw_semaphore *sem); | ||
|
||
extern void __init_rwsem(struct rw_semaphore *sem, const char *name, | ||
struct lock_class_key *key); | ||
|
||
#define init_rwsem(sem) \ | ||
do { \ | ||
static struct lock_class_key __key; \ | ||
\ | ||
__init_rwsem((sem), #sem, &__key); \ | ||
} while (0) | ||
|
||
/* | ||
* lock for reading | ||
*/ | ||
|
@@ -174,10 +128,5 @@ static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem) | |
return atomic_long_add_return(delta, (atomic_long_t *)&sem->count); | ||
} | ||
|
||
static inline int rwsem_is_locked(struct rw_semaphore *sem) | ||
{ | ||
return sem->count != 0; | ||
} | ||
|
||
#endif /* __KERNEL__ */ | ||
#endif /* _ASM_POWERPC_RWSEM_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.