summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-05-16 14:26:05 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-16 14:26:05 -0700
commitf8fc341ba4db45987e06a937348d67e392de0127 (patch)
tree0bd6197b34edbe2d30930f9fb1374653bd0fc679
parentdfae359f083fac3a884e10b46ebe0f262a9bd97a (diff)
parent6fd98c124c66b0b0001bc4217392d891b1ad4a02 (diff)
downloadlinux-stable-f8fc341ba4db45987e06a937348d67e392de0127.tar.gz
linux-stable-f8fc341ba4db45987e06a937348d67e392de0127.tar.bz2
linux-stable-f8fc341ba4db45987e06a937348d67e392de0127.zip
Merge tag 'rproc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc
Pull remoteproc fix from Ohad Ben-Cohen: "Fix a nasty off-by-one remoteproc bug which leaks memory when a remote processor is shut down and, on certain circumstances, can indirectly prevent it from being reloaded." * tag 'rproc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc: remoteproc: fix off-by-one bug in __rproc_free_vrings
-rw-r--r--drivers/remoteproc/remoteproc_core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c
index ee15c68fb519..e756a0df3664 100644
--- a/drivers/remoteproc/remoteproc_core.c
+++ b/drivers/remoteproc/remoteproc_core.c
@@ -354,7 +354,7 @@ static void __rproc_free_vrings(struct rproc_vdev *rvdev, int i)
{
struct rproc *rproc = rvdev->rproc;
- for (i--; i > 0; i--) {
+ for (i--; i >= 0; i--) {
struct rproc_vring *rvring = &rvdev->vring[i];
int size = PAGE_ALIGN(vring_size(rvring->len, rvring->align));