From: Todd Poynor <toddpoy...@google.com>

If device reset callback returns an error, error out at the gasket
level.

Reported-by: Dmitry Torokhov <d...@chromium.org>
Signed-off-by: Zhongze Hu <fran...@chromium.org>
Signed-off-by: Todd Poynor <toddpoy...@google.com>
---
 drivers/staging/gasket/gasket_core.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/gasket/gasket_core.c 
b/drivers/staging/gasket/gasket_core.c
index 6316e6c800ba..ffd6ce801313 100644
--- a/drivers/staging/gasket/gasket_core.c
+++ b/drivers/staging/gasket/gasket_core.c
@@ -1879,9 +1879,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)
-- 
2.18.0.203.gfac676dfb9-goog

Reply via email to