lkml.org 
[lkml]   [2019]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v3] cfi: fix deadloop in cfi_cmdset_0002.c do_write_buffer
    The "mtd: " prefix is still missing. Should be "mtd: cfi: ". If you
    send a new version, please fix that.

    Thanks,

    Boris

    On Tue, 26 Feb 2019 22:00:48 +0800
    Liu Jian <liujian56@huawei.com> wrote:

    > In function do_write_buffer(), in the for loop, there is a case
    > chip_ready() returns 1 while chip_good() returns 0, so it never
    > break the loop.
    > To fix this, chip_good() is enough and it should timeout if it stay
    > bad for a while.
    >
    > Fixes: dfeae1073583("mtd: cfi_cmdset_0002: Change write buffer to check correct value")
    > Signed-off-by: Yi Huaijie <yihuaijie@huawei.com>
    > Signed-off-by: Liu Jian <liujian56@huawei.com>
    > Reviewed-by: Tokunori Ikegami <ikegami_to@yahoo.co.jp>
    > ---
    > v2->v3:
    > Follow Vignesh's advice:
    > add one more check for check_good() even when time_after() returns true.
    >
    > drivers/mtd/chips/cfi_cmdset_0002.c | 2 +-
    > 1 file changed, 1 insertion(+), 1 deletion(-)
    >
    > diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
    > index 72428b6..3da2376 100644
    > --- a/drivers/mtd/chips/cfi_cmdset_0002.c
    > +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
    > @@ -1876,7 +1876,7 @@ static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
    > continue;
    > }
    >
    > - if (time_after(jiffies, timeo) && !chip_ready(map, adr))
    > + if (time_after(jiffies, timeo) && !chip_good(map, adr, datum))
    > break;
    >
    > if (chip_good(map, adr, datum)) {

    \
     
     \ /
      Last update: 2019-03-01 20:57    [W:3.325 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site