devcoredump: avoid -Wempty-body warnings
authorArnd Bergmann <arnd@arndb.de>
Mon, 22 Mar 2021 11:42:51 +0000 (12:42 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 23 Mar 2021 14:04:59 +0000 (15:04 +0100)
Cleaning out the last -Wempty-body warnings found some interesting
cases with empty macros, along with harmless warnings like this one:

drivers/base/devcoredump.c: In function 'dev_coredumpm':
drivers/base/devcoredump.c:297:56: error: suggest braces around empty body in an 'if' statement [-Werror=empty-body]
  297 |                 /* nothing - symlink will be missing */;
      |                                                        ^
drivers/base/devcoredump.c:301:56: error: suggest braces around empty body in an 'if' statement [-Werror=empty-body]
  301 |                 /* nothing - symlink will be missing */;
      |                                                        ^

Randy tried addressing this one before, and there were multiple
other ideas in that thread.

Add a runtime warning and code comment here.

Link: https://lore.kernel.org/lkml/20200418184111.13401-8-rdunlap@infradead.org/
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20210322114258.3420937-1-arnd@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/devcoredump.c

index 9243468..352de5d 100644 (file)
@@ -292,13 +292,16 @@ void dev_coredumpm(struct device *dev, struct module *owner,
        if (device_add(&devcd->devcd_dev))
                goto put_device;
 
+       /*
+        * These should normally not fail, but there is no problem
+        * continuing without the links, so just warn instead of
+        * failing.
+        */
        if (sysfs_create_link(&devcd->devcd_dev.kobj, &dev->kobj,
-                             "failing_device"))
-               /* nothing - symlink will be missing */;
-
-       if (sysfs_create_link(&dev->kobj, &devcd->devcd_dev.kobj,
-                             "devcoredump"))
-               /* nothing - symlink will be missing */;
+                             "failing_device") ||
+           sysfs_create_link(&dev->kobj, &devcd->devcd_dev.kobj,
+                             "devcoredump"))
+               dev_warn(dev, "devcoredump create_link failed\n");
 
        INIT_DELAYED_WORK(&devcd->del_wk, devcd_del);
        schedule_delayed_work(&devcd->del_wk, DEVCD_TIMEOUT);