<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/openrisc/include/asm, branch linux-4.19.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.19.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.19.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2022-06-14T14:59:17Z</updated>
<entry>
<title>openrisc: start CPU timer early in boot</title>
<updated>2022-06-14T14:59:17Z</updated>
<author>
<name>Jason A. Donenfeld</name>
</author>
<published>2022-04-23T19:11:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3da53f07f216c468d9b5ffd2c69fcd1940cd0573'/>
<id>urn:sha1:3da53f07f216c468d9b5ffd2c69fcd1940cd0573</id>
<content type='text'>
[ Upstream commit 516dd4aacd67a0f27da94f3fe63fe0f4dbab6e2b ]

In order to measure the boot process, the timer should be switched on as
early in boot as possible. As well, the commit defines the get_cycles
macro, like the previous patches in this series, so that generic code is
aware that it's implemented by the platform, as is done on other archs.

Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: Jonas Bonn &lt;jonas@southpole.se&gt;
Cc: Stefan Kristiansson &lt;stefan.kristiansson@saunalahti.fi&gt;
Acked-by: Stafford Horne &lt;shorne@gmail.com&gt;
Reported-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>openrisc: Define memory barrier mb</title>
<updated>2021-06-03T06:38:10Z</updated>
<author>
<name>Peter Zijlstra</name>
</author>
<published>2021-04-14T12:45:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2191a85943ca848ec756ad79623774d2116a3be4'/>
<id>urn:sha1:2191a85943ca848ec756ad79623774d2116a3be4</id>
<content type='text'>
[ Upstream commit 8b549c18ae81dbc36fb11e4aa08b8378c599ca95 ]

This came up in the discussion of the requirements of qspinlock on an
architecture.  OpenRISC uses qspinlock, but it was noticed that the
memmory barrier was not defined.

Peter defined it in the mail thread writing:

    As near as I can tell this should do. The arch spec only lists
    this one instruction and the text makes it sound like a completion
    barrier.

This is correct so applying this patch.

Signed-off-by: Peter Zijlstra &lt;peterz@infradead.org&gt;
[shorne@gmail.com:Turned the mail into a patch]
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>arch/openrisc: Fix issues with access_ok()</title>
<updated>2020-06-22T07:04:59Z</updated>
<author>
<name>Stafford Horne</name>
</author>
<published>2019-01-08T13:15:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e8236726c616d8843bf936e2bafefc2540bb87a7'/>
<id>urn:sha1:e8236726c616d8843bf936e2bafefc2540bb87a7</id>
<content type='text'>
commit 9cb2feb4d21d97386eb25c7b67e2793efcc1e70a upstream.

The commit 594cc251fdd0 ("make 'user_access_begin()' do 'access_ok()'")
exposed incorrect implementations of access_ok() macro in several
architectures.  This change fixes 2 issues found in OpenRISC.

OpenRISC was not properly using parenthesis for arguments and also using
arguments twice.  This patch fixes those 2 issues.

I test booted this patch with v5.0-rc1 on qemu and it's working fine.

Cc: Guenter Roeck &lt;linux@roeck-us.net&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Reported-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Miles Chen &lt;miles.chen@mediatek.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'for-linus' of git://github.com/openrisc/linux</title>
<updated>2018-08-23T21:09:37Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2018-08-23T21:09:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2ab054fd1f88d7d22e6df7c34c41a2f9782c3f08'/>
<id>urn:sha1:2ab054fd1f88d7d22e6df7c34c41a2f9782c3f08</id>
<content type='text'>
Pull OpenRISC update from Stafford Horne:
 "Just one change for 4.19: refactoring from Christoph Hellwig to use
  generic DMA facilities"

* tag 'for-linus' of git://github.com/openrisc/linux:
  openrisc: use generic dma_noncoherent_ops
  openrisc: fix cache maintainance the the sync_single_for_device DMA operation
  openrisc: remove the no-op unmap_page and unmap_sg DMA operations
  openrisc: remove the sync_single_for_cpu DMA operation
</content>
</entry>
<entry>
<title>Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip</title>
<updated>2018-08-13T19:23:39Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2018-08-13T19:23:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=de5d1b39ea0b38a9f4dfb08966042b7b91e2df30'/>
<id>urn:sha1:de5d1b39ea0b38a9f4dfb08966042b7b91e2df30</id>
<content type='text'>
Pull locking/atomics update from Thomas Gleixner:
 "The locking, atomics and memory model brains delivered:

   - A larger update to the atomics code which reworks the ordering
     barriers, consolidates the atomic primitives, provides the new
     atomic64_fetch_add_unless() primitive and cleans up the include
     hell.

   - Simplify cmpxchg() instrumentation and add instrumentation for
     xchg() and cmpxchg_double().

   - Updates to the memory model and documentation"

* 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (48 commits)
  locking/atomics: Rework ordering barriers
  locking/atomics: Instrument cmpxchg_double*()
  locking/atomics: Instrument xchg()
  locking/atomics: Simplify cmpxchg() instrumentation
  locking/atomics/x86: Reduce arch_cmpxchg64*() instrumentation
  tools/memory-model: Rename litmus tests to comply to norm7
  tools/memory-model/Documentation: Fix typo, smb-&gt;smp
  sched/Documentation: Update wake_up() &amp; co. memory-barrier guarantees
  locking/spinlock, sched/core: Clarify requirements for smp_mb__after_spinlock()
  sched/core: Use smp_mb() in wake_woken_function()
  tools/memory-model: Add informal LKMM documentation to MAINTAINERS
  locking/atomics/Documentation: Describe atomic_set() as a write operation
  tools/memory-model: Make scripts executable
  tools/memory-model: Remove ACCESS_ONCE() from model
  tools/memory-model: Remove ACCESS_ONCE() from recipes
  locking/memory-barriers.txt/kokr: Update Korean translation to fix broken DMA vs. MMIO ordering example
  MAINTAINERS: Add Daniel Lustig as an LKMM reviewer
  tools/memory-model: Fix ISA2+pooncelock+pooncelock+pombonce name
  tools/memory-model: Add litmus test for full multicopy atomicity
  locking/refcount: Always allow checked forms
  ...
</content>
</entry>
<entry>
<title>Merge tag 'irqchip-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/core</title>
<updated>2018-08-06T10:45:42Z</updated>
<author>
<name>Thomas Gleixner</name>
</author>
<published>2018-08-06T10:45:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9e90c7985229430428dc9ba0ec7fe422901b456d'/>
<id>urn:sha1:9e90c7985229430428dc9ba0ec7fe422901b456d</id>
<content type='text'>
Pull irqchip updates from Marc Zyngier:

- GICv3 ITS LPI allocation revamp
- GICv3 support for hypervisor-enforced LPI range
- GICv3 ITS conversion to raw spinlock
</content>
</entry>
<entry>
<title>openrisc: Use the new GENERIC_IRQ_MULTI_HANDLER</title>
<updated>2018-08-03T10:14:09Z</updated>
<author>
<name>Palmer Dabbelt</name>
</author>
<published>2018-06-22T17:01:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c5ca4560de0f04a3c872bdd17ae3378762c66bd2'/>
<id>urn:sha1:c5ca4560de0f04a3c872bdd17ae3378762c66bd2</id>
<content type='text'>
It appears that openrisc copied arm64's GENERIC_IRQ_MULTI_HANDLER code
(which came from arm).  Cnvert it to use the generic version.

Signed-off-by: Palmer Dabbelt &lt;palmer@sifive.com&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Acked-by: Stafford Horne &lt;shorne@gmail.com&gt;
Cc: linux@armlinux.org.uk
Cc: catalin.marinas@arm.com
Cc: Will Deacon &lt;will.deacon@arm.com&gt;
Cc: jonas@southpole.se
Cc: stefan.kristiansson@saunalahti.fi
Cc: jason@lakedaemon.net
Cc: marc.zyngier@arm.com
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: nicolas.pitre@linaro.org
Cc: vladimir.murzin@arm.com
Cc: keescook@chromium.org
Cc: jinb.park7@gmail.com
Cc: yamada.masahiro@socionext.com
Cc: alexandre.belloni@bootlin.com
Cc: pombredanne@nexb.com
Cc: Greg KH &lt;gregkh@linuxfoundation.org&gt;
Cc: kstewart@linuxfoundation.org
Cc: jhogan@kernel.org
Cc: mark.rutland@arm.com
Cc: ard.biesheuvel@linaro.org
Cc: james.morse@arm.com
Cc: linux-arm-kernel@lists.infradead.org
Cc: openrisc@lists.librecores.org
Link: https://lkml.kernel.org/r/20180622170126.6308-5-palmer@sifive.com

</content>
</entry>
<entry>
<title>openrisc: use generic dma_noncoherent_ops</title>
<updated>2018-07-21T04:49:48Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2018-07-19T13:02:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5600779ea5f3d29fadc62208e21feb0bb9b813aa'/>
<id>urn:sha1:5600779ea5f3d29fadc62208e21feb0bb9b813aa</id>
<content type='text'>
Switch to the generic noncoherent direct mapping implementation.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'v4.18-rc5' into locking/core, to pick up fixes</title>
<updated>2018-07-17T07:27:43Z</updated>
<author>
<name>Ingo Molnar</name>
</author>
<published>2018-07-17T07:27:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=52b544bd386688177c41d53e748111c29d0ccc98'/>
<id>urn:sha1:52b544bd386688177c41d53e748111c29d0ccc98</id>
<content type='text'>
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>openrisc: Call destructor during __pte_free_tlb</title>
<updated>2018-06-25T12:49:10Z</updated>
<author>
<name>Stafford Horne</name>
</author>
<published>2018-06-17T21:52:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=560b423dd9af4272a1f3685c2d6b073fdc4af7c7'/>
<id>urn:sha1:560b423dd9af4272a1f3685c2d6b073fdc4af7c7</id>
<content type='text'>
This fixes an issue uncovered when a recent change to add the "page
table" flag was merged.  During bootup we see many errors like the
following:

    BUG: Bad page state in process mkdir  pfn:00bae
    page:c1ff15c0 count:0 mapcount:-1024 mapping:00000000 index:0x0
    flags: 0x0()
    raw: 00000000 00000000 00000000 fffffbff 00000000 00000100 00000200 00000000
    page dumped because: nonzero mapcount
    Modules linked in:
    CPU: 0 PID: 46 Comm: mkdir Tainted: G    B             4.17.0-simple-smp-07461-g1d40a5ea01d5-dirty #993
    Call trace:
    [&lt;(ptrval)&gt;] show_stack+0x44/0x54
    [&lt;(ptrval)&gt;] dump_stack+0xb0/0xe8
    [&lt;(ptrval)&gt;] bad_page+0x138/0x174
    [&lt;(ptrval)&gt;] ? cpumask_next+0x24/0x34
    [&lt;(ptrval)&gt;] free_pages_check_bad+0x6c/0xd0
    [&lt;(ptrval)&gt;] free_pcppages_bulk+0x174/0x42c
    [&lt;(ptrval)&gt;] free_unref_page_commit.isra.17+0xb8/0xc8
    [&lt;(ptrval)&gt;] free_unref_page_list+0x10c/0x190
    [&lt;(ptrval)&gt;] ? set_reset_devices+0x0/0x2c
    [&lt;(ptrval)&gt;] release_pages+0x3a0/0x414
    [&lt;(ptrval)&gt;] tlb_flush_mmu_free+0x5c/0x90
    [&lt;(ptrval)&gt;] tlb_flush_mmu+0x90/0xa4
    [&lt;(ptrval)&gt;] arch_tlb_finish_mmu+0x50/0x94
    [&lt;(ptrval)&gt;] tlb_finish_mmu+0x30/0x64
    [&lt;(ptrval)&gt;] exit_mmap+0x110/0x1e0
    [&lt;(ptrval)&gt;] mmput+0x50/0xf0
    [&lt;(ptrval)&gt;] do_exit+0x274/0xa94
    [&lt;(ptrval)&gt;] do_group_exit+0x50/0x110
    [&lt;(ptrval)&gt;] __wake_up_parent+0x0/0x38
    [&lt;(ptrval)&gt;] _syscall_return+0x0/0x4

During the __pte_free_tlb path openrisc fails to call the page
destructor which would clear the new bits that were introduced.
To fix this we are calling the destructor.

It seem openrisc was the only architecture missing this,  all other
architectures either call the destructor like we are doing here or use
pte_free.

Note: failing to call the destructor was also messing up the zone stats
(and will be cause other problems if you were using SPLIT_PTE_PTLOCKS,
which we are not yet).

Fixes: 1d40a5ea01d53 ("mm: mark pages in use for page tables")
Acked-by: Matthew Wilcox &lt;willy@infradead.org&gt;
Signed-off-by: Stafford Horne &lt;shorne@gmail.com&gt;
</content>
</entry>
</feed>
