summaryrefslogtreecommitdiffstats
path: root/kernel/sched/core.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-04-06 05:57:19 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-04-06 05:57:19 -0400
commit1bb025f6db789ea0bb674eaed15ee843ef0b2e88 (patch)
treecdbaa7f57ce541abb5b973803712a9f55307c355 /kernel/sched/core.c
parentf55532a0c0b8bb6148f4e07853b876ef73bc69ca (diff)
parentf75587b8ca69768c6cf8a38a0b61e68e1bea3d36 (diff)
downloadtalos-op-linux-1bb025f6db789ea0bb674eaed15ee843ef0b2e88.tar.gz
talos-op-linux-1bb025f6db789ea0bb674eaed15ee843ef0b2e88.zip
Merge tag 'extcon-fixes-for-4.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into char-misc-linus
Chanwoo writes: Update extcon for v4.6-rc3 This patch fixes the following one issue: - In extcon-palmas.c, the external abort happen when wake-up from suspend state on BeagleBoard-X15 platform. So, drop the IRQF_EARLY_RESUME flag.
Diffstat (limited to 'kernel/sched/core.c')
-rw-r--r--kernel/sched/core.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index d8465eeab8b3..8b489fcac37b 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -321,6 +321,24 @@ static inline void init_hrtick(void)
}
#endif /* CONFIG_SCHED_HRTICK */
+/*
+ * cmpxchg based fetch_or, macro so it works for different integer types
+ */
+#define fetch_or(ptr, mask) \
+ ({ \
+ typeof(ptr) _ptr = (ptr); \
+ typeof(mask) _mask = (mask); \
+ typeof(*_ptr) _old, _val = *_ptr; \
+ \
+ for (;;) { \
+ _old = cmpxchg(_ptr, _val, _val | _mask); \
+ if (_old == _val) \
+ break; \
+ _val = _old; \
+ } \
+ _old; \
+})
+
#if defined(CONFIG_SMP) && defined(TIF_POLLING_NRFLAG)
/*
* Atomically set TIF_NEED_RESCHED and test for TIF_POLLING_NRFLAG,
OpenPOWER on IntegriCloud