@@ -291,11 +291,9 @@ static int virtio_gpu_queue_ctrl_buffer_locked(struct virtio_gpu_device *vgdev, trace_virtio_gpu_cmd_queue(vq, (struct virtio_gpu_ctrl_hdr *)vbuf->buf);
virtqueue_kick(vq);
}ret = virtqueue_kick_prepare(vq);
- if (!ret)
ret = vq->num_free;
Hmm. Change looks unrelated.
On a closer look it seems this is basically dead code. virtio_gpu_queue_ctrl_buffer_locked is called by virtio_gpu_queue_ctrl_buffer and virtio_gpu_queue_fenced_ctrl_buffer. The call sites for these two functions all ignore the return value.
So it is a valid change, but it should go to a separate patch. And while being at it virtio_gpu_queue_ctrl_buffer and virtio_gpu_queue_fenced_ctrl_buffer can be changed to return void.
Otherwise the patch looks fine. Nice analysis btw.
cheers, Gerd