tree: https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git linux-next head: 4293ed1476ec42e45e54f812341058d812d820a5 commit: d5edad95c2f89cced19a23713f752442b620f0e1 [13/26] virtio: add context flag to find vqs config: x86_64-randconfig-x012-201714 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: git checkout d5edad95c2f89cced19a23713f752442b620f0e1 # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): drivers//virtio/virtio_pci_common.c: In function 'vp_setup_vq': >> drivers//virtio/virtio_pci_common.c:186:7: error: too few arguments to function 'vp_dev->setup_vq' vq = vp_dev->setup_vq(vp_dev, info, index, callback, name, ^~~~~~ drivers//virtio/virtio_pci_common.c: In function 'vp_find_vqs_msix': >> drivers//virtio/virtio_pci_common.c:318:12: error: too many arguments to function 'vp_setup_vq' vqs[i] = vp_setup_vq(vdev, i, callbacks[i], names[i], ^~~~~~~~~~~ drivers//virtio/virtio_pci_common.c:172:26: note: declared here static struct virtqueue *vp_setup_vq(struct virtio_device *vdev, unsigned index, ^~~~~~~~~~~ drivers//virtio/virtio_pci_common.c: In function 'vp_find_vqs_intx': drivers//virtio/virtio_pci_common.c:371:12: error: too many arguments to function 'vp_setup_vq' vqs[i] = vp_setup_vq(vdev, i, callbacks[i], names[i], ^~~~~~~~~~~ drivers//virtio/virtio_pci_common.c:172:26: note: declared here static struct virtqueue *vp_setup_vq(struct virtio_device *vdev, unsigned index, ^~~~~~~~~~~ vim +186 drivers//virtio/virtio_pci_common.c f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 180 unsigned long flags; f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 181 f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 182 /* fill out our structure that represents an active queue */ f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 183 if (!info) f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 184 return ERR_PTR(-ENOMEM); f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 185 f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 @186 vq = vp_dev->setup_vq(vp_dev, info, index, callback, name, f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 187 msix_vec); f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 188 if (IS_ERR(vq)) f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 189 goto out_info; f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 190 f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 191 info->vq = vq; f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 192 if (callback) { f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 193 spin_lock_irqsave(&vp_dev->lock, flags); f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 194 list_add(&info->node, &vp_dev->virtqueues); f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 195 spin_unlock_irqrestore(&vp_dev->lock, flags); f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 196 } else { f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 197 INIT_LIST_HEAD(&info->node); f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 198 } f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 199 f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 200 vp_dev->vqs[index] = info; f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 201 return vq; f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 202 f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 203 out_info: f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 204 kfree(info); f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 205 return vq; f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 206 } f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 207 f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 208 static void vp_del_vq(struct virtqueue *vq) f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 209 { f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 210 struct virtio_pci_device *vp_dev = to_vp_device(vq->vdev); f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 211 struct virtio_pci_vq_info *info = vp_dev->vqs[vq->index]; f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 212 unsigned long flags; f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 213 f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 214 spin_lock_irqsave(&vp_dev->lock, flags); f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 215 list_del(&info->node); f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 216 spin_unlock_irqrestore(&vp_dev->lock, flags); f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 217 f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 218 vp_dev->del_vq(info); f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 219 kfree(info); f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 220 } f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 221 c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 222 /* the config->del_vqs() implementation */ c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 223 void vp_del_vqs(struct virtio_device *vdev) d2a7ddda9 drivers/virtio/virtio_pci.c Michael S. Tsirkin 2009-06-12 224 { e969fed54 drivers/virtio/virtio_pci.c Michael S. Tsirkin 2009-07-26 225 struct virtio_pci_device *vp_dev = to_vp_device(vdev); d2a7ddda9 drivers/virtio/virtio_pci.c Michael S. Tsirkin 2009-06-12 226 struct virtqueue *vq, *n; c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 227 int i; d2a7ddda9 drivers/virtio/virtio_pci.c Michael S. Tsirkin 2009-06-12 228 e969fed54 drivers/virtio/virtio_pci.c Michael S. Tsirkin 2009-07-26 229 list_for_each_entry_safe(vq, n, &vdev->vqs, list) { f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 230 if (vp_dev->per_vq_vectors) { f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 231 int v = vp_dev->vqs[vq->index]->msix_vector; fa3a32793 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2016-11-17 232 e1c287efc drivers/virtio/virtio_pci_common.c Marc Zyngier 2017-03-08 233 if (v != VIRTIO_MSI_NO_VECTOR) { e1c287efc drivers/virtio/virtio_pci_common.c Marc Zyngier 2017-03-08 234 int irq = pci_irq_vector(vp_dev->pci_dev, v); e1c287efc drivers/virtio/virtio_pci_common.c Marc Zyngier 2017-03-08 235 e1c287efc drivers/virtio/virtio_pci_common.c Marc Zyngier 2017-03-08 236 irq_set_affinity_hint(irq, NULL); e1c287efc drivers/virtio/virtio_pci_common.c Marc Zyngier 2017-03-08 237 free_irq(irq, vq); e1c287efc drivers/virtio/virtio_pci_common.c Marc Zyngier 2017-03-08 238 } fa3a32793 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2016-11-17 239 } f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 240 vp_del_vq(vq); e969fed54 drivers/virtio/virtio_pci.c Michael S. Tsirkin 2009-07-26 241 } f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 242 vp_dev->per_vq_vectors = false; 66f2f5554 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2016-11-17 243 c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 244 if (vp_dev->intx_enabled) { c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 245 free_irq(vp_dev->pci_dev->irq, vp_dev); c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 246 vp_dev->intx_enabled = 0; c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 247 } 07ec51480 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2017-02-05 248 c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 249 for (i = 0; i < vp_dev->msix_used_vectors; ++i) c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 250 free_irq(pci_irq_vector(vp_dev->pci_dev, i), vp_dev); 07ec51480 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2017-02-05 251 66f2f5554 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2016-11-17 252 for (i = 0; i < vp_dev->msix_vectors; i++) c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 253 if (vp_dev->msix_affinity_masks[i]) 66f2f5554 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2016-11-17 254 free_cpumask_var(vp_dev->msix_affinity_masks[i]); 66f2f5554 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2016-11-17 255 c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 256 if (vp_dev->msix_enabled) { 66f2f5554 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2016-11-17 257 /* Disable the vector used for configuration */ 66f2f5554 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2016-11-17 258 vp_dev->config_vector(vp_dev, VIRTIO_MSI_NO_VECTOR); 66f2f5554 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2016-11-17 259 c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 260 pci_free_irq_vectors(vp_dev->pci_dev); c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 261 vp_dev->msix_enabled = 0; 07ec51480 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2017-02-05 262 } 07ec51480 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2017-02-05 263 c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 264 vp_dev->msix_vectors = 0; c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 265 vp_dev->msix_used_vectors = 0; c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 266 kfree(vp_dev->msix_names); c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 267 vp_dev->msix_names = NULL; c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 268 kfree(vp_dev->msix_affinity_masks); c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 269 vp_dev->msix_affinity_masks = NULL; f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 270 kfree(vp_dev->vqs); f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 271 vp_dev->vqs = NULL; d2a7ddda9 drivers/virtio/virtio_pci.c Michael S. Tsirkin 2009-06-12 272 } d2a7ddda9 drivers/virtio/virtio_pci.c Michael S. Tsirkin 2009-06-12 273 a3cbec697 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2016-11-17 274 static int vp_find_vqs_msix(struct virtio_device *vdev, unsigned nvqs, 52a615161 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2017-02-05 275 struct virtqueue *vqs[], vq_callback_t *callbacks[], 8951d4035 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 276 const char * const names[], bool per_vq_vectors, d5edad95c drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-03-06 277 const bool *ctx, 8951d4035 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 278 struct irq_affinity *desc) d2a7ddda9 drivers/virtio/virtio_pci.c Michael S. Tsirkin 2009-06-12 279 { e969fed54 drivers/virtio/virtio_pci.c Michael S. Tsirkin 2009-07-26 280 struct virtio_pci_device *vp_dev = to_vp_device(vdev); f68d24082 drivers/virtio/virtio_pci.c Rusty Russell 2009-09-23 281 u16 msix_vec; c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 282 int i, err, nvectors, allocated_vectors; f68d24082 drivers/virtio/virtio_pci.c Rusty Russell 2009-09-23 283 f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 284 vp_dev->vqs = kcalloc(nvqs, sizeof(*vp_dev->vqs), GFP_KERNEL); f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 285 if (!vp_dev->vqs) f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 286 return -ENOMEM; f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 287 c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 288 if (per_vq_vectors) { c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 289 /* Best option: one for change interrupt, one per vq. */ f68d24082 drivers/virtio/virtio_pci.c Rusty Russell 2009-09-23 290 nvectors = 1; c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 291 for (i = 0; i < nvqs; ++i) f68d24082 drivers/virtio/virtio_pci.c Rusty Russell 2009-09-23 292 if (callbacks[i]) c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 293 ++nvectors; 8951d4035 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 294 } else { c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 295 /* Second best: one for change, shared for all vqs. */ c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 296 nvectors = 2; 07ec51480 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2017-02-05 297 } 07ec51480 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2017-02-05 298 c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 299 err = vp_request_msix_vectors(vdev, nvectors, per_vq_vectors, c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 300 per_vq_vectors ? desc : NULL); 82af8ce84 drivers/virtio/virtio_pci.c Michael S. Tsirkin 2009-05-14 301 if (err) c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 302 goto error_find; d2a7ddda9 drivers/virtio/virtio_pci.c Michael S. Tsirkin 2009-06-12 303 f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 304 vp_dev->per_vq_vectors = per_vq_vectors; c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 305 allocated_vectors = vp_dev->msix_used_vectors; d2a7ddda9 drivers/virtio/virtio_pci.c Michael S. Tsirkin 2009-06-12 306 for (i = 0; i < nvqs; ++i) { 6457f126c drivers/virtio/virtio_pci.c Michael S. Tsirkin 2012-09-05 307 if (!names[i]) { 6457f126c drivers/virtio/virtio_pci.c Michael S. Tsirkin 2012-09-05 308 vqs[i] = NULL; 6457f126c drivers/virtio/virtio_pci.c Michael S. Tsirkin 2012-09-05 309 continue; a3cbec697 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2016-11-17 310 } a3cbec697 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2016-11-17 311 c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 312 if (!callbacks[i]) 07ec51480 drivers/virtio/virtio_pci_common.c Christoph Hellwig 2017-02-05 313 msix_vec = VIRTIO_MSI_NO_VECTOR; f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 314 else if (vp_dev->per_vq_vectors) c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 315 msix_vec = allocated_vectors++; c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 316 else c5bf771f1 drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 317 msix_vec = VP_MSIX_VQ_VECTOR; f6813487d drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-04-04 @318 vqs[i] = vp_setup_vq(vdev, i, callbacks[i], names[i], d5edad95c drivers/virtio/virtio_pci_common.c Michael S. Tsirkin 2017-03-06 319 ctx ? ctx[i] : false, 5c34d002d drivers/virtio/virtio_pci_common.c Christoph Hellwig 2017-02-05 320 msix_vec); e969fed54 drivers/virtio/virtio_pci.c Michael S. Tsirkin 2009-07-26 321 if (IS_ERR(vqs[i])) { :::::: The code at line 186 was first introduced by commit :::::: f6813487d78d2833973704024e2f4767ce4570d6 Revert "virtio_pci: remove struct virtio_pci_vq_info" :::::: TO: Michael S. Tsirkin <mst@xxxxxxxxxx> :::::: CC: Michael S. Tsirkin <mst@xxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip