From: Manfred Spraul <manfred@colorfullife.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: Arnaldo Carvalho de Melo <acme@conectiva.com.br>,
linux-kernel@vger.kernel.org
Subject: Re: [ANNOUNCE] Kernel Janitor's TODO list
Date: Sun, 28 Jan 2001 18:40:58 +0100 [thread overview]
Message-ID: <3A7459AA.84CDCF7B@colorfullife.com> (raw)
In-Reply-To: <Pine.LNX.4.30.0101281653020.26076-100000@imladris.demon.co.uk>
David Woodhouse wrote:
>
> TIOCMIWAIT does restore_flags() before interruptible_sleep_on(). It's
> broken too.
>
Yes, and I found a second bug: it doesn't sti() immediately after
interruptible_sleep_on(), thus cli() doesn't reacquire the global irq
lock --> the atomic copy won't be atomic on SMP.
And one more point for the Janitor's list:
Get rid of superflous irqsave()/irqrestore()'s - in 90% of the cases
either spin_lock_irq() or spin_lock() is sufficient. That's both faster
and better readable.
spin_lock_irq(): you know that the function is called with enabled
interrupts.
spin_lock(): can be used in hardware interrupt handlers when only one
hardware interrupt uses that spinlocks (most hardware drivers), or when
all hardware interrupt handler set the SA_INTERRUPT flag (e.g. rtc and
timer interrupt)
There is one more rule when you can use spin_lock_irq():
if you know that the function might sleep. E.g. compare make_request
from 2.2.18 and __make_request() from 2.4.
Since __get_request_wait() can sleep, the callers of make_request()
cannot rely on disabled interrupts, thus spin_lock_irq instead of
spin_lock_irqsave().
--
Manfred
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
next prev parent reply other threads:[~2001-01-28 17:41 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-01-28 16:14 [ANNOUNCE] Kernel Janitor's TODO list Manfred Spraul
2001-01-28 14:36 ` Arnaldo Carvalho de Melo
2001-01-28 16:45 ` Manfred Spraul
2001-01-28 17:07 ` David Woodhouse
2001-01-28 17:40 ` Manfred Spraul [this message]
2001-01-28 18:51 ` Roman Zippel
2001-01-29 17:01 ` Timur Tabi
2001-01-29 17:10 ` John Levon
2001-01-29 18:27 ` David D.W. Downey
2001-01-29 20:44 ` davej
2001-01-29 20:51 ` Timur Tabi
2001-01-29 20:56 ` Rasmus Andersen
2001-01-30 0:29 ` Peter Samuelson
2001-01-30 0:20 ` Ingo Oeser
2001-01-30 11:11 ` David Woodhouse
2001-01-30 16:52 ` Timur Tabi
2001-01-31 0:06 ` Daniel Phillips
2001-01-31 0:09 ` Timur Tabi
2001-01-31 9:14 ` David Woodhouse
2001-01-30 17:10 ` David Woodhouse
2001-01-29 17:26 ` Andi Kleen
2001-01-29 19:47 ` Roman Zippel
2001-01-29 20:35 ` Andi Kleen
2001-02-16 14:29 ` Andrea Arcangeli
2001-02-16 14:26 ` Andrea Arcangeli
2001-01-31 17:57 ` Alan Cox
2001-01-31 19:15 ` Manfred Spraul
-- strict thread matches above, loose matches on Subject: below --
2001-01-30 1:22 Rusty Russell
2001-01-30 3:08 ` Andrew Morton
2001-01-27 17:11 Arnaldo Carvalho de Melo
2001-01-28 15:20 ` David Woodhouse
2001-01-28 14:03 ` Arnaldo Carvalho de Melo
2001-01-28 15:49 ` Michael H. Warfield
2001-01-28 16:13 ` Andrew Morton
2001-01-28 14:28 ` Arnaldo Carvalho de Melo
2001-01-28 14:33 ` Arnaldo Carvalho de Melo
2001-01-30 1:05 ` Rusty Russell
2001-01-30 11:19 ` Daniel Phillips
2001-01-30 17:49 ` Daniel Phillips
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=3A7459AA.84CDCF7B@colorfullife.com \
--to=manfred@colorfullife.com \
--cc=acme@conectiva.com.br \
--cc=dwmw2@infradead.org \
--cc=linux-kernel@vger.kernel.org \
/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.