lkdtm: hide unused functions
authorArnd Bergmann <arnd@arndb.de>
Fri, 15 Jul 2016 22:58:55 +0000 (15:58 -0700)
committerKees Cook <keescook@chromium.org>
Fri, 15 Jul 2016 23:14:44 +0000 (16:14 -0700)
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: c479e3fd8870 ("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>
drivers/misc/lkdtm_core.c

index de29a33..717aad6 100644 (file)
 
 #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);