On 6/27/25 3:11 PM, Paolo Abeni wrote:
> +csky maintainer
> On 6/27/25 8:41 AM, kernel test robot wrote:
>> Hi Paolo,
>>
>> kernel test robot noticed the following build warnings:
>>
>> [auto build test WARNING on net-next/main]
>>
>> url:
>> https://github.com/intel-lab-lkp/linux/commits/Paolo-Abeni/scripts-kernel_doc-py-properly-handle-VIRTIO_DECLARE_FEATURES/20250624-221751
>> base: net-next/main
>> patch link:
>> https://lore.kernel.org/r/23e46bff5333015d92bf0876033750d9fbf555a0.1750753211.git.pabeni%40redhat.com
>> patch subject: [PATCH v6 net-next 4/9] vhost-net: allow configuring extended
>> features
>> config: csky-randconfig-001-20250627
>> (https://download.01.org/0day-ci/archive/20250627/[email protected]/config)
>> compiler: csky-linux-gcc (GCC) 15.1.0
>> reproduce (this is a W=1 build):
>> (https://download.01.org/0day-ci/archive/20250627/[email protected]/reproduce)
>>
>> If you fix the issue in a separate patch/commit (i.e. not just a new version
>> of
>> the same patch/commit), kindly add following tags
>> | Reported-by: kernel test robot <[email protected]>
>> | Closes:
>> https://lore.kernel.org/oe-kbuild-all/[email protected]/
>>
>> All warnings (new ones prefixed by >>):
>>
>> In file included from include/linux/uaccess.h:12,
>> from include/linux/sched/task.h:13,
>> from include/linux/sched/signal.h:9,
>> from include/linux/rcuwait.h:6,
>> from include/linux/percpu-rwsem.h:7,
>> from include/linux/fs.h:34,
>> from include/linux/compat.h:17,
>> from drivers/vhost/net.c:8:
>> arch/csky/include/asm/uaccess.h: In function '__get_user_fn.constprop':
>>>> arch/csky/include/asm/uaccess.h:147:9: warning: 'retval' is used
>>>> uninitialized [-Wuninitialized]
>> 147 | __asm__ __volatile__( \
>> | ^~~~~~~
>> arch/csky/include/asm/uaccess.h:187:17: note: in expansion of macro
>> '__get_user_asm_64'
>> 187 | __get_user_asm_64(x, ptr, retval);
>> | ^~~~~~~~~~~~~~~~~
>> arch/csky/include/asm/uaccess.h:170:13: note: 'retval' was declared here
>> 170 | int retval;
>> | ^~~~~~
>>
>>
>> vim +/retval +147 arch/csky/include/asm/uaccess.h
>>
>> da551281947cb2c Guo Ren 2018-09-05 141
>> e58a41c2226847f Guo Ren 2021-04-21 142 #define __get_user_asm_64(x, ptr,
>> err) \
>> da551281947cb2c Guo Ren 2018-09-05 143 do {
>> \
>> da551281947cb2c Guo Ren 2018-09-05 144 int tmp;
>> \
>> e58a41c2226847f Guo Ren 2021-04-21 145 int errcode;
>> \
>> e58a41c2226847f Guo Ren 2021-04-21 146
>> \
>> e58a41c2226847f Guo Ren 2021-04-21 @147 __asm__ __volatile__(
>> \
>> e58a41c2226847f Guo Ren 2021-04-21 148 "1: ldw %3, (%2, 0)
>> \n" \
>> da551281947cb2c Guo Ren 2018-09-05 149 " stw %3, (%1, 0)
>> \n" \
>> e58a41c2226847f Guo Ren 2021-04-21 150 "2: ldw %3, (%2, 4)
>> \n" \
>> e58a41c2226847f Guo Ren 2021-04-21 151 " stw %3, (%1, 4)
>> \n" \
>> e58a41c2226847f Guo Ren 2021-04-21 152 " br 4f
>> \n" \
>> e58a41c2226847f Guo Ren 2021-04-21 153 "3: mov %0, %4
>> \n" \
>> e58a41c2226847f Guo Ren 2021-04-21 154 " br 4f
>> \n" \
>> da551281947cb2c Guo Ren 2018-09-05 155 ".section __ex_table, \"a\"
>> \n" \
>> da551281947cb2c Guo Ren 2018-09-05 156 ".align 2
>> \n" \
>> e58a41c2226847f Guo Ren 2021-04-21 157 ".long 1b, 3b
>> \n" \
>> e58a41c2226847f Guo Ren 2021-04-21 158 ".long 2b, 3b
>> \n" \
>> da551281947cb2c Guo Ren 2018-09-05 159 ".previous
>> \n" \
>> e58a41c2226847f Guo Ren 2021-04-21 160 "4:
>> \n" \
>> e58a41c2226847f Guo Ren 2021-04-21 161 : "=r"(err), "=r"(x),
>> "=r"(ptr), \
>> e58a41c2226847f Guo Ren 2021-04-21 162 "=r"(tmp), "=r"(errcode)
>> \
>> e58a41c2226847f Guo Ren 2021-04-21 163 : "0"(err), "1"(x), "2"(ptr),
>> "3"(0), \
>> e58a41c2226847f Guo Ren 2021-04-21 164 "4"(-EFAULT)
>> \
>> da551281947cb2c Guo Ren 2018-09-05 165 : "memory");
>> \
>> da551281947cb2c Guo Ren 2018-09-05 166 } while (0)
>> da551281947cb2c Guo Ren 2018-09-05 167
>
> The intel test report reported the above compile warning on this series:
>
> https://lore.kernel.org/netdev/[email protected]/T/#md788de2b3a4e9da23ac93b5f1c773a6070b5b4fb
>
> specifically, in patch 4:
>
> + if (get_user(features, featurep + 1 + i))
> + return -EFAULT;
>
> AFAICS such statement is legit, and the bot points to some problem in
> the arch specific get_user() implementation. Could you please have a look?
Out of sheer ignorance on my side, I fail to see how the csky get_user()
could work correctly without something alike the following (which indeed
fixes the issue here).
/P
---
diff --git a/arch/csky/include/asm/uaccess.h
b/arch/csky/include/asm/uaccess.h
index 2e927c21d8a1..ae0864ad59a3 100644
--- a/arch/csky/include/asm/uaccess.h
+++ b/arch/csky/include/asm/uaccess.h
@@ -167,7 +167,7 @@ do {
\
static inline int __get_user_fn(size_t size, const void __user *ptr,
void *x)
{
- int retval;
+ int retval = 0;
u32 tmp;
switch (size) {