lkml.org 
[lkml]   [2016]   [Apr]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.5 229/238] mtd: onenand: fix deadlock in onenand_block_markbad
    Date
    4.5-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Aaro Koskinen <aaro.koskinen@iki.fi>

    commit 5e64c29e98bfbba1b527b0a164f9493f3db9e8cb upstream.

    Commit 5942ddbc500d ("mtd: introduce mtd_block_markbad interface")
    incorrectly changed onenand_block_markbad() to call mtd_block_markbad
    instead of onenand_chip's block_markbad function. As a result the function
    will now recurse and deadlock. Fix by reverting the change.

    Fixes: 5942ddbc500d ("mtd: introduce mtd_block_markbad interface")
    Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
    Acked-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: Brian Norris <computersforpeace@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/mtd/onenand/onenand_base.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    --- a/drivers/mtd/onenand/onenand_base.c
    +++ b/drivers/mtd/onenand/onenand_base.c
    @@ -2599,6 +2599,7 @@ static int onenand_default_block_markbad
    */
    static int onenand_block_markbad(struct mtd_info *mtd, loff_t ofs)
    {
    + struct onenand_chip *this = mtd->priv;
    int ret;

    ret = onenand_block_isbad(mtd, ofs);
    @@ -2610,7 +2611,7 @@ static int onenand_block_markbad(struct
    }

    onenand_get_device(mtd, FL_WRITING);
    - ret = mtd_block_markbad(mtd, ofs);
    + ret = this->block_markbad(mtd, ofs);
    onenand_release_device(mtd);
    return ret;
    }

    \
     
     \ /
      Last update: 2016-04-10 22:41    [W:4.055 / U:0.344 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site