|
|
@@ -740,7 +740,7 @@ static int vpbe_initialize(struct device *dev, struct vpbe_device *vpbe_dev)
|
|
|
if (ret) {
|
|
|
v4l2_err(&vpbe_dev->v4l2_dev, "Failed to set default output %s",
|
|
|
def_output);
|
|
|
- return ret;
|
|
|
+ goto fail_kfree_amp;
|
|
|
}
|
|
|
|
|
|
printk(KERN_NOTICE "Setting default mode to %s\n", def_mode);
|
|
|
@@ -748,12 +748,15 @@ static int vpbe_initialize(struct device *dev, struct vpbe_device *vpbe_dev)
|
|
|
if (ret) {
|
|
|
v4l2_err(&vpbe_dev->v4l2_dev, "Failed to set default mode %s",
|
|
|
def_mode);
|
|
|
- return ret;
|
|
|
+ goto fail_kfree_amp;
|
|
|
}
|
|
|
vpbe_dev->initialized = 1;
|
|
|
/* TBD handling of bootargs for default output and mode */
|
|
|
return 0;
|
|
|
|
|
|
+fail_kfree_amp:
|
|
|
+ mutex_lock(&vpbe_dev->lock);
|
|
|
+ kfree(vpbe_dev->amp);
|
|
|
fail_kfree_encoders:
|
|
|
kfree(vpbe_dev->encoders);
|
|
|
fail_dev_unregister:
|