Allen Martin | fc468d8 | 2016-11-15 17:57:52 -0800 | [diff] [blame^] | 1 | From b4b0052a4fa30b0f5a115c3c6bf84f273c946a1b Mon Sep 17 00:00:00 2001 |
| 2 | From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
| 3 | Date: Fri, 27 May 2016 15:11:51 +0200 |
| 4 | Subject: [PATCH 347/351] locallock: add local_lock_on() |
| 5 | X-NVConfidentiality: public |
| 6 | |
| 7 | Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> |
| 8 | Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
| 9 | --- |
| 10 | include/linux/locallock.h | 6 ++++++ |
| 11 | 1 file changed, 6 insertions(+) |
| 12 | |
| 13 | diff --git a/include/linux/locallock.h b/include/linux/locallock.h |
| 14 | index 6fe5928fc2ab..e572a3971631 100644 |
| 15 | --- a/include/linux/locallock.h |
| 16 | +++ b/include/linux/locallock.h |
| 17 | @@ -66,6 +66,9 @@ static inline void __local_lock(struct local_irq_lock *lv) |
| 18 | #define local_lock(lvar) \ |
| 19 | do { __local_lock(&get_local_var(lvar)); } while (0) |
| 20 | |
| 21 | +#define local_lock_on(lvar, cpu) \ |
| 22 | + do { __local_lock(&per_cpu(lvar, cpu)); } while (0) |
| 23 | + |
| 24 | static inline int __local_trylock(struct local_irq_lock *lv) |
| 25 | { |
| 26 | if (lv->owner != current && spin_trylock_local(&lv->lock)) { |
| 27 | @@ -104,6 +107,9 @@ static inline void __local_unlock(struct local_irq_lock *lv) |
| 28 | put_local_var(lvar); \ |
| 29 | } while (0) |
| 30 | |
| 31 | +#define local_unlock_on(lvar, cpu) \ |
| 32 | + do { __local_unlock(&per_cpu(lvar, cpu)); } while (0) |
| 33 | + |
| 34 | static inline void __local_lock_irq(struct local_irq_lock *lv) |
| 35 | { |
| 36 | spin_lock_irqsave(&lv->lock, lv->flags); |
| 37 | -- |
| 38 | 2.10.1 |
| 39 | |