Signed-off-by: Raja Naresh <[email protected]>
---
 drivers/staging/vme/devices/vme_user.c |   22 +++++++++-------------
 1 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/drivers/staging/vme/devices/vme_user.c 
b/drivers/staging/vme/devices/vme_user.c
index a571173..0929c33 100644
--- a/drivers/staging/vme/devices/vme_user.c
+++ b/drivers/staging/vme/devices/vme_user.c
@@ -736,7 +736,7 @@ static int __devinit vme_user_probe(struct device *dev, int 
cur_bus,
                        image[i].pci_buf = 0;
                        vme_slave_free(image[i].resource);
                        err = -ENOMEM;
-                       goto err_slave;
+                       goto err_slave_alloc;
                }
        }
 
@@ -803,13 +803,10 @@ static int __devinit vme_user_probe(struct device *dev, 
int cur_bus,
 
        return 0;
 
-       /* Ensure counter set correcty to destroy all sysfs devices */
-       i = VME_DEVS;
 err_sysfs:
-       while (i > 0) {
-               i--;
+       while (--i >= 0)
                device_destroy(vme_user_sysfs_class, MKDEV(VME_MAJOR, i));
-       }
+
        class_destroy(vme_user_sysfs_class);
 
        /* Ensure counter set correcty to unalloc all master windows */
@@ -818,18 +815,17 @@ err_master_buf:
        for (i = MASTER_MINOR; i < (MASTER_MAX + 1); i++)
                kfree(image[i].kern_buf);
 err_master:
-       while (i > MASTER_MINOR) {
-               i--;
+       while (--i >= MASTER_MINOR)
                vme_master_free(image[i].resource);
-       }
-
-       /*
+       /*
         * Ensure counter set correcty to unalloc all slave windows and buffers
         */
        i = SLAVE_MAX + 1;
+err_slave_alloc:
+       if (i != (SLAVE_MAX + 1))
+               vme_slave_free(image[i].resource);
 err_slave:
-       while (i > SLAVE_MINOR) {
-               i--;
+       while (--i >= SLAVE_MINOR) {
                buf_unalloc(i);
                vme_slave_free(image[i].resource);
        }
-- 
1.6.3.3

_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to