<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/powerpc/kernel/exceptions-64e.S, branch linux-5.13.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.13.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.13.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2021-05-14T07:28:54Z</updated>
<entry>
<title>powerpc/64e/interrupt: Fix nvgprs being clobbered</title>
<updated>2021-05-14T07:28:54Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2021-05-14T04:40:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c6ac667b07996929835b512de0e9a988977e6abc'/>
<id>urn:sha1:c6ac667b07996929835b512de0e9a988977e6abc</id>
<content type='text'>
Some interrupt handlers have an "extra" that saves 1 or 2
registers (r14, r15) in the paca save area and makes them available to
use by the handler.

The change to always save nvgprs in exception handlers lead to some
interrupt handlers saving those scratch r14 / r15 registers into the
interrupt frame's GPR saves, which get restored on interrupt exit.

Fix this by always reloading those scratch registers from paca before
the EXCEPTION_COMMON that saves nvgprs.

Fixes: 4228b2c3d20e ("powerpc/64e/interrupt: always save nvgprs on interrupt")
Reported-by: Christian Zigotzky &lt;chzigotzky@xenosoft.de&gt;
Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Tested-by: Christian Zigotzky &lt;chzigotzky@xenosoft.de&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20210514044008.1955783-1-npiggin@gmail.com

</content>
</entry>
<entry>
<title>powerpc/64e/interrupt: handle bad_page_fault in C</title>
<updated>2021-04-14T13:04:43Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2021-03-16T10:42:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d738ee8d56de38c91610741f672ec5c1ffae76fc'/>
<id>urn:sha1:d738ee8d56de38c91610741f672ec5c1ffae76fc</id>
<content type='text'>
With non-volatile registers saved on interrupt, bad_page_fault
can now be called by do_page_fault.

Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20210316104206.407354-9-npiggin@gmail.com
</content>
</entry>
<entry>
<title>powerpc/64e/interrupt: reconcile irq soft-mask state in C</title>
<updated>2021-04-14T13:04:43Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2021-03-16T10:42:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=097157e16cf8bf91b9cf6fbda05d234d3599c01f'/>
<id>urn:sha1:097157e16cf8bf91b9cf6fbda05d234d3599c01f</id>
<content type='text'>
Use existing 64s interrupt entry wrapper code to reconcile irqs in C.

Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20210316104206.407354-7-npiggin@gmail.com
</content>
</entry>
<entry>
<title>powerpc/64e/interrupt: NMI save irq soft-mask state in C</title>
<updated>2021-04-14T13:04:20Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2021-03-16T10:41:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3db8aa10de9a478b3086db7894e0266def3d77af'/>
<id>urn:sha1:3db8aa10de9a478b3086db7894e0266def3d77af</id>
<content type='text'>
64e non-maskable interrupts save the state of the irq soft-mask in
asm. This can be done in C in interrupt wrappers as 64s does.

I haven't been able to test this with qemu because it doesn't seem
to cause FSL bookE WDT interrupts.

This makes WatchdogException an NMI interrupt, which affects 32-bit
as well (okay, or create a new handler?)

Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20210316104206.407354-6-npiggin@gmail.com
</content>
</entry>
<entry>
<title>powerpc/64e/interrupt: use new interrupt return</title>
<updated>2021-04-14T13:04:20Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2021-03-16T10:41:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0c2472de23aea5ce9139a3e887191925759d1259'/>
<id>urn:sha1:0c2472de23aea5ce9139a3e887191925759d1259</id>
<content type='text'>
Update the new C and asm interrupt return code to account for 64e
specifics, switch over to use it.

The now-unused old ret_from_except code, that was moved to 64e after the
64s conversion, is removed.

Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20210316104206.407354-5-npiggin@gmail.com
</content>
</entry>
<entry>
<title>powerpc/64e/interrupt: always save nvgprs on interrupt</title>
<updated>2021-04-14T13:04:19Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2021-03-16T10:41:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4228b2c3d20e9f80b847f809c38e6cf82864fa50'/>
<id>urn:sha1:4228b2c3d20e9f80b847f809c38e6cf82864fa50</id>
<content type='text'>
In order to use the C interrupt return, nvgprs must always be saved.

Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20210316104206.407354-3-npiggin@gmail.com
</content>
</entry>
<entry>
<title>powerpc/64: entry cpu time accounting in C</title>
<updated>2021-02-08T13:10:49Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2021-01-30T13:08:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=56acfdd8bf9f75e83a1b2957bd415368f39b67b6'/>
<id>urn:sha1:56acfdd8bf9f75e83a1b2957bd415368f39b67b6</id>
<content type='text'>
There is no need for this to be in asm, use the new interrupt entry wrapper.

Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20210130130852.2952424-39-npiggin@gmail.com
</content>
</entry>
<entry>
<title>powerpc: bad_page_fault get registers from regs</title>
<updated>2021-02-08T13:02:09Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2021-01-30T13:08:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8458c628a53ba4311b2df12370be1a6f1870ff37'/>
<id>urn:sha1:8458c628a53ba4311b2df12370be1a6f1870ff37</id>
<content type='text'>
Similar to the previous patch this makes interrupt handler function
types more regular so they can be wrapped with the next patch.

Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20210130130852.2952424-12-npiggin@gmail.com
</content>
</entry>
<entry>
<title>powerpc: DebugException remove args</title>
<updated>2021-02-08T13:02:09Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2021-01-30T13:08:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=755d664174463791489dddf34c33308b61de68c3'/>
<id>urn:sha1:755d664174463791489dddf34c33308b61de68c3</id>
<content type='text'>
Like other interrupt handler conversions, switch to getting registers
from the pt_regs argument.

Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20210130130852.2952424-10-npiggin@gmail.com
</content>
</entry>
<entry>
<title>powerpc: remove arguments from fault handler functions</title>
<updated>2021-02-08T13:02:08Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2021-01-30T13:08:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a01a3f2ddbcda83e8572787c0ec1dcbeba86915a'/>
<id>urn:sha1:a01a3f2ddbcda83e8572787c0ec1dcbeba86915a</id>
<content type='text'>
Make mm fault handlers all just take the pt_regs * argument and load
DAR/DSISR from that. Make those that return a value return long.

This is done to make the function signatures match other handlers, which
will help with a future patch to add wrappers. Explicit arguments could
be added for performance but that would require more wrapper macro
variants.

Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20210130130852.2952424-7-npiggin@gmail.com
</content>
</entry>
</feed>
