Message ID | 1530439761164133@kroah.com |
---|---|
State | Not Applicable |
Headers | show |
Series | Patch "mtd: cfi_cmdset_0002: Change erase functions to retry for error" has been added to the 4.17-stable tree | expand |
On Sun, Jul 01, 2018 at 12:09:21PM +0200, gregkh@linuxfoundation.org wrote: > > This is a note to let you know that I've just added the patch titled > > mtd: cfi_cmdset_0002: Change erase functions to retry for error > > to the 4.17-stable tree which can be found at: > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary Nope, this broke the build everywhere, so I've dropped it from all trees now. If you want this backported, please provide a working version. thanks, greg k-h
Hi Greg, On Sun, 1 Jul 2018 12:22:05 +0200 Greg KH <gregkh@linuxfoundation.org> wrote: > On Sun, Jul 01, 2018 at 12:09:21PM +0200, gregkh@linuxfoundation.org wrote: > > > > This is a note to let you know that I've just added the patch titled > > > > mtd: cfi_cmdset_0002: Change erase functions to retry for error > > > > to the 4.17-stable tree which can be found at: > > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary > > Nope, this broke the build everywhere, so I've dropped it from all trees > now. If you want this backported, please provide a working version. That's not surprising, this patch depends on "mtd: cfi_cmdset_0002: Change definition naming to retry write" which did not apply cleanly on 4.17. To be honest, I was not convinced those 2 patches deserved to be backported to stable releases, but Joakim and Ikegami thought they were good candidate. I'll let Ikegami propose a revised version of those 2 patches that apply cleanly on 4.17 if he wants. Sorry for the inconvenience. Regards, Boris
Hi Greg-san and Boris-san, Sorry for the error caused. I have just sent the patches revised for the stable branches separately to Greg-san by git send-emal. If you are okay please applied the patches. Note: The patch series includes the patch below already applied in stable-queue.git as PATCH 1/4. mtd-cfi_cmdset_0002-change-write-buffer-to-check-correct-value.patch If any problem or concern please let me know. Regards, Ikegami > -----Original Message----- > From: Boris Brezillon [mailto:boris.brezillon@bootlin.com] > Sent: Sunday, July 01, 2018 10:34 PM > To: Greg KH > Cc: Joakim.Tjernlund@infinera.com; > boris.brezillon@free-electrons.com; PACKHAM Chris; > computersforpeace@gmail.com; cyrille.pitchen@wedev4u.fr; > dwmw2@infradead.org; IKEGAMI Tokunori; linux-mtd@lists.infradead.org; > marek.vasut@gmail.com; richard@nod.at; stable-commits@vger.kernel.org > Subject: Re: Patch "mtd: cfi_cmdset_0002: Change erase functions to > retry for error" has been added to the 4.17-stable tree > > Hi Greg, > > On Sun, 1 Jul 2018 12:22:05 +0200 > Greg KH <gregkh@linuxfoundation.org> wrote: > > > On Sun, Jul 01, 2018 at 12:09:21PM +0200, gregkh@linuxfoundation.org > wrote: > > > > > > This is a note to let you know that I've just added the patch titled > > > > > > mtd: cfi_cmdset_0002: Change erase functions to retry for error > > > > > > to the 4.17-stable tree which can be found at: > > > > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.gi > t;a=summary > > > > Nope, this broke the build everywhere, so I've dropped it from all trees > > now. If you want this backported, please provide a working version. > > That's not surprising, this patch depends on "mtd: cfi_cmdset_0002: > Change definition naming to retry write" which did not apply cleanly on > 4.17. > > To be honest, I was not convinced those 2 patches deserved to be > backported to stable releases, but Joakim and Ikegami thought they were > good candidate. I'll let Ikegami propose a revised version of those 2 > patches that apply cleanly on 4.17 if he wants. > > Sorry for the inconvenience. > > Regards, > > Boris
--- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -2241,6 +2241,7 @@ static int __xipram do_erase_chip(struct unsigned long int adr; DECLARE_WAITQUEUE(wait, current); int ret = 0; + int retry_cnt = 0; adr = cfi->addr_unlock1; @@ -2258,6 +2259,7 @@ static int __xipram do_erase_chip(struct ENABLE_VPP(map); xip_disable(map, chip, adr); + retry: cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL); cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, cfi->device_type, NULL); cfi_send_gen_cmd(0x80, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL); @@ -2312,6 +2314,9 @@ static int __xipram do_erase_chip(struct map_write( map, CMD(0xF0), chip->start ); /* FIXME - should have reset delay before continuing */ + if (++retry_cnt <= MAX_RETRIES) + goto retry; + ret = -EIO; } @@ -2331,6 +2336,7 @@ static int __xipram do_erase_oneblock(st unsigned long timeo = jiffies + HZ; DECLARE_WAITQUEUE(wait, current); int ret = 0; + int retry_cnt = 0; adr += chip->start; @@ -2348,6 +2354,7 @@ static int __xipram do_erase_oneblock(st ENABLE_VPP(map); xip_disable(map, chip, adr); + retry: cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL); cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, cfi->device_type, NULL); cfi_send_gen_cmd(0x80, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL); @@ -2405,6 +2412,9 @@ static int __xipram do_erase_oneblock(st map_write( map, CMD(0xF0), chip->start ); /* FIXME - should have reset delay before continuing */ + if (++retry_cnt <= MAX_RETRIES) + goto retry; + ret = -EIO; }