diff options
author | Roger Quadros <rogerq@ti.com> | 2016-08-15 09:47:39 +0200 |
---|---|---|
committer | Brian Norris <computersforpeace@gmail.com> | 2016-08-29 21:54:39 +0200 |
commit | a93295a7e118b5c58391906e47183775b1eb7cb1 (patch) | |
tree | 1a7e73c36ab3aae28dc4ae967c974f40a72b0046 /drivers/mtd | |
parent | Linux 4.8-rc1 (diff) | |
download | linux-a93295a7e118b5c58391906e47183775b1eb7cb1.tar.xz linux-a93295a7e118b5c58391906e47183775b1eb7cb1.zip |
mtd: nand: omap2: Don't call dma_release_channel() if dma_request_chan() failed
dma_request_chan() can fail returning an error pointer. In this case
prevent calling dma_release_channel() to prevent a ERR_PTR() dereference.
As error path can be called even with no DMA configuration, info->dma can
be NULL so don't call dma_release_channel() for that case either.
Fixes: de3bfc4a1616: ("mtd: nand: omap2: fix return value check in omap_nand_probe()")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Roger Quadros <rogerq@ti.com>
Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Diffstat (limited to 'drivers/mtd')
-rw-r--r-- | drivers/mtd/nand/omap2.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c index a59361c36f40..5513bfd9cdc9 100644 --- a/drivers/mtd/nand/omap2.c +++ b/drivers/mtd/nand/omap2.c @@ -2169,7 +2169,7 @@ scan_tail: return 0; return_error: - if (info->dma) + if (!IS_ERR_OR_NULL(info->dma)) dma_release_channel(info->dma); if (nand_chip->ecc.priv) { nand_bch_free(nand_chip->ecc.priv); |