[PATCH] riscv/vdso: fix missing vdso_data declaration

Palmer Dabbelt palmer at dabbelt.com
Thu Aug 11 14:06:59 PDT 2022


On Wed, 13 Jul 2022 23:34:36 PDT (-0700), Conor.Dooley at microchip.com wrote:
> On 13/07/2022 23:06, Ben Dooks wrote:
>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>> 
>> The vdso_data is defined by has no declaration as the
>> arch/riscv/kernel/vdso.c does not include asm/vdso/vsyscall.h
>> for the definition. Fix the following sparse warning by
>> adding in the asm/vdso/vsyscall.h
>> 
>> arch/riscv/kernel/vdso.c:42:18: warning: symbol 'vdso_data' was not declared. Should it be static?
>> 
>> Signed-off-by: Ben Dooks <ben.dooks at sifive.com>
> 
> Reviewed-by: Conor Dooley <conor.dooley at microchip.com>

This one gives me a bunch of build errors, things like

In file included from /scratch/merges/ko-linux-next/linux/include/vdso/datapage.h:137,
                 from /scratch/merges/ko-linux-next/linux/arch/riscv/include/asm/vdso/vsyscall.h:8,
                 from /scratch/merges/ko-linux-next/linux/arch/riscv/kernel/vdso.c:16:
/scratch/merges/ko-linux-next/linux/arch/riscv/include/asm/vdso/gettimeofday.h: In function 'gettimeofday_fallback':
/scratch/merges/ko-linux-next/linux/arch/riscv/include/asm/vdso/gettimeofday.h:21:38: error: '__NR_gettimeofday' undeclared (first use in this function)
   21 |         register long nr asm("a7") = __NR_gettimeofday;
      |                                      ^~~~~~~~~~~~~~~~~
/scratch/merges/ko-linux-next/linux/arch/riscv/include/asm/vdso/gettimeofday.h:21:38: note: each undeclared identifier is reported only once for each function it appears in
/scratch/merges/ko-linux-next/linux/arch/riscv/include/asm/vdso/gettimeofday.h: In function 'clock_gettime_fallback':
/scratch/merges/ko-linux-next/linux/arch/riscv/include/asm/vdso/gettimeofday.h:37:38: error: '__NR_clock_gettime' undeclared (first use in this function)
   37 |         register long nr asm("a7") = __NR_clock_gettime;
      |                                      ^~~~~~~~~~~~~~~~~~
/scratch/merges/ko-linux-next/linux/arch/riscv/include/asm/vdso/gettimeofday.h: In function 'clock_getres_fallback':
/scratch/merges/ko-linux-next/linux/arch/riscv/include/asm/vdso/gettimeofday.h:53:38: error: '__NR_clock_getres' undeclared (first use in this function)
   53 |         register long nr asm("a7") = __NR_clock_getres;
      |                                      ^~~~~~~~~~~~~~~~~
/scratch/merges/ko-linux-next/linux/arch/riscv/kernel/vdso.c: At top level:
/scratch/merges/ko-linux-next/linux/arch/riscv/kernel/vdso.c:22:8: error: redefinition of 'struct vdso_data'
   22 | struct vdso_data {
      |        ^~~~~~~~~
/scratch/merges/ko-linux-next/linux/include/vdso/datapage.h:90:8: note: originally defined here
   90 | struct vdso_data {
      |        ^~~~~~~~~
/scratch/merges/ko-linux-next/linux/arch/riscv/kernel/vdso.c:51:19: error: conflicting types for 'vdso_data'; have 'struct vdso_data *'
   51 | struct vdso_data *vdso_data = &vdso_data_store.data;
      |                   ^~~~~~~~~
/scratch/merges/ko-linux-next/linux/arch/riscv/include/asm/vdso/vsyscall.h:10:26: note: previous declaration of 'vdso_data' with type 'struct vdso_data *'
   10 | extern struct vdso_data *vdso_data;
      |                          ^~~~~~~~~

> 
>> ---
>>   arch/riscv/kernel/vdso.c | 1 +
>>   1 file changed, 1 insertion(+)
>> 
>> diff --git a/arch/riscv/kernel/vdso.c b/arch/riscv/kernel/vdso.c
>> index 69b05b6c181b..7564f0208957 100644
>> --- a/arch/riscv/kernel/vdso.c
>> +++ b/arch/riscv/kernel/vdso.c
>> @@ -13,6 +13,7 @@
>>   #include <linux/err.h>
>>   #include <asm/page.h>
>>   #include <asm/vdso.h>
>> +#include <asm/vdso/vsyscall.h>
>>   #include <linux/time_namespace.h>
>> 
>>   #ifdef CONFIG_GENERIC_TIME_VSYSCALL
>> --
>> 2.35.1
>> 
>> 
>> _______________________________________________
>> linux-riscv mailing list
>> linux-riscv at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-riscv
> 



More information about the linux-riscv mailing list