<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BMC/Intel-BMC/linux.git/arch/powerpc/kernel/exceptions-64s.S, branch dev-5.4</title>
<subtitle>Intel OpenBMC Linux kernel source tree (mirror)</subtitle>
<id>https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev-5.4</id>
<link rel='self' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev-5.4'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/'/>
<updated>2020-06-24T15:50:28+00:00</updated>
<entry>
<title>powerpc/64s/exception: Fix machine check no-loss idle wakeup</title>
<updated>2020-06-24T15:50:28+00:00</updated>
<author>
<name>Nicholas Piggin</name>
<email>npiggin@gmail.com</email>
</author>
<published>2020-05-08T04:33:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=8240829fc38cc09ef13588d661e2b9cc887f6623'/>
<id>urn:sha1:8240829fc38cc09ef13588d661e2b9cc887f6623</id>
<content type='text'>
[ Upstream commit 8a5054d8cbbe03c68dcb0957c291c942132e4101 ]

The architecture allows for machine check exceptions to cause idle
wakeups which resume at the 0x200 address which has to return via
the idle wakeup code, but the early machine check handler is run
first.

The case of a no state-loss sleep is broken because the early
handler uses non-volatile register r1 , which is needed for the wakeup
protocol, but it is not restored.

Fix this by loading r1 from the MCE exception frame before returning
to the idle wakeup code. Also update the comment which has become
stale since the idle rewrite in C.

This crash was found and fix confirmed with a machine check injection
test in qemu powernv model (which is not upstream in qemu yet).

Fixes: 10d91611f426d ("powerpc/64s: Reimplement book3s idle code 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/20200508043408.886394-2-npiggin@gmail.com
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>powerpc/64s/exception: reduce page fault unnecessary loads</title>
<updated>2019-08-30T01:14:59+00:00</updated>
<author>
<name>Nicholas Piggin</name>
<email>npiggin@gmail.com</email>
</author>
<published>2019-08-02T10:57:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=9b123d1ea23701bc00ebf712f1e03b25b8195eeb'/>
<id>urn:sha1:9b123d1ea23701bc00ebf712f1e03b25b8195eeb</id>
<content type='text'>
This avoids 3 loads in the radix page fault case, 1 load in the
hash fault case, and 2 loads in the hash miss page fault case.

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/20190802105709.27696-37-npiggin@gmail.com

</content>
</entry>
<entry>
<title>powerpc/64s/exception: Remove pointless KVM handler name bifurcation</title>
<updated>2019-08-30T01:14:59+00:00</updated>
<author>
<name>Nicholas Piggin</name>
<email>npiggin@gmail.com</email>
</author>
<published>2019-08-02T10:57:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=05f97d94dd0e2883bc7b2e6b7b5e4c088e0d1437'/>
<id>urn:sha1:05f97d94dd0e2883bc7b2e6b7b5e4c088e0d1437</id>
<content type='text'>
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/20190802105709.27696-36-npiggin@gmail.com

</content>
</entry>
<entry>
<title>powerpc/64s/exception: program check handler do not branch into a macro</title>
<updated>2019-08-30T01:14:58+00:00</updated>
<author>
<name>Nicholas Piggin</name>
<email>npiggin@gmail.com</email>
</author>
<published>2019-08-02T10:56:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=1b3599829a2560fe6c9a5a4a6bb6b2bc4e5bdaee'/>
<id>urn:sha1:1b3599829a2560fe6c9a5a4a6bb6b2bc4e5bdaee</id>
<content type='text'>
It is clever, but the small code saving is not worth the spaghetti of
jumping to a label in an expanded macro, particularly when the label
is just a number rather than a descriptive name.

So expand the INT_COMMON macro twice, once for the stack and no stack
cases, and branch to those. The slight code size increase is worth
the improved clarity of branches for this non-performance critical
code.

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/20190802105709.27696-35-npiggin@gmail.com

</content>
</entry>
<entry>
<title>powerpc/64s/exception: move interrupt entry code above the common handler</title>
<updated>2019-08-30T01:14:58+00:00</updated>
<author>
<name>Nicholas Piggin</name>
<email>npiggin@gmail.com</email>
</author>
<published>2019-08-02T10:56:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=c7c5cbb42d6e207a059c64740b1654376619345e'/>
<id>urn:sha1:c7c5cbb42d6e207a059c64740b1654376619345e</id>
<content type='text'>
This better reflects the order in which the code is executed.

No generated code change except BUG line number constants.

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/20190802105709.27696-34-npiggin@gmail.com
</content>
</entry>
<entry>
<title>powerpc/64s/exception: INT_COMMON add DAR, DSISR, reconcile options</title>
<updated>2019-08-30T01:14:58+00:00</updated>
<author>
<name>Nicholas Piggin</name>
<email>npiggin@gmail.com</email>
</author>
<published>2019-08-02T10:56:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=d1a84718888e768296557b83f4c56cb1caef8fdd'/>
<id>urn:sha1:d1a84718888e768296557b83f4c56cb1caef8fdd</id>
<content type='text'>
Move DAR and DSISR saving to pt_regs into INT_COMMON. Also add an
option to expand RECONCILE_IRQ_STATE.

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/20190802105709.27696-33-npiggin@gmail.com

</content>
</entry>
<entry>
<title>powerpc/64s/exception: Expand EXCEPTION_PROLOG_COMMON_1 and 2 into caller</title>
<updated>2019-08-30T01:14:58+00:00</updated>
<author>
<name>Nicholas Piggin</name>
<email>npiggin@gmail.com</email>
</author>
<published>2019-08-02T10:56:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=8c9fb5d4f3ddf02fb0fa3dec2dffd6b007ac894c'/>
<id>urn:sha1:8c9fb5d4f3ddf02fb0fa3dec2dffd6b007ac894c</id>
<content type='text'>
No generated code change except BUG line number constants.

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/20190802105709.27696-32-npiggin@gmail.com

</content>
</entry>
<entry>
<title>powerpc/64s/exception: Expand EXCEPTION_COMMON macro into caller</title>
<updated>2019-08-30T01:14:58+00:00</updated>
<author>
<name>Nicholas Piggin</name>
<email>npiggin@gmail.com</email>
</author>
<published>2019-08-02T10:56:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=5d5e0edfd5fa2a60d0f9b8d6ece1a5ce51aae3b5'/>
<id>urn:sha1:5d5e0edfd5fa2a60d0f9b8d6ece1a5ce51aae3b5</id>
<content type='text'>
No generated code change except BUG line number constants.

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/20190802105709.27696-31-npiggin@gmail.com

</content>
</entry>
<entry>
<title>powerpc/64s/exception: Add INT_COMMON gas macro to generate common exception code</title>
<updated>2019-08-30T01:14:57+00:00</updated>
<author>
<name>Nicholas Piggin</name>
<email>npiggin@gmail.com</email>
</author>
<published>2019-08-02T10:56:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=bcbceed40a8c355b48678d90c5c407dfca811f0e'/>
<id>urn:sha1:bcbceed40a8c355b48678d90c5c407dfca811f0e</id>
<content type='text'>
No generated code change except BUG line number constants.

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/20190802105709.27696-30-npiggin@gmail.com

</content>
</entry>
<entry>
<title>powerpc/64s/exception: Merge EXCEPTION_PROLOG_COMMON_2/3</title>
<updated>2019-08-30T01:14:57+00:00</updated>
<author>
<name>Nicholas Piggin</name>
<email>npiggin@gmail.com</email>
</author>
<published>2019-08-02T10:56:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=9a9c739aa83d031da7468028de8a65608146eccc'/>
<id>urn:sha1:9a9c739aa83d031da7468028de8a65608146eccc</id>
<content type='text'>
Merge EXCEPTION_PROLOG_COMMON_3 into EXCEPTION_PROLOG_COMMON_2.

No generated code change except BUG line number constants.

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/20190802105709.27696-29-npiggin@gmail.com

</content>
</entry>
</feed>
