diff options
Diffstat (limited to 'drivers/gpu/drm/virtio/virtgpu_vq.c')
-rw-r--r-- | drivers/gpu/drm/virtio/virtgpu_vq.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c b/drivers/gpu/drm/virtio/virtgpu_vq.c index e27c4aedb809..6bc2008b0d0d 100644 --- a/drivers/gpu/drm/virtio/virtgpu_vq.c +++ b/drivers/gpu/drm/virtio/virtgpu_vq.c | |||
@@ -192,8 +192,16 @@ void virtio_gpu_dequeue_ctrl_func(struct work_struct *work) | |||
192 | 192 | ||
193 | list_for_each_entry_safe(entry, tmp, &reclaim_list, list) { | 193 | list_for_each_entry_safe(entry, tmp, &reclaim_list, list) { |
194 | resp = (struct virtio_gpu_ctrl_hdr *)entry->resp_buf; | 194 | resp = (struct virtio_gpu_ctrl_hdr *)entry->resp_buf; |
195 | if (resp->type != cpu_to_le32(VIRTIO_GPU_RESP_OK_NODATA)) | 195 | if (resp->type != cpu_to_le32(VIRTIO_GPU_RESP_OK_NODATA)) { |
196 | DRM_DEBUG("response 0x%x\n", le32_to_cpu(resp->type)); | 196 | if (resp->type >= cpu_to_le32(VIRTIO_GPU_RESP_ERR_UNSPEC)) { |
197 | struct virtio_gpu_ctrl_hdr *cmd; | ||
198 | cmd = (struct virtio_gpu_ctrl_hdr *)entry->buf; | ||
199 | DRM_ERROR("response 0x%x (command 0x%x)\n", | ||
200 | le32_to_cpu(resp->type), | ||
201 | le32_to_cpu(cmd->type)); | ||
202 | } else | ||
203 | DRM_DEBUG("response 0x%x\n", le32_to_cpu(resp->type)); | ||
204 | } | ||
197 | if (resp->flags & cpu_to_le32(VIRTIO_GPU_FLAG_FENCE)) { | 205 | if (resp->flags & cpu_to_le32(VIRTIO_GPU_FLAG_FENCE)) { |
198 | u64 f = le64_to_cpu(resp->fence_id); | 206 | u64 f = le64_to_cpu(resp->fence_id); |
199 | 207 | ||