kbuild test robot
2020-Apr-02 13:50 UTC
[vhost:vhost 22/22] drivers/vdpa/vdpa_sim/vdpa_sim.c:94:8: error: implicit declaration of function 'vringh_init_iotlb'; did you mean 'vringh_init_kern'?
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git vhost
head: 076cb4adba3e2d7d3c25b72a1390b24ebfc58161
commit: 076cb4adba3e2d7d3c25b72a1390b24ebfc58161 [22/22] virtio/test: fix up
after IOTLB changes
config: m68k-allmodconfig (attached as .config)
compiler: m68k-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
git checkout 076cb4adba3e2d7d3c25b72a1390b24ebfc58161
# save the attached .config to linux build tree
GCC_VERSION=9.3.0 make.cross ARCH=m68k
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp at intel.com>
All errors (new ones prefixed by >>):
drivers/vdpa/vdpa_sim/vdpa_sim.c: In function
'vdpasim_queue_ready':>> drivers/vdpa/vdpa_sim/vdpa_sim.c:94:8: error: implicit declaration of
function 'vringh_init_iotlb'; did you mean 'vringh_init_kern'?
[-Werror=implicit-function-declaration]
94 | ret = vringh_init_iotlb(&vq->vring, vdpasim_features,
| ^~~~~~~~~~~~~~~~~
| vringh_init_kern
drivers/vdpa/vdpa_sim/vdpa_sim.c: In function
'vdpasim_work':>> drivers/vdpa/vdpa_sim/vdpa_sim.c:149:9: error: implicit declaration of
function 'vringh_getdesc_iotlb'; did you mean
'vringh_getdesc_kern'? [-Werror=implicit-function-declaration]
149 | err = vringh_getdesc_iotlb(&txq->vring, &txq->iov,
NULL,
| ^~~~~~~~~~~~~~~~~~~~
| vringh_getdesc_kern>> drivers/vdpa/vdpa_sim/vdpa_sim.c:157:4: error: implicit declaration of
function 'vringh_complete_iotlb'; did you mean
'vringh_complete_kern'? [-Werror=implicit-function-declaration]
157 | vringh_complete_iotlb(&txq->vring, txq->head, 0);
| ^~~~~~~~~~~~~~~~~~~~~
| vringh_complete_kern>> drivers/vdpa/vdpa_sim/vdpa_sim.c:162:11: error: implicit declaration of
function 'vringh_iov_pull_iotlb'; did you mean
'vringh_iov_pull_kern'? [-Werror=implicit-function-declaration]
162 | read = vringh_iov_pull_iotlb(&txq->vring, &txq->iov,
| ^~~~~~~~~~~~~~~~~~~~~
| vringh_iov_pull_kern>> drivers/vdpa/vdpa_sim/vdpa_sim.c:168:12: error: implicit declaration of
function 'vringh_iov_push_iotlb'; did you mean
'vringh_iov_push_kern'? [-Werror=implicit-function-declaration]
168 | write = vringh_iov_push_iotlb(&rxq->vring,
&rxq->iov,
| ^~~~~~~~~~~~~~~~~~~~~
| vringh_iov_push_kern
drivers/vdpa/vdpa_sim/vdpa_sim.c: In function
'vdpasim_create':>> drivers/vdpa/vdpa_sim/vdpa_sim.c:339:2: error: implicit declaration of
function 'vringh_set_iotlb' [-Werror=implicit-function-declaration]
339 | vringh_set_iotlb(&vdpasim->vqs[0].vring, vdpasim->iommu);
| ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +94 drivers/vdpa/vdpa_sim/vdpa_sim.c
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
88
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
89 static void vdpasim_queue_ready(struct vdpasim *vdpasim, unsigned int idx)
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
90 {
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
91 struct vdpasim_virtqueue *vq = &vdpasim->vqs[idx];
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
92 int ret;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
93
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
@94 ret = vringh_init_iotlb(&vq->vring, vdpasim_features,
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
95 VDPASIM_QUEUE_MAX, false,
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
96 (struct vring_desc *)(uintptr_t)vq->desc_addr,
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
97 (struct vring_avail *)
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
98 (uintptr_t)vq->driver_addr,
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
99 (struct vring_used *)
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
100 (uintptr_t)vq->device_addr);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
101 }
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
102
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
103 static void vdpasim_vq_reset(struct vdpasim_virtqueue *vq)
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
104 {
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
105 vq->ready = 0;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
106 vq->desc_addr = 0;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
107 vq->driver_addr = 0;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
108 vq->device_addr = 0;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
109 vq->cb = NULL;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
110 vq->private = NULL;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
111 vringh_init_iotlb(&vq->vring, vdpasim_features, VDPASIM_QUEUE_MAX,
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
112 false, NULL, NULL, NULL);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
113 }
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
114
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
115 static void vdpasim_reset(struct vdpasim *vdpasim)
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
116 {
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
117 int i;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
118
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
119 for (i = 0; i < VDPASIM_VQ_NUM; i++)
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
120 vdpasim_vq_reset(&vdpasim->vqs[i]);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
121
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
122 vhost_iotlb_reset(vdpasim->iommu);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
123
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
124 vdpasim->features = 0;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
125 vdpasim->status = 0;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
126 ++vdpasim->generation;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
127 }
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
128
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
129 static void vdpasim_work(struct work_struct *work)
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
130 {
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
131 struct vdpasim *vdpasim = container_of(work, struct
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
132 vdpasim, work);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
133 struct vdpasim_virtqueue *txq = &vdpasim->vqs[1];
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
134 struct vdpasim_virtqueue *rxq = &vdpasim->vqs[0];
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
135 size_t read, write, total_write;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
136 int err;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
137 int pkts = 0;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
138
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
139 spin_lock(&vdpasim->lock);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
140
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
141 if (!(vdpasim->status & VIRTIO_CONFIG_S_DRIVER_OK))
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
142 goto out;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
143
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
144 if (!txq->ready || !rxq->ready)
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
145 goto out;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
146
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
147 while (true) {
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
148 total_write = 0;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
@149 err = vringh_getdesc_iotlb(&txq->vring, &txq->iov, NULL,
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
150 &txq->head, GFP_ATOMIC);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
151 if (err <= 0)
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
152 break;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
153
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
154 err = vringh_getdesc_iotlb(&rxq->vring, NULL, &rxq->iov,
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
155 &rxq->head, GFP_ATOMIC);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
156 if (err <= 0) {
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
@157 vringh_complete_iotlb(&txq->vring, txq->head, 0);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
158 break;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
159 }
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
160
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
161 while (true) {
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
@162 read = vringh_iov_pull_iotlb(&txq->vring, &txq->iov,
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
163 vdpasim->buffer,
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
164 PAGE_SIZE);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
165 if (read <= 0)
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
166 break;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
167
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
@168 write = vringh_iov_push_iotlb(&rxq->vring, &rxq->iov,
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
169 vdpasim->buffer, read);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
170 if (write <= 0)
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
171 break;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
172
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
173 total_write += write;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
174 }
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
175
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
176 /* Make sure data is wrote before advancing index */
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
177 smp_wmb();
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
178
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
179 vringh_complete_iotlb(&txq->vring, txq->head, 0);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
180 vringh_complete_iotlb(&rxq->vring, rxq->head, total_write);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
181
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
182 /* Make sure used is visible before rasing the interrupt. */
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
183 smp_wmb();
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
184
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
185 local_bh_disable();
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
186 if (txq->cb)
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
187 txq->cb(txq->private);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
188 if (rxq->cb)
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
189 rxq->cb(rxq->private);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
190 local_bh_enable();
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
191
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
192 if (++pkts > 4) {
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
193 schedule_work(&vdpasim->work);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
194 goto out;
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
195 }
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
196 }
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
197
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
198 out:
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
199 spin_unlock(&vdpasim->lock);
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
200 }
a35630af6f3198 drivers/virtio/vdpa/vdpa_sim/vdpa_sim.c Jason Wang 2020-03-26
201
:::::: The code at line 94 was first introduced by commit
:::::: a35630af6f31989c517b45c19dc7f9c64bf59a8c vdpasim: vDPA device simulator
:::::: TO: Jason Wang <jasowang at redhat.com>
:::::: CC: Michael S. Tsirkin <mst at redhat.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all at lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 52995 bytes
Desc: not available
URL:
<http://lists.linuxfoundation.org/pipermail/virtualization/attachments/20200402/08f878e2/attachment-0001.gz>
Reasonably Related Threads
- [PATCH V3 5/5] vdpasim: vDPA device simulator
- [PATCH V2 5/5] vdpasim: vDPA device simulator
- [PATCH V2 5/5] vdpasim: vDPA device simulator
- [PATCH v3 5/8] vdpa_sim: make devices agnostic for work management
- [PATCH 1/2] vdpa: Signedness bugs in vdpasim_work()
