|
@@ -135,7 +135,9 @@ EXPORT_SYMBOL_GPL(vop_unregister_driver);
|
|
|
|
|
|
static void vop_release_dev(struct device *d)
|
|
static void vop_release_dev(struct device *d)
|
|
{
|
|
{
|
|
- put_device(d);
|
|
|
|
|
|
+ struct vop_device *dev = dev_to_vop(d);
|
|
|
|
+
|
|
|
|
+ kfree(dev);
|
|
}
|
|
}
|
|
|
|
|
|
struct vop_device *
|
|
struct vop_device *
|
|
@@ -174,7 +176,7 @@ vop_register_device(struct device *pdev, int id,
|
|
goto free_vdev;
|
|
goto free_vdev;
|
|
return vdev;
|
|
return vdev;
|
|
free_vdev:
|
|
free_vdev:
|
|
- kfree(vdev);
|
|
|
|
|
|
+ put_device(&vdev->dev);
|
|
return ERR_PTR(ret);
|
|
return ERR_PTR(ret);
|
|
}
|
|
}
|
|
EXPORT_SYMBOL_GPL(vop_register_device);
|
|
EXPORT_SYMBOL_GPL(vop_register_device);
|