lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201911261435.WbPxe8Dn%lkp@intel.com>
Date:   Tue, 26 Nov 2019 14:52:32 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Atish Patra <atish.patra@....com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Atish Patra <atish.patra@....com>,
        Albert Ou <aou@...s.berkeley.edu>,
        Anup Patel <anup@...infault.org>,
        linux-riscv@...ts.infradead.org, Mao Han <han_mao@...ky.com>,
        Mike Rapoport <rppt@...ux.ibm.com>,
        Palmer Dabbelt <palmer@...belt.com>,
        Paul Walmsley <paul.walmsley@...ive.com>,
        Thomas Gleixner <tglx@...utronix.de>
Subject: Re: [PATCH v4 4/4] RISC-V: Implement new SBI v0.2 extensions

Hi Atish,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on next-20191125]
[cannot apply to linus/master v5.4 v5.4-rc8 v5.4-rc7 v5.4]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Atish-Patra/Add-support-for-SBI-v0-2/20191126-122142
base:    c165016bac2719e05794c216f9b6da730d68d1e3
config: riscv-allnoconfig (attached as .config)
compiler: riscv64-linux-gcc (GCC) 7.4.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.4.0 make.cross ARCH=riscv 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@...el.com>

All errors (new ones prefixed by >>):

   arch/riscv/kernel/sbi.c:71:52: note: format string is defined here
     pr_warn("IPI extension is not available in SBI v%lu.%lu\n",
                                                     ~~^
                                                     %u
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:15,
                    from include/linux/list.h:9,
                    from include/linux/pm.h:11,
                    from arch/riscv/kernel/sbi.c:4:
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'int' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:12:22: note: in expansion of macro 'KERN_SOH'
    #define KERN_WARNING KERN_SOH "4" /* warning conditions */
                         ^~~~~~~~
   include/linux/printk.h:306:9: note: in expansion of macro 'KERN_WARNING'
     printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~~~~
   include/linux/printk.h:307:17: note: in expansion of macro 'pr_warning'
    #define pr_warn pr_warning
                    ^~~~~~~~~~
   arch/riscv/kernel/sbi.c:71:2: note: in expansion of macro 'pr_warn'
     pr_warn("IPI extension is not available in SBI v%lu.%lu\n",
     ^~~~~~~
   arch/riscv/kernel/sbi.c:71:56: note: format string is defined here
     pr_warn("IPI extension is not available in SBI v%lu.%lu\n",
                                                         ~~^
                                                         %u
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:15,
                    from include/linux/list.h:9,
                    from include/linux/pm.h:11,
                    from arch/riscv/kernel/sbi.c:4:
   arch/riscv/kernel/sbi.c: In function '__sbi_rfence_dummy_warn':
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 2 has type 'int' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:12:22: note: in expansion of macro 'KERN_SOH'
    #define KERN_WARNING KERN_SOH "4" /* warning conditions */
                         ^~~~~~~~
   include/linux/printk.h:306:9: note: in expansion of macro 'KERN_WARNING'
     printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~~~~
   include/linux/printk.h:307:17: note: in expansion of macro 'pr_warning'
    #define pr_warn pr_warning
                    ^~~~~~~~~~
   arch/riscv/kernel/sbi.c:83:2: note: in expansion of macro 'pr_warn'
     pr_warn("remote fence extension is not available in SBI v%lu.%lu\n",
     ^~~~~~~
   arch/riscv/kernel/sbi.c:83:61: note: format string is defined here
     pr_warn("remote fence extension is not available in SBI v%lu.%lu\n",
                                                              ~~^
                                                              %u
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:15,
                    from include/linux/list.h:9,
                    from include/linux/pm.h:11,
                    from arch/riscv/kernel/sbi.c:4:
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'int' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:12:22: note: in expansion of macro 'KERN_SOH'
    #define KERN_WARNING KERN_SOH "4" /* warning conditions */
                         ^~~~~~~~
   include/linux/printk.h:306:9: note: in expansion of macro 'KERN_WARNING'
     printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~~~~
   include/linux/printk.h:307:17: note: in expansion of macro 'pr_warning'
    #define pr_warn pr_warning
                    ^~~~~~~~~~
   arch/riscv/kernel/sbi.c:83:2: note: in expansion of macro 'pr_warn'
     pr_warn("remote fence extension is not available in SBI v%lu.%lu\n",
     ^~~~~~~
   arch/riscv/kernel/sbi.c:83:65: note: format string is defined here
     pr_warn("remote fence extension is not available in SBI v%lu.%lu\n",
                                                                  ~~^
                                                                  %u
   arch/riscv/kernel/sbi.c: In function '__sbi_set_timer_v02':
   arch/riscv/kernel/sbi.c:214:12: error: 'SBI_EXT_TIME' undeclared (first use in this function); did you mean 'STA_PPSTIME'?
     sbi_ecall(SBI_EXT_TIME, SBI_EXT_TIME_SET_TIMER, stime_value, 0,
               ^~~~~~~~~~~~
               STA_PPSTIME
   arch/riscv/kernel/sbi.c:214:26: error: 'SBI_EXT_TIME_SET_TIMER' undeclared (first use in this function); did you mean 'SBI_EXT_TIME'?
     sbi_ecall(SBI_EXT_TIME, SBI_EXT_TIME_SET_TIMER, stime_value, 0,
                             ^~~~~~~~~~~~~~~~~~~~~~
                             SBI_EXT_TIME
   arch/riscv/kernel/sbi.c: In function '__sbi_send_ipi_v02':
   arch/riscv/kernel/sbi.c:222:9: error: variable 'ret' has initializer but incomplete type
     struct sbiret ret = {0};
            ^~~~~~
   arch/riscv/kernel/sbi.c:222:23: warning: excess elements in struct initializer
     struct sbiret ret = {0};
                          ^
   arch/riscv/kernel/sbi.c:222:23: note: (near initialization for 'ret')
   arch/riscv/kernel/sbi.c:222:16: error: storage size of 'ret' isn't known
     struct sbiret ret = {0};
                   ^~~
   arch/riscv/kernel/sbi.c:230:18: error: 'SBI_EXT_IPI' undeclared (first use in this function)
     ret = sbi_ecall(SBI_EXT_IPI, SBI_EXT_IPI_SEND_IPI, hmask_val,
                     ^~~~~~~~~~~
>> arch/riscv/kernel/sbi.c:230:31: error: 'SBI_EXT_IPI_SEND_IPI' undeclared (first use in this function); did you mean 'SBI_EXT_IPI'?
     ret = sbi_ecall(SBI_EXT_IPI, SBI_EXT_IPI_SEND_IPI, hmask_val,
                                  ^~~~~~~~~~~~~~~~~~~~
                                  SBI_EXT_IPI
   arch/riscv/kernel/sbi.c:222:16: warning: unused variable 'ret' [-Wunused-variable]
     struct sbiret ret = {0};
                   ^~~
   arch/riscv/kernel/sbi.c: In function '__sbi_rfence_v02':
   arch/riscv/kernel/sbi.c:249:9: error: variable 'ret' has initializer but incomplete type
     struct sbiret ret = {0};
            ^~~~~~
   arch/riscv/kernel/sbi.c:249:23: warning: excess elements in struct initializer
     struct sbiret ret = {0};
                          ^
   arch/riscv/kernel/sbi.c:249:23: note: (near initialization for 'ret')
   arch/riscv/kernel/sbi.c:249:16: error: storage size of 'ret' isn't known
     struct sbiret ret = {0};
                   ^~~
   arch/riscv/kernel/sbi.c:251:22: error: 'SBI_EXT_RFENCE' undeclared (first use in this function); did you mean 'RISCV_FENCE'?
     unsigned long ext = SBI_EXT_RFENCE;
                         ^~~~~~~~~~~~~~
                         RISCV_FENCE
   arch/riscv/kernel/sbi.c:259:7: error: 'SBI_EXT_RFENCE_REMOTE_FENCE_I' undeclared (first use in this function)
     case SBI_EXT_RFENCE_REMOTE_FENCE_I:
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/riscv/kernel/sbi.c:262:7: error: 'SBI_EXT_RFENCE_REMOTE_SFENCE_VMA' undeclared (first use in this function); did you mean 'SBI_EXT_RFENCE_REMOTE_FENCE_I'?
     case SBI_EXT_RFENCE_REMOTE_SFENCE_VMA:
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          SBI_EXT_RFENCE_REMOTE_FENCE_I
   arch/riscv/kernel/sbi.c:266:7: error: 'SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID' undeclared (first use in this function); did you mean 'SBI_EXT_RFENCE_REMOTE_SFENCE_VMA'?
     case SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID:
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          SBI_EXT_RFENCE_REMOTE_SFENCE_VMA
>> arch/riscv/kernel/sbi.c:271:7: error: 'SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA' undeclared (first use in this function); did you mean 'SBI_EXT_RFENCE_REMOTE_SFENCE_VMA'?
     case SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA:
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          SBI_EXT_RFENCE_REMOTE_SFENCE_VMA
>> arch/riscv/kernel/sbi.c:275:7: error: 'SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID' undeclared (first use in this function); did you mean 'SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID'?
     case SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID:
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID
>> arch/riscv/kernel/sbi.c:279:7: error: 'SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA' undeclared (first use in this function); did you mean 'SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA'?
     case SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA:
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA
>> arch/riscv/kernel/sbi.c:283:7: error: 'SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID' undeclared (first use in this function); did you mean 'SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID'?
     case SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID:
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID
   arch/riscv/kernel/sbi.c:249:16: warning: unused variable 'ret' [-Wunused-variable]
     struct sbiret ret = {0};
                   ^~~
   arch/riscv/kernel/sbi.c: In function 'sbi_remote_fence_i':
   arch/riscv/kernel/sbi.c:335:15: error: 'SBI_EXT_0_1_REMOTE_FENCE_I' undeclared (first use in this function)
     __sbi_rfence(SBI_EXT_0_1_REMOTE_FENCE_I, SBI_EXT_RFENCE_REMOTE_FENCE_I,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/riscv/kernel/sbi.c:335:43: error: 'SBI_EXT_RFENCE_REMOTE_FENCE_I' undeclared (first use in this function); did you mean 'SBI_EXT_0_1_REMOTE_FENCE_I'?
     __sbi_rfence(SBI_EXT_0_1_REMOTE_FENCE_I, SBI_EXT_RFENCE_REMOTE_FENCE_I,
                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                              SBI_EXT_0_1_REMOTE_FENCE_I
   arch/riscv/kernel/sbi.c: In function 'sbi_remote_sfence_vma':
   arch/riscv/kernel/sbi.c:353:15: error: 'SBI_EXT_0_1_REMOTE_SFENCE_VMA' undeclared (first use in this function)
     __sbi_rfence(SBI_EXT_0_1_REMOTE_SFENCE_VMA,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/riscv/kernel/sbi.c:354:8: error: 'SBI_EXT_RFENCE_REMOTE_SFENCE_VMA' undeclared (first use in this function); did you mean 'SBI_EXT_0_1_REMOTE_SFENCE_VMA'?
           SBI_EXT_RFENCE_REMOTE_SFENCE_VMA,
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           SBI_EXT_0_1_REMOTE_SFENCE_VMA
   arch/riscv/kernel/sbi.c: In function 'sbi_remote_sfence_vma_asid':
   arch/riscv/kernel/sbi.c:375:15: error: 'SBI_EXT_0_1_REMOTE_SFENCE_VMA_ASID' undeclared (first use in this function)
     __sbi_rfence(SBI_EXT_0_1_REMOTE_SFENCE_VMA_ASID,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/riscv/kernel/sbi.c:376:8: error: 'SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID' undeclared (first use in this function); did you mean 'SBI_EXT_0_1_REMOTE_SFENCE_VMA_ASID'?
           SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID,
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           SBI_EXT_0_1_REMOTE_SFENCE_VMA_ASID
   arch/riscv/kernel/sbi.c: In function 'sbi_remote_hfence_gvma':
   arch/riscv/kernel/sbi.c:394:22: error: 'SBI_EXT_RFENCE' undeclared (first use in this function); did you mean 'RISCV_FENCE'?
     return __sbi_rfence(SBI_EXT_RFENCE, SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA,
                         ^~~~~~~~~~~~~~
                         RISCV_FENCE
   arch/riscv/kernel/sbi.c:394:38: error: 'SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA' undeclared (first use in this function)
     return __sbi_rfence(SBI_EXT_RFENCE, SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA,
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/riscv/kernel/sbi.c: In function 'sbi_remote_hfence_gvma_vmid':
   arch/riscv/kernel/sbi.c:415:22: error: 'SBI_EXT_RFENCE' undeclared (first use in this function); did you mean 'RISCV_FENCE'?
     return __sbi_rfence(SBI_EXT_RFENCE,
                         ^~~~~~~~~~~~~~
                         RISCV_FENCE
   arch/riscv/kernel/sbi.c:416:8: error: 'SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID' undeclared (first use in this function)
           SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID,
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/riscv/kernel/sbi.c: In function 'sbi_remote_hfence_vvma':
   arch/riscv/kernel/sbi.c:434:22: error: 'SBI_EXT_RFENCE' undeclared (first use in this function); did you mean 'RISCV_FENCE'?
     return __sbi_rfence(SBI_EXT_RFENCE, SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA,
                         ^~~~~~~~~~~~~~
                         RISCV_FENCE
   arch/riscv/kernel/sbi.c:434:38: error: 'SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA' undeclared (first use in this function)
     return __sbi_rfence(SBI_EXT_RFENCE, SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA,
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/riscv/kernel/sbi.c: In function 'sbi_remote_hfence_vvma_asid':
   arch/riscv/kernel/sbi.c:456:22: error: 'SBI_EXT_RFENCE' undeclared (first use in this function); did you mean 'RISCV_FENCE'?
     return __sbi_rfence(SBI_EXT_RFENCE,
                         ^~~~~~~~~~~~~~
                         RISCV_FENCE
   arch/riscv/kernel/sbi.c:457:8: error: 'SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID' undeclared (first use in this function)
           SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID,
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/riscv/kernel/sbi.c: In function 'sbi_probe_extension':
   arch/riscv/kernel/sbi.c:470:16: error: storage size of 'ret' isn't known
     struct sbiret ret;
                   ^~~
   arch/riscv/kernel/sbi.c:472:18: error: 'SBI_EXT_BASE' undeclared (first use in this function); did you mean 'BIT_MASK'?
     ret = sbi_ecall(SBI_EXT_BASE, SBI_BASE_PROBE_EXT, extid, 0, 0, 0, 0, 0);
                     ^~~~~~~~~~~~
                     BIT_MASK
   arch/riscv/kernel/sbi.c:472:32: error: 'SBI_BASE_PROBE_EXT' undeclared (first use in this function)
     ret = sbi_ecall(SBI_EXT_BASE, SBI_BASE_PROBE_EXT, extid, 0, 0, 0, 0, 0);
                                   ^~~~~~~~~~~~~~~~~~
   arch/riscv/kernel/sbi.c:470:16: warning: unused variable 'ret' [-Wunused-variable]
     struct sbiret ret;
                   ^~~
   arch/riscv/kernel/sbi.c: In function 'sbi_get_spec_version':
   arch/riscv/kernel/sbi.c:484:16: error: storage size of 'ret' isn't known
     struct sbiret ret;
                   ^~~
   arch/riscv/kernel/sbi.c:486:18: error: 'SBI_EXT_BASE' undeclared (first use in this function); did you mean 'BIT_MASK'?
     ret = sbi_ecall(SBI_EXT_BASE, SBI_BASE_GET_SPEC_VERSION,
                     ^~~~~~~~~~~~
                     BIT_MASK
   arch/riscv/kernel/sbi.c:486:32: error: 'SBI_BASE_GET_SPEC_VERSION' undeclared (first use in this function)
     ret = sbi_ecall(SBI_EXT_BASE, SBI_BASE_GET_SPEC_VERSION,
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/riscv/kernel/sbi.c:484:16: warning: unused variable 'ret' [-Wunused-variable]
     struct sbiret ret;
                   ^~~
   arch/riscv/kernel/sbi.c: In function 'sbi_get_firmware_id':
   arch/riscv/kernel/sbi.c:496:16: error: storage size of 'ret' isn't known
     struct sbiret ret;
                   ^~~
   arch/riscv/kernel/sbi.c:498:18: error: 'SBI_EXT_BASE' undeclared (first use in this function); did you mean 'BIT_MASK'?
     ret = sbi_ecall(SBI_EXT_BASE, SBI_BASE_GET_IMP_ID,
                     ^~~~~~~~~~~~
                     BIT_MASK
   arch/riscv/kernel/sbi.c:498:32: error: 'SBI_BASE_GET_IMP_ID' undeclared (first use in this function)
     ret = sbi_ecall(SBI_EXT_BASE, SBI_BASE_GET_IMP_ID,
                                   ^~~~~~~~~~~~~~~~~~~
   arch/riscv/kernel/sbi.c:496:16: warning: unused variable 'ret' [-Wunused-variable]
     struct sbiret ret;
                   ^~~
   arch/riscv/kernel/sbi.c: In function 'sbi_get_firmware_version':
   arch/riscv/kernel/sbi.c:508:16: error: storage size of 'ret' isn't known
     struct sbiret ret;
                   ^~~
   arch/riscv/kernel/sbi.c:510:18: error: 'SBI_EXT_BASE' undeclared (first use in this function); did you mean 'BIT_MASK'?
     ret = sbi_ecall(SBI_EXT_BASE, SBI_BASE_GET_IMP_VERSION,
                     ^~~~~~~~~~~~
                     BIT_MASK
   arch/riscv/kernel/sbi.c:510:32: error: 'SBI_BASE_GET_IMP_VERSION' undeclared (first use in this function); did you mean '__GXX_ABI_VERSION'?
     ret = sbi_ecall(SBI_EXT_BASE, SBI_BASE_GET_IMP_VERSION,
                                   ^~~~~~~~~~~~~~~~~~~~~~~~
                                   __GXX_ABI_VERSION
   arch/riscv/kernel/sbi.c:508:16: warning: unused variable 'ret' [-Wunused-variable]
     struct sbiret ret;
                   ^~~
   arch/riscv/kernel/sbi.c: In function 'sbi_power_off':
   arch/riscv/kernel/sbi.c:520:2: error: implicit declaration of function 'sbi_shutdown' [-Werror=implicit-function-declaration]
     sbi_shutdown();
     ^~~~~~~~~~~~
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:15,
                    from include/linux/list.h:9,
                    from include/linux/pm.h:11,
                    from arch/riscv/kernel/sbi.c:4:
   arch/riscv/kernel/sbi.c: In function 'sbi_init':
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 2 has type 'int' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:311:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   arch/riscv/kernel/sbi.c:532:2: note: in expansion of macro 'pr_info'
     pr_info("SBI specification v%lu.%lu detected\n",
     ^~~~~~~
   arch/riscv/kernel/sbi.c:532:32: note: format string is defined here
     pr_info("SBI specification v%lu.%lu detected\n",
                                 ~~^
                                 %u
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:15,
                    from include/linux/list.h:9,
                    from include/linux/pm.h:11,
                    from arch/riscv/kernel/sbi.c:4:
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'int' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:14:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^~~~~~~~
   include/linux/printk.h:311:9: note: in expansion of macro 'KERN_INFO'
     printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~~
   arch/riscv/kernel/sbi.c:532:2: note: in expansion of macro 'pr_info'
     pr_info("SBI specification v%lu.%lu detected\n",
     ^~~~~~~
   arch/riscv/kernel/sbi.c:532:36: note: format string is defined here
     pr_info("SBI specification v%lu.%lu detected\n",
                                     ~~^
                                     %u
   arch/riscv/kernel/sbi.c:535:6: error: implicit declaration of function 'sbi_spec_is_0_1' [-Werror=implicit-function-declaration]
     if (sbi_spec_is_0_1()) {
         ^~~~~~~~~~~~~~~
   arch/riscv/kernel/sbi.c:542:27: error: 'SBI_EXT_TIME' undeclared (first use in this function); did you mean 'STA_PPSTIME'?
      if (sbi_probe_extension(SBI_EXT_TIME) > 0)
                              ^~~~~~~~~~~~
                              STA_PPSTIME
>> arch/riscv/kernel/sbi.c:546:27: error: 'SBI_EXT_IPI' undeclared (first use in this function); did you mean 'SBI_EXT_TIME'?
      if (sbi_probe_extension(SBI_EXT_IPI) > 0)
                              ^~~~~~~~~~~
                              SBI_EXT_TIME
>> arch/riscv/kernel/sbi.c:550:27: error: 'SBI_EXT_RFENCE' undeclared (first use in this function); did you mean 'SBI_EXT_TIME'?
      if (sbi_probe_extension(SBI_EXT_RFENCE) > 0)
                              ^~~~~~~~~~~~~~
                              SBI_EXT_TIME
   arch/riscv/kernel/sbi.c: In function 'sbi_remote_hfence_gvma':
   arch/riscv/kernel/sbi.c:396:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   arch/riscv/kernel/sbi.c: In function 'sbi_remote_hfence_gvma_vmid':
   arch/riscv/kernel/sbi.c:418:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   arch/riscv/kernel/sbi.c: In function 'sbi_remote_hfence_vvma':
   arch/riscv/kernel/sbi.c:436:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   arch/riscv/kernel/sbi.c: In function 'sbi_remote_hfence_vvma_asid':
   arch/riscv/kernel/sbi.c:459:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   arch/riscv/kernel/sbi.c: In function 'sbi_get_spec_version':
   arch/riscv/kernel/sbi.c:492:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   arch/riscv/kernel/sbi.c: In function 'sbi_get_firmware_id':
   arch/riscv/kernel/sbi.c:504:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   arch/riscv/kernel/sbi.c: In function 'sbi_get_firmware_version':
   arch/riscv/kernel/sbi.c:516:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors

vim +230 arch/riscv/kernel/sbi.c

   218	
   219	static int __sbi_send_ipi_v02(const unsigned long *hart_mask)
   220	{
   221		unsigned long hmask_val;
 > 222		struct sbiret ret = {0};
   223		int result;
   224	
   225		if (!hart_mask)
   226			hmask_val = *(cpumask_bits(cpu_online_mask));
   227		else
   228			hmask_val = *hart_mask;
   229	
 > 230		ret = sbi_ecall(SBI_EXT_IPI, SBI_EXT_IPI_SEND_IPI, hmask_val,
   231				0, 0, 0, 0, 0);
   232		if (ret.error) {
   233			pr_err("%s: failed with error [%d]\n", __func__,
   234				sbi_err_map_linux_errno(ret.error));
   235			result = ret.error;
   236		} else
   237			result = ret.value;
   238	
   239		return result;
   240	}
   241	
   242	static int __sbi_rfence_v02(unsigned long extid, unsigned long fid,
   243				     const unsigned long *hart_mask,
   244				     unsigned long hbase, unsigned long start,
   245				     unsigned long size, unsigned long arg4,
   246				     unsigned long arg5)
   247	{
   248		unsigned long hmask_val;
   249		struct sbiret ret = {0};
   250		int result;
   251		unsigned long ext = SBI_EXT_RFENCE;
   252	
   253		if (!hart_mask)
   254			hmask_val = *(cpumask_bits(cpu_online_mask));
   255		else
   256			hmask_val = *hart_mask;
   257	
   258		switch (fid) {
   259		case SBI_EXT_RFENCE_REMOTE_FENCE_I:
   260			ret = sbi_ecall(ext, fid, hmask_val, 0, 0, 0, 0, 0);
   261			break;
 > 262		case SBI_EXT_RFENCE_REMOTE_SFENCE_VMA:
   263			ret = sbi_ecall(ext, fid, hmask_val, 0, start,
   264					size, 0, 0);
   265			break;
 > 266		case SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID:
   267			ret = sbi_ecall(ext, fid, hmask_val, 0, start,
   268					size, arg4, 0);
   269			break;
   270		/*TODO: Handle non zero hbase cases */
 > 271		case SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA:
   272			ret = sbi_ecall(ext, fid, hmask_val, 0, start,
   273					size, 0, 0);
   274			break;
 > 275		case SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID:
   276			ret = sbi_ecall(ext, fid, hmask_val, 0, start,
   277					size, arg4, 0);
   278			break;
 > 279		case SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA:
   280			ret = sbi_ecall(ext, fid, hmask_val, 0, start,
   281					size, 0, 0);
   282			break;
 > 283		case SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID:
   284			ret = sbi_ecall(ext, fid, hmask_val, 0, start,
   285					size, arg4, 0);
   286			break;
   287		default:
   288			pr_err("unknown function ID [%lu] for SBI extension [%lu]\n",
   289				fid, ext);
   290			result = -EINVAL;
   291		}
   292	
   293		if (ret.error) {
   294			pr_err("%s: failed with error [%d]\n", __func__,
   295				sbi_err_map_linux_errno(ret.error));
   296			result = ret.error;
   297		} else
   298			result = ret.value;
   299	
   300		return result;
   301	}
   302	
   303	/**
   304	 * sbi_set_timer() - Program the timer for next timer event.
   305	 * @stime_value: The value after which next timer event should fire.
   306	 *
   307	 * Return: None
   308	 */
   309	void sbi_set_timer(uint64_t stime_value)
   310	{
   311		__sbi_set_timer(stime_value);
   312	}
   313	
   314	/**
   315	 * sbi_send_ipi() - Send an IPI to any hart.
   316	 * @hart_mask: A cpu mask containing all the target harts.
   317	 *
   318	 * Return: None
   319	 */
   320	void sbi_send_ipi(const unsigned long *hart_mask)
   321	{
   322		__sbi_send_ipi(hart_mask);
   323	}
   324	EXPORT_SYMBOL(sbi_send_ipi);
   325	
   326	
   327	/**
   328	 * sbi_remote_fence_i() - Execute FENCE.I instruction on given remote harts.
   329	 * @hart_mask: A cpu mask containing all the target harts.
   330	 *
   331	 * Return: None
   332	 */
   333	void sbi_remote_fence_i(const unsigned long *hart_mask)
   334	{
 > 335		__sbi_rfence(SBI_EXT_0_1_REMOTE_FENCE_I, SBI_EXT_RFENCE_REMOTE_FENCE_I,
   336			     hart_mask, 0, 0, 0, 0, 0);
   337	}
   338	EXPORT_SYMBOL(sbi_remote_fence_i);
   339	
   340	/**
   341	 * sbi_remote_sfence_vma() - Execute SFENCE.VMA instructions on given remote
   342	 *			     harts for the specified virtual address range.
   343	 * @hart_mask: A cpu mask containing all the target harts.
   344	 * @start: Start of the virtual address
   345	 * @size: Total size of the virtual address range.
   346	 *
   347	 * Return: None
   348	 */
   349	void sbi_remote_sfence_vma(const unsigned long *hart_mask,
   350						 unsigned long start,
   351						 unsigned long size)
   352	{
   353		__sbi_rfence(SBI_EXT_0_1_REMOTE_SFENCE_VMA,
 > 354			     SBI_EXT_RFENCE_REMOTE_SFENCE_VMA,
   355			     hart_mask, 0, start, size, 0, 0);
   356	}
   357	EXPORT_SYMBOL(sbi_remote_sfence_vma);
   358	
   359	/**
   360	 * sbi_remote_sfence_vma_asid() - Execute SFENCE.VMA instructions on given
   361	 * remote harts for a virtual address range belonging to a specific ASID.
   362	 *
   363	 * @hart_mask: A cpu mask containing all the target harts.
   364	 * @start: Start of the virtual address
   365	 * @size: Total size of the virtual address range.
   366	 * @asid: The value of address space identifier (ASID).
   367	 *
   368	 * Return: None
   369	 */
   370	void sbi_remote_sfence_vma_asid(const unsigned long *hart_mask,
   371						      unsigned long start,
   372						      unsigned long size,
   373						      unsigned long asid)
   374	{
   375		__sbi_rfence(SBI_EXT_0_1_REMOTE_SFENCE_VMA_ASID,
 > 376			     SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID,
   377			     hart_mask, 0, start, size, asid, 0);
   378	}
   379	EXPORT_SYMBOL(sbi_remote_sfence_vma_asid);
   380	

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

Download attachment ".config.gz" of type "application/gzip" (5332 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ