mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 10:04:04 +02:00
XIP has a history of being broken for long periods of time. In 2023, it was
broken for 18 months before getting fixed [1]. In 2024 it was 4 months [2].
And now it is broken again since commit a44fb57221 ("riscv: Add runtime
constant support"), 10 months ago.
These are clear signs that XIP feature is not being used.
I occasionally looked after XIP, but mostly because I was bored and had
nothing better to do.
Remove XIP support. Revert is possible if someone shows up complaining.
Link: https://lore.kernel.org/linux-riscv/20231212-customary-hardcover-e19462bf8e75@wendy/ [1]
Link: https://lore.kernel.org/linux-riscv/20240526110104.470429-1-namcao@linutronix.de/ [2]
Signed-off-by: Nam Cao <namcao@linutronix.de>
Cc: Frederik Haxel <haxel@fzi.de>
Cc: Vitaly Wool <vitaly.wool@konsulko.com>
Reviewed-by: Jisheng Zhang <jszhang@kernel.org>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://patch.msgid.link/20260202115403.2119218-1-namcao@linutronix.de
[pjw@kernel.org: updated to apply]
Signed-off-by: Paul Walmsley <pjw@kernel.org>
54 lines
1.1 KiB
C
54 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _ASM_SCS_H
|
|
#define _ASM_SCS_H
|
|
|
|
#ifdef __ASSEMBLER__
|
|
#include <asm/asm-offsets.h>
|
|
|
|
#ifdef CONFIG_SHADOW_CALL_STACK
|
|
|
|
/* Load init_shadow_call_stack to gp. */
|
|
.macro scs_load_init_stack
|
|
la gp, init_shadow_call_stack
|
|
.endm
|
|
|
|
/* Load the per-CPU IRQ shadow call stack to gp. */
|
|
.macro scs_load_irq_stack tmp
|
|
load_per_cpu gp, irq_shadow_call_stack_ptr, \tmp
|
|
.endm
|
|
|
|
/* Load task_scs_sp(current) to gp. */
|
|
.macro scs_load_current
|
|
REG_L gp, TASK_TI_SCS_SP(tp)
|
|
.endm
|
|
|
|
/* Load task_scs_sp(current) to gp, but only if tp has changed. */
|
|
.macro scs_load_current_if_task_changed prev
|
|
beq \prev, tp, _skip_scs
|
|
scs_load_current
|
|
_skip_scs:
|
|
.endm
|
|
|
|
/* Save gp to task_scs_sp(current). */
|
|
.macro scs_save_current
|
|
REG_S gp, TASK_TI_SCS_SP(tp)
|
|
.endm
|
|
|
|
#else /* CONFIG_SHADOW_CALL_STACK */
|
|
|
|
.macro scs_load_init_stack
|
|
.endm
|
|
.macro scs_load_irq_stack tmp
|
|
.endm
|
|
.macro scs_load_current
|
|
.endm
|
|
.macro scs_load_current_if_task_changed prev
|
|
.endm
|
|
.macro scs_save_current
|
|
.endm
|
|
|
|
#endif /* CONFIG_SHADOW_CALL_STACK */
|
|
#endif /* __ASSEMBLER__ */
|
|
|
|
#endif /* _ASM_SCS_H */
|