diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-06 16:30:00 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-06 16:30:00 -0400 |
| commit | 12fe32e4f942ac5c71a4ab70b039fee65c0dc29d (patch) | |
| tree | b0878e49e9fab1fd154fde1dd57057391831b668 /include/linux | |
| parent | a63856252d2112e7c452696037a86ceb12f47f80 (diff) | |
| parent | 2121db74ba0fd2259f0e2265511684fadda9ac49 (diff) | |
Merge branch 'kmemtrace-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'kmemtrace-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
kmemtrace: trace kfree() calls with NULL or zero-length objects
kmemtrace: small cleanups
kmemtrace: restore original tracing data binary format, improve ABI
kmemtrace: kmemtrace_alloc() must fill type_id
kmemtrace: use tracepoints
kmemtrace, rcu: don't include unnecessary headers, allow kmemtrace w/ tracepoints
kmemtrace, rcu: fix rcupreempt.c data structure dependencies
kmemtrace, rcu: fix rcu_tree_trace.c data structure dependencies
kmemtrace, rcu: fix linux/rcutree.h and linux/rcuclassic.h dependencies
kmemtrace, mm: fix slab.h dependency problem in mm/failslab.c
kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_unlzma.c
kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_bunzip2.c
kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_inflate.c
kmemtrace, squashfs: fix slab.h dependency problem in squasfs
kmemtrace, befs: fix slab.h dependency problem
kmemtrace, security: fix linux/key.h header file dependencies
kmemtrace, fs: fix linux/fdtable.h header file dependencies
kmemtrace, fs: uninline simple_transaction_set()
kmemtrace, fs, security: move alloc_secdata() and free_secdata() to linux/security.h
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/fdtable.h | 4 | ||||
| -rw-r--r-- | include/linux/fs.h | 35 | ||||
| -rw-r--r-- | include/linux/key.h | 1 | ||||
| -rw-r--r-- | include/linux/rcuclassic.h | 16 | ||||
| -rw-r--r-- | include/linux/rcupdate.h | 1 | ||||
| -rw-r--r-- | include/linux/rcupreempt.h | 53 | ||||
| -rw-r--r-- | include/linux/rcutree.h | 27 | ||||
| -rw-r--r-- | include/linux/security.h | 24 | ||||
| -rw-r--r-- | include/linux/slab_def.h | 10 | ||||
| -rw-r--r-- | include/linux/slub_def.h | 12 |
10 files changed, 52 insertions, 131 deletions
diff --git a/include/linux/fdtable.h b/include/linux/fdtable.h index 09d6c5bbdddd..a2ec74bc4812 100644 --- a/include/linux/fdtable.h +++ b/include/linux/fdtable.h | |||
| @@ -5,12 +5,14 @@ | |||
| 5 | #ifndef __LINUX_FDTABLE_H | 5 | #ifndef __LINUX_FDTABLE_H |
| 6 | #define __LINUX_FDTABLE_H | 6 | #define __LINUX_FDTABLE_H |
| 7 | 7 | ||
| 8 | #include <asm/atomic.h> | ||
| 9 | #include <linux/posix_types.h> | 8 | #include <linux/posix_types.h> |
| 10 | #include <linux/compiler.h> | 9 | #include <linux/compiler.h> |
| 11 | #include <linux/spinlock.h> | 10 | #include <linux/spinlock.h> |
| 12 | #include <linux/rcupdate.h> | 11 | #include <linux/rcupdate.h> |
| 13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
| 13 | #include <linux/init.h> | ||
| 14 | |||
| 15 | #include <asm/atomic.h> | ||
| 14 | 16 | ||
| 15 | /* | 17 | /* |
| 16 | * The default fd array needs to be at least BITS_PER_LONG, | 18 | * The default fd array needs to be at least BITS_PER_LONG, |
diff --git a/include/linux/fs.h b/include/linux/fs.h index cae5720f431c..bce40a2207ee 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -2341,19 +2341,7 @@ ssize_t simple_transaction_read(struct file *file, char __user *buf, | |||
| 2341 | size_t size, loff_t *pos); | 2341 | size_t size, loff_t *pos); |
| 2342 | int simple_transaction_release(struct inode *inode, struct file *file); | 2342 | int simple_transaction_release(struct inode *inode, struct file *file); |
| 2343 | 2343 | ||
| 2344 | static inline void simple_transaction_set(struct file *file, size_t n) | 2344 | void simple_transaction_set(struct file *file, size_t n); |
| 2345 | { | ||
| 2346 | struct simple_transaction_argresp *ar = file->private_data; | ||
| 2347 | |||
| 2348 | BUG_ON(n > SIMPLE_TRANSACTION_LIMIT); | ||
| 2349 | |||
| 2350 | /* | ||
| 2351 | * The barrier ensures that ar->size will really remain zero until | ||
| 2352 | * ar->data is ready for reading. | ||
| 2353 | */ | ||
| 2354 | smp_mb(); | ||
| 2355 | ar->size = n; | ||
| 2356 | } | ||
| 2357 | 2345 | ||
| 2358 | /* | 2346 | /* |
| 2359 | * simple attribute files | 2347 | * simple attribute files |
| @@ -2400,27 +2388,6 @@ ssize_t simple_attr_read(struct file *file, char __user *buf, | |||
| 2400 | ssize_t simple_attr_write(struct file *file, const char __user *buf, | 2388 | ssize_t simple_attr_write(struct file *file, const char __user *buf, |
| 2401 | size_t len, loff_t *ppos); | 2389 | size_t len, loff_t *ppos); |
| 2402 | 2390 | ||
| 2403 | |||
| 2404 | #ifdef CONFIG_SECURITY | ||
| 2405 | static inline char *alloc_secdata(void) | ||
| 2406 | { | ||
| 2407 | return (char *)get_zeroed_page(GFP_KERNEL); | ||
| 2408 | } | ||
| 2409 | |||
| 2410 | static inline void free_secdata(void *secdata) | ||
| 2411 | { | ||
| 2412 | free_page((unsigned long)secdata); | ||
| 2413 | } | ||
| 2414 | #else | ||
| 2415 | static inline char *alloc_secdata(void) | ||
| 2416 | { | ||
| 2417 | return (char *)1; | ||
| 2418 | } | ||
| 2419 | |||
| 2420 | static inline void free_secdata(void *secdata) | ||
| 2421 | { } | ||
| 2422 | #endif /* CONFIG_SECURITY */ | ||
| 2423 | |||
| 2424 | struct ctl_table; | 2391 | struct ctl_table; |
| 2425 | int proc_nr_files(struct ctl_table *table, int write, struct file *filp, | 2392 | int proc_nr_files(struct ctl_table *table, int write, struct file *filp, |
| 2426 | void __user *buffer, size_t *lenp, loff_t *ppos); | 2393 | void __user *buffer, size_t *lenp, loff_t *ppos); |
diff --git a/include/linux/key.h b/include/linux/key.h index 21d32a142c00..e544f466d69a 100644 --- a/include/linux/key.h +++ b/include/linux/key.h | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | #include <linux/rbtree.h> | 20 | #include <linux/rbtree.h> |
| 21 | #include <linux/rcupdate.h> | 21 | #include <linux/rcupdate.h> |
| 22 | #include <linux/sysctl.h> | 22 | #include <linux/sysctl.h> |
| 23 | #include <linux/rwsem.h> | ||
| 23 | #include <asm/atomic.h> | 24 | #include <asm/atomic.h> |
| 24 | 25 | ||
| 25 | #ifdef __KERNEL__ | 26 | #ifdef __KERNEL__ |
diff --git a/include/linux/rcuclassic.h b/include/linux/rcuclassic.h index 80044a4f3ab9..bfd92e1e5d2c 100644 --- a/include/linux/rcuclassic.h +++ b/include/linux/rcuclassic.h | |||
| @@ -36,7 +36,6 @@ | |||
| 36 | #include <linux/cache.h> | 36 | #include <linux/cache.h> |
| 37 | #include <linux/spinlock.h> | 37 | #include <linux/spinlock.h> |
| 38 | #include <linux/threads.h> | 38 | #include <linux/threads.h> |
| 39 | #include <linux/percpu.h> | ||
| 40 | #include <linux/cpumask.h> | 39 | #include <linux/cpumask.h> |
| 41 | #include <linux/seqlock.h> | 40 | #include <linux/seqlock.h> |
| 42 | 41 | ||
| @@ -108,25 +107,14 @@ struct rcu_data { | |||
| 108 | struct rcu_head barrier; | 107 | struct rcu_head barrier; |
| 109 | }; | 108 | }; |
| 110 | 109 | ||
| 111 | DECLARE_PER_CPU(struct rcu_data, rcu_data); | ||
| 112 | DECLARE_PER_CPU(struct rcu_data, rcu_bh_data); | ||
| 113 | |||
| 114 | /* | 110 | /* |
| 115 | * Increment the quiescent state counter. | 111 | * Increment the quiescent state counter. |
| 116 | * The counter is a bit degenerated: We do not need to know | 112 | * The counter is a bit degenerated: We do not need to know |
| 117 | * how many quiescent states passed, just if there was at least | 113 | * how many quiescent states passed, just if there was at least |
| 118 | * one since the start of the grace period. Thus just a flag. | 114 | * one since the start of the grace period. Thus just a flag. |
| 119 | */ | 115 | */ |
| 120 | static inline void rcu_qsctr_inc(int cpu) | 116 | extern void rcu_qsctr_inc(int cpu); |
| 121 | { | 117 | extern void rcu_bh_qsctr_inc(int cpu); |
| 122 | struct rcu_data *rdp = &per_cpu(rcu_data, cpu); | ||
| 123 | rdp->passed_quiesc = 1; | ||
| 124 | } | ||
| 125 | static inline void rcu_bh_qsctr_inc(int cpu) | ||
| 126 | { | ||
| 127 | struct rcu_data *rdp = &per_cpu(rcu_bh_data, cpu); | ||
| 128 | rdp->passed_quiesc = 1; | ||
| 129 | } | ||
| 130 | 118 | ||
| 131 | extern int rcu_pending(int cpu); | 119 | extern int rcu_pending(int cpu); |
| 132 | extern int rcu_needs_cpu(int cpu); | 120 | extern int rcu_needs_cpu(int cpu); |
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index 528343e6da51..15fbb3ca634d 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h | |||
| @@ -36,7 +36,6 @@ | |||
| 36 | #include <linux/cache.h> | 36 | #include <linux/cache.h> |
| 37 | #include <linux/spinlock.h> | 37 | #include <linux/spinlock.h> |
| 38 | #include <linux/threads.h> | 38 | #include <linux/threads.h> |
| 39 | #include <linux/percpu.h> | ||
| 40 | #include <linux/cpumask.h> | 39 | #include <linux/cpumask.h> |
| 41 | #include <linux/seqlock.h> | 40 | #include <linux/seqlock.h> |
| 42 | #include <linux/lockdep.h> | 41 | #include <linux/lockdep.h> |
diff --git a/include/linux/rcupreempt.h b/include/linux/rcupreempt.h index 74304b4538d8..fce522782ffa 100644 --- a/include/linux/rcupreempt.h +++ b/include/linux/rcupreempt.h | |||
| @@ -36,34 +36,19 @@ | |||
| 36 | #include <linux/cache.h> | 36 | #include <linux/cache.h> |
| 37 | #include <linux/spinlock.h> | 37 | #include <linux/spinlock.h> |
| 38 | #include <linux/threads.h> | 38 | #include <linux/threads.h> |
| 39 | #include <linux/percpu.h> | 39 | #include <linux/smp.h> |
| 40 | #include <linux/cpumask.h> | 40 | #include <linux/cpumask.h> |
| 41 | #include <linux/seqlock.h> | 41 | #include <linux/seqlock.h> |
| 42 | 42 | ||
| 43 | struct rcu_dyntick_sched { | 43 | extern void rcu_qsctr_inc(int cpu); |
| 44 | int dynticks; | 44 | static inline void rcu_bh_qsctr_inc(int cpu) { } |
| 45 | int dynticks_snap; | ||
| 46 | int sched_qs; | ||
| 47 | int sched_qs_snap; | ||
| 48 | int sched_dynticks_snap; | ||
| 49 | }; | ||
| 50 | |||
| 51 | DECLARE_PER_CPU(struct rcu_dyntick_sched, rcu_dyntick_sched); | ||
| 52 | |||
| 53 | static inline void rcu_qsctr_inc(int cpu) | ||
| 54 | { | ||
| 55 | struct rcu_dyntick_sched *rdssp = &per_cpu(rcu_dyntick_sched, cpu); | ||
| 56 | |||
| 57 | rdssp->sched_qs++; | ||
| 58 | } | ||
| 59 | #define rcu_bh_qsctr_inc(cpu) | ||
| 60 | 45 | ||
| 61 | /* | 46 | /* |
| 62 | * Someone might want to pass call_rcu_bh as a function pointer. | 47 | * Someone might want to pass call_rcu_bh as a function pointer. |
| 63 | * So this needs to just be a rename and not a macro function. | 48 | * So this needs to just be a rename and not a macro function. |
| 64 | * (no parentheses) | 49 | * (no parentheses) |
| 65 | */ | 50 | */ |
| 66 | #define call_rcu_bh call_rcu | 51 | #define call_rcu_bh call_rcu |
| 67 | 52 | ||
| 68 | /** | 53 | /** |
| 69 | * call_rcu_sched - Queue RCU callback for invocation after sched grace period. | 54 | * call_rcu_sched - Queue RCU callback for invocation after sched grace period. |
| @@ -117,30 +102,12 @@ extern struct rcupreempt_trace *rcupreempt_trace_cpu(int cpu); | |||
| 117 | struct softirq_action; | 102 | struct softirq_action; |
| 118 | 103 | ||
| 119 | #ifdef CONFIG_NO_HZ | 104 | #ifdef CONFIG_NO_HZ |
| 120 | 105 | extern void rcu_enter_nohz(void); | |
| 121 | static inline void rcu_enter_nohz(void) | 106 | extern void rcu_exit_nohz(void); |
| 122 | { | 107 | #else |
| 123 | static DEFINE_RATELIMIT_STATE(rs, 10 * HZ, 1); | 108 | # define rcu_enter_nohz() do { } while (0) |
| 124 | 109 | # define rcu_exit_nohz() do { } while (0) | |
| 125 | smp_mb(); /* CPUs seeing ++ must see prior RCU read-side crit sects */ | 110 | #endif |
| 126 | __get_cpu_var(rcu_dyntick_sched).dynticks++; | ||
| 127 | WARN_ON_RATELIMIT(__get_cpu_var(rcu_dyntick_sched).dynticks & 0x1, &rs); | ||
| 128 | } | ||
| 129 | |||
| 130 | static inline void rcu_exit_nohz(void) | ||
| 131 | { | ||
| 132 | static DEFINE_RATELIMIT_STATE(rs, 10 * HZ, 1); | ||
| 133 | |||
| 134 | __get_cpu_var(rcu_dyntick_sched).dynticks++; | ||
| 135 | smp_mb(); /* CPUs seeing ++ must see later RCU read-side crit sects */ | ||
| 136 | WARN_ON_RATELIMIT(!(__get_cpu_var(rcu_dyntick_sched).dynticks & 0x1), | ||
| 137 | &rs); | ||
| 138 | } | ||
| 139 | |||
| 140 | #else /* CONFIG_NO_HZ */ | ||
| 141 | #define rcu_enter_nohz() do { } while (0) | ||
| 142 | #define rcu_exit_nohz() do { } while (0) | ||
| 143 | #endif /* CONFIG_NO_HZ */ | ||
| 144 | 111 | ||
| 145 | /* | 112 | /* |
| 146 | * A context switch is a grace period for rcupreempt synchronize_rcu() | 113 | * A context switch is a grace period for rcupreempt synchronize_rcu() |
diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h index a722fb67bb2d..0cdda00f2b2a 100644 --- a/include/linux/rcutree.h +++ b/include/linux/rcutree.h | |||
| @@ -33,7 +33,6 @@ | |||
| 33 | #include <linux/cache.h> | 33 | #include <linux/cache.h> |
| 34 | #include <linux/spinlock.h> | 34 | #include <linux/spinlock.h> |
| 35 | #include <linux/threads.h> | 35 | #include <linux/threads.h> |
| 36 | #include <linux/percpu.h> | ||
| 37 | #include <linux/cpumask.h> | 36 | #include <linux/cpumask.h> |
| 38 | #include <linux/seqlock.h> | 37 | #include <linux/seqlock.h> |
| 39 | 38 | ||
| @@ -236,30 +235,8 @@ struct rcu_state { | |||
| 236 | #endif /* #ifdef CONFIG_NO_HZ */ | 235 | #endif /* #ifdef CONFIG_NO_HZ */ |
| 237 | }; | 236 | }; |
| 238 | 237 | ||
| 239 | extern struct rcu_state rcu_state; | 238 | extern void rcu_qsctr_inc(int cpu); |
| 240 | DECLARE_PER_CPU(struct rcu_data, rcu_data); | 239 | extern void rcu_bh_qsctr_inc(int cpu); |
| 241 | |||
| 242 | extern struct rcu_state rcu_bh_state; | ||
| 243 | DECLARE_PER_CPU(struct rcu_data, rcu_bh_data); | ||
| 244 | |||
| 245 | /* | ||
| 246 | * Increment the quiescent state counter. | ||
| 247 | * The counter is a bit degenerated: We do not need to know | ||
| 248 | * how many quiescent states passed, just if there was at least | ||
| 249 | * one since the start of the grace period. Thus just a flag. | ||
| 250 | */ | ||
| 251 | static inline void rcu_qsctr_inc(int cpu) | ||
| 252 | { | ||
| 253 | struct rcu_data *rdp = &per_cpu(rcu_data, cpu); | ||
| 254 | rdp->passed_quiesc = 1; | ||
| 255 | rdp->passed_quiesc_completed = rdp->completed; | ||
| 256 | } | ||
| 257 | static inline void rcu_bh_qsctr_inc(int cpu) | ||
| 258 | { | ||
| 259 | struct rcu_data *rdp = &per_cpu(rcu_bh_data, cpu); | ||
| 260 | rdp->passed_quiesc = 1; | ||
| 261 | rdp->passed_quiesc_completed = rdp->completed; | ||
| 262 | } | ||
| 263 | 240 | ||
| 264 | extern int rcu_pending(int cpu); | 241 | extern int rcu_pending(int cpu); |
| 265 | extern int rcu_needs_cpu(int cpu); | 242 | extern int rcu_needs_cpu(int cpu); |
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 | |||
| 2959 | static inline char *alloc_secdata(void) | ||
| 2960 | { | ||
| 2961 | return (char *)get_zeroed_page(GFP_KERNEL); | ||
| 2962 | } | ||
| 2963 | |||
| 2964 | static inline void free_secdata(void *secdata) | ||
| 2965 | { | ||
| 2966 | free_page((unsigned long)secdata); | ||
| 2967 | } | ||
| 2968 | |||
| 2969 | #else | ||
| 2970 | |||
| 2971 | static inline char *alloc_secdata(void) | ||
| 2972 | { | ||
| 2973 | return (char *)1; | ||
| 2974 | } | ||
| 2975 | |||
| 2976 | static inline void free_secdata(void *secdata) | ||
| 2977 | { } | ||
| 2978 | #endif /* CONFIG_SECURITY */ | ||
| 2979 | |||
| 2956 | #endif /* ! __LINUX_SECURITY_H */ | 2980 | #endif /* ! __LINUX_SECURITY_H */ |
| 2957 | 2981 | ||
diff --git a/include/linux/slab_def.h b/include/linux/slab_def.h index f4523651fa42..5ac9b0bcaf9a 100644 --- a/include/linux/slab_def.h +++ b/include/linux/slab_def.h | |||
| @@ -73,8 +73,8 @@ found: | |||
| 73 | 73 | ||
| 74 | ret = kmem_cache_alloc_notrace(cachep, flags); | 74 | ret = kmem_cache_alloc_notrace(cachep, flags); |
| 75 | 75 | ||
| 76 | kmemtrace_mark_alloc(KMEMTRACE_TYPE_KMALLOC, _THIS_IP_, ret, | 76 | trace_kmalloc(_THIS_IP_, ret, |
| 77 | size, slab_buffer_size(cachep), flags); | 77 | size, slab_buffer_size(cachep), flags); |
| 78 | 78 | ||
| 79 | return ret; | 79 | return ret; |
| 80 | } | 80 | } |
| @@ -128,9 +128,9 @@ found: | |||
| 128 | 128 | ||
| 129 | ret = kmem_cache_alloc_node_notrace(cachep, flags, node); | 129 | ret = kmem_cache_alloc_node_notrace(cachep, flags, node); |
| 130 | 130 | ||
| 131 | kmemtrace_mark_alloc_node(KMEMTRACE_TYPE_KMALLOC, _THIS_IP_, | 131 | trace_kmalloc_node(_THIS_IP_, ret, |
| 132 | ret, size, slab_buffer_size(cachep), | 132 | size, slab_buffer_size(cachep), |
| 133 | flags, node); | 133 | flags, node); |
| 134 | 134 | ||
| 135 | return ret; | 135 | return ret; |
| 136 | } | 136 | } |
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h index a1f90528e70b..5046f90c1171 100644 --- a/include/linux/slub_def.h +++ b/include/linux/slub_def.h | |||
| @@ -233,8 +233,7 @@ static __always_inline void *kmalloc_large(size_t size, gfp_t flags) | |||
| 233 | unsigned int order = get_order(size); | 233 | unsigned int order = get_order(size); |
| 234 | void *ret = (void *) __get_free_pages(flags | __GFP_COMP, order); | 234 | void *ret = (void *) __get_free_pages(flags | __GFP_COMP, order); |
| 235 | 235 | ||
| 236 | kmemtrace_mark_alloc(KMEMTRACE_TYPE_KMALLOC, _THIS_IP_, ret, | 236 | trace_kmalloc(_THIS_IP_, ret, size, PAGE_SIZE << order, flags); |
| 237 | size, PAGE_SIZE << order, flags); | ||
| 238 | 237 | ||
| 239 | return ret; | 238 | return ret; |
| 240 | } | 239 | } |
| @@ -255,9 +254,7 @@ static __always_inline void *kmalloc(size_t size, gfp_t flags) | |||
| 255 | 254 | ||
| 256 | ret = kmem_cache_alloc_notrace(s, flags); | 255 | ret = kmem_cache_alloc_notrace(s, flags); |
| 257 | 256 | ||
| 258 | kmemtrace_mark_alloc(KMEMTRACE_TYPE_KMALLOC, | 257 | trace_kmalloc(_THIS_IP_, ret, size, s->size, flags); |
| 259 | _THIS_IP_, ret, | ||
| 260 | size, s->size, flags); | ||
| 261 | 258 | ||
| 262 | return ret; | 259 | return ret; |
| 263 | } | 260 | } |
| @@ -296,9 +293,8 @@ static __always_inline void *kmalloc_node(size_t size, gfp_t flags, int node) | |||
| 296 | 293 | ||
| 297 | ret = kmem_cache_alloc_node_notrace(s, flags, node); | 294 | ret = kmem_cache_alloc_node_notrace(s, flags, node); |
| 298 | 295 | ||
| 299 | kmemtrace_mark_alloc_node(KMEMTRACE_TYPE_KMALLOC, | 296 | trace_kmalloc_node(_THIS_IP_, ret, |
| 300 | _THIS_IP_, ret, | 297 | size, s->size, flags, node); |
| 301 | size, s->size, flags, node); | ||
| 302 | 298 | ||
| 303 | return ret; | 299 | return ret; |
| 304 | } | 300 | } |
