Commit 45c7d71e authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

Merge tag 'lkdtm-next' of...

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
parents 80f76319 6d2e91a6
#ifndef __LKDTM_H #ifndef __LKDTM_H
#define __LKDTM_H #define __LKDTM_H
#define pr_fmt(fmt) "lkdtm: " fmt
#include <linux/kernel.h>
/* lkdtm_bugs.c */ /* lkdtm_bugs.c */
void __init lkdtm_bugs_init(int *recur_param); void __init lkdtm_bugs_init(int *recur_param);
void lkdtm_PANIC(void); void lkdtm_PANIC(void);
...@@ -53,5 +57,4 @@ void lkdtm_USERCOPY_STACK_FRAME_FROM(void); ...@@ -53,5 +57,4 @@ void lkdtm_USERCOPY_STACK_FRAME_FROM(void);
void lkdtm_USERCOPY_STACK_BEYOND(void); void lkdtm_USERCOPY_STACK_BEYOND(void);
void lkdtm_USERCOPY_KERNEL(void); void lkdtm_USERCOPY_KERNEL(void);
#endif #endif
...@@ -4,12 +4,8 @@ ...@@ -4,12 +4,8 @@
* lockups) along with other things that don't fit well into existing LKDTM * lockups) along with other things that don't fit well into existing LKDTM
* test source files. * test source files.
*/ */
#define pr_fmt(fmt) "lkdtm: " fmt
#include <linux/kernel.h>
#include <linux/sched.h>
#include "lkdtm.h" #include "lkdtm.h"
#include <linux/sched.h>
/* /*
* Make sure our attempts to over run the kernel stack doesn't trigger * Make sure our attempts to over run the kernel stack doesn't trigger
......
...@@ -30,9 +30,7 @@ ...@@ -30,9 +30,7 @@
* *
* See Documentation/fault-injection/provoke-crashes.txt for instructions * See Documentation/fault-injection/provoke-crashes.txt for instructions
*/ */
#define pr_fmt(fmt) "lkdtm: " fmt #include "lkdtm.h"
#include <linux/kernel.h>
#include <linux/fs.h> #include <linux/fs.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/buffer_head.h> #include <linux/buffer_head.h>
...@@ -49,16 +47,16 @@ ...@@ -49,16 +47,16 @@
#include <linux/ide.h> #include <linux/ide.h>
#endif #endif
#include "lkdtm.h"
#define DEFAULT_COUNT 10 #define DEFAULT_COUNT 10
static void lkdtm_handler(void);
static int lkdtm_debugfs_open(struct inode *inode, struct file *file); static int lkdtm_debugfs_open(struct inode *inode, struct file *file);
static ssize_t lkdtm_debugfs_read(struct file *f, char __user *user_buf, static ssize_t lkdtm_debugfs_read(struct file *f, char __user *user_buf,
size_t count, loff_t *off); size_t count, loff_t *off);
static ssize_t direct_entry(struct file *f, const char __user *user_buf, static ssize_t direct_entry(struct file *f, const char __user *user_buf,
size_t count, loff_t *off); size_t count, loff_t *off);
#ifdef CONFIG_KPROBES
static void lkdtm_handler(void);
static ssize_t lkdtm_debugfs_entry(struct file *f, static ssize_t lkdtm_debugfs_entry(struct file *f,
const char __user *user_buf, const char __user *user_buf,
size_t count, loff_t *off); size_t count, loff_t *off);
...@@ -118,7 +116,7 @@ static int jp_scsi_dispatch_cmd(struct scsi_cmnd *cmd) ...@@ -118,7 +116,7 @@ static int jp_scsi_dispatch_cmd(struct scsi_cmnd *cmd)
return 0; return 0;
} }
#ifdef CONFIG_IDE # ifdef CONFIG_IDE
static int jp_generic_ide_ioctl(ide_drive_t *drive, struct file *file, static int jp_generic_ide_ioctl(ide_drive_t *drive, struct file *file,
struct block_device *bdev, unsigned int cmd, struct block_device *bdev, unsigned int cmd,
unsigned long arg) unsigned long arg)
...@@ -127,9 +125,9 @@ static int jp_generic_ide_ioctl(ide_drive_t *drive, struct file *file, ...@@ -127,9 +125,9 @@ static int jp_generic_ide_ioctl(ide_drive_t *drive, struct file *file,
jprobe_return(); jprobe_return();
return 0; return 0;
} }
# endif
#endif #endif
/* Crash points */ /* Crash points */
struct crashpoint { struct crashpoint {
const char *name; const char *name;
...@@ -238,10 +236,6 @@ static struct jprobe *lkdtm_jprobe; ...@@ -238,10 +236,6 @@ static struct jprobe *lkdtm_jprobe;
struct crashpoint *lkdtm_crashpoint; struct crashpoint *lkdtm_crashpoint;
struct crashtype *lkdtm_crashtype; struct crashtype *lkdtm_crashtype;
/* Global crash counter and spinlock. */
static int crash_count = DEFAULT_COUNT;
static DEFINE_SPINLOCK(crash_count_lock);
/* Module parameters */ /* Module parameters */
static int recur_count = -1; static int recur_count = -1;
module_param(recur_count, int, 0644); module_param(recur_count, int, 0644);
...@@ -285,29 +279,6 @@ static noinline void lkdtm_do_action(struct crashtype *crashtype) ...@@ -285,29 +279,6 @@ static noinline void lkdtm_do_action(struct crashtype *crashtype)
crashtype->func(); 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, static int lkdtm_register_cpoint(struct crashpoint *crashpoint,
struct crashtype *crashtype) struct crashtype *crashtype)
{ {
...@@ -337,6 +308,34 @@ static int lkdtm_register_cpoint(struct crashpoint *crashpoint, ...@@ -337,6 +308,34 @@ static int lkdtm_register_cpoint(struct crashpoint *crashpoint,
return ret; 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, static ssize_t lkdtm_debugfs_entry(struct file *f,
const char __user *user_buf, const char __user *user_buf,
size_t count, loff_t *off) size_t count, loff_t *off)
...@@ -374,6 +373,7 @@ static ssize_t lkdtm_debugfs_entry(struct file *f, ...@@ -374,6 +373,7 @@ static ssize_t lkdtm_debugfs_entry(struct file *f,
return count; return count;
} }
#endif
/* Generic read callback that just prints out the available crash types */ /* Generic read callback that just prints out the available crash types */
static ssize_t lkdtm_debugfs_read(struct file *f, char __user *user_buf, static ssize_t lkdtm_debugfs_read(struct file *f, char __user *user_buf,
...@@ -476,8 +476,10 @@ static int __init lkdtm_module_init(void) ...@@ -476,8 +476,10 @@ static int __init lkdtm_module_init(void)
} }
} }
#ifdef CONFIG_KPROBES
/* Set crash count. */ /* Set crash count. */
crash_count = cpoint_count; crash_count = cpoint_count;
#endif
/* Handle test-specific initialization. */ /* Handle test-specific initialization. */
lkdtm_bugs_init(&recur_count); lkdtm_bugs_init(&recur_count);
......
...@@ -2,12 +2,8 @@ ...@@ -2,12 +2,8 @@
* This is for all the tests relating directly to heap memory, including * This is for all the tests relating directly to heap memory, including
* page allocation and slab allocations. * page allocation and slab allocations.
*/ */
#define pr_fmt(fmt) "lkdtm: " fmt
#include <linux/kernel.h>
#include <linux/slab.h>
#include "lkdtm.h" #include "lkdtm.h"
#include <linux/slab.h>
/* /*
* This tries to stay within the next largest power-of-2 kmalloc cache * This tries to stay within the next largest power-of-2 kmalloc cache
......
...@@ -3,17 +3,13 @@ ...@@ -3,17 +3,13 @@
* permissions: non-executable regions, non-writable regions, and * permissions: non-executable regions, non-writable regions, and
* even non-readable regions. * even non-readable regions.
*/ */
#define pr_fmt(fmt) "lkdtm: " fmt #include "lkdtm.h"
#include <linux/kernel.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/vmalloc.h> #include <linux/vmalloc.h>
#include <linux/mman.h> #include <linux/mman.h>
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
#include "lkdtm.h"
/* Whether or not to fill the target memory area with do_nothing(). */ /* Whether or not to fill the target memory area with do_nothing(). */
#define CODE_WRITE true #define CODE_WRITE true
#define CODE_AS_IS false #define CODE_AS_IS false
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* This includes functions that are meant to live entirely in .rodata * This includes functions that are meant to live entirely in .rodata
* (via objcopy tricks), to validate the non-executability of .rodata. * (via objcopy tricks), to validate the non-executability of .rodata.
*/ */
#include <linux/kernel.h> #include "lkdtm.h"
void lkdtm_rodata_do_nothing(void) void lkdtm_rodata_do_nothing(void)
{ {
......
...@@ -2,9 +2,7 @@ ...@@ -2,9 +2,7 @@
* This is for all the tests related to copy_to_user() and copy_from_user() * This is for all the tests related to copy_to_user() and copy_from_user()
* hardening. * hardening.
*/ */
#define pr_fmt(fmt) "lkdtm: " fmt #include "lkdtm.h"
#include <linux/kernel.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/vmalloc.h> #include <linux/vmalloc.h>
#include <linux/mman.h> #include <linux/mman.h>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment