FAILED: patch "[PATCH] drm: Don't call drm_for_each_crtc with a non-KMS driver" failed to apply to 4.8-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.8-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
e94bd1736f1f60e916a85a80c0b0ebeaae36cce5Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <[email protected]>
Date: Wed, 30 Nov 2016 17:30:01 +0900
Subject: [PATCH] drm: Don't call drm_for_each_crtc with a non-KMS driver
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Fixes oops if userspace calls DRM_IOCTL_GET_CAP for
DRM_CAP_PAGE_FLIP_TARGET on a non-KMS device node. (Normal userspace
doesn't do that, discovered by syzkaller)
drivers/gpu/drm/drm_ioctl.c +6 -4
@@ -254,10 +254,12 @@ static int drm_getcap(struct drm_device *dev, void *data, struct drm_file *file_ req->value = dev->mode_config.async_page_flip;break ;case DRM_CAP_PAGE_FLIP_TARGET : - req->value =1 ; -drm_for_each_crtc (crtc, dev) { -if (!crtc->funcs->page_flip_target) - req->value =0 ; +if (drm_core_check_feature (dev,DRIVER_MODESET )) { + req->value =1 ; +drm_for_each_crtc (crtc, dev) { +if (!crtc->funcs->page_flip_target) + req->value =0 ; + } }break ;case DRM_CAP_CURSOR_WIDTH :