<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/arch/sh/include/asm/entry-macros.S, branch v3.5-rc2</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>sh: Remove implicit sign extension from assembler immediates</title>
<updated>2009-08-24T08:09:53+00:00</updated>
<author>
<name>Stuart Menefy</name>
<email>stuart.menefy@st.com</email>
</author>
<published>2009-08-24T08:09:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fea966f7564205fcf5919af9bde031e753419c96'/>
<id>fea966f7564205fcf5919af9bde031e753419c96</id>
<content type='text'>
The SH instruction set has several instructions which accept an 8 bit
immediate operand. For logical instructions this operand is zero extended,
for arithmetic instructions the operand is sign extended. After adding an
option to the assembler to check this, it was found that several pieces
of assembly code were assuming this behaviour, and in one case
getting it wrong.

So this patch explicitly sign extends any immediate operands, which makes
it obvious what is happening, and fixes the one case which got it wrong.

Signed-off-by: Stuart Menefy &lt;stuart.menefy@st.com&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The SH instruction set has several instructions which accept an 8 bit
immediate operand. For logical instructions this operand is zero extended,
for arithmetic instructions the operand is sign extended. After adding an
option to the assembler to check this, it was found that several pieces
of assembly code were assuming this behaviour, and in one case
getting it wrong.

So this patch explicitly sign extends any immediate operands, which makes
it obvious what is happening, and fixes the one case which got it wrong.

Signed-off-by: Stuart Menefy &lt;stuart.menefy@st.com&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>sh: Setup the frame register in asm code</title>
<updated>2009-08-13T16:59:55+00:00</updated>
<author>
<name>Matt Fleming</name>
<email>matt@console-pimps.org</email>
</author>
<published>2009-08-02T21:33:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0b930489b8606224b829c8a6037eac24249a97ec'/>
<id>0b930489b8606224b829c8a6037eac24249a97ec</id>
<content type='text'>
In order to use DWARF unwinder info the frame register has to contain a
valid value. Whilst GCC takes care of this for C code, we have to do it
ourselves for assembly.

Signed-off-by: Matt Fleming &lt;matt@console-pimps.org&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In order to use DWARF unwinder info the frame register has to contain a
valid value. Whilst GCC takes care of this for C code, we have to do it
ourselves for assembly.

Signed-off-by: Matt Fleming &lt;matt@console-pimps.org&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>sh: Rework irqflags tracing to fix up CONFIG_PROVE_LOCKING.</title>
<updated>2009-07-29T14:01:24+00:00</updated>
<author>
<name>Stuart Menefy</name>
<email>stuart.menefy@st.com</email>
</author>
<published>2009-07-29T14:01:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fd78a76aefb5bf28a11d6960d29e03a11db62320'/>
<id>fd78a76aefb5bf28a11d6960d29e03a11db62320</id>
<content type='text'>
This cleans up the irqflags tracing code quite a bit and ties it
in to various missing callsites that caused an imbalance when
CONFIG_PROVE_LOCKING was enabled.

Previously this was catching on:

 987 #ifdef CONFIG_PROVE_LOCKING
 988     DEBUG_LOCKS_WARN_ON(!p-&gt;hardirqs_enabled);
 989     DEBUG_LOCKS_WARN_ON(!p-&gt;softirqs_enabled);
 990 #endif
 991     retval = -EAGAIN;

with hardirqs being doubly enabled, and subsequently bailing out
with the following call trace:

	Call trace:
	[&lt;88035224&gt;] __lock_acquire+0x616/0x6a6
	[&lt;88015a8c&gt;] do_fork+0xf8/0x2b0
	[&lt;880331ec&gt;] trace_hardirqs_on_caller+0xd4/0x114
	[&lt;88241074&gt;] _spin_unlock_irq+0x20/0x64
	[&lt;88035224&gt;] __lock_acquire+0x616/0x6a6
	[&lt;8800386c&gt;] kernel_thread+0x48/0x70
	[&lt;88024ecc&gt;] ____call_usermodehelper+0x0/0x110
	[&lt;88024ecc&gt;] ____call_usermodehelper+0x0/0x110
	[&lt;88003894&gt;] kernel_thread_helper+0x0/0x14
	[&lt;88024bac&gt;] __call_usermodehelper+0x38/0x70
	[&lt;88025dc0&gt;] worker_thread+0x150/0x274
	[&lt;88035b9c&gt;] lock_release+0x0/0x198
	[&lt;88024b74&gt;] __call_usermodehelper+0x0/0x70
	[&lt;88028cf0&gt;] autoremove_wake_function+0x0/0x30
	[&lt;88028bf2&gt;] kthread+0x3e/0x70
	[&lt;88025c70&gt;] worker_thread+0x0/0x274
	[&lt;8800389c&gt;] kernel_thread_helper+0x8/0x14
	[&lt;88028bb4&gt;] kthread+0x0/0x70
	[&lt;88003894&gt;] kernel_thread_helper+0x0/0x14

Reported-by: Nobuhiro Iwamatsu &lt;iwamatsu.nobuhiro@renesas.com&gt;
Signed-off-by: Stuart Menefy &lt;stuart.menefy@st.com&gt;
Signed-off-by: Matt Fleming &lt;matt@console-pimps.org&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This cleans up the irqflags tracing code quite a bit and ties it
in to various missing callsites that caused an imbalance when
CONFIG_PROVE_LOCKING was enabled.

Previously this was catching on:

 987 #ifdef CONFIG_PROVE_LOCKING
 988     DEBUG_LOCKS_WARN_ON(!p-&gt;hardirqs_enabled);
 989     DEBUG_LOCKS_WARN_ON(!p-&gt;softirqs_enabled);
 990 #endif
 991     retval = -EAGAIN;

with hardirqs being doubly enabled, and subsequently bailing out
with the following call trace:

	Call trace:
	[&lt;88035224&gt;] __lock_acquire+0x616/0x6a6
	[&lt;88015a8c&gt;] do_fork+0xf8/0x2b0
	[&lt;880331ec&gt;] trace_hardirqs_on_caller+0xd4/0x114
	[&lt;88241074&gt;] _spin_unlock_irq+0x20/0x64
	[&lt;88035224&gt;] __lock_acquire+0x616/0x6a6
	[&lt;8800386c&gt;] kernel_thread+0x48/0x70
	[&lt;88024ecc&gt;] ____call_usermodehelper+0x0/0x110
	[&lt;88024ecc&gt;] ____call_usermodehelper+0x0/0x110
	[&lt;88003894&gt;] kernel_thread_helper+0x0/0x14
	[&lt;88024bac&gt;] __call_usermodehelper+0x38/0x70
	[&lt;88025dc0&gt;] worker_thread+0x150/0x274
	[&lt;88035b9c&gt;] lock_release+0x0/0x198
	[&lt;88024b74&gt;] __call_usermodehelper+0x0/0x70
	[&lt;88028cf0&gt;] autoremove_wake_function+0x0/0x30
	[&lt;88028bf2&gt;] kthread+0x3e/0x70
	[&lt;88025c70&gt;] worker_thread+0x0/0x274
	[&lt;8800389c&gt;] kernel_thread_helper+0x8/0x14
	[&lt;88028bb4&gt;] kthread+0x0/0x70
	[&lt;88003894&gt;] kernel_thread_helper+0x0/0x14

Reported-by: Nobuhiro Iwamatsu &lt;iwamatsu.nobuhiro@renesas.com&gt;
Signed-off-by: Stuart Menefy &lt;stuart.menefy@st.com&gt;
Signed-off-by: Matt Fleming &lt;matt@console-pimps.org&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>sh: prefetch early exception data on sh4/sh4a.</title>
<updated>2009-02-27T07:41:17+00:00</updated>
<author>
<name>Magnus Damm</name>
<email>damm@igel.co.jp</email>
</author>
<published>2009-02-27T07:41:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0197f21ca5c5ed0df2a14a60ef073e8163e6533b'/>
<id>0197f21ca5c5ed0df2a14a60ef073e8163e6533b</id>
<content type='text'>
Prefetch early exception data. There is unused space in our
exception handler cache line anyway, so this is almost free.

Signed-off-by: Magnus Damm &lt;damm@igel.co.jp&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Prefetch early exception data. There is unused space in our
exception handler cache line anyway, so this is almost free.

Signed-off-by: Magnus Damm &lt;damm@igel.co.jp&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>sh: migrate to arch/sh/include/</title>
<updated>2008-07-28T23:09:44+00:00</updated>
<author>
<name>Paul Mundt</name>
<email>lethal@linux-sh.org</email>
</author>
<published>2008-07-28T23:09:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f15cbe6f1a4b4d9df59142fc8e4abb973302cf44'/>
<id>f15cbe6f1a4b4d9df59142fc8e4abb973302cf44</id>
<content type='text'>
This follows the sparc changes a439fe51a1f8eb087c22dd24d69cebae4a3addac.

Most of the moving about was done with Sam's directions at:

http://marc.info/?l=linux-sh&amp;m=121724823706062&amp;w=2

with subsequent hacking and fixups entirely my fault.

Signed-off-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This follows the sparc changes a439fe51a1f8eb087c22dd24d69cebae4a3addac.

Most of the moving about was done with Sam's directions at:

http://marc.info/?l=linux-sh&amp;m=121724823706062&amp;w=2

with subsequent hacking and fixups entirely my fault.

Signed-off-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
