All of lore.kernel.org
 help / color / mirror / Atom feed
From: Al Viro <viro@ZenIV.linux.org.uk>
To: Jia-Ju Bai <baijiaju1990@gmail.com>
Cc: tim@cyberelk.net, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] block: paride: on26: Replace mdelay with msleep in on26_test_port
Date: Fri, 26 Jan 2018 17:31:30 +0000	[thread overview]
Message-ID: <20180126173130.GZ13338@ZenIV.linux.org.uk> (raw)
In-Reply-To: <1516981345-8202-1-git-send-email-baijiaju1990@gmail.com>

On Fri, Jan 26, 2018 at 11:42:25PM +0800, Jia-Ju Bai wrote:
> After checking all possible call chains to on26_test_port() here,
> my tool finds that this function is never called in atomic context,
> namely never in an interrupt handler or holding a spinlock.
> And on26_test_port() is only called by pi_probe_unit() that calls 
> wait_event() through pi_claim(),
> so it indicates that on26_test_port() can call functions that can sleep.
> Thus mdelay can be replaced with msleep to avoid busy wait.

Sigh...  Here's how I would've written it:

"
on26_test_port() is never called from atomic contexts.

It has no direct callers and it is reachable only via ->test_port.
->test_port has only one user:
drivers/block/paride/paride.c:322:              max = pi->proto->test_port(pi);
in pi_probe_unit().  That gets called only from pi_init(), called from
p{d,cd,f,t,g}_detect(), called from module_init stuff, all of the above
without entering atomic contexts along the way.

Despite never getting called from atomic contexts, on26_test_port() contains
mdelay(100), i.e. busy-loops for 0.1s; that's neither nice nor needed, since
msleep() would serve just as well.

Found by [reference to tool]"

  reply	other threads:[~2018-01-26 17:31 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-26 15:42 [PATCH] block: paride: on26: Replace mdelay with msleep in on26_test_port Jia-Ju Bai
2018-01-26 17:31 ` Al Viro [this message]
2018-01-27  4:13   ` Jia-Ju Bai

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=20180126173130.GZ13338@ZenIV.linux.org.uk \
    --to=viro@zeniv.linux.org.uk \
    --cc=baijiaju1990@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tim@cyberelk.net \
    /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.