mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 05:34:13 +08:00
lkdtm: hide unused functions
A conversion of the lkdtm core module added an "#ifdef CONFIG_KPROBES" check,
but a number of functions then become unused:
drivers/misc/lkdtm_core.c:340:16: error: 'lkdtm_debugfs_entry' defined but not used [-Werror=unused-function]
drivers/misc/lkdtm_core.c:122:12: error: 'jp_generic_ide_ioctl' defined but not used [-Werror=unused-function]
drivers/misc/lkdtm_core.c:114:12: error: 'jp_scsi_dispatch_cmd' defined but not used [-Werror=unused-function]
drivers/misc/lkdtm_core.c:106:12: error: 'jp_hrtimer_start' defined but not used [-Werror=unused-function]
drivers/misc/lkdtm_core.c:97:22: error: 'jp_shrink_inactive_list' defined but not used [-Werror=unused-function]
drivers/misc/lkdtm_core.c:89:13: error: 'jp_ll_rw_block' defined but not used [-Werror=unused-function]
drivers/misc/lkdtm_core.c:83:13: error: 'jp_tasklet_action' defined but not used [-Werror=unused-function]
drivers/misc/lkdtm_core.c:75:20: error: 'jp_handle_irq_event' defined but not used [-Werror=unused-function]
drivers/misc/lkdtm_core.c:68:21: error: 'jp_do_irq' defined but not used [-Werror=unused-function]
This adds the same #ifdef everywhere. There is probably a better way to do the
same thing, but for now this avoids the new warnings.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: c479e3fd88
("lkdtm: use struct arrays instead of enums")
[kees: moved some code around to better consolidate the #ifdefs]
Signed-off-by: Kees Cook <keescook@chromium.org>
This commit is contained in:
parent
80f7631963
commit
2b271cb720
@ -53,12 +53,14 @@
|
||||
|
||||
#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 +120,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 +129,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 +240,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 +283,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 +312,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 +377,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 +480,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);
|
||||
|
Loading…
Reference in New Issue
Block a user