<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/kernel/irq, branch v2.6.27.18</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/kernel/irq?h=v2.6.27.18</id>
<link rel='self' href='https://git.amat.us/linux/atom/kernel/irq?h=v2.6.27.18'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2009-02-12T17:31:24Z</updated>
<entry>
<title>genirq: NULL struct irq_desc's member 'name' in dynamic_irq_cleanup()</title>
<updated>2009-02-12T17:31:24Z</updated>
<author>
<name>Dean Nelson</name>
<email>dcn@sgi.com</email>
</author>
<published>2008-10-18T23:06:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3b0ff5e98a8a987c657cb21ba206ffe8c359866b'/>
<id>urn:sha1:3b0ff5e98a8a987c657cb21ba206ffe8c359866b</id>
<content type='text'>
commit b6f3b7803a9231eddc36d0a2a6d2d8105ef89344 upstream.

If the member 'name' of the irq_desc structure happens to point to a
character string that is resident within a kernel module, problems ensue
if that module is rmmod'd (at which time dynamic_irq_cleanup() is called)
and then later show_interrupts() is called by someone.

It is also not a good thing if the character string resided in kmalloc'd
space that has been kfree'd (after having called dynamic_irq_cleanup()).
dynamic_irq_cleanup() fails to NULL the 'name' member and
show_interrupts() references it on a few architectures (like h8300, sh and
x86).

Signed-off-by: Dean Nelson &lt;dcn@sgi.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>genirq: switch /proc/irq/*/smp_affinity et al to seqfiles</title>
<updated>2008-08-12T23:07:30Z</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2008-08-12T22:09:03Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f18e439d1035d059534d261c414af33f89aee89a'/>
<id>urn:sha1:f18e439d1035d059534d261c414af33f89aee89a</id>
<content type='text'>
Switch /proc/irq/*/smp_affinity , /proc/irq/default_smp_affinity to
seq_files.

cat(1) reads with 1024 chunks by default, with high enough NR_CPUS, there
will be -EINVAL.

As side effect, there are now two less users of the -&gt;read_proc interface.

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Cc: Paul Jackson &lt;pj@sgi.com&gt;
Cc: Mike Travis &lt;travis@sgi.com&gt;
Cc: Al Viro &lt;viro@zeniv.linux.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>genirq: better warning on irqchip-&gt;set_type() failure</title>
<updated>2008-08-05T21:33:47Z</updated>
<author>
<name>David Brownell</name>
<email>dbrownell@users.sourceforge.net</email>
</author>
<published>2008-08-05T20:01:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c69ad71bcdecbaab82cfacb1dc967bd7fd967a3b'/>
<id>urn:sha1:c69ad71bcdecbaab82cfacb1dc967bd7fd967a3b</id>
<content type='text'>
While I'm glad to finally see the hole fixed whereby passing an invalid
IRQ trigger type to request_irq() would be ignored, the current diagnostic
isn't quite useful.  Fixed by also listing the trigger type which was
rejected.

Signed-off-by: David Brownell &lt;dbrownell@users.sourceforge.net&gt;
Acked-by: Uwe Kleine-König &lt;Uwe.Kleine-Koenig@digi.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&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>use WARN() in kernel/irq/chip.c</title>
<updated>2008-07-26T19:00:07Z</updated>
<author>
<name>Arjan van de Ven</name>
<email>arjan@linux.intel.com</email>
</author>
<published>2008-07-26T02:45:37Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=261c40c1191ad8d7a2e49fa2bb5f6a84e3d44b10'/>
<id>urn:sha1:261c40c1191ad8d7a2e49fa2bb5f6a84e3d44b10</id>
<content type='text'>
Use WARN() instead of a printk+WARN_ON() pair; this way the message
becomes part of the warning section for better reporting/collection.

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&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>Use WARN() in kernel/irq/manage.c</title>
<updated>2008-07-26T19:00:07Z</updated>
<author>
<name>Arjan van de Ven</name>
<email>arjan@linux.intel.com</email>
</author>
<published>2008-07-26T02:45:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b8c512f6190e313df69060bae4a161c5c044e272'/>
<id>urn:sha1:b8c512f6190e313df69060bae4a161c5c044e272</id>
<content type='text'>
Replace a printk+WARN_ON() by a WARN(); this increases the chance of the
string making it into the bugreport (ie: it goes inside the
---[ cut here ]--- section)

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&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/irq/manage.c: replace a printk + WARN_ON() to a WARN()</title>
<updated>2008-07-25T17:53:29Z</updated>
<author>
<name>Arjan van de Ven</name>
<email>arjan@linux.intel.com</email>
</author>
<published>2008-07-25T08:45:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7a2c477069fbd32f91598f05334003979b987a39'/>
<id>urn:sha1:7a2c477069fbd32f91598f05334003979b987a39</id>
<content type='text'>
Replace a printk+WARN_ON() by a WARN(); this increases the chance of the
string making it into the bugreport (ie: it goes inside the
---[ cut here ]--- section)

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&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>generic irqs: handle failure of irqchip-&gt;set_type in setup_irq</title>
<updated>2008-07-24T17:47:24Z</updated>
<author>
<name>Uwe Kleine-König</name>
<email>Uwe.Kleine-Koenig@digi.com</email>
</author>
<published>2008-07-24T04:28:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=82736f4d1d2b7063b829cc93171a6e5aea8a9c49'/>
<id>urn:sha1:82736f4d1d2b7063b829cc93171a6e5aea8a9c49</id>
<content type='text'>
set_type returns an int indicating success or failure, but up to now
setup_irq ignores that.

In my case this resulted in a machine hang:

gpio-keys requested IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, but
arm/ns9xxx can only trigger on one direction so set_type didn't touch
the configuration which happens do default to a level sensitiveness and
returned -EINVAL.  setup_irq ignored that and unmasked the irq.  This
resulted in an endless triggering of the gpio-key interrupt service
routine which effectively killed the machine.

With this patch applied setup_irq propagates the error to the caller.

Note that before in the case

	chip &amp;&amp; !chip-&gt;set_type &amp;&amp; !chip-&gt;name

a NULL pointer was feed to printk.  This is fixed, too.

Signed-off-by: Uwe Kleine-König &lt;Uwe.Kleine-Koenig@digi.com&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>set_irq_wake: fix return code and wake status tracking</title>
<updated>2008-07-23T16:35:53Z</updated>
<author>
<name>Uwe Kleine-König</name>
<email>Uwe.Kleine-Koenig@digi.com</email>
</author>
<published>2008-07-23T12:42:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2db873211ba47ef704c301f9ecf4a33413a0b649'/>
<id>urn:sha1:2db873211ba47ef704c301f9ecf4a33413a0b649</id>
<content type='text'>
Since 15a647eba94c3da27ccc666bea72e7cca06b2d19 set_irq_wake returned -ENXIO
if another device had it already enabled.  Zero is the right value to
return in this case.  Moreover the change to desc-&gt;status was not reverted
if desc-&gt;chip-&gt;set_wake returned an error.

Signed-off-by: Uwe Kleine-König &lt;Uwe.Kleine-Koenig@digi.com&gt;
Acked-by: David Brownell &lt;dbrownell@users.sourceforge.net&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Russell King &lt;rmk@arm.linux.org.uk&gt;
Cc: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>genirq: remove extraneous checks in manage.c</title>
<updated>2008-07-10T05:01:13Z</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2008-07-10T05:01:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=48627d8d23c34106c1365563604739a50343edaf'/>
<id>urn:sha1:48627d8d23c34106c1365563604739a50343edaf</id>
<content type='text'>
In http://bugzilla.kernel.org/show_bug.cgi?id=9580 it was pointed out
that the desc-&gt;chip checks are extraneous. In fact these are left
overs from early development and can be removed safely.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;

</content>
</entry>
<entry>
<title>genirq: Expose default irq affinity mask (take 3)</title>
<updated>2008-06-05T13:18:30Z</updated>
<author>
<name>Max Krasnyansky</name>
<email>maxk@qualcomm.com</email>
</author>
<published>2008-05-29T18:02:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=18404756765c713a0be4eb1082920c04822ce588'/>
<id>urn:sha1:18404756765c713a0be4eb1082920c04822ce588</id>
<content type='text'>
Current IRQ affinity interface does not provide a way to set affinity
for the IRQs that will be allocated/activated in the future.
This patch creates /proc/irq/default_smp_affinity that lets users set
default affinity mask for the newly allocated IRQs. Changing the default
does not affect affinity masks for the currently active IRQs, they
have to be changed explicitly.

Updated based on Paul J's comments and added some more documentation.

Signed-off-by: Max Krasnyansky &lt;maxk@qualcomm.com&gt;
Cc: pj@sgi.com
Cc: a.p.zijlstra@chello.nl
Cc: tglx@linutronix.de
Cc: rdunlap@xenotime.net
Cc: mingo@elte.hu
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
</feed>
