From: Alan Cox <alan-qBU/x9rampVanCEyBjwyrvXRex20P6io@public•gmane.org>
To: Dave Martin <dave.martin-QSEj5FYQhm4dnm+yROfE0A@public•gmane.org>
Cc: Stephen Rothwell <sfr-3FnU+UHB4dNDw9hX6IcOSA@public•gmane.org>,
Russell King - ARM Linux
<linux-lFZ/pmaqli7XmaaqVzeoHQ@public•gmane.org>,
Pawel Moll <pawel.moll-5wv7dgnIgG8@public•gmane.org>,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public•gmane.org,
LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public•gmane.org>,
Jeff Garzik <jgarzik-H+wXaHxf7aLQT0dZR+AlfA@public•gmane.org>,
linux-ide-u79uwXL29TY76Z2rM5mHXA@public•gmane.org,
Randy Dunlap <rdunlap-/UHa2rfvQTnk1uMJSBkQmQ@public•gmane.org>,
linux-next-u79uwXL29TY76Z2rM5mHXA@public•gmane.org,
Anton Vorontsov
<cbouatmailru-Re5JQEeQqe8AvxtiuMwx3w@public•gmane.org>,
Andrew Morton
<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public•gmane.org>,
Linus Torvalds
<torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public•gmane.org>,
Ingo Molnar <mingo-X9Un+BFzKDI@public•gmane.org>,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public•gmane.org
Subject: Re: [PATCH] ata: Don't use NO_IRQ in pata_of_platform driver
Date: Mon, 5 Dec 2011 17:41:32 +0000 [thread overview]
Message-ID: <20111205174132.564e0bb0@lxorguk.ukuu.org.uk> (raw)
In-Reply-To: <20111205161157.GA27550-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
> Russell, do you know whether it would make sense to set a timeline for
> removing NO_IRQ from ARM platforms and migrating to 0 for the no-interrupt
> case? I'm assuming that this mainly involves migrating existing hard-wired
> code that deals with interrupt numbers to use irq domains.
The timelime was several years ago. Several years of complete inaction
later the chickens have come home to roost.
I refer you to Linus mail of 26 Sept 2006 to linux-kernel ('restore
libata build on frv')
Quoting Linus email:
>> That's fine -- but don't use zero to mean none. We have NO_IRQ for
>> that, and zero isn't an appropriate choice.
>
> Zero _is_ an appropriate choice, dammit!
>
> That NO_IRQ thing should be zero, and any architecture that thinks that
>zero is a valid IRQ just needs to fix its own irq mapping so that the
> "cookie" doesn't work.
>
> The thing is, it's zero. Get over it. It can't be "-1" or some other
> random value like people have indicated, because that thing is often read
> from places where "-1" simply isn't a possible value (eg it gets its
> default value initialized from a "unsigned char" in MMIO space on x86).
>
> So instead of making everybody and their dog to silly things with some
> NO_IRQ define that they haven't historically done, the rule is simple: "0"
> means "no irq", so that you can test for it with obvious code like
>
> if (!dev->irq)
> ..
>
> and then, if your actual _hardware_ things that the bit-pattern with all
> bits clear is a valid irq that can be used for normal devices, then what
> you do is you add a irq number translation layer (WHICH WE NEED AND HAVE
> _ANYWAY_) and make sure that nobody sees that on a _software_ level.
----------
On 15th October 2008 Linus said the following to linux-next
> Grr. Can we please just get rid of that IDIOTIC thing instead?
>
> NO_IRQ was a bad idea to begin with. Let's not add more.
>
> I assume that broken driver is some ARM-specific thing. I certainly don't
> want to see NO_IRQ in any general drivers. So instead of having that
> NO_IRQ insanity spread any more, I'd much rather see the driver either
> fixed to not use it, or just marked ARM-only.
>
> The proper way to test for whether an interrupt is valid or not is to do
>
> if (dev->irq) {
> ...
> and no other. There is no spoon. That NO_IRQ was insane. And
> architectures or drivers that still think otherwise should fix themselves.
------------
So there we are.. ARM spent years ignoring clear direction. If ARM breaks
for a release now so be it. You've had *YEARS* to get off your collective
backsides and sort it out.
> I worry that if we just change the convention for the OF case, we'll end
> up with OF-ised platform drivers which have to deal with a different no-
> irq convention depending on whether they are probed as platform drivers
> or through the OF framework ... and these ported or semi-ported drivers
> will be intermixed with unported drivers, confusing maintainers
All drivers should assume that if (!dev->irq) works. Zero is not an IRQ
except in certain buried internal invisible cases in arch code (legacy PC
timer being the obvious one).
Come to think about it we had a prior discussion about NO_IRQ in 2005
even!
The core kernel generic IRQ code knows about zero being special, many
common driver layer components such as serial and network phylib do, so
if anything it's going to fix bugs sorting the mess out on ARM.
Jut fix it. Other platforms have done so without problem.
Alan
next prev parent reply other threads:[~2011-12-05 17:41 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-11 9:11 linux-next: Tree for Oct 11 Stephen Rothwell
2011-10-11 18:26 ` [PATCH -next] x86: perf_event_intel.c needs export.h Randy Dunlap
2011-10-11 18:49 ` linux-next: Tree for Oct 11 (mmc) Randy Dunlap
2011-10-11 19:31 ` mmc core broken dependency on CONFIG_BLOCK (Was: linux-next: Tree for Oct 11 (mmc)) Andrei Warkentin
2011-10-11 21:59 ` Randy Dunlap
2011-10-11 23:20 ` NamJae Jeon
2011-10-11 23:48 ` Andrei Warkentin
2011-10-12 0:16 ` NamJae Jeon
2011-10-12 0:50 ` Andrei Warkentin
2011-10-12 1:55 ` NamJae Jeon
2011-10-11 19:15 ` [PATCH -next] jbd2: fix build when CONFIG_BUG is not enabled Randy Dunlap
2011-10-27 8:06 ` Ted Ts'o
2011-10-11 19:26 ` linux-next: Tree for Oct 11 (mfd/intel_msic.c) Randy Dunlap
2011-10-11 19:32 ` linux-next: Tree for Oct 11 (gpio regulator) Randy Dunlap
2011-10-11 20:22 ` Heiko Stübner
2011-10-11 20:37 ` linux-next: Tree for Oct 11 (ata/pata_of_platform.c) Randy Dunlap
2011-10-14 17:58 ` Randy Dunlap
2011-11-10 13:57 ` Ingo Molnar
2011-11-10 14:25 ` Alan Cox
2011-11-10 15:18 ` [PATCH] ata: Fix build error in pata_of_platform (NO_IRQ usage) Anton Vorontsov
2011-11-10 15:25 ` [PATCH 1/2] of/irq: Get rid of NO_IRQ usage Anton Vorontsov
2011-12-06 21:22 ` Rob Herring
2011-12-06 21:25 ` Linus Torvalds
2011-12-06 23:16 ` [PATCH v3] " Anton Vorontsov
2011-12-07 3:51 ` Rob Herring
[not found] ` <20111206231626.GA31683-wnGakbxT3iijyJ0x5qLZdcN33GVbZNy3@public.gmane.org>
2011-12-07 9:52 ` Wolfram Sang
2011-11-10 15:26 ` [PATCH 2/2] ata: Don't use NO_IRQ in pata_of_platform driver Anton Vorontsov
2011-11-10 15:38 ` Alan Cox
2011-11-10 16:28 ` [PATCH] " Anton Vorontsov
2011-11-10 20:34 ` Jeff Garzik
2011-12-02 19:19 ` Dave Martin
2011-12-02 22:34 ` Anton Vorontsov
2011-12-02 22:40 ` Anton Vorontsov
2011-12-02 22:46 ` Anton Vorontsov
2011-12-02 22:40 ` Linus Torvalds
2011-12-02 23:18 ` [PATCH v2] of/irq: Get rid of NO_IRQ usage Anton Vorontsov
2011-12-02 23:22 ` [PATCH] ata: Don't use NO_IRQ in pata_of_platform driver Alan Cox
2011-12-03 18:56 ` Geert Uytterhoeven
2011-12-02 19:26 ` Dave Martin
2011-12-02 19:28 ` Linus Torvalds
2011-12-02 23:12 ` Benjamin Herrenschmidt
2011-12-05 16:11 ` Dave Martin
2011-12-05 17:40 ` Nicolas Pitre
2011-12-05 18:02 ` Dave Martin
2011-12-05 18:15 ` Geert Uytterhoeven
2011-12-05 18:18 ` Nicolas Pitre
[not found] ` <alpine.LFD.2.02.1112051310150.2357-QuJgVwGFrdf/9pzu0YdTqQ@public.gmane.org>
2011-12-05 18:45 ` Alan Cox
2011-12-05 19:19 ` James Bottomley
2011-12-06 6:13 ` Jean-Christophe PLAGNIOL-VILLARD
[not found] ` <20111206061321.GH9192-RQcB7r2h9QmfDR2tN2SG5Ni2O/JbrIOy@public.gmane.org>
2011-12-06 11:34 ` Alan Cox
2011-12-05 19:16 ` Rob Herring
2011-12-05 20:21 ` Anton Vorontsov
2011-12-05 20:47 ` Rob Herring
[not found] ` <4EDD2DE1.1050606-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-12-05 20:53 ` Alan Cox
2011-12-06 9:30 ` Dave Martin
[not found] ` <20111206093000.GA2274-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-12-06 10:34 ` Alan Cox
2011-12-06 10:55 ` Russell King - ARM Linux
2011-12-05 19:26 ` Dave Martin
2011-12-05 19:49 ` Nicolas Pitre
2011-12-06 9:37 ` Dave Martin
[not found] ` <20111206093709.GB2274-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-12-06 10:46 ` Russell King - ARM Linux
2011-12-06 11:00 ` Geert Uytterhoeven
2011-12-06 11:03 ` Russell King - ARM Linux
2011-12-06 11:10 ` Alan Cox
2011-12-06 11:05 ` Alan Cox
[not found] ` <20111206110554.53bddd14-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
2011-12-06 11:25 ` Russell King - ARM Linux
2011-12-06 12:11 ` Alan Cox
2011-12-06 11:37 ` Dave Martin
2011-12-06 11:49 ` Russell King - ARM Linux
2011-12-06 13:25 ` Dave Martin
2011-12-06 19:56 ` Rob Herring
2011-12-06 19:20 ` Linus Torvalds
2011-12-06 20:00 ` Russell King - ARM Linux
[not found] ` <CA+55aFwZBr+3_S9kU-+m8zN8iwOvn2miuuAy-zt7sUjW_+abBg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-12-06 20:59 ` Uwe Kleine-König
2011-12-06 19:11 ` Nicolas Pitre
[not found] ` <20111205161157.GA27550-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2011-12-05 17:41 ` Alan Cox [this message]
2011-11-10 15:35 ` [PATCH] ata: Fix build error in pata_of_platform (NO_IRQ usage) Alan Cox
2011-11-10 18:18 ` linux-next: Tree for Oct 11 (ata/pata_of_platform.c) Jeff Garzik
[not found] ` <20111011201127.455df266dcbffb1d621f8576-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org>
2011-10-11 20:45 ` linux-next: Tree for Oct 11 (iio/resolver) Randy Dunlap
[not found] ` <4E94AADA.4080204-/UHa2rfvQTnk1uMJSBkQmQ@public.gmane.org>
2011-10-12 8:58 ` Jonathan Cameron
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=20111205174132.564e0bb0@lxorguk.ukuu.org.uk \
--to=alan-qbu/x9rampvanceybjwyrvxrex20p6io@public$(echo .)gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public$(echo .)gmane.org \
--cc=cbouatmailru-Re5JQEeQqe8AvxtiuMwx3w@public$(echo .)gmane.org \
--cc=dave.martin-QSEj5FYQhm4dnm+yROfE0A@public$(echo .)gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public$(echo .)gmane.org \
--cc=jgarzik-H+wXaHxf7aLQT0dZR+AlfA@public$(echo .)gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public$(echo .)gmane.org \
--cc=linux-ide-u79uwXL29TY76Z2rM5mHXA@public$(echo .)gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public$(echo .)gmane.org \
--cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public$(echo .)gmane.org \
--cc=linux-next-u79uwXL29TY76Z2rM5mHXA@public$(echo .)gmane.org \
--cc=mingo-X9Un+BFzKDI@public$(echo .)gmane.org \
--cc=pawel.moll-5wv7dgnIgG8@public$(echo .)gmane.org \
--cc=rdunlap-/UHa2rfvQTnk1uMJSBkQmQ@public$(echo .)gmane.org \
--cc=sfr-3FnU+UHB4dNDw9hX6IcOSA@public$(echo .)gmane.org \
--cc=torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public$(echo .)gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox