<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/powerpc/include/asm/reg.h, branch linux-5.18.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.18.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.18.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2021-12-09T11:41:21Z</updated>
<entry>
<title>powerpc/inst: Move ppc_inst_t definition in asm/reg.h</title>
<updated>2021-12-09T11:41:21Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-11-29T17:49:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9b307576f37136d37d5e42b1d8713ec34a601a62'/>
<id>urn:sha1:9b307576f37136d37d5e42b1d8713ec34a601a62</id>
<content type='text'>
Because of circular inclusion of asm/hw_breakpoint.h, we
need to move definition of asm/reg.h outside of inst.h
so that asm/hw_breakpoint.h gets it without including
asm/inst.h

Also remove asm/inst.h from asm/uprobes.h as it's not
needed anymore.

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/4b79f1491118af96b1ac0735e74aeca02ea4c04e.1638208156.git.christophe.leroy@csgroup.eu

</content>
</entry>
<entry>
<title>powerpc/config: Add CONFIG_BOOKE_OR_40x</title>
<updated>2021-12-09T11:41:19Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-10-19T07:29:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=047a6fd40199eb55ffd18091f7ceae9743d972bf'/>
<id>urn:sha1:047a6fd40199eb55ffd18091f7ceae9743d972bf</id>
<content type='text'>
We have many functionnalities common to 40x and BOOKE, it leads to
many places with #if defined(CONFIG_BOOKE) || defined(CONFIG_40x).

We are going to add a few more with KUAP for booke/40x, so create
a new symbol which is defined when either BOOKE or 40x is defined.

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/9a3dbd60924cb25c9f944d3d8205ac5a0d15e229.1634627931.git.christophe.leroy@csgroup.eu

</content>
</entry>
<entry>
<title>KVM: PPC: Book3S HV Nested: Fix TM softpatch HFAC interrupt emulation</title>
<updated>2021-08-25T06:37:17Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2021-08-11T16:00:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d82b392d9b3556b63e3f9916cf057ea847e173a9'/>
<id>urn:sha1:d82b392d9b3556b63e3f9916cf057ea847e173a9</id>
<content type='text'>
Have the TM softpatch emulation code set up the HFAC interrupt and
return -1 in case an instruction was executed with HFSCR bits clear,
and have the interrupt exit handler fall through to the HFAC handler.
When the L0 is running a nested guest, this ensures the HFAC interrupt
is correctly passed up to the L1.

The "direct guest" exit handler will turn these into PROGILL program
interrupts so functionality in practice will be unchanged. But it's
possible an L1 would want to handle these in a different way.

Also rearrange the FAC interrupt emulation code to match the HFAC format
while here (mainly, adding the FSCR_INTR_CAUSE mask).

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/20210811160134.904987-5-npiggin@gmail.com

</content>
</entry>
<entry>
<title>powerpc: Move update_power8_hid0() into its only user</title>
<updated>2021-06-16T14:09:11Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-06-09T06:10:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ab3aab292cb2f417f63b8f4887c1dd01c2a831cd'/>
<id>urn:sha1:ab3aab292cb2f417f63b8f4887c1dd01c2a831cd</id>
<content type='text'>
update_power8_hid0() is used only by powernv platform subcore.c

Move it there.

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/37f41d74faa0c66f90b373e243e8b1ee37a1f6fa.1623219019.git.christophe.leroy@csgroup.eu

</content>
</entry>
<entry>
<title>powerpc: Remove proc_trap()</title>
<updated>2021-06-16T14:09:10Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-06-09T05:52:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=77b0bed74232c480b94bae188b6c7cd0ddee92e8'/>
<id>urn:sha1:77b0bed74232c480b94bae188b6c7cd0ddee92e8</id>
<content type='text'>
proc_trap() has never been used, 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/827944ea12d470c2f862635f48b5ee6c1520351f.1623217909.git.christophe.leroy@csgroup.eu

</content>
</entry>
<entry>
<title>powerpc/lib/feature-fixups: Use PPC_RAW_xxx() macros</title>
<updated>2021-06-15T14:16:48Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-05-20T10:23:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ef909ba954145e35c9e21352133e5e99c64ab3f4'/>
<id>urn:sha1:ef909ba954145e35c9e21352133e5e99c64ab3f4</id>
<content type='text'>
Use PPC_RAW_xxx() macros instead of open coding assembly
opcodes.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
[mpe: Fix bad converison in do_stf_exit_barrier_fixups()]
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/e79cd8e111ca13bf8c61a384bac365aa7e207647.1621506159.git.christophe.leroy@csgroup.eu

</content>
</entry>
<entry>
<title>powerpc/32: Use r2 in wrtspr() instead of r0</title>
<updated>2021-04-21T12:52:32Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-01-22T07:15:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=867e762480f4ad4106b16299a373fa23eccf5b4b'/>
<id>urn:sha1:867e762480f4ad4106b16299a373fa23eccf5b4b</id>
<content type='text'>
wrtspr() is a function to write an arbitrary value in a special
register. It is used on 8xx to write to SPRN_NRI, SPRN_EID and
SPRN_EIE. Writing any value to one of those will play with MSR EE
and MSR RI regardless of that value.

r0 is used many places in the generated code and using r0 for
that creates an unnecessary dependency of this instruction with
preceding ones using r0 in a few places in vmlinux.

r2 is most likely the most stable register as it contains the
pointer to 'current'.

Using r2 instead of r0 avoids that unnecessary dependency.

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/69f9968f4b592fefda55227f0f7430ea612cc950.1611299687.git.christophe.leroy@csgroup.eu

</content>
</entry>
<entry>
<title>powerpc/powernv: Enable HAIL (HV AIL) for ISA v3.1 processors</title>
<updated>2021-04-18T13:19:29Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2021-04-02T02:41:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=49c1d07fd04f54eb588c4a1dfcedc8d22c5ffd50'/>
<id>urn:sha1:49c1d07fd04f54eb588c4a1dfcedc8d22c5ffd50</id>
<content type='text'>
Starting with ISA v3.1, LPCR[AIL] no longer controls the interrupt
mode for HV=1 interrupts. Instead, a new LPCR[HAIL] bit is defined
which behaves like AIL=3 for HV interrupts when set.

Set HAIL on bare metal to give us mmu-on interrupts and improve
performance.

This also fixes an scv bug: we don't implement scv real mode (AIL=0)
vectors because they are at an inconvenient location, so we just
disable scv support when AIL can not be set. However powernv assumes
that LPCR[AIL] will enable AIL mode so it enables scv support despite
HV interrupts being AIL=0, which causes scv interrupts to go off into
the weeds.

Fixes: 7fa95f9adaee ("powerpc/64s: system call support for scv/rfscv instructions")
Cc: stable@vger.kernel.org # v5.9+
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/20210402024124.545826-1-npiggin@gmail.com
</content>
</entry>
<entry>
<title>powerpc: Reference parameter in MSR_TM_ACTIVE() macro</title>
<updated>2021-03-29T01:49:46Z</updated>
<author>
<name>Christopher M. Riedl</name>
</author>
<published>2021-02-27T01:12:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1a130b67c682be9842f188f593c2080786de4204'/>
<id>urn:sha1:1a130b67c682be9842f188f593c2080786de4204</id>
<content type='text'>
Unlike the other MSR_TM_* macros, MSR_TM_ACTIVE does not reference or
use its parameter unless CONFIG_PPC_TRANSACTIONAL_MEM is defined. This
causes an 'unused variable' compile warning unless the variable is also
guarded with CONFIG_PPC_TRANSACTIONAL_MEM.

Reference but do nothing with the argument in the macro to avoid a
potential compile warning.

Signed-off-by: Christopher M. Riedl &lt;cmr@codefail.de&gt;
Reviewed-by: Daniel Axtens &lt;dja@axtens.net&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20210227011259.11992-5-cmr@codefail.de
</content>
</entry>
<entry>
<title>powerpc/irq: Rework helpers that manipulate MSR[EE/RI]</title>
<updated>2021-02-11T12:35:09Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-02-08T15:10:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=08353779f2889305f64e04de3e46ed59ed60f859'/>
<id>urn:sha1:08353779f2889305f64e04de3e46ed59ed60f859</id>
<content type='text'>
In preparation of porting PPC32 to C syscall entry/exit,
rewrite the following helpers as static inline functions and
add support for PPC32 in them:
	__hard_irq_enable()
	__hard_irq_disable()
	__hard_EE_RI_disable()
	__hard_RI_enable()

Then use them in PPC32 version of arch_local_irq_disable()
and arch_local_irq_enable() to avoid code duplication.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Reviewed-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/0e290372a0e7dc2ae657b4a01aec85f8de7fdf77.1612796617.git.christophe.leroy@csgroup.eu
</content>
</entry>
</feed>
