X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Flinux%2Fpreempt.h;h=e86bf010fbc45ebe20e76d106812401f13c37d8b;hb=9d6c5babc04522ff85b550f14563970279ab8f90;hp=58969b2a8a8292deb33a215006eade8659764d6d;hpb=219f358e0ba9a98640341e030533089860af1cc6;p=pandora-kernel.git diff --git a/include/linux/preempt.h b/include/linux/preempt.h index 58969b2a8a82..e86bf010fbc4 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -91,13 +91,19 @@ do { \ #else /* !CONFIG_PREEMPT_COUNT */ -#define preempt_disable() do { } while (0) -#define preempt_enable_no_resched() do { } while (0) -#define preempt_enable() do { } while (0) +/* + * Even if we don't have any preemption, we need preempt disable/enable + * to be barriers, so that we don't have things like get_user/put_user + * that can cause faults and scheduling migrate into our preempt-protected + * region. + */ +#define preempt_disable() barrier() +#define preempt_enable_no_resched() barrier() +#define preempt_enable() barrier() -#define preempt_disable_notrace() do { } while (0) -#define preempt_enable_no_resched_notrace() do { } while (0) -#define preempt_enable_notrace() do { } while (0) +#define preempt_disable_notrace() barrier() +#define preempt_enable_no_resched_notrace() barrier() +#define preempt_enable_notrace() barrier() #endif /* CONFIG_PREEMPT_COUNT */