<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/parisc, branch linux-2.6.32.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.32.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.32.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-01-29T21:12:56Z</updated>
<entry>
<title>parisc: Fix syscall restarts</title>
<updated>2016-01-29T21:12:56Z</updated>
<author>
<name>Helge Deller</name>
</author>
<published>2015-12-21T09:03:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3bf5fe19a9537b0976a4d7452b8b8702c2fb07e8'/>
<id>urn:sha1:3bf5fe19a9537b0976a4d7452b8b8702c2fb07e8</id>
<content type='text'>
commit 71a71fb5374a23be36a91981b5614590b9e722c3 upstream.

On parisc syscalls which are interrupted by signals sometimes failed to
restart and instead returned -ENOSYS which in the worst case lead to
userspace crashes.
A similiar problem existed on MIPS and was fixed by commit e967ef02
("MIPS: Fix restart of indirect syscalls").

On parisc the current syscall restart code assumes that all syscall
callers load the syscall number in the delay slot of the ble
instruction. That's how it is e.g. done in the unistd.h header file:
	ble 0x100(%sr2, %r0)
	ldi #syscall_nr, %r20
Because of that assumption the current code never restored %r20 before
returning to userspace.

This assumption is at least not true for code which uses the glibc
syscall() function, which instead uses this syntax:
	ble 0x100(%sr2, %r0)
	copy regX, %r20
where regX depend on how the compiler optimizes the code and register
usage.

This patch fixes this problem by adding code to analyze how the syscall
number is loaded in the delay branch and - if needed - copy the syscall
number to regX prior returning to userspace for the syscall restart.

Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
Cc: Mathieu Desnoyers &lt;mathieu.desnoyers@efficios.com&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
(cherry picked from commit 9f2dcffefc599c424ad1dd402e3a96da60639308)
Signed-off-by: Willy Tarreau &lt;w@1wt.eu&gt;
</content>
</entry>
<entry>
<title>PARISC: fix user-triggerable panic on parisc</title>
<updated>2013-06-10T09:42:40Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2012-11-21T19:27:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0f6bacee381f71861b3a7d8849d097d0f4ac7343'/>
<id>urn:sha1:0f6bacee381f71861b3a7d8849d097d0f4ac7343</id>
<content type='text'>
commit 441a179dafc0f99fc8b3a8268eef66958621082e upstream.

int sys32_rt_sigprocmask(int how, compat_sigset_t __user *set, compat_sigset_t __user *oset,
                                    unsigned int sigsetsize)
{
        sigset_t old_set, new_set;
        int ret;

        if (set &amp;&amp; get_sigset32(set, &amp;new_set, sigsetsize))

...
static int
get_sigset32(compat_sigset_t __user *up, sigset_t *set, size_t sz)
{
        compat_sigset_t s;
        int r;

        if (sz != sizeof *set) panic("put_sigset32()");

In other words, rt_sigprocmask(69, (void *)69, 69) done by 32bit process
will promptly panic the box.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Willy Tarreau &lt;w@1wt.eu&gt;
</content>
</entry>
<entry>
<title>PARISC: Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts</title>
<updated>2012-10-07T21:40:58Z</updated>
<author>
<name>Mel Gorman</name>
</author>
<published>2012-07-23T11:16:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c2b32573f11e15750f7d065c78387c55c785aee2'/>
<id>urn:sha1:c2b32573f11e15750f7d065c78387c55c785aee2</id>
<content type='text'>
commit bba3d8c3b3c0f2123be5bc687d1cddc13437c923 upstream.

The following build error occured during a parisc build with
swap-over-NFS patches applied.

net/core/sock.c:274:36: error: initializer element is not constant
net/core/sock.c:274:36: error: (near initialization for 'memalloc_socks')
net/core/sock.c:274:36: error: initializer element is not constant

Dave Anglin says:
&gt; Here is the line in sock.i:
&gt;
&gt; struct static_key memalloc_socks = ((struct static_key) { .enabled =
&gt; ((atomic_t) { (0) }) });

The above line contains two compound literals.  It also uses a designated
initializer to initialize the field enabled.  A compound literal is not a
constant expression.

The location of the above statement isn't fully clear, but if a compound
literal occurs outside the body of a function, the initializer list must
consist of constant expressions.

Reported-by: Fengguang Wu &lt;fengguang.wu@intel.com&gt;
Signed-off-by: Mel Gorman &lt;mgorman@suse.de&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Willy Tarreau &lt;w@1wt.eu&gt;
</content>
</entry>
<entry>
<title>set memory ranges in N_NORMAL_MEMORY when onlined</title>
<updated>2011-05-09T22:54:52Z</updated>
<author>
<name>David Rientjes</name>
</author>
<published>2011-04-21T02:27:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ec9c79503b68c64f5afec8c6e771d843ef3f380c'/>
<id>urn:sha1:ec9c79503b68c64f5afec8c6e771d843ef3f380c</id>
<content type='text'>
commit d9b41e0b54fd7e164daf1e9c539c1070398aa02e upstream.

When a DISCONTIGMEM memory range is brought online as a NUMA node, it
also needs to have its bet set in N_NORMAL_MEMORY.  This is necessary for
generic kernel code that utilizes N_NORMAL_MEMORY as a subset of N_ONLINE
for memory savings.

These types of hacks can hopefully be removed once DISCONTIGMEM is either
removed or abstracted away from CONFIG_NUMA.

Fixes a panic in the slub code which only initializes structures for
N_NORMAL_MEMORY to save memory:

	Backtrace:
	 [&lt;000000004021c938&gt;] add_partial+0x28/0x98
	 [&lt;000000004021faa0&gt;] __slab_free+0x1d0/0x1d8
	 [&lt;000000004021fd04&gt;] kmem_cache_free+0xc4/0x128
	 [&lt;000000004033bf9c&gt;] ida_get_new_above+0x21c/0x2c0
	 [&lt;00000000402a8980&gt;] sysfs_new_dirent+0xd0/0x238
	 [&lt;00000000402a974c&gt;] create_dir+0x5c/0x168
	 [&lt;00000000402a9ab0&gt;] sysfs_create_dir+0x98/0x128
	 [&lt;000000004033d6c4&gt;] kobject_add_internal+0x114/0x258
	 [&lt;000000004033d9ac&gt;] kobject_add_varg+0x7c/0xa0
	 [&lt;000000004033df20&gt;] kobject_add+0x50/0x90
	 [&lt;000000004033dfb4&gt;] kobject_create_and_add+0x54/0xc8
	 [&lt;00000000407862a0&gt;] cgroup_init+0x138/0x1f0
	 [&lt;000000004077ce50&gt;] start_kernel+0x5a0/0x840
	 [&lt;000000004011fa3c&gt;] start_parisc+0xa4/0xb8
	 [&lt;00000000404bb034&gt;] packet_ioctl+0x16c/0x208
	 [&lt;000000004049ac30&gt;] ip_mroute_setsockopt+0x260/0xf20

Signed-off-by: David Rientjes &lt;rientjes@google.com&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>fix per-cpu flag problem in the cpu affinity checkers</title>
<updated>2011-03-23T20:16:56Z</updated>
<author>
<name>Thomas Gleixner</name>
</author>
<published>2011-02-07T18:28:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=413064f97a8b21ccfd0110544acb60ab8920d751'/>
<id>urn:sha1:413064f97a8b21ccfd0110544acb60ab8920d751</id>
<content type='text'>
commit 9804c9eaeacfe78651052c5ddff31099f60ef78c upstream.

The CHECK_IRQ_PER_CPU is wrong, it should be checking
irq_to_desc(irq)-&gt;status not just irq.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>parisc : Remove broken line wrapping handling pdc_iodc_print()</title>
<updated>2011-02-17T23:37:06Z</updated>
<author>
<name>Guy Martin</name>
</author>
<published>2010-12-06T15:48:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8dfd49103914a72c64f0bbd88411125b03f44772'/>
<id>urn:sha1:8dfd49103914a72c64f0bbd88411125b03f44772</id>
<content type='text'>
commit fbea668498e93bb38ac9226c7af9120a25957375 upstream.

Remove the broken line wrapping handling in pdc_iodc_print().
It is broken in 3 ways :
  - It doesn't keep track of the current screen position, it just
    assumes that the new buffer will be printed at the begining of the
    screen.
  - It doesn't take in account that non printable characters won't
    increase the current position on the screen.
  - And last but not least, it triggers a kernel panic if a backspace
    is the first char in the provided buffer :

 Backtrace:
  [&lt;0000000040128ec4&gt;] pdc_console_write+0x44/0x78
  [&lt;0000000040128f18&gt;] pdc_console_tty_write+0x20/0x38
  [&lt;000000004032f1ac&gt;] n_tty_write+0x2a4/0x550
  [&lt;000000004032b158&gt;] tty_write+0x1e0/0x2d8
  [&lt;00000000401bb420&gt;] vfs_write+0xb8/0x188
  [&lt;00000000401bb630&gt;] sys_write+0x68/0xb8
  [&lt;0000000040104eb8&gt;] syscall_exit+0x0/0x14

Most terminals handle the line wrapping just fine. I've confirmed that
it works correctly on a C8000 with both vga and serial output.

Signed-off-by: Guy Martin &lt;gmsoft@tuxicoman.be&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>compat: Make compat_alloc_user_space() incorporate the access_ok()</title>
<updated>2010-09-20T20:17:57Z</updated>
<author>
<name>H. Peter Anvin</name>
</author>
<published>2010-09-07T23:16:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=337b16213b3810a982e34f4b9497745c700da8a0'/>
<id>urn:sha1:337b16213b3810a982e34f4b9497745c700da8a0</id>
<content type='text'>
commit c41d68a513c71e35a14f66d71782d27a79a81ea6 upstream.

compat_alloc_user_space() expects the caller to independently call
access_ok() to verify the returned area.  A missing call could
introduce problems on some architectures.

This patch incorporates the access_ok() check into
compat_alloc_user_space() and also adds a sanity check on the length.
The existing compat_alloc_user_space() implementations are renamed
arch_compat_alloc_user_space() and are used as part of the
implementation of the new global function.

This patch assumes NULL will cause __get_user()/__put_user() to either
fail or access userspace on all architectures.  This should be
followed by checking the return value of compat_access_user_space()
for NULL in the callers, at which time the access_ok() in the callers
can also be removed.

Reported-by: Ben Hawkes &lt;hawkes@sota.gen.nz&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
Acked-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Acked-by: Chris Metcalf &lt;cmetcalf@tilera.com&gt;
Acked-by: David S. Miller &lt;davem@davemloft.net&gt;
Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Acked-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Acked-by: Tony Luck &lt;tony.luck@intel.com&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: Fenghua Yu &lt;fenghua.yu@intel.com&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Cc: Helge Deller &lt;deller@gmx.de&gt;
Cc: James Bottomley &lt;jejb@parisc-linux.org&gt;
Cc: Kyle McMartin &lt;kyle@mcmartin.ca&gt;
Cc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Cc: Paul Mackerras &lt;paulus@samba.org&gt;
Cc: Ralf Baechle &lt;ralf@linux-mips.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>parisc: pass through '\t' to early (iodc) console</title>
<updated>2010-08-10T17:20:38Z</updated>
<author>
<name>Kyle McMartin</name>
</author>
<published>2010-08-04T00:38:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fcd6ae1e01e0740ad84bc9440edd217ef6c791aa'/>
<id>urn:sha1:fcd6ae1e01e0740ad84bc9440edd217ef6c791aa</id>
<content type='text'>
commit d9b68e5e88248bb24fd4e455588bea1d56108fd6 upstream.

The firmware handles '\t' internally, so stop trying to emulate it
(which, incidentally, had a bug in it.)

Fixes a really weird hang at bootup in rcu_bootup_announce, which,
as far as I can tell, is the first printk in the core kernel to use
a tab as the first character.

Signed-off-by: Kyle McMartin &lt;kyle@parisc-linux.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>parisc: clear floating point exception flag on SIGFPE signal</title>
<updated>2010-07-05T18:11:20Z</updated>
<author>
<name>Helge Deller</name>
</author>
<published>2010-05-03T20:44:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3cbc79196ec9677ff39e8f187a0ba6636d1e3200'/>
<id>urn:sha1:3cbc79196ec9677ff39e8f187a0ba6636d1e3200</id>
<content type='text'>
commit 550f0d922286556c7ea43974bb7921effb5a5278 upstream.

Clear the floating point exception flag before returning to
user space. This is needed, else the libc trampoline handler
may hit the same SIGFPE again while building up a trampoline
to a signal handler.

Fixes debian bug #559406.

Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
Signed-off-by: Kyle McMartin &lt;kyle@mcmartin.ca&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>Revert "parisc: Set PCI CLS early in boot."</title>
<updated>2010-05-26T21:29:22Z</updated>
<author>
<name>Greg Kroah-Hartman</name>
</author>
<published>2010-05-24T21:58:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=763f2ee657b24124d7a0b561b61bdb26231b0169'/>
<id>urn:sha1:763f2ee657b24124d7a0b561b61bdb26231b0169</id>
<content type='text'>
This reverts the following patch, which shouldn't have been applied
to the .32 stable tree as it causes problems.


  commit 5fd4514bb351b5ecb0da3692fff70741e5ed200c upstream.

  Set the PCI CLS early in the boot process to prevent
  device failures. In pcibios_set_master use the new
  pci_cache_line_size instead of a hard-coded value.

  Signed-off-by: Carlos O'Donell &lt;carlos@codesourcery.com&gt;
  Reviewed-by: Grant Grundler &lt;grundler@google.com&gt;
  Signed-off-by: Kyle McMartin &lt;kyle@redhat.com&gt;
  Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;


Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
</feed>
