Commit 6e71d2b2 authored by Mathieu Poirier's avatar Mathieu Poirier Committed by Bjorn Andersson
Browse files

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: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
Link: https://lore.kernel.org/r/20210312162453.1234145-18-mathieu.poirier@linaro.org


Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
parent 5daaeb5f
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -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)
		return 0;

	if (rproc->cdev_put_on_release && rproc->state == RPROC_RUNNING)
	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 = {