drm/virtio: log error responses
authorGerd Hoffmann <kraxel@redhat.com>
Wed, 19 Dec 2018 12:26:59 +0000 (13:26 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Tue, 8 Jan 2019 10:59:59 +0000 (11:59 +0100)
If we got an error response code from the host, print it to the log.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20181219122708.4586-2-kraxel@redhat.com
drivers/gpu/drm/virtio/virtgpu_vq.c

index e27c4aedb8093e16a886aa74c1a20a85062ba1f4..6bc2008b0d0db1196c9b4d738265073a7ea4130b 100644 (file)
@@ -192,8 +192,16 @@ void virtio_gpu_dequeue_ctrl_func(struct work_struct *work)
 
        list_for_each_entry_safe(entry, tmp, &reclaim_list, list) {
                resp = (struct virtio_gpu_ctrl_hdr *)entry->resp_buf;
-               if (resp->type != cpu_to_le32(VIRTIO_GPU_RESP_OK_NODATA))
-                       DRM_DEBUG("response 0x%x\n", le32_to_cpu(resp->type));
+               if (resp->type != cpu_to_le32(VIRTIO_GPU_RESP_OK_NODATA)) {
+                       if (resp->type >= cpu_to_le32(VIRTIO_GPU_RESP_ERR_UNSPEC)) {
+                               struct virtio_gpu_ctrl_hdr *cmd;
+                               cmd = (struct virtio_gpu_ctrl_hdr *)entry->buf;
+                               DRM_ERROR("response 0x%x (command 0x%x)\n",
+                                         le32_to_cpu(resp->type),
+                                         le32_to_cpu(cmd->type));
+                       } else
+                               DRM_DEBUG("response 0x%x\n", le32_to_cpu(resp->type));
+               }
                if (resp->flags & cpu_to_le32(VIRTIO_GPU_FLAG_FENCE)) {
                        u64 f = le64_to_cpu(resp->fence_id);