diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-07-16 23:29:53 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-07-16 23:29:53 (GMT) |
commit | 45c7d71e1675f7ef73acab2738dd6f220005aa2a (patch) | |
tree | 97c6a4c79a66ffa019f1c648e81fcef687e97fb1 /drivers | |
parent | 80f76319634fc62befd440b328042dbd54e3b6f8 (diff) | |
parent | 6d2e91a662256fd88ec0505567a59d21094ed415 (diff) | |
download | linux-45c7d71e1675f7ef73acab2738dd6f220005aa2a.tar.xz |
Merge tag 'lkdtm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux into char-misc-testing
Kees writes:
fixes for lkdtm build warnings
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/misc/lkdtm.h | 5 | ||||
-rw-r--r-- | drivers/misc/lkdtm_bugs.c | 6 | ||||
-rw-r--r-- | drivers/misc/lkdtm_core.c | 72 | ||||
-rw-r--r-- | drivers/misc/lkdtm_heap.c | 6 | ||||
-rw-r--r-- | drivers/misc/lkdtm_perms.c | 6 | ||||
-rw-r--r-- | drivers/misc/lkdtm_rodata.c | 2 | ||||
-rw-r--r-- | drivers/misc/lkdtm_usercopy.c | 4 |
7 files changed, 46 insertions, 55 deletions
diff --git a/drivers/misc/lkdtm.h b/drivers/misc/lkdtm.h index d70a417..fdf954c 100644 --- a/drivers/misc/lkdtm.h +++ b/drivers/misc/lkdtm.h @@ -1,6 +1,10 @@ #ifndef __LKDTM_H #define __LKDTM_H +#define pr_fmt(fmt) "lkdtm: " fmt + +#include <linux/kernel.h> + /* lkdtm_bugs.c */ void __init lkdtm_bugs_init(int *recur_param); void lkdtm_PANIC(void); @@ -53,5 +57,4 @@ void lkdtm_USERCOPY_STACK_FRAME_FROM(void); void lkdtm_USERCOPY_STACK_BEYOND(void); void lkdtm_USERCOPY_KERNEL(void); - #endif diff --git a/drivers/misc/lkdtm_bugs.c b/drivers/misc/lkdtm_bugs.c index e87071f..182ae18 100644 --- a/drivers/misc/lkdtm_bugs.c +++ b/drivers/misc/lkdtm_bugs.c @@ -4,12 +4,8 @@ * lockups) along with other things that don't fit well into existing LKDTM * test source files. */ -#define pr_fmt(fmt) "lkdtm: " fmt - -#include <linux/kernel.h> -#include <linux/sched.h> - #include "lkdtm.h" +#include <linux/sched.h> /* * Make sure our attempts to over run the kernel stack doesn't trigger diff --git a/drivers/misc/lkdtm_core.c b/drivers/misc/lkdtm_core.c index de29a33..f9154b8 100644 --- a/drivers/misc/lkdtm_core.c +++ b/drivers/misc/lkdtm_core.c @@ -30,9 +30,7 @@ * * See Documentation/fault-injection/provoke-crashes.txt for instructions */ -#define pr_fmt(fmt) "lkdtm: " fmt - -#include <linux/kernel.h> +#include "lkdtm.h" #include <linux/fs.h> #include <linux/module.h> #include <linux/buffer_head.h> @@ -49,16 +47,16 @@ #include <linux/ide.h> #endif -#include "lkdtm.h" - #define DEFAULT_COUNT 10 -static void lkdtm_handler(void); static int lkdtm_debugfs_open(struct inode *inode, struct file *file); static ssize_t lkdtm_debugfs_read(struct file *f, char __user *user_buf, size_t count, loff_t *off); static ssize_t direct_entry(struct file *f, const char __user *user_buf, size_t count, loff_t *off); + +#ifdef CONFIG_KPROBES +static void lkdtm_handler(void); static ssize_t lkdtm_debugfs_entry(struct file *f, const char __user *user_buf, size_t count, loff_t *off); @@ -118,7 +116,7 @@ static int jp_scsi_dispatch_cmd(struct scsi_cmnd *cmd) return 0; } -#ifdef CONFIG_IDE +# ifdef CONFIG_IDE static int jp_generic_ide_ioctl(ide_drive_t *drive, struct file *file, struct block_device *bdev, unsigned int cmd, unsigned long arg) @@ -127,9 +125,9 @@ static int jp_generic_ide_ioctl(ide_drive_t *drive, struct file *file, jprobe_return(); return 0; } +# endif #endif - /* Crash points */ struct crashpoint { const char *name; @@ -238,10 +236,6 @@ static struct jprobe *lkdtm_jprobe; struct crashpoint *lkdtm_crashpoint; struct crashtype *lkdtm_crashtype; -/* Global crash counter and spinlock. */ -static int crash_count = DEFAULT_COUNT; -static DEFINE_SPINLOCK(crash_count_lock); - /* Module parameters */ static int recur_count = -1; module_param(recur_count, int, 0644); @@ -285,29 +279,6 @@ static noinline void lkdtm_do_action(struct crashtype *crashtype) crashtype->func(); } -/* Called by jprobe entry points. */ -static void lkdtm_handler(void) -{ - unsigned long flags; - bool do_it = false; - - BUG_ON(!lkdtm_crashpoint || !lkdtm_crashtype); - - spin_lock_irqsave(&crash_count_lock, flags); - crash_count--; - pr_info("Crash point %s of type %s hit, trigger in %d rounds\n", - lkdtm_crashpoint->name, lkdtm_crashtype->name, crash_count); - - if (crash_count == 0) { - do_it = true; - crash_count = cpoint_count; - } - spin_unlock_irqrestore(&crash_count_lock, flags); - - if (do_it) - lkdtm_do_action(lkdtm_crashtype); -} - static int lkdtm_register_cpoint(struct crashpoint *crashpoint, struct crashtype *crashtype) { @@ -337,6 +308,34 @@ static int lkdtm_register_cpoint(struct crashpoint *crashpoint, return ret; } +#ifdef CONFIG_KPROBES +/* Global crash counter and spinlock. */ +static int crash_count = DEFAULT_COUNT; +static DEFINE_SPINLOCK(crash_count_lock); + +/* Called by jprobe entry points. */ +static void lkdtm_handler(void) +{ + unsigned long flags; + bool do_it = false; + + BUG_ON(!lkdtm_crashpoint || !lkdtm_crashtype); + + spin_lock_irqsave(&crash_count_lock, flags); + crash_count--; + pr_info("Crash point %s of type %s hit, trigger in %d rounds\n", + lkdtm_crashpoint->name, lkdtm_crashtype->name, crash_count); + + if (crash_count == 0) { + do_it = true; + crash_count = cpoint_count; + } + spin_unlock_irqrestore(&crash_count_lock, flags); + + if (do_it) + lkdtm_do_action(lkdtm_crashtype); +} + static ssize_t lkdtm_debugfs_entry(struct file *f, const char __user *user_buf, size_t count, loff_t *off) @@ -374,6 +373,7 @@ static ssize_t lkdtm_debugfs_entry(struct file *f, return count; } +#endif /* Generic read callback that just prints out the available crash types */ static ssize_t lkdtm_debugfs_read(struct file *f, char __user *user_buf, @@ -476,8 +476,10 @@ static int __init lkdtm_module_init(void) } } +#ifdef CONFIG_KPROBES /* Set crash count. */ crash_count = cpoint_count; +#endif /* Handle test-specific initialization. */ lkdtm_bugs_init(&recur_count); diff --git a/drivers/misc/lkdtm_heap.c b/drivers/misc/lkdtm_heap.c index 12f50e8..0f15816 100644 --- a/drivers/misc/lkdtm_heap.c +++ b/drivers/misc/lkdtm_heap.c @@ -2,12 +2,8 @@ * This is for all the tests relating directly to heap memory, including * page allocation and slab allocations. */ -#define pr_fmt(fmt) "lkdtm: " fmt - -#include <linux/kernel.h> -#include <linux/slab.h> - #include "lkdtm.h" +#include <linux/slab.h> /* * This tries to stay within the next largest power-of-2 kmalloc cache diff --git a/drivers/misc/lkdtm_perms.c b/drivers/misc/lkdtm_perms.c index 8201006..45f1c0f 100644 --- a/drivers/misc/lkdtm_perms.c +++ b/drivers/misc/lkdtm_perms.c @@ -3,17 +3,13 @@ * permissions: non-executable regions, non-writable regions, and * even non-readable regions. */ -#define pr_fmt(fmt) "lkdtm: " fmt - -#include <linux/kernel.h> +#include "lkdtm.h" #include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/mman.h> #include <linux/uaccess.h> #include <asm/cacheflush.h> -#include "lkdtm.h" - /* Whether or not to fill the target memory area with do_nothing(). */ #define CODE_WRITE true #define CODE_AS_IS false diff --git a/drivers/misc/lkdtm_rodata.c b/drivers/misc/lkdtm_rodata.c index 4d0d851..166b1db 100644 --- a/drivers/misc/lkdtm_rodata.c +++ b/drivers/misc/lkdtm_rodata.c @@ -2,7 +2,7 @@ * This includes functions that are meant to live entirely in .rodata * (via objcopy tricks), to validate the non-executability of .rodata. */ -#include <linux/kernel.h> +#include "lkdtm.h" void lkdtm_rodata_do_nothing(void) { diff --git a/drivers/misc/lkdtm_usercopy.c b/drivers/misc/lkdtm_usercopy.c index 9c748e8..5a3fd76 100644 --- a/drivers/misc/lkdtm_usercopy.c +++ b/drivers/misc/lkdtm_usercopy.c @@ -2,9 +2,7 @@ * This is for all the tests related to copy_to_user() and copy_from_user() * hardening. */ -#define pr_fmt(fmt) "lkdtm: " fmt - -#include <linux/kernel.h> +#include "lkdtm.h" #include <linux/slab.h> #include <linux/vmalloc.h> #include <linux/mman.h> |