<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/parisc/mm, branch linux-5.16.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.16.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.16.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2022-04-08T12:06:34Z</updated>
<entry>
<title>parisc: Fix handling off probe non-access faults</title>
<updated>2022-04-08T12:06:34Z</updated>
<author>
<name>John David Anglin</name>
</author>
<published>2022-03-09T21:14:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3a354b5a1db54284b94bb768077c760a8b938ec1'/>
<id>urn:sha1:3a354b5a1db54284b94bb768077c760a8b938ec1</id>
<content type='text'>
[ Upstream commit e00b0a2ab8ec019c344e53bfc76e31c18bb587b7 ]

Currently, the parisc kernel does not fully support non-access TLB
fault handling for probe instructions. In the fast path, we set the
target register to zero if it is not a shadowed register. The slow
path is not implemented, so we call do_page_fault. The architecture
indicates that non-access faults should not cause a page fault from
disk.

This change adds to code to provide non-access fault support for
probe instructions. It also modifies the handling of faults on
userspace so that if the address lies in a valid VMA and the access
type matches that for the VMA, the probe target register is set to
one. Otherwise, the target register is set to zero.

This was done to make probe instructions more useful for userspace.
Probe instructions are not very useful if they set the target register
to zero whenever a page is not present in memory. Nominally, the
purpose of the probe instruction is determine whether read or write
access to a given address is allowed.

This fixes a problem in function pointer comparison noticed in the
glibc testsuite (stdio-common/tst-vfprintf-user-type). The same
problem is likely in glibc (_dl_lookup_address).

V2 adds flush and lpa instruction support to handle_nadtlb_fault.

Signed-off-by: John David Anglin &lt;dave.anglin@bell.net&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>parisc: Drop __init from map_pages declaration</title>
<updated>2022-02-23T11:05:46Z</updated>
<author>
<name>John David Anglin</name>
</author>
<published>2022-01-22T18:19:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a3bb19a267681738d785b7b66ff397e93bed801a'/>
<id>urn:sha1:a3bb19a267681738d785b7b66ff397e93bed801a</id>
<content type='text'>
commit 9129886b88185962538180625ca8051362b01327 upstream.

With huge kernel pages, we randomly eat a SPARC in map_pages(). This
is fixed by dropping __init from the declaration.

However, map_pages references the __init routine memblock_alloc_try_nid
via memblock_alloc.  Thus, it needs to be marked with __ref.

memblock_alloc is only called before the kernel text is set to readonly.

The __ref on free_initmem is no longer needed.

Comment regarding map_pages being in the init section is removed.

Signed-off-by: John David Anglin &lt;dave.anglin@bell.net&gt;
Cc: stable@vger.kernel.org # v5.4+
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>parisc: Fix set_fixmap() on PA1.x CPUs</title>
<updated>2021-11-01T11:00:22Z</updated>
<author>
<name>Helge Deller</name>
</author>
<published>2021-10-31T20:58:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6e866a462867b60841202e900f10936a0478608c'/>
<id>urn:sha1:6e866a462867b60841202e900f10936a0478608c</id>
<content type='text'>
Fix a kernel crash which happens on PA1.x CPUs while initializing the
FTRACE/KPROBE breakpoints.  The PTE table entries for the fixmap area
were not created correctly.

Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
Fixes: ccfbc68d41c2 ("parisc: add set_fixmap()/clear_fixmap()")
Cc: stable@vger.kernel.org # v5.2+
</content>
</entry>
<entry>
<title>parisc: Use swap() to swap values in setup_bootmem()</title>
<updated>2021-11-01T10:59:49Z</updated>
<author>
<name>Yihao Han</name>
</author>
<published>2021-11-01T03:03:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1ae8e91e814d2b9ff1a2f336e1ed1db55dd42289'/>
<id>urn:sha1:1ae8e91e814d2b9ff1a2f336e1ed1db55dd42289</id>
<content type='text'>
Signed-off-by: Yihao Han &lt;hanyihao@vivo.com&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
</content>
</entry>
<entry>
<title>parisc: fix warning in flush_tlb_all</title>
<updated>2021-10-30T21:11:01Z</updated>
<author>
<name>Sven Schnelle</name>
</author>
<published>2021-10-09T18:24:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1030d681319b43869e0d5b568b9d0226652d1a6f'/>
<id>urn:sha1:1030d681319b43869e0d5b568b9d0226652d1a6f</id>
<content type='text'>
I've got the following splat after enabling preemption:

[    3.724721] BUG: using __this_cpu_add() in preemptible [00000000] code: swapper/0/1
[    3.734630] caller is __this_cpu_preempt_check+0x38/0x50
[    3.740635] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.15.0-rc4-64bit+ #324
[    3.744605] Hardware name: 9000/785/C8000
[    3.744605] Backtrace:
[    3.744605]  [&lt;00000000401d9d58&gt;] show_stack+0x74/0xb0
[    3.744605]  [&lt;0000000040c27bd4&gt;] dump_stack_lvl+0x10c/0x188
[    3.744605]  [&lt;0000000040c27c84&gt;] dump_stack+0x34/0x48
[    3.744605]  [&lt;0000000040c33438&gt;] check_preemption_disabled+0x178/0x1b0
[    3.744605]  [&lt;0000000040c334f8&gt;] __this_cpu_preempt_check+0x38/0x50
[    3.744605]  [&lt;00000000401d632c&gt;] flush_tlb_all+0x58/0x2e0
[    3.744605]  [&lt;00000000401075c0&gt;] 0x401075c0
[    3.744605]  [&lt;000000004010b8fc&gt;] 0x4010b8fc
[    3.744605]  [&lt;00000000401080fc&gt;] 0x401080fc
[    3.744605]  [&lt;00000000401d5224&gt;] do_one_initcall+0x128/0x378
[    3.744605]  [&lt;0000000040102de8&gt;] 0x40102de8
[    3.744605]  [&lt;0000000040c33864&gt;] kernel_init+0x60/0x3a8
[    3.744605]  [&lt;00000000401d1020&gt;] ret_from_kernel_thread+0x20/0x28
[    3.744605]

Fix this by moving the __inc_irq_stat() into the locked section.

Signed-off-by: Sven Schnelle &lt;svens@stackframe.org&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
</content>
</entry>
<entry>
<title>parisc: make parisc_acctyp() available outside of faults.c</title>
<updated>2021-10-30T21:11:00Z</updated>
<author>
<name>Helge Deller</name>
</author>
<published>2021-05-04T12:43:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a348eab32776ba1b1164eeb16f9fd5a3f646dde3'/>
<id>urn:sha1:a348eab32776ba1b1164eeb16f9fd5a3f646dde3</id>
<content type='text'>
When adding kfence support, we need to tell kfence_handle_page_fault()
if the interrupted assembler statement is a read or write operation.

Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
</content>
</entry>
<entry>
<title>parisc: Rename PMD_ORDER to PMD_TABLE_ORDER</title>
<updated>2021-08-30T08:18:25Z</updated>
<author>
<name>Matthew Wilcox (Oracle)</name>
</author>
<published>2021-07-15T13:46:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7bf82eb3873fbbee8273f60ddef584194b99f6c1'/>
<id>urn:sha1:7bf82eb3873fbbee8273f60ddef584194b99f6c1</id>
<content type='text'>
This is the order of the page table allocation, not the order of a PMD.

Signed-off-by: Matthew Wilcox (Oracle) &lt;willy@infradead.org&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
</content>
</entry>
<entry>
<title>hugetlb: pass vma into huge_pte_alloc() and huge_pmd_share()</title>
<updated>2021-05-05T18:27:20Z</updated>
<author>
<name>Peter Xu</name>
</author>
<published>2021-05-05T01:33:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=aec44e0f0213e36d4f0868a80cdc5097a510f79d'/>
<id>urn:sha1:aec44e0f0213e36d4f0868a80cdc5097a510f79d</id>
<content type='text'>
Patch series "hugetlb: Disable huge pmd unshare for uffd-wp", v4.

This series tries to disable huge pmd unshare of hugetlbfs backed memory
for uffd-wp.  Although uffd-wp of hugetlbfs is still during rfc stage,
the idea of this series may be needed for multiple tasks (Axel's uffd
minor fault series, and Mike's soft dirty series), so I picked it out
from the larger series.

This patch (of 4):

It is a preparation work to be able to behave differently in the per
architecture huge_pte_alloc() according to different VMA attributes.

Pass it deeper into huge_pmd_share() so that we can avoid the find_vma() call.

[peterx@redhat.com: build fix]
  Link: https://lkml.kernel.org/r/20210304164653.GB397383@xz-x1Link: https://lkml.kernel.org/r/20210218230633.15028-1-peterx@redhat.com

Link: https://lkml.kernel.org/r/20210218230633.15028-2-peterx@redhat.com
Signed-off-by: Peter Xu &lt;peterx@redhat.com&gt;
Suggested-by: Mike Kravetz &lt;mike.kravetz@oracle.com&gt;
Cc: Adam Ruprecht &lt;ruprecht@google.com&gt;
Cc: Alexander Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Cc: Andrea Arcangeli &lt;aarcange@redhat.com&gt;
Cc: Anshuman Khandual &lt;anshuman.khandual@arm.com&gt;
Cc: Axel Rasmussen &lt;axelrasmussen@google.com&gt;
Cc: Cannon Matthews &lt;cannonmatthews@google.com&gt;
Cc: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Cc: Chinwen Chang &lt;chinwen.chang@mediatek.com&gt;
Cc: David Rientjes &lt;rientjes@google.com&gt;
Cc: "Dr . David Alan Gilbert" &lt;dgilbert@redhat.com&gt;
Cc: Huang Ying &lt;ying.huang@intel.com&gt;
Cc: Ingo Molnar &lt;mingo@redhat.com&gt;
Cc: Jann Horn &lt;jannh@google.com&gt;
Cc: Jerome Glisse &lt;jglisse@redhat.com&gt;
Cc: Kirill A. Shutemov &lt;kirill@shutemov.name&gt;
Cc: Lokesh Gidra &lt;lokeshgidra@google.com&gt;
Cc: "Matthew Wilcox (Oracle)" &lt;willy@infradead.org&gt;
Cc: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Cc: "Michal Koutn" &lt;mkoutny@suse.com&gt;
Cc: Michel Lespinasse &lt;walken@google.com&gt;
Cc: Mike Rapoport &lt;rppt@linux.vnet.ibm.com&gt;
Cc: Mina Almasry &lt;almasrymina@google.com&gt;
Cc: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Cc: Oliver Upton &lt;oupton@google.com&gt;
Cc: Shaohua Li &lt;shli@fb.com&gt;
Cc: Shawn Anastasio &lt;shawn@anastas.io&gt;
Cc: Steven Price &lt;steven.price@arm.com&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Vlastimil Babka &lt;vbabka@suse.cz&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>mm: move mem_init_print_info() into mm_init()</title>
<updated>2021-04-30T18:20:42Z</updated>
<author>
<name>Kefeng Wang</name>
</author>
<published>2021-04-30T06:00:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1f9d03c5e999ed5a57fa4d8aec9fdf67a6234b80'/>
<id>urn:sha1:1f9d03c5e999ed5a57fa4d8aec9fdf67a6234b80</id>
<content type='text'>
mem_init_print_info() is called in mem_init() on each architecture, and
pass NULL argument, so using void argument and move it into mm_init().

Link: https://lkml.kernel.org/r/20210317015210.33641-1-wangkefeng.wang@huawei.com
Signed-off-by: Kefeng Wang &lt;wangkefeng.wang@huawei.com&gt;
Acked-by: Dave Hansen &lt;dave.hansen@linux.intel.com&gt;	[x86]
Reviewed-by: Christophe Leroy &lt;christophe.leroy@c-s.fr&gt;	[powerpc]
Acked-by: David Hildenbrand &lt;david@redhat.com&gt;
Tested-by: Anatoly Pugachev &lt;matorola@gmail.com&gt;	[sparc64]
Acked-by: Russell King &lt;rmk+kernel@armlinux.org.uk&gt;	[arm]
Acked-by: Mike Rapoport &lt;rppt@linux.ibm.com&gt;
Cc: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Cc: Richard Henderson &lt;rth@twiddle.net&gt;
Cc: Guo Ren &lt;guoren@kernel.org&gt;
Cc: Yoshinori Sato &lt;ysato@users.osdn.me&gt;
Cc: Huacai Chen &lt;chenhuacai@kernel.org&gt;
Cc: Jonas Bonn &lt;jonas@southpole.se&gt;
Cc: Palmer Dabbelt &lt;palmer@dabbelt.com&gt;
Cc: Heiko Carstens &lt;hca@linux.ibm.com&gt;
Cc: "David S. Miller" &lt;davem@davemloft.net&gt;
Cc: "Peter Zijlstra" &lt;peterz@infradead.org&gt;
Cc: Ingo Molnar &lt;mingo@redhat.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>parisc: Optimize per-pagetable spinlocks</title>
<updated>2021-02-12T15:39:42Z</updated>
<author>
<name>Helge Deller</name>
</author>
<published>2021-02-12T15:38:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b7795074a04669d0a023babf786d29bf67c68783'/>
<id>urn:sha1:b7795074a04669d0a023babf786d29bf67c68783</id>
<content type='text'>
On parisc a spinlock is stored in the next page behind the pgd which
protects against parallel accesses to the pgd. That's why one additional
page (PGD_ALLOC_ORDER) is allocated for the pgd.

Matthew Wilcox suggested that we instead should use a pointer in the
struct page table for this spinlock and noted, that the comments for the
PGD_ORDER and PMD_ORDER defines were wrong.

Both suggestions are addressed with this patch. Instead of having an own
spinlock to protect the pgd, we now switch to use the existing
page_table_lock.  Additionally, beside loading the pgd into cr25 in
switch_mm_irqs_off(), the physical address of this lock is loaded into
cr28 (tr4), so that we can avoid implementing a complicated lookup in
assembly for this lock in the TLB fault handlers.

The existing Hybrid L2/L3 page table scheme (where the pmd is adjacent
to the pgd) has been dropped with this patch.

Remove the locking in set_pte() and the huge-page pte functions too.
They trigger a spinlock recursion on 32bit machines and seem unnecessary.

Suggested-by: Matthew Wilcox &lt;willy@infradead.org&gt;
Fixes: b37d1c1898b2 ("parisc: Use per-pagetable spinlock")
Signed-off-by: John David Anglin &lt;dave.anglin@bell.net&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
</content>
</entry>
</feed>
