<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch/m68k/include, branch v3.2.58</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/arch/m68k/include?h=v3.2.58</id>
<link rel='self' href='https://git.amat.us/linux/atom/arch/m68k/include?h=v3.2.58'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-09-10T00:57:24Z</updated>
<entry>
<title>m68k: Truncate base in do_div()</title>
<updated>2013-09-10T00:57:24Z</updated>
<author>
<name>Andreas Schwab</name>
<email>schwab@linux-m68k.org</email>
</author>
<published>2013-08-09T13:14:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=595886031f65c6940b4f74703c041275cd833655'/>
<id>urn:sha1:595886031f65c6940b4f74703c041275cd833655</id>
<content type='text'>
commit ea077b1b96e073eac5c3c5590529e964767fc5f7 upstream.

Explicitly truncate the second operand of do_div() to 32 bits to guard
against bogus code calling it with a 64-bit divisor.

[Thorsten]

After upgrading from 3.2 to 3.10, mounting a btrfs volume fails with:

btrfs: setting nodatacow, compression disabled
btrfs: enabling auto recovery
btrfs: disk space caching is enabled
</content>
</entry>
<entry>
<title>signal: Define __ARCH_HAS_SA_RESTORER so we know whether to clear sa_restorer</title>
<updated>2013-03-27T02:41:25Z</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2012-11-26T03:24:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b170d21942749093f0dac17735837728372e8bff'/>
<id>urn:sha1:b170d21942749093f0dac17735837728372e8bff</id>
<content type='text'>
flush_signal_handlers() needs to know whether sigaction::sa_restorer
is defined, not whether SA_RESTORER is defined.  Define the
__ARCH_HAS_SA_RESTORER macro to indicate this.

Vaguely based on upstream commit 574c4866e33d 'consolidate kernel-side
struct sigaction declarations'.

Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>m68k: fix sigset_t accessor functions</title>
<updated>2012-12-06T11:20:16Z</updated>
<author>
<name>Andreas Schwab</name>
<email>schwab@linux-m68k.org</email>
</author>
<published>2012-11-17T21:27:04Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fe16e58bbb29ec4a7893dc86da3b818005c0ff40'/>
<id>urn:sha1:fe16e58bbb29ec4a7893dc86da3b818005c0ff40</id>
<content type='text'>
commit 34fa78b59c52d1db3513db4c1a999db26b2e9ac2 upstream.

The sigaddset/sigdelset/sigismember functions that are implemented with
bitfield insn cannot allow the sigset argument to be placed in a data
register since the sigset is wider than 32 bits.  Remove the "d"
constraint from the asm statements.

The effect of the bug is that sending RT signals does not work, the signal
number is truncated modulo 32.

Signed-off-by: Andreas Schwab &lt;schwab@linux-m68k.org&gt;
Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>m68k: Correct the Atari ALLOWINT definition</title>
<updated>2012-08-09T23:24:37Z</updated>
<author>
<name>Mikael Pettersson</name>
<email>mikpe@it.uu.se</email>
</author>
<published>2012-04-18T22:53:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1f5d7d0ba028a91f63291ce521ebce558b8c2fb8'/>
<id>urn:sha1:1f5d7d0ba028a91f63291ce521ebce558b8c2fb8</id>
<content type='text'>
commit c663600584a596b5e66258cc10716fb781a5c2c9 upstream.

Booting a 3.2, 3.3, or 3.4-rc4 kernel on an Atari using the
`nfeth' ethernet device triggers a WARN_ONCE() in generic irq
handling code on the first irq for that device:

WARNING: at kernel/irq/handle.c:146 handle_irq_event_percpu+0x134/0x142()
irq 3 handler nfeth_interrupt+0x0/0x194 enabled interrupts
Modules linked in:
Call Trace: [&lt;000299b2&gt;] warn_slowpath_common+0x48/0x6a
 [&lt;000299c0&gt;] warn_slowpath_common+0x56/0x6a
 [&lt;00029a4c&gt;] warn_slowpath_fmt+0x2a/0x32
 [&lt;0005b34c&gt;] handle_irq_event_percpu+0x134/0x142
 [&lt;0005b34c&gt;] handle_irq_event_percpu+0x134/0x142
 [&lt;0000a584&gt;] nfeth_interrupt+0x0/0x194
 [&lt;001ba0a8&gt;] schedule_preempt_disabled+0x0/0xc
 [&lt;0005b37a&gt;] handle_irq_event+0x20/0x2c
 [&lt;0005add4&gt;] generic_handle_irq+0x2c/0x3a
 [&lt;00002ab6&gt;] do_IRQ+0x20/0x32
 [&lt;0000289e&gt;] auto_irqhandler_fixup+0x4/0x6
 [&lt;00003144&gt;] cpu_idle+0x22/0x2e
 [&lt;001b8a78&gt;] printk+0x0/0x18
 [&lt;0024d112&gt;] start_kernel+0x37a/0x386
 [&lt;0003021d&gt;] __do_proc_dointvec+0xb1/0x366
 [&lt;0003021d&gt;] __do_proc_dointvec+0xb1/0x366
 [&lt;0024c31e&gt;] _sinittext+0x31e/0x9c0

After invoking the irq's handler the kernel sees !irqs_disabled()
and concludes that the handler erroneously enabled interrupts.

However, debugging shows that !irqs_disabled() is true even before
the handler is invoked, which indicates a problem in the platform
code rather than the specific driver.

The warning does not occur in 3.1 or older kernels.

It turns out that the ALLOWINT definition for Atari is incorrect.

The Atari definition of ALLOWINT is ~0x400, the stated purpose of
that is to avoid taking HSYNC interrupts.  irqs_disabled() returns
true if the 3-bit ipl &amp; 4 is non-zero.  The nfeth interrupt runs at
ipl 3 (it's autovector 3), but 3 &amp; 4 is zero so irqs_disabled() is
false, and the warning above is generated.

When interrupts are explicitly disabled, ipl is set to 7.  When they
are enabled, ipl is masked with ALLOWINT.  On Atari this will result
in ipl = 3, which blocks interrupts at ipl 3 and below.  So how come
nfeth interrupts at ipl 3 are received at all?  That's because ipl
is reset to 2 by Atari-specific code in default_idle(), again with
the stated purpose of blocking HSYNC interrupts.  This discrepancy
means that ipl 3 can remain blocked for longer than intended.

Both default_idle() and falcon_hblhandler() identify HSYNC with
ipl 2, and the "Atari ST/.../F030 Hardware Register Listing" agrees,
but ALLOWINT is defined as if HSYNC was ipl 3.

[As an experiment I modified default_idle() to reset ipl to 3, and
as expected that resulted in all nfeth interrupts being blocked.]

The fix is simple: define ALLOWINT as ~0x500 instead.  This makes
arch_local_irq_enable() consistent with default_idle(), and prevents
the !irqs_disabled() problems for ipl 3 interrupts.

Tested on Atari running in an Aranym VM.

Signed-off-by: Mikael Pettersson &lt;mikpe@it.uu.se&gt;
Tested-by: Michael Schmitz &lt;schmitzmic@googlemail.com&gt; (on Falcon/CT60)
[Geert Uytterhoeven: This version applies to v3.2..v3.4.]
Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>m68k: Wire up process_vm_{read,write}v</title>
<updated>2011-12-06T19:37:58Z</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert@linux-m68k.org</email>
</author>
<published>2011-11-15T21:22:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5bf1e97dc34bf09643815ed48be3d1761a5985e1'/>
<id>urn:sha1:5bf1e97dc34bf09643815ed48be3d1761a5985e1</id>
<content type='text'>
Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Acked-by: Greg Ungerer &lt;gerg@uclinux.org&gt;
</content>
</entry>
<entry>
<title>m68k/mac: Remove mac_irq_{en,dis}able() wrappers</title>
<updated>2011-11-08T21:35:52Z</updated>
<author>
<name>Finn Thain</name>
<email>fthain@telegraphics.com.au</email>
</author>
<published>2011-09-11T13:40:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2690e2148b730c53acb8797821468d0ea1673f25'/>
<id>urn:sha1:2690e2148b730c53acb8797821468d0ea1673f25</id>
<content type='text'>
Signed-off-by: Finn Thain &lt;fthain@telegraphics.com.au&gt;
Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
</content>
</entry>
<entry>
<title>m68k/irq: Remove obsolete support for user vector interrupt fixups</title>
<updated>2011-11-08T21:35:52Z</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert@linux-m68k.org</email>
</author>
<published>2011-09-11T09:54:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f30a6484f1bcb410d0af0c24f34b8e3d92682a05'/>
<id>urn:sha1:f30a6484f1bcb410d0af0c24f34b8e3d92682a05</id>
<content type='text'>
It was used on Apollo only, before its conversion to genirq.

Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
</content>
</entry>
<entry>
<title>m68k/irq: Remove obsolete m68k irq framework</title>
<updated>2011-11-08T21:35:52Z</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert@linux-m68k.org</email>
</author>
<published>2011-09-11T09:28:04Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d890d73995257b4e10cdd7d55bad80e34a71ba22'/>
<id>urn:sha1:d890d73995257b4e10cdd7d55bad80e34a71ba22</id>
<content type='text'>
Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
</content>
</entry>
<entry>
<title>m68k/q40: Convert Q40/Q60 to genirq</title>
<updated>2011-11-08T21:35:52Z</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert@linux-m68k.org</email>
</author>
<published>2011-08-18T12:47:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a03010ed9b399fdbc28ac8836e0a6d4b15403f9f'/>
<id>urn:sha1:a03010ed9b399fdbc28ac8836e0a6d4b15403f9f</id>
<content type='text'>
q40_irq_handler() must be kept to translate ISA IRQs to the range 1-15.
q40_probe_irq_o{ff,n}() become unused.

Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Cc: Richard Zidlicky &lt;rz@linux-m68k.org&gt;
</content>
</entry>
<entry>
<title>m68k/irq: Add genirq support</title>
<updated>2011-11-08T21:35:49Z</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert@linux-m68k.org</email>
</author>
<published>2011-04-21T20:50:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4936f63cb790e265eb30a1e1630bb90bd6af0e7a'/>
<id>urn:sha1:4936f63cb790e265eb30a1e1630bb90bd6af0e7a</id>
<content type='text'>
Disabled on all platforms for now

Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
[v1] Acked-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
</feed>
