virtio-gpu: disable VIRGL with BE kernel
authorLaurent Vivier <lvivier@redhat.com>
Tue, 24 Jan 2017 13:12:29 +0000 (14:12 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Tue, 31 Jan 2017 11:14:27 +0000 (12:14 +0100)
VIRTIO_GPU_F_VIRGL is added in features list only
for LE kernel, so we must check for it only on LE kernel,
otherwise virtio_has_feature() calls BUG() and
crashes the kernel.

Suggested-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1485263549-28743-1-git-send-email-lvivier@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
drivers/gpu/drm/virtio/virtgpu_kms.c

index fae7539..30f989a 100644 (file)
@@ -166,10 +166,14 @@ int virtio_gpu_driver_load(struct drm_device *dev, unsigned long flags)
        INIT_WORK(&vgdev->config_changed_work,
                  virtio_gpu_config_changed_work_func);
 
+#ifdef __LITTLE_ENDIAN
        if (virtio_has_feature(vgdev->vdev, VIRTIO_GPU_F_VIRGL))
                vgdev->has_virgl_3d = true;
        DRM_INFO("virgl 3d acceleration %s\n",
-                vgdev->has_virgl_3d ? "enabled" : "not available");
+                vgdev->has_virgl_3d ? "enabled" : "not supported by host");
+#else
+       DRM_INFO("virgl 3d acceleration not supported by guest\n");
+#endif
 
        ret = vgdev->vdev->config->find_vqs(vgdev->vdev, 2, vqs,
                                            callbacks, names);