diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2009-08-23 18:18:21 -0400 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2009-08-23 18:18:21 -0400 |
commit | f098eb6d221b4b0ae8451cdbe0286c626ab6ee62 (patch) | |
tree | e08522e8361a5ab88d1050a86f7a2711da93eb80 | |
parent | 55d8c5d4673f74a3ec2865593524d5f40dfcac0c (diff) | |
download | systemtap-steved-f098eb6d221b4b0ae8451cdbe0286c626ab6ee62.tar.gz systemtap-steved-f098eb6d221b4b0ae8451cdbe0286c626ab6ee62.tar.xz systemtap-steved-f098eb6d221b4b0ae8451cdbe0286c626ab6ee62.zip |
PR10551: build compatibility for pax/grsecurity include/linux/module.h
This patch adapts to patches such as:
diff -urNp linux-2.6.29.6/include/linux/module.h linux-2.6.29.6/include/linux/module.h
--- linux-2.6.29.6/include/linux/module.h 2009-07-02 19:41:20.000000000 -0400
+++ linux-2.6.29.6/include/linux/module.h 2009-07-30 17:59:26.175602427 -0400
@@ -278,16 +278,16 @@ struct module
int (*init)(void);
/* If this is non-NULL, vfree after init() returns */
- void *module_init;
+ void *module_init_rx, *module_init_rw;
/* Here is the actual code + data, vfree'd on unload. */
- void *module_core;
+ void *module_core_rx, *module_core_rw;
/* Here are the sizes of the init and core sections */
- unsigned int init_size, core_size;
+ unsigned int init_size_rw, core_size_rw;
/* The size of the executable code in each section. */
- unsigned int init_text_size, core_text_size;
+ unsigned int init_size_rx, core_size_rx;
* runtime/autoconf-grsecurity.c: New test.
* buildrun.cxx: Try it.
* runtime/print.c: Use it.
-rw-r--r-- | buildrun.cxx | 1 | ||||
-rw-r--r-- | runtime/autoconf-grsecurity.c | 11 | ||||
-rw-r--r-- | runtime/print.c | 30 |
3 files changed, 29 insertions, 13 deletions
diff --git a/buildrun.cxx b/buildrun.cxx index 796663e0..1820002d 100644 --- a/buildrun.cxx +++ b/buildrun.cxx @@ -154,6 +154,7 @@ compile_pass (systemtap_session& s) output_autoconf(s, o, "autoconf-procfs-owner.c", "STAPCONF_PROCFS_OWNER", NULL); output_autoconf(s, o, "autoconf-alloc-percpu-align.c", "STAPCONF_ALLOC_PERCPU_ALIGN", NULL); output_autoconf(s, o, "autoconf-x86-gs.c", "STAPCONF_X86_GS", NULL); + output_autoconf(s, o, "autoconf-grsecurity.c", "STAPCONF_GRSECURITY", NULL); #if 0 /* NB: For now, the performance hit of probe_kernel_read/write (vs. our diff --git a/runtime/autoconf-grsecurity.c b/runtime/autoconf-grsecurity.c new file mode 100644 index 00000000..ee2e4e55 --- /dev/null +++ b/runtime/autoconf-grsecurity.c @@ -0,0 +1,11 @@ +/* PR10551: pax/grsecurity changes linux/module.h */ + +#include <linux/module.h> + +struct module *t; +unsigned size; + +void foo (void) +{ + size += t->init_size_rw + t->init_size_rx + t->core_size_rw + t->core_size_rx; +} diff --git a/runtime/print.c b/runtime/print.c index 69e04073..b11e659b 100644 --- a/runtime/print.c +++ b/runtime/print.c @@ -216,28 +216,32 @@ static void _stp_print_char (const char c) static void _stp_print_kernel_info(char *vstr, int ctx, int num_probes) { + printk(KERN_DEBUG + "%s: systemtap: %s, base: %p, memory: %lu+%lu+%u+%u" #ifdef DEBUG_MEM - printk(KERN_DEBUG "%s: systemtap: %s, base: %p, memory: %lu+%lu+%u+%u+%u data+text+ctx+net+alloc, probes: %d\n", + "+%u" +#endif + " data+text+ctx+net" +#ifdef DEBUG_MEM + "+alloc" +#endif + ", probes: %d\n", THIS_MODULE->name, vstr, - THIS_MODULE->module_core, + THIS_MODULE->module_core, +#ifndef STAPCONF_GRSECURITY (unsigned long) (THIS_MODULE->core_size - THIS_MODULE->core_text_size), (unsigned long) THIS_MODULE->core_text_size, - ctx, - _stp_allocated_net_memory, - _stp_allocated_memory - _stp_allocated_net_memory, - num_probes); #else - printk(KERN_DEBUG "%s: systemtap: %s, base: %p, memory: %lu+%lu+%u+%u data+text+ctx+net, probes: %d\n", - THIS_MODULE->name, - vstr, - THIS_MODULE->module_core, - (unsigned long) (THIS_MODULE->core_size - THIS_MODULE->core_text_size), - (unsigned long) THIS_MODULE->core_text_size, + (unsigned long) (THIS_MODULE->core_size_rw - THIS_MODULE->core_size_rx), + (unsigned long) THIS_MODULE->core_size_rx, +#endif ctx, _stp_allocated_net_memory, - num_probes); +#ifdef DEBUG_MEM + _stp_allocated_memory - _stp_allocated_net_memory, #endif + num_probes); } /** @} */ |