[PATCH 14/32] staging: gasket: bail out of reset sequence on device callback error

From: Todd Poynor
Date: Tue Jul 17 2018 - 17:05:05 EST


From: Todd Poynor <toddpoynor@xxxxxxxxxx>

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

Reported-by: Dmitry Torokhov <dtor@xxxxxxxxxxxx>
Signed-off-by: Zhongze Hu <frankhu@xxxxxxxxxxxx>
Signed-off-by: Todd Poynor <toddpoynor@xxxxxxxxxx>
---
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 94e64b900380d..bc3662eafb63d 100644
--- a/drivers/staging/gasket/gasket_core.c
+++ b/drivers/staging/gasket/gasket_core.c
@@ -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)
--
2.18.0.203.gfac676dfb9-goog