All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Sean Nyekjaer <sean@geanix.com>
Cc: Boris Brezillon <boris.brezillon@collabora.com>,
	Richard Weinberger <richard@nod.at>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	Boris Brezillon <bbrezillon@kernel.org>,
	linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/3] mtd: core: protect access to mtd devices while in suspend
Date: Wed, 20 Oct 2021 09:23:31 +0200	[thread overview]
Message-ID: <20211020092331.68e46e16@xps13> (raw)
In-Reply-To: <20211020071235.in3omswo2jqrahrd@skn-laptop>

Hi Sean,

sean@geanix.com wrote on Wed, 20 Oct 2021 09:12:35 +0200:

> On Wed, Oct 20, 2021 at 09:00:58AM +0200, Boris Brezillon wrote:
> > On Wed, 20 Oct 2021 08:52:50 +0200
> > Boris Brezillon <boris.brezillon@collabora.com> wrote:
> >   
> 
> [ ... ]
> > > > 
> > > > Hi Boris and Miquel,
> > > > 
> > > > gpmi-nand.c sets NAND_SKIP_BBTSCAN so we won't get there and populate
> > > > suspend resume hooks :(
> > > > Guess there is other drivers that does the same thing...    
> > 
> > Actually, this version is even cleaner:
> > 
> > diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c
> > index 3d6c6e880520..98c39b7f6279 100644
> > --- a/drivers/mtd/nand/raw/nand_base.c
> > +++ b/drivers/mtd/nand/raw/nand_base.c
> > @@ -6222,8 +6222,6 @@ static int nand_scan_tail(struct nand_chip *chip)
> >         mtd->_sync = nand_sync;
> >         mtd->_lock = nand_lock;
> >         mtd->_unlock = nand_unlock;
> > -       mtd->_suspend = nand_suspend;
> > -       mtd->_resume = nand_resume;
> >         mtd->_reboot = nand_shutdown;
> >         mtd->_block_isreserved = nand_block_isreserved;
> >         mtd->_block_isbad = nand_block_isbad;
> > @@ -6261,14 +6259,20 @@ static int nand_scan_tail(struct nand_chip *chip)
> >                 goto err_free_interface_config;
> >  
> >         /* Check, if we should skip the bad block table scan */
> > -       if (chip->options & NAND_SKIP_BBTSCAN)
> > -               return 0;
> > -
> > -       /* Build bad block table */
> > -       ret = nand_create_bbt(chip);
> > -       if (ret)
> > -               goto err_free_secure_regions;
> > +       if (chip->options & NAND_SKIP_BBTSCAN) {
> > +               /* Build bad block table */
> > +               ret = nand_create_bbt(chip);
> > +               if (ret)
> > +                       goto err_free_secure_regions;
> > +       }
> >  
> > +       /*
> > +        * Populate the suspend/resume hooks after the BBT has been scanned to
> > +        * avoid using the suspend lock and resume waitqueue which are only
> > +        * initialized when mtd_device_register() is called.
> > +        */
> > +       mtd->_suspend = nand_suspend;
> > +       mtd->_resume = nand_resume;
> >         return 0;
> >  
> >  err_free_secure_regions:  
> 
> Why is the gpmi-nand.c and other drivers set NAND_SKIP_BBTSCAN and then
> call nand_create_bbt() directly?
> 
> To me it looks like legacy leftover...

It is...

885d71e5838f ("mtd: gpmi: fix the NULL pointer") added this flag to
avoid a NULL pointer dereference on chip->buffer->databuf on mx23,
which IIRC does not exist anymore.

I believe we could get rid of it. But anyway, I like the "cleanup"
proposed by Boris so IMHO you can add these two patches to the series.

Thanks,
Miquèl

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Sean Nyekjaer <sean@geanix.com>
Cc: Boris Brezillon <boris.brezillon@collabora.com>,
	Richard Weinberger <richard@nod.at>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	Boris Brezillon <bbrezillon@kernel.org>,
	linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/3] mtd: core: protect access to mtd devices while in suspend
Date: Wed, 20 Oct 2021 09:23:31 +0200	[thread overview]
Message-ID: <20211020092331.68e46e16@xps13> (raw)
In-Reply-To: <20211020071235.in3omswo2jqrahrd@skn-laptop>

Hi Sean,

sean@geanix.com wrote on Wed, 20 Oct 2021 09:12:35 +0200:

> On Wed, Oct 20, 2021 at 09:00:58AM +0200, Boris Brezillon wrote:
> > On Wed, 20 Oct 2021 08:52:50 +0200
> > Boris Brezillon <boris.brezillon@collabora.com> wrote:
> >   
> 
> [ ... ]
> > > > 
> > > > Hi Boris and Miquel,
> > > > 
> > > > gpmi-nand.c sets NAND_SKIP_BBTSCAN so we won't get there and populate
> > > > suspend resume hooks :(
> > > > Guess there is other drivers that does the same thing...    
> > 
> > Actually, this version is even cleaner:
> > 
> > diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c
> > index 3d6c6e880520..98c39b7f6279 100644
> > --- a/drivers/mtd/nand/raw/nand_base.c
> > +++ b/drivers/mtd/nand/raw/nand_base.c
> > @@ -6222,8 +6222,6 @@ static int nand_scan_tail(struct nand_chip *chip)
> >         mtd->_sync = nand_sync;
> >         mtd->_lock = nand_lock;
> >         mtd->_unlock = nand_unlock;
> > -       mtd->_suspend = nand_suspend;
> > -       mtd->_resume = nand_resume;
> >         mtd->_reboot = nand_shutdown;
> >         mtd->_block_isreserved = nand_block_isreserved;
> >         mtd->_block_isbad = nand_block_isbad;
> > @@ -6261,14 +6259,20 @@ static int nand_scan_tail(struct nand_chip *chip)
> >                 goto err_free_interface_config;
> >  
> >         /* Check, if we should skip the bad block table scan */
> > -       if (chip->options & NAND_SKIP_BBTSCAN)
> > -               return 0;
> > -
> > -       /* Build bad block table */
> > -       ret = nand_create_bbt(chip);
> > -       if (ret)
> > -               goto err_free_secure_regions;
> > +       if (chip->options & NAND_SKIP_BBTSCAN) {
> > +               /* Build bad block table */
> > +               ret = nand_create_bbt(chip);
> > +               if (ret)
> > +                       goto err_free_secure_regions;
> > +       }
> >  
> > +       /*
> > +        * Populate the suspend/resume hooks after the BBT has been scanned to
> > +        * avoid using the suspend lock and resume waitqueue which are only
> > +        * initialized when mtd_device_register() is called.
> > +        */
> > +       mtd->_suspend = nand_suspend;
> > +       mtd->_resume = nand_resume;
> >         return 0;
> >  
> >  err_free_secure_regions:  
> 
> Why is the gpmi-nand.c and other drivers set NAND_SKIP_BBTSCAN and then
> call nand_create_bbt() directly?
> 
> To me it looks like legacy leftover...

It is...

885d71e5838f ("mtd: gpmi: fix the NULL pointer") added this flag to
avoid a NULL pointer dereference on chip->buffer->databuf on mx23,
which IIRC does not exist anymore.

I believe we could get rid of it. But anyway, I like the "cleanup"
proposed by Boris so IMHO you can add these two patches to the series.

Thanks,
Miquèl

  reply	other threads:[~2021-10-20  7:24 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-11 11:52 [PATCH 0/3] mtd: core: protect access to mtd devices while in suspend Sean Nyekjaer
2021-10-11 11:52 ` Sean Nyekjaer
2021-10-11 11:52 ` [PATCH 1/3] mtd: core: protect access to MTD " Sean Nyekjaer
2021-10-11 11:52   ` Sean Nyekjaer
2021-10-11 13:37   ` Boris Brezillon
2021-10-11 13:37     ` Boris Brezillon
2021-10-14  6:50   ` [mtd] d3ff51cfa9: WARNING:at_kernel/locking/rwsem.c:#down_read kernel test robot
2021-10-14  6:50     ` kernel test robot
2021-10-14  6:50     ` kernel test robot
2021-10-15  6:55   ` [PATCH 1/3] mtd: core: protect access to MTD devices while in suspend Boris Brezillon
2021-10-15  6:55     ` Boris Brezillon
2021-10-11 11:52 ` [PATCH 2/3] mtd: rawnand: remove suspended check Sean Nyekjaer
2021-10-11 11:52   ` Sean Nyekjaer
2021-10-11 11:52 ` [PATCH 3/3] mtd: mtdconcat: add suspend lock handling Sean Nyekjaer
2021-10-11 11:52   ` Sean Nyekjaer
2021-10-11 13:15   ` Boris Brezillon
2021-10-11 13:15     ` Boris Brezillon
2021-10-11 13:27     ` Boris Brezillon
2021-10-11 13:27       ` Boris Brezillon
2021-10-11 13:35       ` Sean Nyekjaer
2021-10-11 13:35         ` Sean Nyekjaer
2021-10-11 13:49         ` Boris Brezillon
2021-10-11 13:49           ` Boris Brezillon
2021-10-11 13:58   ` Boris Brezillon
2021-10-11 13:58     ` Boris Brezillon
2021-10-11 14:05 ` [PATCH 0/3] mtd: core: protect access to mtd devices while in suspend Boris Brezillon
2021-10-11 14:05   ` Boris Brezillon
2021-10-15  6:22   ` Miquel Raynal
2021-10-15  6:22     ` Miquel Raynal
2021-10-19 18:08     ` Sean Nyekjaer
2021-10-19 18:08       ` Sean Nyekjaer
2021-10-20  6:52       ` Boris Brezillon
2021-10-20  6:52         ` Boris Brezillon
2021-10-20  7:00         ` Boris Brezillon
2021-10-20  7:00           ` Boris Brezillon
2021-10-20  7:12           ` Miquel Raynal
2021-10-20  7:12             ` Miquel Raynal
2021-10-20  7:23             ` Sean Nyekjaer
2021-10-20  7:23               ` Sean Nyekjaer
2021-10-20  7:47               ` Boris Brezillon
2021-10-20  7:47                 ` Boris Brezillon
2021-10-20  7:12           ` Sean Nyekjaer
2021-10-20  7:12             ` Sean Nyekjaer
2021-10-20  7:23             ` Miquel Raynal [this message]
2021-10-20  7:23               ` Miquel Raynal
2021-10-20  7:30             ` Boris Brezillon
2021-10-20  7:30               ` Boris Brezillon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211020092331.68e46e16@xps13 \
    --to=miquel.raynal@bootlin.com \
    --cc=bbrezillon@kernel.org \
    --cc=boris.brezillon@collabora.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=richard@nod.at \
    --cc=sean@geanix.com \
    --cc=vigneshr@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.