<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/arm/include/asm/irq.h, branch linux-3.2.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.2.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.2.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2011-07-12T11:42:40Z</updated>
<entry>
<title>ARM: introduce handle_IRQ() not to dump exception stack</title>
<updated>2011-07-12T11:42:40Z</updated>
<author>
<name>Russell King - ARM Linux</name>
</author>
<published>2011-07-11T21:25:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a4841e39f7ca85ee2a40803ebac6221c6d8822c0'/>
<id>urn:sha1:a4841e39f7ca85ee2a40803ebac6221c6d8822c0</id>
<content type='text'>
On Mon, Jul 11, 2011 at 3:52 PM, Russell King - ARM Linux
&lt;linux@arm.linux.org.uk&gt; wrote:

...

&gt; The __exception annotation on a function causes this to happen:
&gt;
&gt; [&lt;c002406c&gt;] (asm_do_IRQ+0x6c/0x8c) from [&lt;c0024b84&gt;]
&gt; (__irq_svc+0x44/0xcc)
&gt; Exception stack(0xc3897c78 to 0xc3897cc0)
&gt; 7c60:                                                       4022d320 4022e000
&gt; 7c80: 08000075 00001000 c32273c0 c03ce1c0 c2b49b78 4022d000 c2b420b4 00000001
&gt; 7ca0: 00000000 c3897cfc 00000000 c3897cc0 c00afc54 c002edd8 00000013 ffffffff
&gt;
&gt; Where that stack dump represents the pt_regs for the exception which
&gt; happened.  Any function found in while unwinding will cause this to
&gt; be printed.
&gt;
&gt; If you insert a C function between the IRQ assembly and asm_do_IRQ,
&gt; the
&gt; dump you get from asm_do_IRQ will be the stack for your function,
&gt; not
&gt; the pt_regs.  That makes the feature useless.
&gt;

When __irq_svc - or any of the other exception handling assembly code -
calls the C code, the stack pointer will be pointing at the pt_regs
structure.

All the entry points into C code from the exception handling code are
marked with __exception or __exception_irq_enter to indicate that they
are one of the functions which has pt_regs above them.

Normally, when you've entered asm_do_IRQ() you will have this stack
layout (higher address towards top):

       pt_regs
       asm_do_IRQ frame

If you insert a C function between the exception assembly code and
asm_do_IRQ, you end up with this stack layout instead:

       pt_regs
       your function frame
       asm_do_IRQ frame

This means when we unwind, we'll get to asm_do_IRQ, and rather than
dumping out the pt_regs, we'll dump out your functions stack frame
instead, because that's what is above the asm_do_IRQ stack frame
rather than the expected pt_regs structure.

The fix is to introduce handle_IRQ() for no exception stack dump, so
it can be called with MULTI_IRQ_HANDLER is selected and a C function
is between the assembly code and the actual IRQ handling code.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Eric Miao &lt;eric.y.miao@gmail.com&gt;
</content>
</entry>
<entry>
<title>ARM: 6197/2: preliminary support for sparse IRQ</title>
<updated>2010-07-09T13:41:33Z</updated>
<author>
<name>eric miao</name>
</author>
<published>2010-06-25T08:46:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=354e6f72d6fd5d3d2963efe030265972866cd969'/>
<id>urn:sha1:354e6f72d6fd5d3d2963efe030265972866cd969</id>
<content type='text'>
So to allow NR_IRQS to be dynamic and platforms to specify the number
of IRQs really needed.

Acked-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
Signed-off-by: Eric Miao &lt;eric.y.miao@gmail.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: 6000/1: removing compilation warning comming from &lt;asm/irq.h&gt;</title>
<updated>2010-03-29T16:33:31Z</updated>
<author>
<name>viresh kumar</name>
</author>
<published>2010-03-29T04:29:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=aedceb2a490bae56f9d7e80be480421e1cf22ce0'/>
<id>urn:sha1:aedceb2a490bae56f9d7e80be480421e1cf22ce0</id>
<content type='text'>
irq.h is using struct pt_regs *. Due to this compilation
warning is comming. Removing this warning by adding declaration
of struct pt_regs.

Signed-off-by: Viresh Kumar &lt;viresh.kumar@st.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[ARM] give RiscPC a NR_IRQS definition and remove default</title>
<updated>2008-11-29T19:14:31Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2008-11-29T19:14:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7577fdfa52438a19e7e8abedb6efc645986af2ae'/>
<id>urn:sha1:7577fdfa52438a19e7e8abedb6efc645986af2ae</id>
<content type='text'>
RiscPC is the only platform using the default setting for NR_IRQS,
so the default NR_IRQS doesn't really make sense; remove it and
make RiscPC provide such a definition.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[ARM] sparse: quieten arch/arm/kernel/irq.c</title>
<updated>2008-09-06T09:56:27Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2008-09-06T09:56:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=446616dbb48c7dc039649f796c3fab55c44bd0bc'/>
<id>urn:sha1:446616dbb48c7dc039649f796c3fab55c44bd0bc</id>
<content type='text'>
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach</title>
<updated>2008-08-07T08:55:48Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2008-08-05T15:14:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a09e64fbc0094e3073dbb09c3b4bfe4ab669244b'/>
<id>urn:sha1:a09e64fbc0094e3073dbb09c3b4bfe4ab669244b</id>
<content type='text'>
This just leaves include/asm-arm/plat-* to deal with.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[ARM] move include/asm-arm to arch/arm/include/asm</title>
<updated>2008-08-02T20:32:35Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2008-08-02T09:55:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4baa9922430662431231ac637adedddbb0cfb2d7'/>
<id>urn:sha1:4baa9922430662431231ac637adedddbb0cfb2d7</id>
<content type='text'>
Move platform independent header files to arch/arm/include/asm, leaving
those in asm/arch* and asm/plat* alone.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
</feed>
