HID: roccat: introduce missing kfree
[pandora-kernel.git] / drivers / hid / hid-roccat.c
index e05d48e..f6e80c7 100644 (file)
@@ -168,7 +168,7 @@ static int roccat_open(struct inode *inode, struct file *file)
                printk(KERN_EMERG "roccat device with minor %d doesn't exist\n",
                                minor);
                error = -ENODEV;
-               goto exit_unlock;
+               goto exit_err;
        }
 
        if (!device->open++) {
@@ -178,7 +178,7 @@ static int roccat_open(struct inode *inode, struct file *file)
                                        PM_HINT_FULLON);
                        if (error < 0) {
                                --device->open;
-                               goto exit_unlock;
+                               goto exit_err;
                        }
                }
                error = device->hid->ll_driver->open(device->hid);
@@ -187,7 +187,7 @@ static int roccat_open(struct inode *inode, struct file *file)
                                device->hid->ll_driver->power(device->hid,
                                                PM_HINT_NORMAL);
                        --device->open;
-                       goto exit_unlock;
+                       goto exit_err;
                }
        }
 
@@ -202,6 +202,9 @@ exit_unlock:
        mutex_unlock(&device->readers_lock);
        mutex_unlock(&devices_lock);
        return error;
+exit_err:
+       kfree(reader);
+       goto exit_unlock;
 }
 
 static int roccat_release(struct inode *inode, struct file *file)