Hi Robin,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   dea8dcf2a9fa8cc540136a6cd885c3beece16ec3
commit: b4ceb4a5359ed1c9ba4a20acf3a70d4bbead3248 iommu: Tidy up Kconfig for SoC 
IOMMUs
date:   6 months ago
config: csky-randconfig-s032-20201227 (attached as .config)
compiler: csky-linux-gcc (GCC) 9.3.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.3-184-g1b896707-dirty
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b4ceb4a5359ed1c9ba4a20acf3a70d4bbead3248
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout b4ceb4a5359ed1c9ba4a20acf3a70d4bbead3248
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=csky 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


"sparse warnings: (new ones prefixed by >>)"
>> samples/vfio-mdev/mbochs.c:1270:21: sparse: sparse: incorrect type in 
>> argument 1 (different address spaces) @@     expected void const *addr @@    
>>  got unsigned int const [noderef] __user *__gu_ptr @@
   samples/vfio-mdev/mbochs.c:1270:21: sparse:     expected void const *addr
   samples/vfio-mdev/mbochs.c:1270:21: sparse:     got unsigned int const 
[noderef] __user *__gu_ptr
   samples/vfio-mdev/mbochs.c:1346:1: sparse: sparse: symbol 
'mdev_type_attr_name' was not declared. Should it be static?
   samples/vfio-mdev/mbochs.c:1356:1: sparse: sparse: symbol 
'mdev_type_attr_description' was not declared. Should it be static?
   samples/vfio-mdev/mbochs.c:1366:1: sparse: sparse: symbol 
'mdev_type_attr_available_instances' was not declared. Should it be static?
   samples/vfio-mdev/mbochs.c:1373:1: sparse: sparse: symbol 
'mdev_type_attr_device_api' was not declared. Should it be static?

vim +1270 samples/vfio-mdev/mbochs.c

a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1166  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1167  static long mbochs_ioctl(struct 
mdev_device *mdev, unsigned int cmd,
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1168                          
unsigned long arg)
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1169  {
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1170          int ret = 0;
104c7405a64d937 Gerd Hoffmann 2018-09-21  1171          unsigned long minsz, 
outsz;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1172  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1173          switch (cmd) {
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1174          case 
VFIO_DEVICE_GET_INFO:
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1175          {
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1176                  struct 
vfio_device_info info;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1177  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1178                  minsz = 
offsetofend(struct vfio_device_info, num_irqs);
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1179  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1180                  if 
(copy_from_user(&info, (void __user *)arg, minsz))
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1181                          return 
-EFAULT;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1182  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1183                  if (info.argsz 
< minsz)
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1184                          return 
-EINVAL;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1185  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1186                  ret = 
mbochs_get_device_info(mdev, &info);
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1187                  if (ret)
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1188                          return 
ret;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1189  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1190                  if 
(copy_to_user((void __user *)arg, &info, minsz))
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1191                          return 
-EFAULT;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1192  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1193                  return 0;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1194          }
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1195          case 
VFIO_DEVICE_GET_REGION_INFO:
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1196          {
104c7405a64d937 Gerd Hoffmann 2018-09-21  1197                  struct 
vfio_region_info_ext info;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1198  
104c7405a64d937 Gerd Hoffmann 2018-09-21  1199                  minsz = 
offsetofend(typeof(info), base.offset);
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1200  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1201                  if 
(copy_from_user(&info, (void __user *)arg, minsz))
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1202                          return 
-EFAULT;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1203  
104c7405a64d937 Gerd Hoffmann 2018-09-21  1204                  outsz = 
info.base.argsz;
104c7405a64d937 Gerd Hoffmann 2018-09-21  1205                  if (outsz < 
minsz)
104c7405a64d937 Gerd Hoffmann 2018-09-21  1206                          return 
-EINVAL;
104c7405a64d937 Gerd Hoffmann 2018-09-21  1207                  if (outsz > 
sizeof(info))
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1208                          return 
-EINVAL;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1209  
104c7405a64d937 Gerd Hoffmann 2018-09-21  1210                  ret = 
mbochs_get_region_info(mdev, &info);
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1211                  if (ret)
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1212                          return 
ret;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1213  
104c7405a64d937 Gerd Hoffmann 2018-09-21  1214                  if 
(copy_to_user((void __user *)arg, &info, outsz))
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1215                          return 
-EFAULT;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1216  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1217                  return 0;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1218          }
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1219  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1220          case 
VFIO_DEVICE_GET_IRQ_INFO:
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1221          {
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1222                  struct 
vfio_irq_info info;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1223  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1224                  minsz = 
offsetofend(struct vfio_irq_info, count);
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1225  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1226                  if 
(copy_from_user(&info, (void __user *)arg, minsz))
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1227                          return 
-EFAULT;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1228  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1229                  if ((info.argsz 
< minsz) ||
104c7405a64d937 Gerd Hoffmann 2018-09-21  1230                      (info.index 
>= VFIO_PCI_NUM_IRQS))
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1231                          return 
-EINVAL;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1232  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1233                  ret = 
mbochs_get_irq_info(mdev, &info);
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1234                  if (ret)
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1235                          return 
ret;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1236  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1237                  if 
(copy_to_user((void __user *)arg, &info, minsz))
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1238                          return 
-EFAULT;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1239  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1240                  return 0;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1241          }
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1242  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1243          case 
VFIO_DEVICE_QUERY_GFX_PLANE:
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1244          {
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1245                  struct 
vfio_device_gfx_plane_info plane;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1246  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1247                  minsz = 
offsetofend(struct vfio_device_gfx_plane_info,
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1248                                  
    region_index);
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1249  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1250                  if 
(copy_from_user(&plane, (void __user *)arg, minsz))
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1251                          return 
-EFAULT;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1252  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1253                  if (plane.argsz 
< minsz)
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1254                          return 
-EINVAL;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1255  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1256                  ret = 
mbochs_query_gfx_plane(mdev, &plane);
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1257                  if (ret)
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1258                          return 
ret;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1259  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1260                  if 
(copy_to_user((void __user *)arg, &plane, minsz))
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1261                          return 
-EFAULT;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1262  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1263                  return 0;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1264          }
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1265  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1266          case 
VFIO_DEVICE_GET_GFX_DMABUF:
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1267          {
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1268                  u32 dmabuf_id;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1269  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11 @1270                  if 
(get_user(dmabuf_id, (__u32 __user *)arg))
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1271                          return 
-EFAULT;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1272  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1273                  return 
mbochs_get_gfx_dmabuf(mdev, dmabuf_id);
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1274          }
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1275  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1276          case 
VFIO_DEVICE_SET_IRQS:
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1277                  return -EINVAL;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1278  
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1279          case VFIO_DEVICE_RESET:
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1280                  return 
mbochs_reset(mdev);
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1281          }
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1282          return -ENOTTY;
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1283  }
a5e6e6505f38f7b Gerd Hoffmann 2018-05-11  1284  

:::::: The code at line 1270 was first introduced by commit
:::::: a5e6e6505f38f7bce1d3576503a2bffff3fa888c sample: vfio bochs vbe display 
(host device for bochs-drm)

:::::: TO: Gerd Hoffmann <[email protected]>
:::::: CC: Alex Williamson <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

Reply via email to