<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/kernel/irq, branch v2.6.26.8</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/kernel/irq?h=v2.6.26.8</id>
<link rel='self' href='https://git.amat.us/linux/atom/kernel/irq?h=v2.6.26.8'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2008-05-02T11:40:34Z</updated>
<entry>
<title>genirq: reenable a nobody cared disabled irq when a new driver arrives</title>
<updated>2008-05-02T11:40:34Z</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2008-04-28T15:01:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1adb0850a1254333d81e64121c80af100c6d6e06'/>
<id>urn:sha1:1adb0850a1254333d81e64121c80af100c6d6e06</id>
<content type='text'>
Uwe Kleine-Koenig has some strange hardware where one of the shared
interrupts can be asserted during boot before the appropriate driver
loads. Requesting the shared irq line from another driver result in a
spurious interrupt storm which finally disables the interrupt line.

I have seen similar behaviour on resume before (the hardware does not
work anymore so I can not verify).

Change the spurious disable logic to increment the disable depth and
mark the interrupt with an extra flag which allows us to reenable the
interrupt when a new driver arrives which requests the same irq
line. In the worst case this will disable the irq again via the
spurious trap, but there is a decent chance that the new driver is the
one which can handle the already asserted interrupt and makes the box
usable again.

Eric Biederman said further: This case also happens on a regular basis
in kdump kernels where we deliberately don't shutdown the hardware
before starting the new kernel.  This patch should reduce the need for
using irqpoll in that situation by a small amount.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Tested-and-Acked-by: Uwe Kleine-König &lt;Uwe.Kleine-Koenig@digi.com&gt;

</content>
</entry>
<entry>
<title>kernel: explicitly include required header files under kernel/</title>
<updated>2008-04-29T15:06:04Z</updated>
<author>
<name>Robert P. J. Day</name>
<email>rpjday@crashcourse.ca</email>
</author>
<published>2008-04-29T07:59:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1aeb272cf09f9e2cbc62163b9f37a9b4d1c7e81d'/>
<id>urn:sha1:1aeb272cf09f9e2cbc62163b9f37a9b4d1c7e81d</id>
<content type='text'>
Following an experimental deletion of the unnecessary directive

 #include &lt;linux/slab.h&gt;

from the header file &lt;linux/percpu.h&gt;, these files under kernel/ were exposed
as needing to include one of &lt;linux/slab.h&gt; or &lt;linux/gfp.h&gt;, so explicit
includes were added where necessary.

Signed-off-by: Robert P. J. Day &lt;rpjday@crashcourse.ca&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>cpumask: Cleanup more uses of CPU_MASK and NODE_MASK</title>
<updated>2008-04-19T17:44:58Z</updated>
<author>
<name>Mike Travis</name>
<email>travis@sgi.com</email>
</author>
<published>2008-04-05T01:11:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d366f8cbc16882e93538d9a52423c2f50dad7c06'/>
<id>urn:sha1:d366f8cbc16882e93538d9a52423c2f50dad7c06</id>
<content type='text'>
 *  Replace usages of CPU_MASK_NONE, CPU_MASK_ALL, NODE_MASK_NONE,
    NODE_MASK_ALL to reduce stack requirements for large NR_CPUS
    and MAXNODES counts.

 *  In some cases, the cpumask variable was initialized but then overwritten
    with another value.  This is the case for changes like this:

    -       cpumask_t oldmask = CPU_MASK_ALL;
    +       cpumask_t oldmask;

Signed-off-by: Mike Travis &lt;travis@sgi.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>genirq: do not leave interupts enabled on free_irq</title>
<updated>2008-02-19T09:43:58Z</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2008-02-18T17:25:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=89d694b9dbe769ca1004e01db0ca43964806a611'/>
<id>urn:sha1:89d694b9dbe769ca1004e01db0ca43964806a611</id>
<content type='text'>
The default_disable() function was changed in commit:

 76d2160147f43f982dfe881404cfde9fd0a9da21
 genirq: do not mask interrupts by default

It removed the mask function in favour of the default delayed
interrupt disabling. Unfortunately this also broke the shutdown in
free_irq() when the last handler is removed from the interrupt for
those architectures which rely on the default implementations. Now we
can end up with a enabled interrupt line after the last handler was
removed, which can result in spurious interrupts.

Fix this by adding a default_shutdown function, which is only
installed, when the irqchip implementation does provide neither a
shutdown nor a disable function.

[@stable: affected versions: .21 - .24 ]

Pointed-out-by: Michael Hennerich &lt;Michael.Hennerich@analog.com&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: stable@kernel.org
Tested-by: Michael Hennerich &lt;Michael.Hennerich@analog.com&gt;

</content>
</entry>
<entry>
<title>genirq: spurious.c: use time_* macros</title>
<updated>2008-02-19T09:43:58Z</updated>
<author>
<name>S.Caglar Onur</name>
<email>caglar@pardus.org.tr</email>
</author>
<published>2008-02-14T15:36:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=188fd89d539d899bfca2bc83534e5508e0161139'/>
<id>urn:sha1:188fd89d539d899bfca2bc83534e5508e0161139</id>
<content type='text'>
The functions time_before, time_before_eq, time_after, and
time_after_eq are more robust for comparing jiffies against other
values.

So following patch implements usage of the time_after() macro, defined
at linux/jiffies.h, which deals with wrapping correctly

Signed-off-by: S.Caglar Onur &lt;caglar@pardus.org.tr&gt;
Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>IRQ_NOPROBE helper functions</title>
<updated>2008-02-08T17:22:42Z</updated>
<author>
<name>Ralf Baechle</name>
<email>ralf@linux-mips.org</email>
</author>
<published>2008-02-08T12:22:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=46f4f8f665080900e865392f4b3593be463bf0d8'/>
<id>urn:sha1:46f4f8f665080900e865392f4b3593be463bf0d8</id>
<content type='text'>
Probing non-ISA interrupts using the handle_percpu_irq as their handle_irq
method may crash the system because handle_percpu_irq does not check
IRQ_WAITING.  This for example hits the MIPS Qemu configuration.

This patch provides two helper functions set_irq_noprobe and set_irq_probe to
set rsp.  clear the IRQ_NOPROBE flag.  The only current caller is MIPS code
but this really belongs into generic code.

As an aside, interrupt probing these days has become a mostly obsolete if not
dangerous art.  I think Linux interrupts should be changed to default to
non-probing but that's subject of this patch.

Signed-off-by: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Acked-and-tested-by: Rob Landley &lt;rob@landley.net&gt;
Cc: Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>kernel: remove fastcall in kernel/*</title>
<updated>2008-02-08T17:22:31Z</updated>
<author>
<name>Harvey Harrison</name>
<email>harvey.harrison@gmail.com</email>
</author>
<published>2008-02-08T12:19:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7ad5b3a505e68cfdc342933d6e0fc0eaa5e0a4f7'/>
<id>urn:sha1:7ad5b3a505e68cfdc342933d6e0fc0eaa5e0a4f7</id>
<content type='text'>
[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Harvey Harrison &lt;harvey.harrison@gmail.com&gt;
Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>genirq: stackdump after the "Trying to free already-free IRQ" message</title>
<updated>2008-01-30T12:33:24Z</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2008-01-30T12:33:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=70edcd77a0d6d0f8731c826764f5eb6732f521e9'/>
<id>urn:sha1:70edcd77a0d6d0f8731c826764f5eb6732f521e9</id>
<content type='text'>
these bugs are harder to find than they seem, a stackdump helps.

make it dependent on CONFIG_DEBUG_SHIRQ so that people can turn it off
if it annoys them.

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>x86: add /proc/irq/*/spurious to dump the spurious irq debugging state</title>
<updated>2008-01-30T12:32:48Z</updated>
<author>
<name>Andi Kleen</name>
<email>ak@suse.de</email>
</author>
<published>2008-01-30T12:32:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=96d97cf03b3d68e6c857623da93acd522b2b7e1a'/>
<id>urn:sha1:96d97cf03b3d68e6c857623da93acd522b2b7e1a</id>
<content type='text'>
This is useful to debug problems with interrupt handlers that return
sometimes IRQ_NONE.

Signed-off-by: Andi Kleen &lt;ak@suse.de&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>genirq: turn irq debugging options into module params</title>
<updated>2008-01-30T12:32:48Z</updated>
<author>
<name>Andi Kleen</name>
<email>ak@suse.de</email>
</author>
<published>2008-01-30T12:32:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9e094c17ee2b85130ab7b2ea37456f6867eb687a'/>
<id>urn:sha1:9e094c17ee2b85130ab7b2ea37456f6867eb687a</id>
<content type='text'>
This allows to change them at runtime using sysfs. No need to
reboot to set them.

I only added aliases (kernel.noirqdebug etc.) so the old options
still work.

Signed-off-by: Andi Kleen &lt;ak@suse.de&gt;

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
</feed>
