Commit 6a058b40 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] BUG() -> BUG_ON() conversions.

From: davej@codemonkey.org.uk

Various performance critical sections.

The increased cache footprint may be a pessimisation, especially on earlier
CPUs where unlikely() doesn't do anything useful, and we fall back to
trusting gcc to DTRT.
parent 68286bb8
...@@ -45,8 +45,8 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, str ...@@ -45,8 +45,8 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, str
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
else { else {
cpu_tlbstate[cpu].state = TLBSTATE_OK; cpu_tlbstate[cpu].state = TLBSTATE_OK;
if (cpu_tlbstate[cpu].active_mm != next) BUG_ON(cpu_tlbstate[cpu].active_mm != next);
BUG();
if (!test_and_set_bit(cpu, &next->cpu_vm_mask)) { if (!test_and_set_bit(cpu, &next->cpu_vm_mask)) {
/* We were in lazy tlb mode and leave_mm disabled /* We were in lazy tlb mode and leave_mm disabled
* tlb flush IPI delivery. We must reload %cr3. * tlb flush IPI delivery. We must reload %cr3.
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include <asm/rwlock.h> #include <asm/rwlock.h>
#include <asm/page.h> #include <asm/page.h>
#include <linux/config.h> #include <linux/config.h>
#include <linux/compiler.h>
extern int printk(const char * fmt, ...) extern int printk(const char * fmt, ...)
__attribute__ ((format (printf, 1, 2))); __attribute__ ((format (printf, 1, 2)));
...@@ -70,10 +71,8 @@ typedef struct { ...@@ -70,10 +71,8 @@ typedef struct {
static inline void _raw_spin_unlock(spinlock_t *lock) static inline void _raw_spin_unlock(spinlock_t *lock)
{ {
#ifdef CONFIG_DEBUG_SPINLOCK #ifdef CONFIG_DEBUG_SPINLOCK
if (lock->magic != SPINLOCK_MAGIC) BUG_ON(lock->magic != SPINLOCK_MAGIC);
BUG(); BUG_ON(!spin_is_locked(lock));
if (!spin_is_locked(lock))
BUG();
#endif #endif
__asm__ __volatile__( __asm__ __volatile__(
spin_unlock_string spin_unlock_string
...@@ -91,10 +90,8 @@ static inline void _raw_spin_unlock(spinlock_t *lock) ...@@ -91,10 +90,8 @@ static inline void _raw_spin_unlock(spinlock_t *lock)
{ {
char oldval = 1; char oldval = 1;
#ifdef CONFIG_DEBUG_SPINLOCK #ifdef CONFIG_DEBUG_SPINLOCK
if (lock->magic != SPINLOCK_MAGIC) BUG_ON(lock->magic != SPINLOCK_MAGIC);
BUG(); BUG_ON(!spin_is_locked(lock));
if (!spin_is_locked(lock))
BUG();
#endif #endif
__asm__ __volatile__( __asm__ __volatile__(
spin_unlock_string spin_unlock_string
...@@ -118,8 +115,8 @@ static inline void _raw_spin_lock(spinlock_t *lock) ...@@ -118,8 +115,8 @@ static inline void _raw_spin_lock(spinlock_t *lock)
#ifdef CONFIG_DEBUG_SPINLOCK #ifdef CONFIG_DEBUG_SPINLOCK
__label__ here; __label__ here;
here: here:
if (lock->magic != SPINLOCK_MAGIC) { if (unlikely(lock->magic != SPINLOCK_MAGIC)) {
printk("eip: %p\n", &&here); printk("eip: %p\n", &&here);
BUG(); BUG();
} }
#endif #endif
...@@ -174,8 +171,7 @@ typedef struct { ...@@ -174,8 +171,7 @@ typedef struct {
static inline void _raw_read_lock(rwlock_t *rw) static inline void _raw_read_lock(rwlock_t *rw)
{ {
#ifdef CONFIG_DEBUG_SPINLOCK #ifdef CONFIG_DEBUG_SPINLOCK
if (rw->magic != RWLOCK_MAGIC) BUG_ON(rw->magic != RWLOCK_MAGIC);
BUG();
#endif #endif
__build_read_lock(rw, "__read_lock_failed"); __build_read_lock(rw, "__read_lock_failed");
} }
...@@ -183,8 +179,7 @@ static inline void _raw_read_lock(rwlock_t *rw) ...@@ -183,8 +179,7 @@ static inline void _raw_read_lock(rwlock_t *rw)
static inline void _raw_write_lock(rwlock_t *rw) static inline void _raw_write_lock(rwlock_t *rw)
{ {
#ifdef CONFIG_DEBUG_SPINLOCK #ifdef CONFIG_DEBUG_SPINLOCK
if (rw->magic != RWLOCK_MAGIC) BUG_ON(rw->magic != RWLOCK_MAGIC);
BUG();
#endif #endif
__build_write_lock(rw, "__write_lock_failed"); __build_write_lock(rw, "__write_lock_failed");
} }
......
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