Staging: hv: check return value of driver_for_each_device()
authorBill Pemberton <wfp5p@virginia.edu>
Tue, 28 Jul 2009 17:46:22 +0000 (13:46 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 15 Sep 2009 19:01:52 +0000 (12:01 -0700)
The return value of driver_for_each_device() is now checked.  A
non-zero value simply generates a warning message, but it's better
than not checking at all.

Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Cc: Hank Janssen <hjanssen@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/hv/blkvsc_drv.c
drivers/staging/hv/netvsc_drv.c
drivers/staging/hv/storvsc_drv.c

index d595c3b..dff950b 100644 (file)
@@ -218,8 +218,8 @@ void blkvsc_drv_exit(void)
 {
        STORVSC_DRIVER_OBJECT *storvsc_drv_obj=&g_blkvsc_drv.drv_obj;
        struct driver_context *drv_ctx=&g_blkvsc_drv.drv_ctx;
-
        struct device *current_dev=NULL;
+       int ret;
 
        DPRINT_ENTER(BLKVSC_DRV);
 
@@ -228,7 +228,14 @@ void blkvsc_drv_exit(void)
                current_dev = NULL;
 
                /* Get the device */
-               driver_for_each_device(&drv_ctx->driver, NULL, (void*)&current_dev, blkvsc_drv_exit_cb);
+               ret = driver_for_each_device(&drv_ctx->driver, NULL,
+                                            (void *) &current_dev,
+                                            blkvsc_drv_exit_cb);
+
+               if (ret)
+                       DPRINT_WARN(BLKVSC_DRV,
+                                   "driver_for_each_device returned %d", ret);
+
 
                if (current_dev == NULL)
                        break;
index f0df216..9010f0e 100644 (file)
@@ -638,8 +638,8 @@ void netvsc_drv_exit(void)
 {
        NETVSC_DRIVER_OBJECT *netvsc_drv_obj=&g_netvsc_drv.drv_obj;
        struct driver_context *drv_ctx=&g_netvsc_drv.drv_ctx;
-
        struct device *current_dev=NULL;
+       int ret;
 
        DPRINT_ENTER(NETVSC_DRV);
 
@@ -648,7 +648,14 @@ void netvsc_drv_exit(void)
                current_dev = NULL;
 
                /* Get the device */
-               driver_for_each_device(&drv_ctx->driver, NULL, (void*)&current_dev, netvsc_drv_exit_cb);
+               ret = driver_for_each_device(&drv_ctx->driver, NULL,
+                                            (void *) &current_dev,
+                                            netvsc_drv_exit_cb);
+
+               if (ret)
+                       DPRINT_WARN(NETVSC_DRV,
+                                   "driver_for_each_device returned %d", ret);
+
 
                if (current_dev == NULL)
                        break;
index 385e84b..120ec52 100644 (file)
@@ -188,8 +188,8 @@ void storvsc_drv_exit(void)
 {
        STORVSC_DRIVER_OBJECT *storvsc_drv_obj=&g_storvsc_drv.drv_obj;
        struct driver_context *drv_ctx=&g_storvsc_drv.drv_ctx;
-
        struct device *current_dev=NULL;
+       int ret;
 
        DPRINT_ENTER(STORVSC_DRV);
 
@@ -198,7 +198,13 @@ void storvsc_drv_exit(void)
                current_dev = NULL;
 
                /* Get the device */
-               driver_for_each_device(&drv_ctx->driver, NULL, (void*)&current_dev, storvsc_drv_exit_cb);
+               ret = driver_for_each_device(&drv_ctx->driver, NULL,
+                                            (void *) &current_dev,
+                                            storvsc_drv_exit_cb);
+
+               if (ret)
+                       DPRINT_WARN(STORVSC_DRV,
+                                   "driver_for_each_device returned %d", ret);
 
                if (current_dev == NULL)
                        break;