staging: gasket: bail out of reset sequence on device callback error
authorTodd Poynor <toddpoynor@google.com>
Tue, 17 Jul 2018 20:56:54 +0000 (13:56 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Jul 2018 09:39:47 +0000 (11:39 +0200)
If device reset callback returns an error, error out at the gasket
level.

Reported-by: Dmitry Torokhov <dtor@chromium.org>
Signed-off-by: Zhongze Hu <frankhu@chromium.org>
Signed-off-by: Todd Poynor <toddpoynor@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/gasket/gasket_core.c

index 94e64b9..bc3662e 100644 (file)
@@ -1875,9 +1875,11 @@ int gasket_reset_nolock(struct gasket_dev *gasket_dev, uint reset_type)
 
        /* Perform a device reset of the requested type. */
        ret = driver_desc->device_reset_cb(gasket_dev, reset_type);
-       if (ret)
+       if (ret) {
                gasket_log_error(
                        gasket_dev, "Device reset cb returned %d.", ret);
+               return ret;
+       }
 
        /* Reinitialize the page tables and interrupt framework. */
        for (i = 0; i < driver_desc->num_page_tables; ++i)