um: virtio: free vu_dev only with the contained struct device
Since struct device is refcounted, we shouldn't free the vu_dev
immediately when it's removed from the platform device, but only
when the references actually all go away. Move the freeing to
the release to accomplish that.
Fixes: 5d38f32499
("um: drivers: Add virtio vhost-user driver")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:
parent
e23fe90dec
commit
f4172b0843
|
@ -1084,6 +1084,7 @@ static void virtio_uml_release_dev(struct device *d)
|
||||||
}
|
}
|
||||||
|
|
||||||
os_close_file(vu_dev->sock);
|
os_close_file(vu_dev->sock);
|
||||||
|
kfree(vu_dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Platform device */
|
/* Platform device */
|
||||||
|
@ -1097,7 +1098,7 @@ static int virtio_uml_probe(struct platform_device *pdev)
|
||||||
if (!pdata)
|
if (!pdata)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
vu_dev = devm_kzalloc(&pdev->dev, sizeof(*vu_dev), GFP_KERNEL);
|
vu_dev = kzalloc(sizeof(*vu_dev), GFP_KERNEL);
|
||||||
if (!vu_dev)
|
if (!vu_dev)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue