LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: Hillf Danton <hdanton@sina.com>,
hch@infradead.org, axboe@kernel.dk, desmondcheongzx@gmail.com,
linux-block@vger.kernel.org,
linux-kernel-mentees@lists.linuxfoundation.org,
linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org,
miquel.raynal@bootlin.com, richard@nod.at,
Shuah Khan <skhan@linuxfoundation.org>,
syzbot+6a8a0d93c91e8fbf2e80@syzkaller.appspotmail.com,
vigneshr@ti.com
Subject: Re: [PATCH v2] block: genhd: don't call probe function with major_names_lock held
Date: Mon, 21 Jun 2021 10:54:26 +0200 [thread overview]
Message-ID: <YNBTwhbJ/uiE8iZe@kroah.com> (raw)
In-Reply-To: <24b7c3a9-e10a-f983-9fde-1ae66b0bc6b0@i-love.sakura.ne.jp>
On Sun, Jun 20, 2021 at 10:54:20PM +0900, Tetsuo Handa wrote:
> On 2021/06/20 11:44, Hillf Danton wrote:
> > Good craft in regard to triggering the ABBA deadlock, but curious why not
> > move unregister_blkdev out of and before loop_ctl_mutex, given it will also
> > serialise with the prober.
> >
>
> Well, something like this untested diff?
>
> Call unregister_blkdev() as soon as __exit function starts, for calling
> probe function after cleanup started will be unexpected for __exit function.
>
> Keep probe function no-op until __init function ends, for probe function
> might be called as soon as __register_blkdev() succeeded but calling probe
> function before setup completes will be unexpected for __init function.
>
> drivers/block/ataflop.c | 6 +++++-
> drivers/block/brd.c | 8 ++++++--
> drivers/block/floppy.c | 4 ++++
> drivers/block/loop.c | 4 ++--
> drivers/ide/ide-probe.c | 8 +++++++-
> drivers/md/md.c | 5 +++++
> drivers/scsi/sd.c | 10 +---------
> 7 files changed, 30 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/block/ataflop.c b/drivers/block/ataflop.c
> index d601e49f80e0..3681e8c493b1 100644
> --- a/drivers/block/ataflop.c
> +++ b/drivers/block/ataflop.c
> @@ -1995,6 +1995,7 @@ static int ataflop_alloc_disk(unsigned int drive, unsigned int type)
> }
>
> static DEFINE_MUTEX(ataflop_probe_lock);
> +static bool module_initialize_completed;
This is almost always wrong.
>
> static void ataflop_probe(dev_t dev)
> {
> @@ -2006,6 +2007,8 @@ static void ataflop_probe(dev_t dev)
>
> if (drive >= FD_MAX_UNITS || type >= NUM_DISK_MINORS)
> return;
> + if (!module_initialize_completed)
> + return;
This is not correct, when you register a callback structure, it can be
instantly called. Do not expect it to be delayed until later.
thanks,
greg k-h
next prev parent reply other threads:[~2021-06-21 8:54 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-19 1:05 Tetsuo Handa
2021-06-19 3:24 ` kernel test robot
2021-06-19 6:14 ` kernel test robot
2021-06-19 6:44 ` Greg KH
2021-06-19 8:47 ` Tetsuo Handa
[not found] ` <20210620024403.820-1-hdanton@sina.com>
2021-06-20 13:54 ` Tetsuo Handa
2021-06-21 8:54 ` Greg KH [this message]
2021-06-21 6:18 ` Christoph Hellwig
[not found] ` <4e153910-bf60-2cca-fa02-b46d22b6e2c5@i-love.sakura.ne.jp>
[not found] ` <20210816073313.GA27275@lst.de>
[not found] ` <20210817081045.3609-1-hdanton@sina.com>
2021-08-17 10:18 ` [PATCH v3] " Tetsuo Handa
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=YNBTwhbJ/uiE8iZe@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=axboe@kernel.dk \
--cc=desmondcheongzx@gmail.com \
--cc=hch@infradead.org \
--cc=hdanton@sina.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel-mentees@lists.linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=miquel.raynal@bootlin.com \
--cc=penguin-kernel@i-love.sakura.ne.jp \
--cc=richard@nod.at \
--cc=skhan@linuxfoundation.org \
--cc=syzbot+6a8a0d93c91e8fbf2e80@syzkaller.appspotmail.com \
--cc=vigneshr@ti.com \
--subject='Re: [PATCH v2] block: genhd: don'\''t call probe function with major_names_lock held' \
/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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).