[PATCH 2/2] drm/i915: Fail addfb ioctl if color and CCS buffers overlap

Gabriel Krisman Bertazi
2017-08-31T19:52:32Z

With this patch the new testcase igt@kms_ccs@pipe-X-invalid-ccs-offset
succeeds.

Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
---
drivers/gpu/drm/i915/intel_display.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index b28f076f98bc..ff1ed67a9eff 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -13989,6 +13989,11 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
DRM_DEBUG_KMS("RC supported only with RGB8888 formats\n");
goto err;
}
+
+ if (mode_cmd->offsets[1] < mode_cmd->pitches[0]) {
+ DRM_DEBUG_KMS("CCS and color buffers overlap\n");
+ return -EINVAL;
+ }
/* fall through */
case I915_FORMAT_MOD_Y_TILED:
case I915_FORMAT_MOD_Yf_TILED:
--
2.11.0