[PATCH 5.15 2/4] arm64: errata: Add workaround for TSB flush failures
Greg KH
gregkh at linuxfoundation.org
Thu Jul 20 22:27:29 PDT 2023
On Thu, Jul 20, 2023 at 04:23:32PM -0700, Easwar Hariharan wrote:
> From: Suzuki K Poulose <suzuki.poulose at arm.com>
>
> commit fa82d0b4b833790ac4572377fb777dcea24a9d69 upstream
>
> Arm Neoverse-N2 (#2067961) and Cortex-A710 (#2054223) suffers
> from errata, where a TSB (trace synchronization barrier)
> fails to flush the trace data completely, when executed from
> a trace prohibited region. In Linux we always execute it
> after we have moved the PE to trace prohibited region. So,
> we can apply the workaround every time a TSB is executed.
>
> The work around is to issue two TSB consecutively.
>
> NOTE: This errata is defined as LOCAL_CPU_ERRATUM, implying
> that a late CPU could be blocked from booting if it is the
> first CPU that requires the workaround. This is because we
> do not allow setting a cpu_hwcaps after the SMP boot. The
> other alternative is to use "this_cpu_has_cap()" instead
> of the faster system wide check, which may be a bit of an
> overhead, given we may have to do this in nvhe KVM host
> before a guest entry.
>
> Cc: Will Deacon <will at kernel.org>
> Cc: Catalin Marinas <catalin.marinas at arm.com>
> Cc: Mathieu Poirier <mathieu.poirier at linaro.org>
> Cc: Mike Leach <mike.leach at linaro.org>
> Cc: Mark Rutland <mark.rutland at arm.com>
> Cc: Anshuman Khandual <anshuman.khandual at arm.com>
> Cc: Marc Zyngier <maz at kernel.org>
> Acked-by: Catalin Marinas <catalin.marinas at arm.com>
> Reviewed-by: Mathieu Poirier <mathieu.poirier at linaro.org>
> Reviewed-by: Anshuman Khandual <anshuman.khandual at arm.com>
> Signed-off-by: Suzuki K Poulose <suzuki.poulose at arm.com>
> Link: https://lore.kernel.org/r/20211019163153.3692640-4-suzuki.poulose@arm.com
> Signed-off-by: Will Deacon <will at kernel.org>
> ---
> Documentation/arm64/silicon-errata.rst | 4 ++++
> arch/arm64/Kconfig | 33 ++++++++++++++++++++++++++
> arch/arm64/include/asm/barrier.h | 16 ++++++++++++-
> arch/arm64/kernel/cpu_errata.c | 19 +++++++++++++++
> arch/arm64/tools/cpucaps | 1 +
> 5 files changed, 72 insertions(+), 1 deletion(-)
As you forwarded this patch on to me, you forgot to sign-off on it :(
I've taken patch 1/4 of this series, but not the rest. Please redo
them, and send the needed backports for 6.1.y and 6.4.y as a separate
series (obviously I can't apply patches in a series to trees that
already have them.)
thanks,
greg k-h
More information about the linux-arm-kernel
mailing list