Commit 70d605cb authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'riscv-for-linus-5.19-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux

Pull RISC-V fix from Palmer Dabbelt:

 - fix the T-Head memory type errata workaround to avoid behavior
   that is unsupported in the LLVM assembler

* tag 'riscv-for-linus-5.19-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
  riscv: Fix ALT_THEAD_PMA's asm parameters
parents f6e9d014 e8303156
Loading
Loading
Loading
Loading
+7 −7
Original line number Original line Diff line number Diff line
@@ -75,20 +75,20 @@ asm volatile(ALTERNATIVE( \
	"nop\n\t"							\
	"nop\n\t"							\
	"nop\n\t"							\
	"nop\n\t"							\
	"nop",								\
	"nop",								\
	"li      t3, %2\n\t"						\
	"li      t3, %1\n\t"						\
	"slli    t3, t3, %4\n\t"					\
	"slli    t3, t3, %3\n\t"					\
	"and     t3, %0, t3\n\t"					\
	"and     t3, %0, t3\n\t"					\
	"bne     t3, zero, 2f\n\t"					\
	"bne     t3, zero, 2f\n\t"					\
	"li      t3, %3\n\t"						\
	"li      t3, %2\n\t"						\
	"slli    t3, t3, %4\n\t"					\
	"slli    t3, t3, %3\n\t"					\
	"or      %0, %0, t3\n\t"					\
	"or      %0, %0, t3\n\t"					\
	"2:",  THEAD_VENDOR_ID,						\
	"2:",  THEAD_VENDOR_ID,						\
		ERRATA_THEAD_PBMT, CONFIG_ERRATA_THEAD_PBMT)		\
		ERRATA_THEAD_PBMT, CONFIG_ERRATA_THEAD_PBMT)		\
	: "+r"(_val)							\
	: "+r"(_val)							\
	: "0"(_val),							\
	: "I"(_PAGE_MTMASK_THEAD >> ALT_THEAD_PBMT_SHIFT),		\
	  "I"(_PAGE_MTMASK_THEAD >> ALT_THEAD_PBMT_SHIFT),		\
	  "I"(_PAGE_PMA_THEAD >> ALT_THEAD_PBMT_SHIFT),			\
	  "I"(_PAGE_PMA_THEAD >> ALT_THEAD_PBMT_SHIFT),			\
	  "I"(ALT_THEAD_PBMT_SHIFT))
	  "I"(ALT_THEAD_PBMT_SHIFT)					\
	: "t3")
#else
#else
#define ALT_THEAD_PMA(_val)
#define ALT_THEAD_PMA(_val)
#endif
#endif