tree: https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git vhost head: b3dab3dfaa73df6bde78cb52f6bc03f57c4d056c commit: f07c2dc394264dd811776de1dec9544f2181f2e4 [45/58] virtio: convert find_vqs() op implementations to find_vqs_info() config: s390-allyesconfig (https://download.01.org/0day-ci/archive/20240705/202407051121.VASLAYUt-lkp@xxxxxxxxx/config) compiler: s390-linux-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240705/202407051121.VASLAYUt-lkp@xxxxxxxxx/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 <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202407051121.VASLAYUt-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): drivers/s390/virtio/virtio_ccw.c: In function 'virtio_ccw_find_vqs': >> drivers/s390/virtio/virtio_ccw.c:708:22: error: 'vq_info' undeclared (first use in this function); did you mean 'vqs_info'? 708 | if (!vq_info->name) { | ^~~~~~~ | vqs_info drivers/s390/virtio/virtio_ccw.c:708:22: note: each undeclared identifier is reported only once for each function it appears in vim +708 drivers/s390/virtio/virtio_ccw.c 689 690 static int virtio_ccw_find_vqs(struct virtio_device *vdev, unsigned nvqs, 691 struct virtqueue *vqs[], 692 struct virtqueue_info vqs_info[], 693 struct irq_affinity *desc) 694 { 695 struct virtio_ccw_device *vcdev = to_vc_device(vdev); 696 struct virtqueue_info *vqi; 697 dma64_t *indicatorp = NULL; 698 int ret, i, queue_idx = 0; 699 struct ccw1 *ccw; 700 dma32_t indicatorp_dma = 0; 701 702 ccw = ccw_device_dma_zalloc(vcdev->cdev, sizeof(*ccw), NULL); 703 if (!ccw) 704 return -ENOMEM; 705 706 for (i = 0; i < nvqs; ++i) { 707 vqi = &vqs_info[i]; > 708 if (!vq_info->name) { 709 vqs[i] = NULL; 710 continue; 711 } 712 713 vqs[i] = virtio_ccw_setup_vq(vdev, queue_idx++, vqi->callback, 714 vqi->name, vqi->ctx, ccw); 715 if (IS_ERR(vqs[i])) { 716 ret = PTR_ERR(vqs[i]); 717 vqs[i] = NULL; 718 goto out; 719 } 720 } 721 ret = -ENOMEM; 722 /* 723 * We need a data area under 2G to communicate. Our payload is 724 * the address of the indicators. 725 */ 726 indicatorp = ccw_device_dma_zalloc(vcdev->cdev, 727 sizeof(*indicatorp), 728 &indicatorp_dma); 729 if (!indicatorp) 730 goto out; 731 *indicatorp = indicators_dma(vcdev); 732 if (vcdev->is_thinint) { 733 ret = virtio_ccw_register_adapter_ind(vcdev, vqs, nvqs, ccw); 734 if (ret) 735 /* no error, just fall back to legacy interrupts */ 736 vcdev->is_thinint = false; 737 } 738 ccw->cda = indicatorp_dma; 739 if (!vcdev->is_thinint) { 740 /* Register queue indicators with host. */ 741 *indicators(vcdev) = 0; 742 ccw->cmd_code = CCW_CMD_SET_IND; 743 ccw->flags = 0; 744 ccw->count = sizeof(*indicatorp); 745 ret = ccw_io_helper(vcdev, ccw, VIRTIO_CCW_DOING_SET_IND); 746 if (ret) 747 goto out; 748 } 749 /* Register indicators2 with host for config changes */ 750 *indicatorp = indicators2_dma(vcdev); 751 *indicators2(vcdev) = 0; 752 ccw->cmd_code = CCW_CMD_SET_CONF_IND; 753 ccw->flags = 0; 754 ccw->count = sizeof(*indicatorp); 755 ret = ccw_io_helper(vcdev, ccw, VIRTIO_CCW_DOING_SET_CONF_IND); 756 if (ret) 757 goto out; 758 759 if (indicatorp) 760 ccw_device_dma_free(vcdev->cdev, indicatorp, 761 sizeof(*indicatorp)); 762 ccw_device_dma_free(vcdev->cdev, ccw, sizeof(*ccw)); 763 return 0; 764 out: 765 if (indicatorp) 766 ccw_device_dma_free(vcdev->cdev, indicatorp, 767 sizeof(*indicatorp)); 768 ccw_device_dma_free(vcdev->cdev, ccw, sizeof(*ccw)); 769 virtio_ccw_del_vqs(vdev); 770 return ret; 771 } 772 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki