diff mbox series

[01/10] drm/virtio: log error responses

Message ID 20181219122708.4586-2-kraxel@redhat.com (mailing list archive)
State New, archived
Headers show
Series drm/virtio: ttm improvements, minor cleanups. | expand

Commit Message

Gerd Hoffmann Dec. 19, 2018, 12:26 p.m. UTC
If we got an error response code from the host, print it to the log.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 drivers/gpu/drm/virtio/virtgpu_vq.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

Comments

Oleksandr Andrushchenko Dec. 21, 2018, 9:59 a.m. UTC | #1
On 12/19/18 2:26 PM, Gerd Hoffmann wrote:
> 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>
> ---
>   drivers/gpu/drm/virtio/virtgpu_vq.c | 12 ++++++++++--
>   1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c b/drivers/gpu/drm/virtio/virtgpu_vq.c
> index e27c4aedb8..6bc2008b0d 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)
>   
>   	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);
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c b/drivers/gpu/drm/virtio/virtgpu_vq.c
index e27c4aedb8..6bc2008b0d 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)
 
 	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);