diff options
Diffstat (limited to 'lib/spinlock_debug.c')
| -rw-r--r-- | lib/spinlock_debug.c | 15 | 
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/spinlock_debug.c b/lib/spinlock_debug.c index 58c577dd82e..dafaf1de249 100644 --- a/lib/spinlock_debug.c +++ b/lib/spinlock_debug.c @@ -99,11 +99,12 @@ static inline void debug_spin_unlock(spinlock_t *lock)  static void __spin_lock_debug(spinlock_t *lock)  { -	int print_once = 1;  	u64 i; +	u64 loops = loops_per_jiffy * HZ; +	int print_once = 1;  	for (;;) { -		for (i = 0; i < loops_per_jiffy * HZ; i++) { +		for (i = 0; i < loops; i++) {  			if (__raw_spin_trylock(&lock->raw_lock))  				return;  			__delay(1); @@ -165,11 +166,12 @@ static void rwlock_bug(rwlock_t *lock, const char *msg)  #if 0		/* __write_lock_debug() can lock up - maybe this can too? */  static void __read_lock_debug(rwlock_t *lock)  { -	int print_once = 1;  	u64 i; +	u64 loops = loops_per_jiffy * HZ; +	int print_once = 1;  	for (;;) { -		for (i = 0; i < loops_per_jiffy * HZ; i++) { +		for (i = 0; i < loops; i++) {  			if (__raw_read_trylock(&lock->raw_lock))  				return;  			__delay(1); @@ -239,11 +241,12 @@ static inline void debug_write_unlock(rwlock_t *lock)  #if 0		/* This can cause lockups */  static void __write_lock_debug(rwlock_t *lock)  { -	int print_once = 1;  	u64 i; +	u64 loops = loops_per_jiffy * HZ; +	int print_once = 1;  	for (;;) { -		for (i = 0; i < loops_per_jiffy * HZ; i++) { +		for (i = 0; i < loops; i++) {  			if (__raw_write_trylock(&lock->raw_lock))  				return;  			__delay(1);  |