staging: unisys: visorbus: add error handling visorbus_enable_channel_interrupt
authorDavid Kershner <david.kershner@unisys.com>
Tue, 28 Mar 2017 13:34:44 +0000 (09:34 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Mar 2017 07:17:03 +0000 (09:17 +0200)
Add error handling to visorbus_enable_channel_interrupt.

Signed-off-by: David Kershner <david.kershner@unisys.com>
Reviewed-by: Reviewed-by: Tim Sell <timothy.sell@unisys.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/unisys/include/visorbus.h
drivers/staging/unisys/visorbus/visorbus_main.c

index 6582939..de06355 100644 (file)
@@ -180,7 +180,7 @@ int visorbus_read_channel(struct visor_device *dev,
 int visorbus_write_channel(struct visor_device *dev,
                           unsigned long offset, void *src,
                           unsigned long nbytes);
-void visorbus_enable_channel_interrupts(struct visor_device *dev);
+int visorbus_enable_channel_interrupts(struct visor_device *dev);
 void visorbus_disable_channel_interrupts(struct visor_device *dev);
 
 /* Levels of severity for diagnostic events, in order from lowest severity to
index c97f32f..bf0f191 100644 (file)
@@ -580,17 +580,17 @@ EXPORT_SYMBOL_GPL(visorbus_write_channel);
  * Currently we don't yet have a real interrupt, so for now we just call the
  * interrupt function periodically via a timer.
  */
-void
+int
 visorbus_enable_channel_interrupts(struct visor_device *dev)
 {
        struct visor_driver *drv = to_visor_driver(dev->device.driver);
 
        if (!drv->channel_interrupt) {
                dev_err(&dev->device, "%s no interrupt function!\n", __func__);
-               return;
+               return -ENOENT;
        }
 
-       dev_start_periodic_work(dev);
+       return dev_start_periodic_work(dev);
 }
 EXPORT_SYMBOL_GPL(visorbus_enable_channel_interrupts);