Patchwork mtd: cfi_cmdset_0002: check return code for get_chip()

login
register
mail settings
Submitter Brian Norris
Date Aug. 14, 2014, 6:35 a.m.
Message ID <1407998124-3166-1-git-send-email-computersforpeace@gmail.com>
Download mbox | patch
Permalink /patch/379831/
State Accepted
Headers show

Comments

Brian Norris - Aug. 14, 2014, 6:35 a.m.
Untested

Coverity CID 1230633

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Cc: Christian Riesch <christian.riesch@omicron.at>
---
 drivers/mtd/chips/cfi_cmdset_0002.c |    4 ++++
 1 file changed, 4 insertions(+)
Christian Riesch - Aug. 14, 2014, 8:30 a.m.
Hi Brian,
Thanks for catching this!

On Thu, Aug 14, 2014 at 8:35 AM, Brian Norris
<computersforpeace@gmail.com> wrote:
> Untested
>
> Coverity CID 1230633
>
> Signed-off-by: Brian Norris <computersforpeace@gmail.com>
> Cc: Christian Riesch <christian.riesch@omicron.at>
> ---
>  drivers/mtd/chips/cfi_cmdset_0002.c |    4 ++++
>  1 file changed, 4 insertions(+)

Tested-by: Christian Riesch <christian.riesch@omicron.at>

Regards,
Christian

>
> diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
> index 6da141af9cba..c50d8cf0f60d 100644
> --- a/drivers/mtd/chips/cfi_cmdset_0002.c
> +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
> @@ -1434,6 +1434,10 @@ static int cfi_amdstd_otp_walk(struct mtd_info *mtd, loff_t from, size_t len,
>
>                                 mutex_lock(&chip->mutex);
>                                 ret = get_chip(map, chip, base, FL_LOCKING);
> +                               if (ret) {
> +                                       mutex_unlock(&chip->mutex);
> +                                       return ret;
> +                               }
>
>                                 /* Enter lock register command */
>                                 cfi_send_gen_cmd(0xAA, cfi->addr_unlock1,
> --
> 1.7.9.5
>
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
Brian Norris - Aug. 16, 2014, 1:16 a.m.
On Thu, Aug 14, 2014 at 10:30:32AM +0200, Christian Riesch wrote:
> Hi Brian,
> Thanks for catching this!

Don't thank me, thank Coverity (TM)! (And Dave Jones, I guess, since he
maintains the project instance.)

> On Thu, Aug 14, 2014 at 8:35 AM, Brian Norris
> <computersforpeace@gmail.com> wrote:
> > Untested
> >
> > Coverity CID 1230633
> >
> > Signed-off-by: Brian Norris <computersforpeace@gmail.com>
> > Cc: Christian Riesch <christian.riesch@omicron.at>
> > ---
> >  drivers/mtd/chips/cfi_cmdset_0002.c |    4 ++++
> >  1 file changed, 4 insertions(+)
> 
> Tested-by: Christian Riesch <christian.riesch@omicron.at>

Thanks! Queued to linux-mtd.git/master. It'll probably go in 3.16, as
it's a fix for a new feature.

Brian

[1] http://codemonkey.org.uk/2014/08/05/linux-316-coverity-stats/
Brian Norris - Aug. 19, 2014, 7:12 p.m.
On Fri, Aug 15, 2014 at 6:16 PM, Brian Norris
<computersforpeace@gmail.com> wrote:
> Thanks! Queued to linux-mtd.git/master. It'll probably go in 3.16, as
> it's a fix for a new feature.

Just noticed my typo: this is of course for 3.17, not 3.16 :)

Brian

Patch

diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
index 6da141af9cba..c50d8cf0f60d 100644
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -1434,6 +1434,10 @@  static int cfi_amdstd_otp_walk(struct mtd_info *mtd, loff_t from, size_t len,
 
 				mutex_lock(&chip->mutex);
 				ret = get_chip(map, chip, base, FL_LOCKING);
+				if (ret) {
+					mutex_unlock(&chip->mutex);
+					return ret;
+				}
 
 				/* Enter lock register command */
 				cfi_send_gen_cmd(0xAA, cfi->addr_unlock1,