diff options
| -rw-r--r-- | include/linux/sched.h | 13 | ||||
| -rw-r--r-- | kernel/sys.c | 12 |
2 files changed, 13 insertions, 12 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index c4ee35dd18ae..2ae8711bfba1 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -1113,19 +1113,8 @@ static inline int sas_ss_flags(unsigned long sp) | |||
| 1113 | } | 1113 | } |
| 1114 | 1114 | ||
| 1115 | 1115 | ||
| 1116 | #ifdef CONFIG_SECURITY | 1116 | /* code is in security.c or kernel/sys.c if !SECURITY */ |
| 1117 | /* code is in security.c */ | ||
| 1118 | extern int capable(int cap); | 1117 | extern int capable(int cap); |
| 1119 | #else | ||
| 1120 | static inline int capable(int cap) | ||
| 1121 | { | ||
| 1122 | if (cap_raised(current->cap_effective, cap)) { | ||
| 1123 | current->flags |= PF_SUPERPRIV; | ||
| 1124 | return 1; | ||
| 1125 | } | ||
| 1126 | return 0; | ||
| 1127 | } | ||
| 1128 | #endif | ||
| 1129 | 1118 | ||
| 1130 | /* | 1119 | /* |
| 1131 | * Routines for handling mm_structs | 1120 | * Routines for handling mm_structs |
diff --git a/kernel/sys.c b/kernel/sys.c index b6941e06d5d5..9ccf713491f9 100644 --- a/kernel/sys.c +++ b/kernel/sys.c | |||
| @@ -223,6 +223,18 @@ int unregister_reboot_notifier(struct notifier_block * nb) | |||
| 223 | 223 | ||
| 224 | EXPORT_SYMBOL(unregister_reboot_notifier); | 224 | EXPORT_SYMBOL(unregister_reboot_notifier); |
| 225 | 225 | ||
| 226 | #ifndef CONFIG_SECURITY | ||
| 227 | int capable(int cap) | ||
| 228 | { | ||
| 229 | if (cap_raised(current->cap_effective, cap)) { | ||
| 230 | current->flags |= PF_SUPERPRIV; | ||
| 231 | return 1; | ||
| 232 | } | ||
| 233 | return 0; | ||
| 234 | } | ||
| 235 | EXPORT_SYMBOL(capable); | ||
| 236 | #endif | ||
| 237 | |||
| 226 | static int set_one_prio(struct task_struct *p, int niceval, int error) | 238 | static int set_one_prio(struct task_struct *p, int niceval, int error) |
| 227 | { | 239 | { |
| 228 | int no_nice; | 240 | int no_nice; |
