diff options
| author | Ingo Molnar <mingo@elte.hu> | 2002-06-11 06:02:35 +0200 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2002-06-11 06:02:35 +0200 |
| commit | 0ed4dd24ff471eb7542378359f2852e2bf12bb99 (patch) | |
| tree | 4e97f27cf64061e9bfe523c3d1810bc8a7c23c1e /include | |
| parent | 2b75b53521e41a4b62ccafb7d2e2b978d3ba7eda (diff) | |
- rq-lock optimization in the preemption case, from Robert Love, plus some more cleanups.
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/spinlock.h | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h index 0e9f7247bc86..5e1cc9fae5df 100644 --- a/include/linux/spinlock.h +++ b/include/linux/spinlock.h @@ -157,6 +157,12 @@ do { \ preempt_enable(); \ } while (0) +#define spin_unlock_no_resched(lock) \ +do { \ + _raw_spin_unlock(lock); \ + preempt_enable_no_resched(); \ +} while (0) + #define read_lock(lock) ({preempt_disable(); _raw_read_lock(lock);}) #define read_unlock(lock) ({_raw_read_unlock(lock); preempt_enable();}) #define write_lock(lock) ({preempt_disable(); _raw_write_lock(lock);}) @@ -166,20 +172,21 @@ do { \ #else -#define preempt_get_count() (0) -#define preempt_disable() do { } while (0) +#define preempt_get_count() (0) +#define preempt_disable() do { } while (0) #define preempt_enable_no_resched() do {} while(0) -#define preempt_enable() do { } while (0) - -#define spin_lock(lock) _raw_spin_lock(lock) -#define spin_trylock(lock) _raw_spin_trylock(lock) -#define spin_unlock(lock) _raw_spin_unlock(lock) - -#define read_lock(lock) _raw_read_lock(lock) -#define read_unlock(lock) _raw_read_unlock(lock) -#define write_lock(lock) _raw_write_lock(lock) -#define write_unlock(lock) _raw_write_unlock(lock) -#define write_trylock(lock) _raw_write_trylock(lock) +#define preempt_enable() do { } while (0) + +#define spin_lock(lock) _raw_spin_lock(lock) +#define spin_trylock(lock) _raw_spin_trylock(lock) +#define spin_unlock(lock) _raw_spin_unlock(lock) +#define spin_unlock_no_resched(lock) _raw_spin_unlock(lock) + +#define read_lock(lock) _raw_read_lock(lock) +#define read_unlock(lock) _raw_read_unlock(lock) +#define write_lock(lock) _raw_write_lock(lock) +#define write_unlock(lock) _raw_write_unlock(lock) +#define write_trylock(lock) _raw_write_trylock(lock) #endif /* "lock on reference count zero" */ |
