aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPekka Enberg <penberg@cs.helsinki.fi>2009-03-24 05:59:23 -0400
committerIngo Molnar <mingo@elte.hu>2009-04-03 06:08:57 -0400
commit3d544f411f2971eb82f5c52322251eb04494542a (patch)
treeceeae2876e2ca76acf44e15bd64d98ffefb113d4 /include
parent645dae969c3b8651c5bc7c54a1835ec03820f85f (diff)
kmemtrace, fs, security: move alloc_secdata() and free_secdata() to linux/security.h
Impact: cleanup We want to remove percpu.h from rcupdate.h (for upcoming kmemtrace changes), but this is not possible currently without breaking the build because fs.h has implicit include file depedencies: it uses GFP_* types in inlines but does not include gfp.h. In practice most fs.h using .c files get gfp.h included implicitly, via an indirect route: via rcupdate.h inclusion - so this underlying problem gets masked in practice. So we want to solve fs.h's dependency on gfp.h. gfp.h can not be included here directly because it is not exported and it would break the build the following way: /home/mingo/tip/usr/include/linux/bsg.h:11: found __[us]{8,16,32,64} type without #include <linux/types.h> /home/mingo/tip/usr/include/linux/fs.h:11: included file 'linux/gfp.h' is not exported make[3]: *** [/home/mingo/tip/usr/include/linux/.check] Error 1 make[2]: *** [linux] Error 2 As suggested by Alexey Dobriyan, move alloc_secdata() and free_secdata() to linux/security.h - they belong there. This also cleans fs.h of GFP_* usage. Suggested-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro> LKML-Reference: <1237906803.25315.96.camel@penberg-laptop> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include')
-rw-r--r--include/linux/fs.h21
-rw-r--r--include/linux/security.h24
2 files changed, 24 insertions, 21 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 61211ad823fe..fc4dc28c5735 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2382,27 +2382,6 @@ ssize_t simple_attr_read(struct file *file, char __user *buf,
2382ssize_t simple_attr_write(struct file *file, const char __user *buf, 2382ssize_t simple_attr_write(struct file *file, const char __user *buf,
2383 size_t len, loff_t *ppos); 2383 size_t len, loff_t *ppos);
2384 2384
2385
2386#ifdef CONFIG_SECURITY
2387static inline char *alloc_secdata(void)
2388{
2389 return (char *)get_zeroed_page(GFP_KERNEL);
2390}
2391
2392static inline void free_secdata(void *secdata)
2393{
2394 free_page((unsigned long)secdata);
2395}
2396#else
2397static inline char *alloc_secdata(void)
2398{
2399 return (char *)1;
2400}
2401
2402static inline void free_secdata(void *secdata)
2403{ }
2404#endif /* CONFIG_SECURITY */
2405
2406struct ctl_table; 2385struct ctl_table;
2407int proc_nr_files(struct ctl_table *table, int write, struct file *filp, 2386int proc_nr_files(struct ctl_table *table, int write, struct file *filp,
2408 void __user *buffer, size_t *lenp, loff_t *ppos); 2387 void __user *buffer, size_t *lenp, loff_t *ppos);
diff --git a/include/linux/security.h b/include/linux/security.h
index 54ed15799a83..d5fd6163606f 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -32,6 +32,7 @@
32#include <linux/sched.h> 32#include <linux/sched.h>
33#include <linux/key.h> 33#include <linux/key.h>
34#include <linux/xfrm.h> 34#include <linux/xfrm.h>
35#include <linux/gfp.h>
35#include <net/flow.h> 36#include <net/flow.h>
36 37
37/* Maximum number of letters for an LSM name string */ 38/* Maximum number of letters for an LSM name string */
@@ -2953,5 +2954,28 @@ static inline void securityfs_remove(struct dentry *dentry)
2953 2954
2954#endif 2955#endif
2955 2956
2957#ifdef CONFIG_SECURITY
2958
2959static inline char *alloc_secdata(void)
2960{
2961 return (char *)get_zeroed_page(GFP_KERNEL);
2962}
2963
2964static inline void free_secdata(void *secdata)
2965{
2966 free_page((unsigned long)secdata);
2967}
2968
2969#else
2970
2971static inline char *alloc_secdata(void)
2972{
2973 return (char *)1;
2974}
2975
2976static inline void free_secdata(void *secdata)
2977{ }
2978#endif /* CONFIG_SECURITY */
2979
2956#endif /* ! __LINUX_SECURITY_H */ 2980#endif /* ! __LINUX_SECURITY_H */
2957 2981