|
@@ -2632,13 +2632,34 @@ static inline int tsk_is_polling(struct task_struct *p)
|
|
|
{
|
|
|
return task_thread_info(p)->status & TS_POLLING;
|
|
|
}
|
|
|
+static inline void current_set_polling(void)
|
|
|
+{
|
|
|
+ current_thread_info()->status |= TS_POLLING;
|
|
|
+}
|
|
|
+
|
|
|
+static inline void current_clr_polling(void)
|
|
|
+{
|
|
|
+ current_thread_info()->status &= ~TS_POLLING;
|
|
|
+ smp_mb__after_clear_bit();
|
|
|
+}
|
|
|
#elif defined(TIF_POLLING_NRFLAG)
|
|
|
static inline int tsk_is_polling(struct task_struct *p)
|
|
|
{
|
|
|
return test_tsk_thread_flag(p, TIF_POLLING_NRFLAG);
|
|
|
}
|
|
|
+static inline void current_set_polling(void)
|
|
|
+{
|
|
|
+ set_thread_flag(TIF_POLLING_NRFLAG);
|
|
|
+}
|
|
|
+
|
|
|
+static inline void current_clr_polling(void)
|
|
|
+{
|
|
|
+ clear_thread_flag(TIF_POLLING_NRFLAG);
|
|
|
+}
|
|
|
#else
|
|
|
static inline int tsk_is_polling(struct task_struct *p) { return 0; }
|
|
|
+static inline void current_set_polling(void) { }
|
|
|
+static inline void current_clr_polling(void) { }
|
|
|
#endif
|
|
|
|
|
|
/*
|