msm: Disallow mapping buffers with modifiers
GBM users don't know how to do CPU access to any buffer with a modfier.
So they have no business mapping them.
This fixes "jailbar" corruption resulting from something somewhere
trying to do sw rendering to a UBWC buffer
BUG=b:237708681
TEST=Alt-TopRowFullScreenButton on herobrine
Change-Id: Ideb80df17d4f174600b7f605f563f275655a88da
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4195657
Tested-by: Rob Clark <robdclark@chromium.org>
Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Rob Clark <robdclark@chromium.org>
Auto-Submit: Rob Clark <robdclark@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
diff --git a/msm.c b/msm.c
index e696686..f6e8247 100644
--- a/msm.c
+++ b/msm.c
@@ -355,6 +355,9 @@
int ret;
struct drm_msm_gem_info req = { 0 };
+ if (bo->meta.format_modifier)
+ return MAP_FAILED;
+
req.handle = bo->handles[0].u32;
ret = drmIoctl(bo->drv->fd, DRM_IOCTL_MSM_GEM_INFO, &req);
if (ret) {