<feed xmlns='http://www.w3.org/2005/Atom'>
<title>talos-op-linux/include/linux/irqdesc.h, branch v3.1</title>
<subtitle>Talos™ II Linux sources for OpenPOWER</subtitle>
<id>https://git.raptorcs.com/git/talos-op-linux/atom?h=v3.1</id>
<link rel='self' href='https://git.raptorcs.com/git/talos-op-linux/atom?h=v3.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/'/>
<updated>2011-07-28T09:23:21+00:00</updated>
<entry>
<title>irq: Track the owner of irq descriptor</title>
<updated>2011-07-28T09:23:21+00:00</updated>
<author>
<name>Sebastian Andrzej Siewior</name>
<email>sebastian@breakpoint.cc</email>
</author>
<published>2011-07-11T10:17:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=b6873807a7143b7d6d8b06809295e559d07d7deb'/>
<id>urn:sha1:b6873807a7143b7d6d8b06809295e559d07d7deb</id>
<content type='text'>
Interrupt descriptors can be allocated from modules. The interrupts
are used by other modules, but we have no refcount on the module which
provides the interrupts and there is no way to establish one on the
device level as the interrupt using module is agnostic to the fact
that the interrupt is provided by a module rather than by some builtin
interrupt controller.

To prevent removal of the interrupt providing module, we can track the
owner of the interrupt descriptor, which also provides the relevant
irq chip functions in the irq descriptor.

request/setup_irq() can now acquire a refcount on the owner module to
prevent unloading. free_irq() drops the refcount.

Signed-off-by: Sebastian Andrzej Siewior &lt;sebastian@breakpoint.cc&gt;
Link: http://lkml.kernel.org/r/20110711101731.GA13804@Chamillionaire.breakpoint.cc
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>genirq: Uninline and sanity check generic_handle_irq()</title>
<updated>2011-05-18T12:59:08+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-05-18T10:48:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=fe12bc2c996d3e492b2920e32ac79f7bbae3e15d'/>
<id>urn:sha1:fe12bc2c996d3e492b2920e32ac79f7bbae3e15d</id>
<content type='text'>
generic_handle_irq() is missing a NULL pointer check for the result of
irq_to_desc. This was a not a big problem, but we want to expose it to
drivers, so we better have sanity checks in place. Add a return value
as well, which indicates that the irq number was valid and the handler
was invoked.

Based on the pure code move from Jonathan Cameron.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Jonathan Cameron &lt;jic23@cam.ac.uk&gt;
</content>
</entry>
<entry>
<title>genirq: irq_desc: Document preflow_handler and affinity_hint</title>
<updated>2011-04-23T13:56:24+00:00</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert@linux-m68k.org</email>
</author>
<published>2011-04-10T09:01:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=770767787c23040dc152e7ae230597ff55b39470'/>
<id>urn:sha1:770767787c23040dc152e7ae230597ff55b39470</id>
<content type='text'>
[ tglx: Filled in the FIXME place holders ]

Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Link: http://lkml.kernel.org/r/%3C1302426113-13808-2-git-send-email-geert%40linux-m68k.org%3E
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>genirq: Forgotten updates/deletions after removal of compat code</title>
<updated>2011-04-23T13:56:23+00:00</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert@linux-m68k.org</email>
</author>
<published>2011-04-10T09:01:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=0911f124bf55357803d53197cc1ae5479f5e37e2'/>
<id>urn:sha1:0911f124bf55357803d53197cc1ae5479f5e37e2</id>
<content type='text'>
commit 0c6f8a8b917ad361319c8ace3e9f28e69bfdb4c1 ("genirq: Remove compat code")
removed the compat code, but forgot to update some references in comments and
delete some of its documentation.

Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Link: http://lkml.kernel.org/r/%3C1302426113-13808-1-git-send-email-geert%40linux-m68k.org%3E
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>genirq: Remove compat code</title>
<updated>2011-03-29T12:48:19+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-03-28T11:32:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=0c6f8a8b917ad361319c8ace3e9f28e69bfdb4c1'/>
<id>urn:sha1:0c6f8a8b917ad361319c8ace3e9f28e69bfdb4c1</id>
<content type='text'>
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>genirq: Provide locked setter for chip, handler, name</title>
<updated>2011-03-23T19:22:06+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-03-23T12:10:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=a2e8461a2ce5e8140b7374eb68af0d09e36e07ff'/>
<id>urn:sha1:a2e8461a2ce5e8140b7374eb68af0d09e36e07ff</id>
<content type='text'>
Some irq_set_type() callbacks need to change the chip and the handler
when the trigger mode changes. We have already a (misnomed) setter
function for the handler which can be called from irq_set_type().

Provide one which allows to set chip and name as well. Put the
misnomed function under the COMPAT switch and provide a replacement.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>genirq: Provide a lockdep helper</title>
<updated>2011-03-23T19:22:06+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-03-22T16:08:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=d3e17deb1790ee2123e9d11420be6411d1768b47'/>
<id>urn:sha1:d3e17deb1790ee2123e9d11420be6411d1768b47</id>
<content type='text'>
Some irq chips need to call genirq functions for nested chips from
their callbacks. That upsets lockdep. So they need to set a different
lock class for those nested chips. Provide a helper function to avoid
open access to irq_desc.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>genirq; Remove the last leftovers of the old sparse irq code</title>
<updated>2011-03-23T19:22:06+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-03-22T23:24:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=3b9038912828384e38d82409c281124631c8533b'/>
<id>urn:sha1:3b9038912828384e38d82409c281124631c8533b</id>
<content type='text'>
All users converted. Get rid of it.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>genirq: Add desc-&gt;irq_data accessor</title>
<updated>2011-03-11T13:15:35+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-03-11T13:15:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=d9936bb3952a08d701f7b03f8f62d158f94d8085'/>
<id>urn:sha1:d9936bb3952a08d701f7b03f8f62d158f94d8085</id>
<content type='text'>
We have accessors for all fields in irq_data based on irq_desc, but
not for irq_data itself.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>genirq: Prepare the handling of shared oneshot interrupts</title>
<updated>2011-02-25T19:24:21+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-02-23T23:52:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=b5faba21a6805c33b40e258d36f57997ee1de131'/>
<id>urn:sha1:b5faba21a6805c33b40e258d36f57997ee1de131</id>
<content type='text'>
For level type interrupts we need to track how many threads are on
flight to avoid useless interrupt storms when not all thread handlers
have finished yet. Keep track of the woken threads and only unmask
when there are no more threads in flight.

Yes, I'm lazy and using a bitfield. But not only because I'm lazy, the
main reason is that it's way simpler than using a refcount. A refcount
based solution would need to keep track of various things like
crashing the irq thread, spurious interrupts coming in,
disables/enables, free_irq() and some more. The bitfield keeps the
tracking simple and makes things just work. It's also nicely confined
to the thread code pathes and does not require additional checks all
over the place.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
LKML-Reference: &lt;20110223234956.388095876@linutronix.de&gt;
</content>
</entry>
</feed>
