[PATCH v2 6/8] MTD: xway: fix nand locking

Boris Brezillon boris.brezillon at free-electrons.com
Sun Jun 19 05:58:22 PDT 2016


On Sun, 19 Jun 2016 14:53:40 +0200
Richard Weinberger <richard at nod.at> wrote:

> Am 19.06.2016 um 14:41 schrieb Boris Brezillon:
> > On Sat, 18 Jun 2016 21:14:10 +0200
> > Hauke Mehrtens <hauke at hauke-m.de> wrote:
> >   
> >> From: John Crispin <john at phrozen.org>
> >>
> >> The external Bus Unit (EBU) can control different flash devices, but
> >> these NAND flash commands have to be atomic and should not be
> >> interrupted in between. Lock the EBU from the beginning of the command
> >> till the end by moving the lock to the chip select.
> >>
> >> Signed-off-by: John Crispin <john at phrozen.org>
> >> Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
> >> ---
> >>  drivers/mtd/nand/xway_nand.c | 20 ++++----------------
> >>  1 file changed, 4 insertions(+), 16 deletions(-)
> >>
> >> diff --git a/drivers/mtd/nand/xway_nand.c b/drivers/mtd/nand/xway_nand.c
> >> index 1511bdb..064ee41 100644
> >> --- a/drivers/mtd/nand/xway_nand.c
> >> +++ b/drivers/mtd/nand/xway_nand.c
> >> @@ -94,13 +94,16 @@ static void xway_reset_chip(struct nand_chip *chip)
> >>  
> >>  static void xway_select_chip(struct mtd_info *mtd, int chip)
> >>  {
> >> +	static unsigned long csflags;  
> 
> Why is csflags static? AFAICT this is racy then...

Oh, nice catch! It's definitely wrong.

> 
> Thanks,
> //richard




More information about the linux-mtd mailing list