remoteproc: Refactor function rproc_cdev_release()
Refactor function rproc_cdev_release() to take into account the current state of the remote processor when choosing the state to transition to. Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Link: https://lore.kernel.org/r/20210312162453.1234145-18-mathieu.poirier@linaro.org Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This commit is contained in:
parent
5daaeb5f07
commit
6e71d2b2a2
@ -86,11 +86,17 @@ static long rproc_device_ioctl(struct file *filp, unsigned int ioctl, unsigned l
|
||||
static int rproc_cdev_release(struct inode *inode, struct file *filp)
|
||||
{
|
||||
struct rproc *rproc = container_of(inode->i_cdev, struct rproc, cdev);
|
||||
int ret = 0;
|
||||
|
||||
if (rproc->cdev_put_on_release && rproc->state == RPROC_RUNNING)
|
||||
if (!rproc->cdev_put_on_release)
|
||||
return 0;
|
||||
|
||||
if (rproc->state == RPROC_RUNNING)
|
||||
rproc_shutdown(rproc);
|
||||
else if (rproc->state == RPROC_ATTACHED)
|
||||
ret = rproc_detach(rproc);
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const struct file_operations rproc_fops = {
|
||||
|
Loading…
Reference in New Issue
Block a user