<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/arm64/kernel/cpu_errata.c, branch linux-4.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.17.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.17.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2018-07-22T13:16:08Z</updated>
<entry>
<title>arm64: ssbd: Restore mitigation status on CPU resume</title>
<updated>2018-07-22T13:16:08Z</updated>
<author>
<name>Marc Zyngier</name>
</author>
<published>2018-07-20T09:47:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ec40f159ec11f4fd18bf89291e597a8a3355854f'/>
<id>urn:sha1:ec40f159ec11f4fd18bf89291e597a8a3355854f</id>
<content type='text'>
commit 647d0519b53f440a55df163de21c52a8205431cc upstream.

On a system where firmware can dynamically change the state of the
mitigation, the CPU will always come up with the mitigation enabled,
including when coming back from suspend.

If the user has requested "no mitigation" via a command line option,
let's enforce it by calling into the firmware again to disable it.

Similarily, for a resume from hibernate, the mitigation could have
been disabled by the boot kernel. Let's ensure that it is set
back on in that case.

Acked-by: Will Deacon &lt;will.deacon@arm.com&gt;
Reviewed-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Signed-off-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>arm64: ssbd: Skip apply_ssbd if not using dynamic mitigation</title>
<updated>2018-07-22T13:16:08Z</updated>
<author>
<name>Marc Zyngier</name>
</author>
<published>2018-07-20T09:47:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5c0c86a03b4c3a5720d8c2145a67d13be8a30700'/>
<id>urn:sha1:5c0c86a03b4c3a5720d8c2145a67d13be8a30700</id>
<content type='text'>
commit 986372c4367f46b34a3c0f6918d7fb95cbdf39d6 upstream.

In order to avoid checking arm64_ssbd_callback_required on each
kernel entry/exit even if no mitigation is required, let's
add yet another alternative that by default jumps over the mitigation,
and that gets nop'ed out if we're doing dynamic mitigation.

Think of it as a poor man's static key...

Reviewed-by: Julien Grall &lt;julien.grall@arm.com&gt;
Reviewed-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Acked-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>arm64: Add 'ssbd' command-line option</title>
<updated>2018-07-22T13:16:07Z</updated>
<author>
<name>Marc Zyngier</name>
</author>
<published>2018-07-20T09:47:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fcd1b4fab4cba94f6b64fa952f77c267308adbf6'/>
<id>urn:sha1:fcd1b4fab4cba94f6b64fa952f77c267308adbf6</id>
<content type='text'>
commit a43ae4dfe56a01f5b98ba0cb2f784b6a43bafcc6 upstream.

On a system where the firmware implements ARCH_WORKAROUND_2,
it may be useful to either permanently enable or disable the
workaround for cases where the user decides that they'd rather
not get a trap overhead, and keep the mitigation permanently
on or off instead of switching it on exception entry/exit.

In any case, default to the mitigation being enabled.

Reviewed-by: Julien Grall &lt;julien.grall@arm.com&gt;
Reviewed-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Acked-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>arm64: Add ARCH_WORKAROUND_2 probing</title>
<updated>2018-07-22T13:16:07Z</updated>
<author>
<name>Marc Zyngier</name>
</author>
<published>2018-07-20T09:47:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e89f7833d9b5074ddabf1e3cad88cb77a512324d'/>
<id>urn:sha1:e89f7833d9b5074ddabf1e3cad88cb77a512324d</id>
<content type='text'>
commit a725e3dda1813ed306734823ac4c65ca04e38500 upstream.

As for Spectre variant-2, we rely on SMCCC 1.1 to provide the
discovery mechanism for detecting the SSBD mitigation.

A new capability is also allocated for that purpose, and a
config option.

Reviewed-by: Julien Grall &lt;julien.grall@arm.com&gt;
Reviewed-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Acked-by: Will Deacon &lt;will.deacon@arm.com&gt;
Reviewed-by: Suzuki K Poulose &lt;suzuki.poulose@arm.com&gt;
Signed-off-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>arm64: Add per-cpu infrastructure to call ARCH_WORKAROUND_2</title>
<updated>2018-07-22T13:16:07Z</updated>
<author>
<name>Marc Zyngier</name>
</author>
<published>2018-07-20T09:47:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=71afaa6b7ebdbf15d5f4b2a3cc0689ed523e7b7d'/>
<id>urn:sha1:71afaa6b7ebdbf15d5f4b2a3cc0689ed523e7b7d</id>
<content type='text'>
commit 5cf9ce6e5ea50f805c6188c04ed0daaec7b6887d upstream.

In a heterogeneous system, we can end up with both affected and
unaffected CPUs. Let's check their status before calling into the
firmware.

Reviewed-by: Julien Grall &lt;julien.grall@arm.com&gt;
Reviewed-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Acked-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>arm64: Call ARCH_WORKAROUND_2 on transitions between EL0 and EL1</title>
<updated>2018-07-22T13:16:07Z</updated>
<author>
<name>Marc Zyngier</name>
</author>
<published>2018-07-20T09:47:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=55e72ae8b2dd30c369f678828bbbc3586b729b07'/>
<id>urn:sha1:55e72ae8b2dd30c369f678828bbbc3586b729b07</id>
<content type='text'>
commit 8e2906245f1e3b0d027169d9f2e55ce0548cb96e upstream.

In order for the kernel to protect itself, let's call the SSBD mitigation
implemented by the higher exception level (either hypervisor or firmware)
on each transition between userspace and kernel.

We must take the PSCI conduit into account in order to target the
right exception level, hence the introduction of a runtime patching
callback.

Reviewed-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Reviewed-by: Julien Grall &lt;julien.grall@arm.com&gt;
Acked-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>arm64: capabilities: Add NVIDIA Denver CPU to bp_harden list</title>
<updated>2018-05-09T13:28:28Z</updated>
<author>
<name>David Gilhooley</name>
</author>
<published>2018-05-08T22:49:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0583a4ef05987f7e0f3a7bdd3365e5dc36ca306d'/>
<id>urn:sha1:0583a4ef05987f7e0f3a7bdd3365e5dc36ca306d</id>
<content type='text'>
The NVIDIA Denver CPU also needs a PSCI call to harden the branch
predictor.

Signed-off-by: David Gilhooley &lt;dgilhooley@nvidia.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: Move the content of bpi.S to hyp-entry.S</title>
<updated>2018-04-11T17:49:30Z</updated>
<author>
<name>Marc Zyngier</name>
</author>
<published>2018-04-10T10:36:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e8b22d0f4500c7bb6aab879d4e32b2a00c89d5f8'/>
<id>urn:sha1:e8b22d0f4500c7bb6aab879d4e32b2a00c89d5f8</id>
<content type='text'>
bpi.S was introduced as we were starting to build the Spectre v2
mitigation framework, and it was rather unclear that it would
become strictly KVM specific.

Now that the picture is a lot clearer, let's move the content
of that file to hyp-entry.S, where it actually belong.

Signed-off-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: Get rid of __smccc_workaround_1_hvc_*</title>
<updated>2018-04-11T17:49:30Z</updated>
<author>
<name>Marc Zyngier</name>
</author>
<published>2018-04-10T10:36:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=22765f30dbaf1118c6ff0fcb8b99c9f2b4d396d5'/>
<id>urn:sha1:22765f30dbaf1118c6ff0fcb8b99c9f2b4d396d5</id>
<content type='text'>
The very existence of __smccc_workaround_1_hvc_* is a thinko, as
KVM will never use a HVC call to perform the branch prediction
invalidation. Even as a nested hypervisor, it would use an SMC
instruction.

Let's get rid of it.

Signed-off-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: capabilities: Rework EL2 vector hardening entry</title>
<updated>2018-04-11T17:49:30Z</updated>
<author>
<name>Marc Zyngier</name>
</author>
<published>2018-04-10T10:36:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8892b71885df7d6d7b0f491f9a8e2bb12fd4afdd'/>
<id>urn:sha1:8892b71885df7d6d7b0f491f9a8e2bb12fd4afdd</id>
<content type='text'>
Since 5e7951ce19ab ("arm64: capabilities: Clean up midr range helpers"),
capabilities must be represented with a single entry. If multiple
CPU types can use the same capability, then they need to be enumerated
in a list.

The EL2 hardening stuff (which affects both A57 and A72) managed to
escape the conversion in the above patch thanks to the 4.17 merge
window. Let's fix it now.

Signed-off-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
</feed>
