mirror of
https://github.com/torvalds/linux.git
synced 2024-12-29 14:21:47 +00:00
remoteproc: core: Introduce rproc_add_rvdev function
The rproc structure contains a list of registered rproc_vdev structure. To be able to move the management of the rproc_vdev structure in remoteproc_virtio.c (i.e rproc_rvdev_add_device function), introduce the rproc_add_rvdev and rproc_remove_rvdev functions. Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com> Link: https://lore.kernel.org/r/20220921135044.917140-3-arnaud.pouliquen@foss.st.com Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
This commit is contained in:
parent
fd28f879e6
commit
63badba945
@ -486,6 +486,18 @@ static int copy_dma_range_map(struct device *to, struct device *from)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void rproc_add_rvdev(struct rproc *rproc, struct rproc_vdev *rvdev)
|
||||
{
|
||||
if (rvdev && rproc)
|
||||
list_add_tail(&rvdev->node, &rproc->rvdevs);
|
||||
}
|
||||
|
||||
static void rproc_remove_rvdev(struct rproc_vdev *rvdev)
|
||||
{
|
||||
if (rvdev)
|
||||
list_del(&rvdev->node);
|
||||
}
|
||||
|
||||
static struct rproc_vdev *
|
||||
rproc_rvdev_add_device(struct rproc *rproc, struct rproc_vdev_data *rvdev_data)
|
||||
{
|
||||
@ -549,7 +561,7 @@ rproc_rvdev_add_device(struct rproc *rproc, struct rproc_vdev_data *rvdev_data)
|
||||
goto unwind_vring_allocations;
|
||||
}
|
||||
|
||||
list_add_tail(&rvdev->node, &rproc->rvdevs);
|
||||
rproc_add_rvdev(rproc, rvdev);
|
||||
|
||||
rvdev->subdev.start = rproc_vdev_do_start;
|
||||
rvdev->subdev.stop = rproc_vdev_do_stop;
|
||||
@ -579,7 +591,7 @@ void rproc_vdev_release(struct kref *ref)
|
||||
}
|
||||
|
||||
rproc_remove_subdev(rproc, &rvdev->subdev);
|
||||
list_del(&rvdev->node);
|
||||
rproc_remove_rvdev(rvdev);
|
||||
device_unregister(&rvdev->dev);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user