Pff. Thanks Dan, I will post a v5 to address the two issues you mentioned. Br, Fred On Sun, Jun 9, 2024 at 4:29 PM Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote: > > Hi Fred, > > kernel test robot noticed the following build warnings: > > url: https://github.com/intel-lab-lkp/linux/commits/Fred-Griffoul/cgroup-cpuset-export-cpuset_cpus_allowed/20240608-031332 > base: cbb325e77fbe62a06184175aa98c9eb98736c3e8 > patch link: https://lore.kernel.org/r/20240607190955.15376-3-fgriffo%40amazon.co.uk > patch subject: [PATCH v4 2/2] vfio/pci: add msi interrupt affinity support > config: mips-randconfig-r081-20240609 (https://download.01.org/0day-ci/archive/20240609/202406092245.Hgx6MqK9-lkp@xxxxxxxxx/config) > compiler: mips-linux-gcc (GCC) 13.2.0 > > 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 <lkp@xxxxxxxxx> > | Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > | Closes: https://lore.kernel.org/r/202406092245.Hgx6MqK9-lkp@xxxxxxxxx/ > > New smatch warnings: > drivers/vfio/pci/vfio_pci_core.c:1241 vfio_pci_ioctl_set_irqs() warn: maybe return -EFAULT instead of the bytes remaining? > > vim +1241 drivers/vfio/pci/vfio_pci_core.c > > 2ecf3b58ed7bc5 drivers/vfio/pci/vfio_pci_core.c Jason Gunthorpe 2022-08-31 1190 static int vfio_pci_ioctl_set_irqs(struct vfio_pci_core_device *vdev, > 663eab456e072b drivers/vfio/pci/vfio_pci_core.c Jason Gunthorpe 2022-08-31 1191 struct vfio_irq_set __user *arg) > 2ecf3b58ed7bc5 drivers/vfio/pci/vfio_pci_core.c Jason Gunthorpe 2022-08-31 1192 { > 2ecf3b58ed7bc5 drivers/vfio/pci/vfio_pci_core.c Jason Gunthorpe 2022-08-31 1193 unsigned long minsz = offsetofend(struct vfio_irq_set, count); > 89e1f7d4c66d85 drivers/vfio/pci/vfio_pci.c Alex Williamson 2012-07-31 1194 struct vfio_irq_set hdr; > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1195 cpumask_var_t mask; > 89e1f7d4c66d85 drivers/vfio/pci/vfio_pci.c Alex Williamson 2012-07-31 1196 u8 *data = NULL; > 05692d7005a364 drivers/vfio/pci/vfio_pci.c Vlad Tsyrklevich 2016-10-12 1197 int max, ret = 0; > ef198aaa169c61 drivers/vfio/pci/vfio_pci.c Kirti Wankhede 2016-11-17 1198 size_t data_size = 0; > 89e1f7d4c66d85 drivers/vfio/pci/vfio_pci.c Alex Williamson 2012-07-31 1199 > 663eab456e072b drivers/vfio/pci/vfio_pci_core.c Jason Gunthorpe 2022-08-31 1200 if (copy_from_user(&hdr, arg, minsz)) > 89e1f7d4c66d85 drivers/vfio/pci/vfio_pci.c Alex Williamson 2012-07-31 1201 return -EFAULT; > 89e1f7d4c66d85 drivers/vfio/pci/vfio_pci.c Alex Williamson 2012-07-31 1202 > 05692d7005a364 drivers/vfio/pci/vfio_pci.c Vlad Tsyrklevich 2016-10-12 1203 max = vfio_pci_get_irq_count(vdev, hdr.index); > 89e1f7d4c66d85 drivers/vfio/pci/vfio_pci.c Alex Williamson 2012-07-31 1204 > ea3fc04d4fad2d drivers/vfio/pci/vfio_pci_core.c Jason Gunthorpe 2022-08-31 1205 ret = vfio_set_irqs_validate_and_prepare(&hdr, max, VFIO_PCI_NUM_IRQS, > ea3fc04d4fad2d drivers/vfio/pci/vfio_pci_core.c Jason Gunthorpe 2022-08-31 1206 &data_size); > ef198aaa169c61 drivers/vfio/pci/vfio_pci.c Kirti Wankhede 2016-11-17 1207 if (ret) > ef198aaa169c61 drivers/vfio/pci/vfio_pci.c Kirti Wankhede 2016-11-17 1208 return ret; > 89e1f7d4c66d85 drivers/vfio/pci/vfio_pci.c Alex Williamson 2012-07-31 1209 > ef198aaa169c61 drivers/vfio/pci/vfio_pci.c Kirti Wankhede 2016-11-17 1210 if (data_size) { > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1211 if (hdr.flags & VFIO_IRQ_SET_DATA_AFFINITY) { > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1212 if (!zalloc_cpumask_var(&mask, GFP_KERNEL)) > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1213 return -ENOMEM; > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1214 > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1215 ret = copy_from_user(mask, &arg->data, data_size); > > copy_from_user() returns the number of bytes remaining to be copied. > This should be: > > if (copy_from_user(mask, &arg->data, data_size)) { > ret = -EFAULT; > goto out; > } > > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1216 if (ret) > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1217 goto out; > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1218 > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1219 data = (u8 *)mask; > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1220 > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1221 } else { > 663eab456e072b drivers/vfio/pci/vfio_pci_core.c Jason Gunthorpe 2022-08-31 1222 data = memdup_user(&arg->data, data_size); > 3a1f7041ddd59e drivers/vfio/pci/vfio_pci.c Fengguang Wu 2012-12-07 1223 if (IS_ERR(data)) > 3a1f7041ddd59e drivers/vfio/pci/vfio_pci.c Fengguang Wu 2012-12-07 1224 return PTR_ERR(data); > 89e1f7d4c66d85 drivers/vfio/pci/vfio_pci.c Alex Williamson 2012-07-31 1225 } > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1226 } > 89e1f7d4c66d85 drivers/vfio/pci/vfio_pci.c Alex Williamson 2012-07-31 1227 > 89e1f7d4c66d85 drivers/vfio/pci/vfio_pci.c Alex Williamson 2012-07-31 1228 mutex_lock(&vdev->igate); > 89e1f7d4c66d85 drivers/vfio/pci/vfio_pci.c Alex Williamson 2012-07-31 1229 > ea3fc04d4fad2d drivers/vfio/pci/vfio_pci_core.c Jason Gunthorpe 2022-08-31 1230 ret = vfio_pci_set_irqs_ioctl(vdev, hdr.flags, hdr.index, hdr.start, > ea3fc04d4fad2d drivers/vfio/pci/vfio_pci_core.c Jason Gunthorpe 2022-08-31 1231 hdr.count, data); > 89e1f7d4c66d85 drivers/vfio/pci/vfio_pci.c Alex Williamson 2012-07-31 1232 > 89e1f7d4c66d85 drivers/vfio/pci/vfio_pci.c Alex Williamson 2012-07-31 1233 mutex_unlock(&vdev->igate); > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1234 > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1235 out: > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1236 if (hdr.flags & VFIO_IRQ_SET_DATA_AFFINITY && data_size) > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1237 free_cpumask_var(mask); > 66c926fb7b2507 drivers/vfio/pci/vfio_pci_core.c Fred Griffoul 2024-06-07 1238 else > 89e1f7d4c66d85 drivers/vfio/pci/vfio_pci.c Alex Williamson 2012-07-31 1239 kfree(data); > 89e1f7d4c66d85 drivers/vfio/pci/vfio_pci.c Alex Williamson 2012-07-31 1240 > 89e1f7d4c66d85 drivers/vfio/pci/vfio_pci.c Alex Williamson 2012-07-31 @1241 return ret; > 2ecf3b58ed7bc5 drivers/vfio/pci/vfio_pci_core.c Jason Gunthorpe 2022-08-31 1242 } > > -- > 0-DAY CI Kernel Test Service > https://github.com/intel/lkp-tests/wiki >