<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch/parisc/lib, branch master</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=master</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2026-04-17T09:32:46Z</updated>
<entry>
<title>parisc: Drop ip_fast_csum() inline assembly implementation</title>
<updated>2026-04-17T09:32:46Z</updated>
<author>
<name>Helge Deller</name>
<email>deller@gmx.de</email>
</author>
<published>2026-04-10T14:12:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3dd31a370c1dccb580f729af7c580ccb1ae3c0c9'/>
<id>urn:sha1:3dd31a370c1dccb580f729af7c580ccb1ae3c0c9</id>
<content type='text'>
The assembly code of ip_fast_csum() triggers unaligned access warnings
if the IP header isn't correctly aligned:

 Kernel: unaligned access to 0x173d22e76 in inet_gro_receive+0xbc/0x2e8 (iir 0x0e8810b6)
 Kernel: unaligned access to 0x173d22e7e in inet_gro_receive+0xc4/0x2e8 (iir 0x0e88109a)
 Kernel: unaligned access to 0x173d22e82 in inet_gro_receive+0xc8/0x2e8 (iir 0x0e90109d)
 Kernel: unaligned access to 0x173d22e7a in inet_gro_receive+0xd0/0x2e8 (iir 0x0e9810b8)
 Kernel: unaligned access to 0x173d22e86 in inet_gro_receive+0xdc/0x2e8 (iir 0x0e8810b8)

We have the option to a) ignore the warnings, b) work around it by
adding more code to check for alignment, or c) to switch to the generic
implementation and rely on the compiler to optimize the code.

Let's go with c), because a) isn't nice, and b) would effectively lead
to an implementation which is basically equal to c).

Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
Cc: stable@vger.kernel.org # v7.0+
</content>
</entry>
<entry>
<title>parisc: Remove spurious if statement from raw_copy_from_user()</title>
<updated>2025-10-07T14:44:29Z</updated>
<author>
<name>John David Anglin</name>
<email>dave.anglin@bell.net</email>
</author>
<published>2025-08-05T15:35:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=16794e524d310780163fdd49d0bf7fac30f8dbc8'/>
<id>urn:sha1:16794e524d310780163fdd49d0bf7fac30f8dbc8</id>
<content type='text'>
Accidently introduced in commit 91428ca9320e.

Signed-off-by: John David Anglin &lt;dave.anglin@bell.net&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
Fixes: 91428ca9320e ("parisc: Check region is readable by user in raw_copy_from_user()")
Cc: stable@vger.kernel.org # v5.12+
</content>
</entry>
<entry>
<title>parisc: Check region is readable by user in raw_copy_from_user()</title>
<updated>2025-07-25T20:45:23Z</updated>
<author>
<name>John David Anglin</name>
<email>dave.anglin@bell.net</email>
</author>
<published>2025-07-21T19:39:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=91428ca9320edbab1211851d82429d33b9cd73ef'/>
<id>urn:sha1:91428ca9320edbab1211851d82429d33b9cd73ef</id>
<content type='text'>
Because of the way the _PAGE_READ is handled in the parisc PTE, an
access interruption is not generated when the kernel reads from a
region where the _PAGE_READ is zero. The current code was written
assuming read access faults would also occur in the kernel.

This change adds user access checks to raw_copy_from_user().  The
prober_user() define checks whether user code has read access to
a virtual address. Note that page faults are not handled in the
exception support for the probe instruction. For this reason, we
precede the probe by a ldb access check.

Signed-off-by: John David Anglin &lt;dave.anglin@bell.net&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
Cc: stable@vger.kernel.org # v5.12+
</content>
</entry>
<entry>
<title>parisc: Remove memcpy_fromio</title>
<updated>2025-02-03T18:27:00Z</updated>
<author>
<name>Julian Vetter</name>
<email>julian@outer-limits.org</email>
</author>
<published>2025-01-30T13:48:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=4e3ff3c5854ff584842bb2cfa484e4aa79d998bf'/>
<id>urn:sha1:4e3ff3c5854ff584842bb2cfa484e4aa79d998bf</id>
<content type='text'>
Fully migrate parisc to the IO functions from lib/iomem_copy.c. In a
recent patch the functions memset_io and memcpy_toio were removed, but
the memcpy_fromio was kept, because for very short sequences it does
half word accesses, whereas the functions in lib/iomem_copy.c do byte
accesses until the memory is naturally aligned and then do machine word
accesses. But I don't think the single half-word access merits keeping
the arch specific implementation, so, remove it as well.

Signed-off-by: Julian Vetter &lt;julian@outer-limits.org&gt;
Acked-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
</content>
</entry>
<entry>
<title>parisc: Fix formatting errors in io.c</title>
<updated>2025-02-03T18:26:52Z</updated>
<author>
<name>Julian Vetter</name>
<email>julian@outer-limits.org</email>
</author>
<published>2025-01-30T13:48:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=579e5fd927adb2faede602b2ff5a40849da96ad5'/>
<id>urn:sha1:579e5fd927adb2faede602b2ff5a40849da96ad5</id>
<content type='text'>
Mutliple lines in the file contain tabs in lines where there is no
code. Just remove them.

Signed-off-by: Julian Vetter &lt;julian@outer-limits.org&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
</content>
</entry>
<entry>
<title>Merge tag 'parisc-for-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux</title>
<updated>2025-01-24T19:52:59Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2025-01-24T19:52:59Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=47d65738b9752d6bf0ed694c3c829a06a1c460ac'/>
<id>urn:sha1:47d65738b9752d6bf0ed694c3c829a06a1c460ac</id>
<content type='text'>
Pull parisc architecture updates from Helge Deller:

 - Temporarily disable jump label support to avoid kernel crash with
   32-bit kernel

 - Add vdso linker script to 'targets' instead of extra-y

 - Remove parisc versions of memcpy_toio and memset_io

* tag 'parisc-for-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
  parisc: Temporarily disable jump label support
  parisc: add vdso linker script to 'targets' instead of extra-y
  parisc: Remove memcpy_toio and memset_io
</content>
</entry>
<entry>
<title>parisc: Remove memcpy_toio and memset_io</title>
<updated>2024-12-07T16:46:09Z</updated>
<author>
<name>Julian Vetter</name>
<email>julian@outer-limits.org</email>
</author>
<published>2024-12-04T08:04:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=df195d931a33889c96c0efebbbc6f3b747c145c6'/>
<id>urn:sha1:df195d931a33889c96c0efebbbc6f3b747c145c6</id>
<content type='text'>
Recently new functions for IO memcpy and IO memset were added in
libs/iomem_copy.c. So, remove the arch specific implementations, to fall
back to the generic ones which do exactly the same. Keep memcpy_fromio
for now, because it's slight more optimized by doing 'u16' accesses if
the buffer is aligned this way.

Signed-off-by: Julian Vetter &lt;julian@outer-limits.org&gt;
Reviewed-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
</content>
</entry>
<entry>
<title>net: checksum: Move from32to16() to generic header</title>
<updated>2024-10-30T14:29:59Z</updated>
<author>
<name>Puranjay Mohan</name>
<email>puranjay@kernel.org</email>
</author>
<published>2024-10-26T12:53:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=db71aae70e3e646d8ba4cb50e4bd4c281a91c804'/>
<id>urn:sha1:db71aae70e3e646d8ba4cb50e4bd4c281a91c804</id>
<content type='text'>
from32to16() is used by lib/checksum.c and also by
arch/parisc/lib/checksum.c. The next patch will use it in the
bpf_csum_diff helper.

Move from32to16() to the include/net/checksum.h as csum_from32to16() and
remove other implementations.

Signed-off-by: Puranjay Mohan &lt;puranjay@kernel.org&gt;
Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Reviewed-by: Toke Høiland-Jørgensen &lt;toke@redhat.com&gt;
Acked-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Link: https://lore.kernel.org/bpf/20241026125339.26459-2-puranjay@kernel.org
</content>
</entry>
<entry>
<title>parisc: add u16 support to cmpxchg()</title>
<updated>2024-04-10T05:06:00Z</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2024-04-02T03:13:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d428032b3524e8fc75cf0bcc86b409df8ddf532b'/>
<id>urn:sha1:d428032b3524e8fc75cf0bcc86b409df8ddf532b</id>
<content type='text'>
Add (and export) __cmpxchg_u16(), teach __cmpxchg() to use it.

And get rid of manual truncation down to u8, etc. in there - the
only reason for those is to avoid bogus warnings about constant
truncation from sparse, and those are easy to avoid by turning
that switch into conditional expression.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
</entry>
<entry>
<title>parisc: unify implementations of __cmpxchg_u{8,32,64}</title>
<updated>2024-04-10T05:06:00Z</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2024-04-02T02:29:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7e00072915b3eb4739c57e716031f40de05e7a64'/>
<id>urn:sha1:7e00072915b3eb4739c57e716031f40de05e7a64</id>
<content type='text'>
identical except for type name involved

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Paul E. McKenney &lt;paulmck@kernel.org&gt;
</content>
</entry>
</feed>
