Message ID | 1354971050-5784-1-git-send-email-sasha.levin@oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Ping? On Sat, Dec 8, 2012 at 7:50 AM, Sasha Levin <sasha.levin@oracle.com> wrote: > Commit c003ab1b ("[media] rc-core: add separate defines for protocol bitmaps > and numbers") has introduced a bug which allows store_protocols() to return > without releasing the device mutex it's holding. > > Doing that would cause infinite hangs waiting on device mutex next time > around. > > Signed-off-by: Sasha Levin <sasha.levin@oracle.com> > --- > drivers/media/rc/rc-main.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c > index 601d1ac1..0510f4d 100644 > --- a/drivers/media/rc/rc-main.c > +++ b/drivers/media/rc/rc-main.c > @@ -890,7 +890,8 @@ static ssize_t store_protocols(struct device *device, > > if (i == ARRAY_SIZE(proto_names)) { > IR_dprintk(1, "Unknown protocol: '%s'\n", tmp); > - return -EINVAL; > + ret = -EINVAL; > + goto out; > } > > count++; > -- > 1.8.0 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sat, Dec 08, 2012 at 07:50:50AM -0500, Sasha Levin wrote: >Commit c003ab1b ("[media] rc-core: add separate defines for protocol bitmaps >and numbers") has introduced a bug which allows store_protocols() to return >without releasing the device mutex it's holding. > >Doing that would cause infinite hangs waiting on device mutex next time >around. > >Signed-off-by: Sasha Levin <sasha.levin@oracle.com> Acked-by: David Härdeman <david@hardeman.nu> >--- > drivers/media/rc/rc-main.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > >diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c >index 601d1ac1..0510f4d 100644 >--- a/drivers/media/rc/rc-main.c >+++ b/drivers/media/rc/rc-main.c >@@ -890,7 +890,8 @@ static ssize_t store_protocols(struct device *device, > > if (i == ARRAY_SIZE(proto_names)) { > IR_dprintk(1, "Unknown protocol: '%s'\n", tmp); >- return -EINVAL; >+ ret = -EINVAL; >+ goto out; > } > > count++; >-- >1.8.0 >
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c index 601d1ac1..0510f4d 100644 --- a/drivers/media/rc/rc-main.c +++ b/drivers/media/rc/rc-main.c @@ -890,7 +890,8 @@ static ssize_t store_protocols(struct device *device, if (i == ARRAY_SIZE(proto_names)) { IR_dprintk(1, "Unknown protocol: '%s'\n", tmp); - return -EINVAL; + ret = -EINVAL; + goto out; } count++;
Commit c003ab1b ("[media] rc-core: add separate defines for protocol bitmaps and numbers") has introduced a bug which allows store_protocols() to return without releasing the device mutex it's holding. Doing that would cause infinite hangs waiting on device mutex next time around. Signed-off-by: Sasha Levin <sasha.levin@oracle.com> --- drivers/media/rc/rc-main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)