diff options
author | hunt <hunt> | 2006-11-15 17:52:23 +0000 |
---|---|---|
committer | hunt <hunt> | 2006-11-15 17:52:23 +0000 |
commit | 132c23b4b9134b9e8969fb57484f9fcdad1d46f5 (patch) | |
tree | 48d8da3e2d81b34c2438dc4b2631c1781e042bdf /runtime/alloc.c | |
parent | 2698d4879f43304658c327860c5b803e10c99c10 (diff) | |
download | systemtap-steved-132c23b4b9134b9e8969fb57484f9fcdad1d46f5.tar.gz systemtap-steved-132c23b4b9134b9e8969fb57484f9fcdad1d46f5.tar.xz systemtap-steved-132c23b4b9134b9e8969fb57484f9fcdad1d46f5.zip |
2006-11-15 Martin Hunt <hunt@redhat.com>
* alloc.c (STP_ALLOC_FLAGS): Define.
Cleanup ifdefs.
* map.c: Use STP_ALLOC_FLAGS.
* stat.c: ditto.
Diffstat (limited to 'runtime/alloc.c')
-rw-r--r-- | runtime/alloc.c | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/runtime/alloc.c b/runtime/alloc.c index ad291f2d..4aecd5a8 100644 --- a/runtime/alloc.c +++ b/runtime/alloc.c @@ -11,6 +11,10 @@ #ifndef _ALLOC_C_ #define _ALLOC_C_ + +#define STP_ALLOC_FLAGS (GFP_KERNEL | __GFP_NORETRY | __GFP_NOWARN) +#define _stp_vmalloc(size) __vmalloc(size, STP_ALLOC_FLAGS, PAGE_KERNEL) + /* This file exists because all the NUMA-compatible allocators keep changing in 2.6 */ @@ -19,20 +23,16 @@ #endif /* LINUX_VERSION_CODE */ #ifdef CONFIG_SMP -#define _stp_free_percpu(ptr) free_percpu(ptr) -#else -#define _stp_free_percpu(ptr) kfree(ptr) -#endif - #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15) #define _stp_alloc_percpu(size) __alloc_percpu(size, 8) -#else -#ifdef CONFIG_SMP +#define _stp_free_percpu(ptr) free_percpu(ptr) +#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15) */ + /* This is like alloc_percpu() except it simply takes a size, instead of a type. */ void *_stp_alloc_percpu(size_t size) { int i; - struct percpu_data *pdata = kmalloc(sizeof (*pdata), GFP_KERNEL); + struct percpu_data *pdata = kmalloc(sizeof (*pdata), STP_ALLOC_FLAGS); if (!pdata) return NULL; @@ -41,9 +41,9 @@ void *_stp_alloc_percpu(size_t size) int node = cpu_to_node(i); if (node_online(node)) - pdata->ptrs[i] = kmalloc_node(size, GFP_KERNEL, node); + pdata->ptrs[i] = kmalloc_node(size, STP_ALLOC_FLAGS, node); else - pdata->ptrs[i] = kmalloc(size, GFP_KERNEL); + pdata->ptrs[i] = kmalloc(size, STP_ALLOC_FLAGS); if (!pdata->ptrs[i]) goto unwind_oom; @@ -72,14 +72,17 @@ void _stp_free_percpu(const void *objp) kfree(p->ptrs[i]); kfree(p); } -#else +#endif /* LINUX_VERSION_CODE */ + +#else /* CONFIG_SMP */ +#define _stp_free_percpu(ptr) kfree(ptr) void *_stp_alloc_percpu(size_t size) { - void *ret = kmalloc(size, GFP_KERNEL); + void *ret = kmalloc(size, STP_ALLOC_FLAGS); if (ret) memset(ret, 0, size); return ret; } #endif /* CONFIG_SMP */ -#endif /* LINUX_VERSION_CODE */ + #endif /* _ALLOC_C_ */ |