Commit f9331473 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'rproc-v4.17-1' of git://github.com/andersson/remoteproc

Pull remoteproc and rpmsg fixes from Bjorn Andersson:

 - fix screw-up when reversing boolean for rproc_stop()

 - add missing OF node refcounting dereferences

 - add missing MODULE_ALIAS in rpmsg_char

* tag 'rproc-v4.17-1' of git://github.com/andersson/remoteproc:
  rpmsg: added MODULE_ALIAS for rpmsg_char
  remoteproc: qcom: Fix potential device node leaks
  remoteproc: fix crashed parameter logic on stop call
parents c12fd0fe 93dd4e73
...@@ -1083,6 +1083,7 @@ static int q6v5_alloc_memory_region(struct q6v5 *qproc) ...@@ -1083,6 +1083,7 @@ static int q6v5_alloc_memory_region(struct q6v5 *qproc)
dev_err(qproc->dev, "unable to resolve mba region\n"); dev_err(qproc->dev, "unable to resolve mba region\n");
return ret; return ret;
} }
of_node_put(node);
qproc->mba_phys = r.start; qproc->mba_phys = r.start;
qproc->mba_size = resource_size(&r); qproc->mba_size = resource_size(&r);
...@@ -1100,6 +1101,7 @@ static int q6v5_alloc_memory_region(struct q6v5 *qproc) ...@@ -1100,6 +1101,7 @@ static int q6v5_alloc_memory_region(struct q6v5 *qproc)
dev_err(qproc->dev, "unable to resolve mpss region\n"); dev_err(qproc->dev, "unable to resolve mpss region\n");
return ret; return ret;
} }
of_node_put(node);
qproc->mpss_phys = qproc->mpss_reloc = r.start; qproc->mpss_phys = qproc->mpss_reloc = r.start;
qproc->mpss_size = resource_size(&r); qproc->mpss_size = resource_size(&r);
......
...@@ -1163,7 +1163,7 @@ int rproc_trigger_recovery(struct rproc *rproc) ...@@ -1163,7 +1163,7 @@ int rproc_trigger_recovery(struct rproc *rproc)
if (ret) if (ret)
return ret; return ret;
ret = rproc_stop(rproc, false); ret = rproc_stop(rproc, true);
if (ret) if (ret)
goto unlock_mutex; goto unlock_mutex;
...@@ -1316,7 +1316,7 @@ void rproc_shutdown(struct rproc *rproc) ...@@ -1316,7 +1316,7 @@ void rproc_shutdown(struct rproc *rproc)
if (!atomic_dec_and_test(&rproc->power)) if (!atomic_dec_and_test(&rproc->power))
goto out; goto out;
ret = rproc_stop(rproc, true); ret = rproc_stop(rproc, false);
if (ret) { if (ret) {
atomic_inc(&rproc->power); atomic_inc(&rproc->power);
goto out; goto out;
......
...@@ -581,4 +581,6 @@ static void rpmsg_chrdev_exit(void) ...@@ -581,4 +581,6 @@ static void rpmsg_chrdev_exit(void)
unregister_chrdev_region(rpmsg_major, RPMSG_DEV_MAX); unregister_chrdev_region(rpmsg_major, RPMSG_DEV_MAX);
} }
module_exit(rpmsg_chrdev_exit); module_exit(rpmsg_chrdev_exit);
MODULE_ALIAS("rpmsg:rpmsg_chrdev");
MODULE_LICENSE("GPL v2"); MODULE_LICENSE("GPL v2");
...@@ -569,7 +569,7 @@ static inline struct rproc *vdev_to_rproc(struct virtio_device *vdev) ...@@ -569,7 +569,7 @@ static inline struct rproc *vdev_to_rproc(struct virtio_device *vdev)
void rproc_add_subdev(struct rproc *rproc, void rproc_add_subdev(struct rproc *rproc,
struct rproc_subdev *subdev, struct rproc_subdev *subdev,
int (*probe)(struct rproc_subdev *subdev), int (*probe)(struct rproc_subdev *subdev),
void (*remove)(struct rproc_subdev *subdev, bool graceful)); void (*remove)(struct rproc_subdev *subdev, bool crashed));
void rproc_remove_subdev(struct rproc *rproc, struct rproc_subdev *subdev); void rproc_remove_subdev(struct rproc *rproc, struct rproc_subdev *subdev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment