History

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

Linus Torvalds committed 4 years ago

Commit 70d605c2 parents f6e9d01 e8303151 file · +7 −7Browse files

Unified · Split

arch/riscv/include/asm/errata_list.h+7−7
@@ -75,20 +75,20 @@ asm volatile(ALTERNATIVE( \ · 74 unmodified lines
75 "nop\n\t" \75 "nop\n\t" \
76 "nop\n\t" \76 "nop\n\t" \
77 "nop", \77 "nop", \
78 "li t3, %2\n\t" \78 "li t3, %1\n\t" \
79 "slli t3, t3, %4\n\t" \79 "slli t3, t3, %3\n\t" \
80 "and t3, %0, t3\n\t" \80 "and t3, %0, t3\n\t" \
81 "bne t3, zero, 2f\n\t" \81 "bne t3, zero, 2f\n\t" \
82 "li t3, %3\n\t" \82 "li t3, %2\n\t" \
83 "slli t3, t3, %4\n\t" \83 "slli t3, t3, %3\n\t" \
84 "or %0, %0, t3\n\t" \84 "or %0, %0, t3\n\t" \
85 "2:", THEAD_VENDOR_ID, \85 "2:", THEAD_VENDOR_ID, \
86 ERRATA_THEAD_PBMT, CONFIG_ERRATA_THEAD_PBMT) \86 ERRATA_THEAD_PBMT, CONFIG_ERRATA_THEAD_PBMT) \
87 : "+r"(_val) \87 : "+r"(_val) \
88 : "0"(_val), \88 : "I"(_PAGE_MTMASK_THEAD >> ALT_THEAD_PBMT_SHIFT), \
89 "I"(_PAGE_MTMASK_THEAD >> ALT_THEAD_PBMT_SHIFT), \
90 "I"(_PAGE_PMA_THEAD >> ALT_THEAD_PBMT_SHIFT), \89 "I"(_PAGE_PMA_THEAD >> ALT_THEAD_PBMT_SHIFT), \
91 "I"(ALT_THEAD_PBMT_SHIFT))90 "I"(ALT_THEAD_PBMT_SHIFT) \
91 : "t3")
92#else92#else
93#define ALT_THEAD_PMA(_val)93#define ALT_THEAD_PMA(_val)
94#endif94#endif