Skip to content

Commit e0e5070

Browse files
lizf-oshtejun
authored andcommitted
sched: add macros to define bitops for task atomic flags
This will simplify code when we add new flags. v3: - Kees pointed out that no_new_privs should never be cleared, so we shouldn't define task_clear_no_new_privs(). we define 3 macros instead of a single one. v2: - updated scripts/tags.sh, suggested by Peter Cc: Ingo Molnar <mingo@kernel.org> Cc: Miao Xie <miaox@cn.fujitsu.com> Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Kees Cook <keescook@chromium.org> Signed-off-by: Zefan Li <lizefan@huawei.com> Signed-off-by: Tejun Heo <tj@kernel.org>
1 parent a2b86f7 commit e0e5070

File tree

2 files changed

+18
-9
lines changed

2 files changed

+18
-9
lines changed

include/linux/sched.h

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1959,15 +1959,18 @@ static inline void memalloc_noio_restore(unsigned int flags)
19591959
/* Per-process atomic flags. */
19601960
#define PFA_NO_NEW_PRIVS 0 /* May not gain new privileges. */
19611961

1962-
static inline bool task_no_new_privs(struct task_struct *p)
1963-
{
1964-
return test_bit(PFA_NO_NEW_PRIVS, &p->atomic_flags);
1965-
}
1966-
1967-
static inline void task_set_no_new_privs(struct task_struct *p)
1968-
{
1969-
set_bit(PFA_NO_NEW_PRIVS, &p->atomic_flags);
1970-
}
1962+
#define TASK_PFA_TEST(name, func) \
1963+
static inline bool task_##func(struct task_struct *p) \
1964+
{ return test_bit(PFA_##name, &p->atomic_flags); }
1965+
#define TASK_PFA_SET(name, func) \
1966+
static inline void task_set_##func(struct task_struct *p) \
1967+
{ set_bit(PFA_##name, &p->atomic_flags); }
1968+
#define TASK_PFA_CLEAR(name, func) \
1969+
static inline void task_clear_##func(struct task_struct *p) \
1970+
{ clear_bit(PFA_##name, &p->atomic_flags); }
1971+
1972+
TASK_PFA_TEST(NO_NEW_PRIVS, no_new_privs)
1973+
TASK_PFA_SET(NO_NEW_PRIVS, no_new_privs)
19711974

19721975
/*
19731976
* task->jobctl flags

scripts/tags.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,9 @@ exuberant()
197197
--regex-c++='/SETPCGFLAG\(([^,)]*).*/SetPageCgroup\1/' \
198198
--regex-c++='/CLEARPCGFLAG\(([^,)]*).*/ClearPageCgroup\1/' \
199199
--regex-c++='/TESTCLEARPCGFLAG\(([^,)]*).*/TestClearPageCgroup\1/' \
200+
--regex-c++='/TASK_PFA_TEST\([^,]*,\s*([^)]*)\)/task_\1/' \
201+
--regex-c++='/TASK_PFA_SET\([^,]*,\s*([^)]*)\)/task_set_\1/' \
202+
--regex-c++='/TASK_PFA_CLEAR\([^,]*,\s*([^)]*)\)/task_clear_\1/'\
200203
--regex-c='/PCI_OP_READ\((\w*).*[1-4]\)/pci_bus_read_config_\1/' \
201204
--regex-c='/PCI_OP_WRITE\((\w*).*[1-4]\)/pci_bus_write_config_\1/' \
202205
--regex-c='/DEFINE_(MUTEX|SEMAPHORE|SPINLOCK)\((\w*)/\2/v/' \
@@ -260,6 +263,9 @@ emacs()
260263
--regex='/SETPCGFLAG\(([^,)]*).*/SetPageCgroup\1/' \
261264
--regex='/CLEARPCGFLAG\(([^,)]*).*/ClearPageCgroup\1/' \
262265
--regex='/TESTCLEARPCGFLAG\(([^,)]*).*/TestClearPageCgroup\1/' \
266+
--regex='/TASK_PFA_TEST\([^,]*,\s*([^)]*)\)/task_\1/' \
267+
--regex='/TASK_PFA_SET\([^,]*,\s*([^)]*)\)/task_set_\1/' \
268+
--regex='/TASK_PFA_CLEAR\([^,]*,\s*([^)]*)\)/task_clear_\1/' \
263269
--regex='/_PE(\([^,)]*\).*/PEVENT_ERRNO__\1/' \
264270
--regex='/PCI_OP_READ(\([a-z]*[a-z]\).*[1-4])/pci_bus_read_config_\1/' \
265271
--regex='/PCI_OP_WRITE(\([a-z]*[a-z]\).*[1-4])/pci_bus_write_config_\1/'\

0 commit comments

Comments
 (0)