<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/powerpc/kernel/head_32.h, 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-03-29T02:22:10Z</updated>
<entry>
<title>powerpc/32s: Move KUEP locking/unlocking in C</title>
<updated>2021-03-29T02:22:10Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-03-12T12:50:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b5efec00b671c5d7e9cb9e73a1d4925dd6ce8dcd'/>
<id>urn:sha1:b5efec00b671c5d7e9cb9e73a1d4925dd6ce8dcd</id>
<content type='text'>
This can be done in C, do it.

Unrolling the loop gains approx. 15% performance.

From now on, prepare_transfer_to_handler() is only for
interrupts from kernel.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/4eadd873927e9a73c3d1dfe2f9497353465514cf.1615552867.git.christophe.leroy@csgroup.eu
</content>
</entry>
<entry>
<title>powerpc/32: Only use prepare_transfer_to_handler function on book3s/32 and e500</title>
<updated>2021-03-29T02:22:10Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-03-12T12:50:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a2b3e09ae41c71d27d9b8da9baf31e0d9a97b864'/>
<id>urn:sha1:a2b3e09ae41c71d27d9b8da9baf31e0d9a97b864</id>
<content type='text'>
Only book3s/32 and e500 have significative work to do in
prepare_transfer_to_handler.

Other 32 bit have nothing to do at all.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/b5e29ca0e557c11340415a13fe8b107189d315e1.1615552867.git.christophe.leroy@csgroup.eu
</content>
</entry>
<entry>
<title>powerpc/32: Save remaining registers in exception prolog</title>
<updated>2021-03-29T02:22:10Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-03-12T12:50:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=16db54369df614bf386aa31a6730c5bdb1bf4ffd'/>
<id>urn:sha1:16db54369df614bf386aa31a6730c5bdb1bf4ffd</id>
<content type='text'>
Save non volatile registers, XER, CTR, MSR and NIP in exception prolog.

Also assign proper value to r2 and r3 there.

For now, recalculate thread pointer in prepare_transfer_to_handler.
It will disappear once KUAP is ported to C.

And remove the comment which is now completely wrong.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/56f0cde9dd0362edf2ddba4d887552013eee7329.1615552867.git.christophe.leroy@csgroup.eu
</content>
</entry>
<entry>
<title>powerpc/32: Refactor saving of volatile registers in exception prologs</title>
<updated>2021-03-29T02:22:10Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-03-12T12:50:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a305597850c96e2f2d349533cf3b514fa4b7b9f8'/>
<id>urn:sha1:a305597850c96e2f2d349533cf3b514fa4b7b9f8</id>
<content type='text'>
Exception prologs all do the same at the end:
- Save trapno in stack
- Mark stack with exception marker
- Save r0
- Save r3 to r8

Refactor that into a COMMON_EXCEPTION_PROLOG_END macro.
At the same time use r1 instead of r11.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/e1c45d2e895e0693c42d2a6840df1105a148efea.1615552867.git.christophe.leroy@csgroup.eu
</content>
</entry>
<entry>
<title>powerpc/32: Remove the xfer parameter in EXCEPTION() macro</title>
<updated>2021-03-29T02:22:09Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-03-12T12:50:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=acc142b6230eb2d9cec9b9e3baac1bc074df8ba3'/>
<id>urn:sha1:acc142b6230eb2d9cec9b9e3baac1bc074df8ba3</id>
<content type='text'>
The xfer parameter is not used anymore, remove it.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/17c7d68bd18f7d2f1ab24a1a20d9ed33bbcda741.1615552867.git.christophe.leroy@csgroup.eu
</content>
</entry>
<entry>
<title>powerpc/32: Dismantle EXC_XFER_STD/LITE/TEMPLATE</title>
<updated>2021-03-29T02:22:09Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-03-12T12:50:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4c0104a83fc3990a76a01a2f4e504251fa9814c4'/>
<id>urn:sha1:4c0104a83fc3990a76a01a2f4e504251fa9814c4</id>
<content type='text'>
In order to get more control in exception prolog, dismantle
all non standard exception macros, finishing with EXC_XFER_STD
and EXC_XFER_LITE and EXC_XFER_TEMPLATE.

Also remove transfer_to_handler_full and ret_from_except and
ret_from_except_full as they are not used anymore.

Last parameter of EXCEPTION() is now ignored, will be removed
in a later patch to avoid too much churn.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/ca5795d04a220586b7037dbbbe6951dfa9e768eb.1615552867.git.christophe.leroy@csgroup.eu
</content>
</entry>
<entry>
<title>powerpc/32: Add a prepare_transfer_to_handler macro for exception prologs</title>
<updated>2021-03-29T02:22:09Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-03-12T12:50:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bce4c26a4e324cb096a3768cdc3aad4e2552c3d0'/>
<id>urn:sha1:bce4c26a4e324cb096a3768cdc3aad4e2552c3d0</id>
<content type='text'>
In order to increase flexibility, add a macro that will for now
call transfer_to_handler.

As transfer_to_handler doesn't do the actual transfer anymore,
also name it prepare_transfer_to_handler. The following patches
will progressively remove the use of transfer_to_handler label.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/7f757c52518ab1d7b27ad5113b10f860e803f467.1615552867.git.christophe.leroy@csgroup.eu
</content>
</entry>
<entry>
<title>powerpc/32: Save trap number on stack in exception prolog</title>
<updated>2021-03-29T02:22:08Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-03-12T12:50:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=719e7e212c7e637a795f130dbdd5db6c291e463f'/>
<id>urn:sha1:719e7e212c7e637a795f130dbdd5db6c291e463f</id>
<content type='text'>
Saving the trap number into the stack goes into
the exception prolog, as EXC_XFER_xxx will soon disappear.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/2ac7a0c9cde2ec2b23cd79e3a54cfedd816a91ae.1615552867.git.christophe.leroy@csgroup.eu
</content>
</entry>
<entry>
<title>powerpc/32: Set regs parameter in r3 in transfer_to_handler</title>
<updated>2021-03-29T02:22:08Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-03-12T12:50:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e72915560b15f58c2ffe08144d9a7163daa18db4'/>
<id>urn:sha1:e72915560b15f58c2ffe08144d9a7163daa18db4</id>
<content type='text'>
All exception handlers take regs as first parameter.

Instead of setting r3 just before each call to a handler, set
it in transfer_to_handler.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/f994a379bb895a2cbd518cb82460ad3f3d3ccdf5.1615552867.git.christophe.leroy@csgroup.eu
</content>
</entry>
<entry>
<title>powerpc/32: Always save non volatile registers on exception entry</title>
<updated>2021-03-29T02:22:07Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-03-12T12:50:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e9f99704aafcdbd90ba20b81db2dae8526d8b8e5'/>
<id>urn:sha1:e9f99704aafcdbd90ba20b81db2dae8526d8b8e5</id>
<content type='text'>
In preparation of handling exception entry and exit in C,
in order to simplify the handling, always save non volatile registers
when entering an exception.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/3ce8ced87a4f1467fa36fcc50763d53b45e466c1.1615552867.git.christophe.leroy@csgroup.eu
</content>
</entry>
</feed>
