<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/kernel/irq, branch v3.4.65</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/kernel/irq?h=v3.4.65</id>
<link rel='self' href='https://git.amat.us/linux/atom/kernel/irq?h=v3.4.65'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-07-22T01:19:01Z</updated>
<entry>
<title>genirq: Fix can_request_irq() for IRQs without an action</title>
<updated>2013-07-22T01:19:01Z</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2013-06-28T01:40:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f95bc0f79df33f63a1615d18c92abf829208e2a2'/>
<id>urn:sha1:f95bc0f79df33f63a1615d18c92abf829208e2a2</id>
<content type='text'>
commit 2779db8d37d4b542d9ca2575f5f178dbeaca6c86 upstream.

Commit 02725e7471b8 ('genirq: Use irq_get/put functions'),
inadvertently changed can_request_irq() to return 0 for IRQs that have
no action.  This causes pcibios_lookup_irq() to select only IRQs that
already have an action with IRQF_SHARED set, or to fail if there are
none.  Change can_request_irq() to return 1 for IRQs that have no
action (if the first two conditions are met).

Reported-by: Bjarni Ingi Gislason &lt;bjarniig@rhi.hi.is&gt;
Tested-by: Bjarni Ingi Gislason &lt;bjarniig@rhi.hi.is&gt; (against 3.2)
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Cc: 709647@bugs.debian.org
Link: http://bugs.debian.org/709647
Link: http://lkml.kernel.org/r/1372383630.23847.40.camel@deadeye.wl.decadent.org.uk
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>genirq: Avoid deadlock in spurious handling</title>
<updated>2013-02-28T14:58:58Z</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2012-11-23T09:08:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b3c57f009cfd9ed81737169c4026bfd03191d993'/>
<id>urn:sha1:b3c57f009cfd9ed81737169c4026bfd03191d993</id>
<content type='text'>
commit e716efde75267eab919cdb2bef5b2cb77f305326 upstream.

commit 52553ddf(genirq: fix regression in irqfixup, irqpoll)
introduced a potential deadlock by calling the action handler with the
irq descriptor lock held.

Remove the call and let the handling code run even for an interrupt
where only a single action is registered. That matches the goal of
the above commit and avoids the deadlock.

Document the confusing action = desc-&gt;action reload in the handling
loop while at it.

Reported-and-tested-by: "Wang, Warner" &lt;warner.wang@hp.com&gt;
Tested-by: Edward Donovan &lt;edward.donovan@numble.net&gt;
Cc: "Wang, Song-Bo (Stoney)" &lt;song-bo.wang@hp.com&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>genirq: Always force thread affinity</title>
<updated>2013-01-11T17:06:56Z</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2012-11-03T10:52:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=09c4161c8a1fe8900561029a5d1dce8887231afd'/>
<id>urn:sha1:09c4161c8a1fe8900561029a5d1dce8887231afd</id>
<content type='text'>
commit 04aa530ec04f61875b99c12721162e2964e3318c upstream.

Sankara reported that the genirq core code fails to adjust the
affinity of an interrupt thread in several cases:

 1) On request/setup_irq() the call to setup_affinity() happens before
    the new action is registered, so the new thread is not notified.

 2) For secondary shared interrupts nothing notifies the new thread to
    change its affinity.

 3) Interrupts which have the IRQ_NO_BALANCE flag set are not moving
    the thread either.

Fix this by setting the thread affinity flag right on thread creation
time. This ensures that under all circumstances the thread moves to
the right place. Requires a check in irq_thread_check_affinity for an
existing affinity mask (CONFIG_CPU_MASK_OFFSTACK=y)

Reported-and-tested-by: Sankara Muthukrishnan &lt;sankara.m@gmail.com&gt;
Link: http://lkml.kernel.org/r/alpine.LFD.2.02.1209041738200.2754@ionos
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>random: remove rand_initialize_irq()</title>
<updated>2012-08-15T15:10:29Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2012-07-15T00:27:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=26665db4f7fa71c56eeb9205e79927cfc21e70c4'/>
<id>urn:sha1:26665db4f7fa71c56eeb9205e79927cfc21e70c4</id>
<content type='text'>
commit c5857ccf293968348e5eb4ebedc68074de3dcda6 upstream.

With the new interrupt sampling system, we are no longer using the
timer_rand_state structure in the irq descriptor, so we can stop
initializing it now.

[ Merged in fixes from Sedat to find some last missing references to
  rand_initialize_irq() ]

Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Signed-off-by: Sedat Dilek &lt;sedat.dilek@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>random: make 'add_interrupt_randomness()' do something sane</title>
<updated>2012-08-15T15:10:10Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2012-07-02T11:52:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0110bbfbc8ed1b5240a51e8c767c44a856424139'/>
<id>urn:sha1:0110bbfbc8ed1b5240a51e8c767c44a856424139</id>
<content type='text'>
commit 775f4b297b780601e61787b766f306ed3e1d23eb upstream.

We've been moving away from add_interrupt_randomness() for various
reasons: it's too expensive to do on every interrupt, and flooding the
CPU with interrupts could theoretically cause bogus floods of entropy
from a somewhat externally controllable source.

This solves both problems by limiting the actual randomness addition
to just once a second or after 64 interrupts, whicever comes first.
During that time, the interrupt cycle data is buffered up in a per-cpu
pool.  Also, we make sure the the nonblocking pool used by urandom is
initialized before we start feeding the normal input pool.  This
assures that /dev/urandom is returning unpredictable data as soon as
possible.

(Based on an original patch by Linus, but significantly modified by
tytso.)

Tested-by: Eric Wustrow &lt;ewust@umich.edu&gt;
Reported-by: Eric Wustrow &lt;ewust@umich.edu&gt;
Reported-by: Nadia Heninger &lt;nadiah@cs.ucsd.edu&gt;
Reported-by: Zakir Durumeric &lt;zakir@umich.edu&gt;
Reported-by: J. Alex Halderman &lt;jhalderm@umich.edu&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>genirq: export handle_edge_irq() and irq_to_desc()</title>
<updated>2012-05-15T15:10:07Z</updated>
<author>
<name>Jiri Kosina</name>
<email>jkosina@suse.cz</email>
</author>
<published>2012-05-13T10:13:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3911ff30f5d1175e2e67e73244405e3492b35c79'/>
<id>urn:sha1:3911ff30f5d1175e2e67e73244405e3492b35c79</id>
<content type='text'>
Export handle_edge_irq() and irq_to_desc() to modules to allow them to
do things such as

	__irq_set_handler_locked(...., handle_edge_irq);

This fixes

	ERROR: "handle_edge_irq" [drivers/gpio/gpio-pch.ko] undefined!
	ERROR: "irq_to_desc" [drivers/gpio/gpio-pch.ko] undefined!

when gpio-pch is being built as a module.

This was introduced by commit df9541a60af0 ("gpio: pch9: Use proper flow
type handlers") that added

	__irq_set_handler_locked(d-&gt;irq, handle_edge_irq);

but handle_edge_irq() was not exported for modules (and inlined
__irq_set_handler_locked() requires irq_to_desc() exported as well)

Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>irq: hide debug macros so they don't collide with others.</title>
<updated>2012-04-23T16:30:03Z</updated>
<author>
<name>Paul Gortmaker</name>
<email>paul.gortmaker@windriver.com</email>
</author>
<published>2012-04-18T20:29:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9f3045eca89a2e6fdd1901aafb9e28231d3f31fb'/>
<id>urn:sha1:9f3045eca89a2e6fdd1901aafb9e28231d3f31fb</id>
<content type='text'>
The file kernel/irq/debug.h temporarily defines P, PS, PD
and then undefines them.  However these names aren't really
"internal" enough, and collide with other more legit users
such as the ones in the xtensa arch, causing:

In file included from kernel/irq/internals.h:58:0,
                 from kernel/irq/irqdesc.c:18:
kernel/irq/debug.h:8:0: warning: "PS" redefined [enabled by default]
arch/xtensa/include/asm/regs.h:59:0: note: this is the location of the previous definition

Add a handful of underscores to do a better job of hiding these
temporary macros.

Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
</entry>
<entry>
<title>irq_domain: fix type mismatch in debugfs output format</title>
<updated>2012-04-12T22:25:48Z</updated>
<author>
<name>Grant Likely</name>
<email>grant.likely@secretlab.ca</email>
</author>
<published>2012-04-12T20:42:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5269a9ab7def9a3116663347d59c4d70afa2d180'/>
<id>urn:sha1:5269a9ab7def9a3116663347d59c4d70afa2d180</id>
<content type='text'>
sizeof(void*) returns an unsigned long, but it was being used as a width parameter to a "%-*s" format string which requires an int.  On 64 bit platforms this causes a type mismatch:

    linux/kernel/irq/irqdomain.c:575: warning: field width should have type
    'int', but argument 6 has type 'long unsigned int'

This change casts the size to an int so printf gets the right data type.

Reported-by: Andreas Schwab &lt;schwab@linux-m68k.org&gt;
Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Cc: David Daney &lt;david.daney@cavium.com&gt;
</content>
</entry>
<entry>
<title>irq_domain: Move irq_virq_count into NOMAP revmap</title>
<updated>2012-04-12T06:37:48Z</updated>
<author>
<name>Grant Likely</name>
<email>grant.likely@secretlab.ca</email>
</author>
<published>2012-02-15T22:06:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6fa6c8e25e95bdc73e92e4c96b8e3299169b616e'/>
<id>urn:sha1:6fa6c8e25e95bdc73e92e4c96b8e3299169b616e</id>
<content type='text'>
This patch replaces the old global setting of irq_virq_count that is only
used by the NOMAP mapping and instead uses a revmap_data property so that
the maximum NOMAP allocation can be set per NOMAP irq_domain.

There is exactly one user of irq_virq_count in-tree right now: PS3.
Also, irq_virq_count is only useful for the NOMAP mapping.  So,
instead of having a single global irq_virq_count values, this change
drops it entirely and added a max_irq argument to irq_domain_add_nomap().
That makes it a property of an individual nomap irq domain instead of
a global system settting.

Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Tested-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Milton Miller &lt;miltonm@bga.com&gt;
</content>
</entry>
<entry>
<title>irqdomain: Fix debugfs formatting</title>
<updated>2012-04-11T07:01:45Z</updated>
<author>
<name>Grant Likely</name>
<email>grant.likely@secretlab.ca</email>
</author>
<published>2012-04-11T06:26:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=15e06bf64f686befd2030da867a3dad965b96cc0'/>
<id>urn:sha1:15e06bf64f686befd2030da867a3dad965b96cc0</id>
<content type='text'>
This patch fixes the irq_domain_mapping debugfs output to pad pointer
values with leading zeros so that pointer values are displayed
correctly.  Otherwise you get output similar to "0x 5e0000000000000".
Also, when the irq_domain is set to 'null'

Signed-off-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Cc: David Daney &lt;david.daney@cavium.com&gt;
Cc: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
</content>
</entry>
</feed>
