aboutsummaryrefslogtreecommitdiffstats
path: root/arch/riscv
diff options
context:
space:
mode:
Diffstat (limited to 'arch/riscv')
-rw-r--r--arch/riscv/Makefile4
-rw-r--r--arch/riscv/configs/defconfig1
-rw-r--r--arch/riscv/include/asm/ptrace.h4
-rw-r--r--arch/riscv/kernel/module.c12
-rw-r--r--arch/riscv/lib/Makefile2
5 files changed, 14 insertions, 9 deletions
diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
index d10146197533..4af153a182b0 100644
--- a/arch/riscv/Makefile
+++ b/arch/riscv/Makefile
@@ -77,4 +77,8 @@ core-y += arch/riscv/kernel/ arch/riscv/mm/
77 77
78libs-y += arch/riscv/lib/ 78libs-y += arch/riscv/lib/
79 79
80PHONY += vdso_install
81vdso_install:
82 $(Q)$(MAKE) $(build)=arch/riscv/kernel/vdso $@
83
80all: vmlinux 84all: vmlinux
diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
index 07fa9ea75fea..ef4f15df9adf 100644
--- a/arch/riscv/configs/defconfig
+++ b/arch/riscv/configs/defconfig
@@ -76,4 +76,5 @@ CONFIG_NFS_V4_1=y
76CONFIG_NFS_V4_2=y 76CONFIG_NFS_V4_2=y
77CONFIG_ROOT_NFS=y 77CONFIG_ROOT_NFS=y
78CONFIG_CRYPTO_USER_API_HASH=y 78CONFIG_CRYPTO_USER_API_HASH=y
79CONFIG_PRINTK_TIME=y
79# CONFIG_RCU_TRACE is not set 80# CONFIG_RCU_TRACE is not set
diff --git a/arch/riscv/include/asm/ptrace.h b/arch/riscv/include/asm/ptrace.h
index 2c5df945d43c..bbe1862e8f80 100644
--- a/arch/riscv/include/asm/ptrace.h
+++ b/arch/riscv/include/asm/ptrace.h
@@ -56,8 +56,8 @@ struct pt_regs {
56 unsigned long sstatus; 56 unsigned long sstatus;
57 unsigned long sbadaddr; 57 unsigned long sbadaddr;
58 unsigned long scause; 58 unsigned long scause;
59 /* a0 value before the syscall */ 59 /* a0 value before the syscall */
60 unsigned long orig_a0; 60 unsigned long orig_a0;
61}; 61};
62 62
63#ifdef CONFIG_64BIT 63#ifdef CONFIG_64BIT
diff --git a/arch/riscv/kernel/module.c b/arch/riscv/kernel/module.c
index 3303ed2cd419..7dd308129b40 100644
--- a/arch/riscv/kernel/module.c
+++ b/arch/riscv/kernel/module.c
@@ -21,7 +21,7 @@ static int apply_r_riscv_32_rela(struct module *me, u32 *location, Elf_Addr v)
21{ 21{
22 if (v != (u32)v) { 22 if (v != (u32)v) {
23 pr_err("%s: value %016llx out of range for 32-bit field\n", 23 pr_err("%s: value %016llx out of range for 32-bit field\n",
24 me->name, v); 24 me->name, (long long)v);
25 return -EINVAL; 25 return -EINVAL;
26 } 26 }
27 *location = v; 27 *location = v;
@@ -102,7 +102,7 @@ static int apply_r_riscv_pcrel_hi20_rela(struct module *me, u32 *location,
102 if (offset != (s32)offset) { 102 if (offset != (s32)offset) {
103 pr_err( 103 pr_err(
104 "%s: target %016llx can not be addressed by the 32-bit offset from PC = %p\n", 104 "%s: target %016llx can not be addressed by the 32-bit offset from PC = %p\n",
105 me->name, v, location); 105 me->name, (long long)v, location);
106 return -EINVAL; 106 return -EINVAL;
107 } 107 }
108 108
@@ -144,7 +144,7 @@ static int apply_r_riscv_hi20_rela(struct module *me, u32 *location,
144 if (IS_ENABLED(CMODEL_MEDLOW)) { 144 if (IS_ENABLED(CMODEL_MEDLOW)) {
145 pr_err( 145 pr_err(
146 "%s: target %016llx can not be addressed by the 32-bit offset from PC = %p\n", 146 "%s: target %016llx can not be addressed by the 32-bit offset from PC = %p\n",
147 me->name, v, location); 147 me->name, (long long)v, location);
148 return -EINVAL; 148 return -EINVAL;
149 } 149 }
150 150
@@ -188,7 +188,7 @@ static int apply_r_riscv_got_hi20_rela(struct module *me, u32 *location,
188 } else { 188 } else {
189 pr_err( 189 pr_err(
190 "%s: can not generate the GOT entry for symbol = %016llx from PC = %p\n", 190 "%s: can not generate the GOT entry for symbol = %016llx from PC = %p\n",
191 me->name, v, location); 191 me->name, (long long)v, location);
192 return -EINVAL; 192 return -EINVAL;
193 } 193 }
194 194
@@ -212,7 +212,7 @@ static int apply_r_riscv_call_plt_rela(struct module *me, u32 *location,
212 } else { 212 } else {
213 pr_err( 213 pr_err(
214 "%s: target %016llx can not be addressed by the 32-bit offset from PC = %p\n", 214 "%s: target %016llx can not be addressed by the 32-bit offset from PC = %p\n",
215 me->name, v, location); 215 me->name, (long long)v, location);
216 return -EINVAL; 216 return -EINVAL;
217 } 217 }
218 } 218 }
@@ -234,7 +234,7 @@ static int apply_r_riscv_call_rela(struct module *me, u32 *location,
234 if (offset != fill_v) { 234 if (offset != fill_v) {
235 pr_err( 235 pr_err(
236 "%s: target %016llx can not be addressed by the 32-bit offset from PC = %p\n", 236 "%s: target %016llx can not be addressed by the 32-bit offset from PC = %p\n",
237 me->name, v, location); 237 me->name, (long long)v, location);
238 return -EINVAL; 238 return -EINVAL;
239 } 239 }
240 240
diff --git a/arch/riscv/lib/Makefile b/arch/riscv/lib/Makefile
index 5739bd05d289..4e2e600f7d53 100644
--- a/arch/riscv/lib/Makefile
+++ b/arch/riscv/lib/Makefile
@@ -3,6 +3,6 @@ lib-y += memcpy.o
3lib-y += memset.o 3lib-y += memset.o
4lib-y += uaccess.o 4lib-y += uaccess.o
5 5
6lib-(CONFIG_64BIT) += tishift.o 6lib-$(CONFIG_64BIT) += tishift.o
7 7
8lib-$(CONFIG_32BIT) += udivdi3.o 8lib-$(CONFIG_32BIT) += udivdi3.o