diff options
author | 2022-04-14 18:31:29 +0900 | |
---|---|---|
committer | 2022-04-26 15:37:59 +0900 | |
commit | cdd607b3d8ae0acb980887b4aaeab8c53e044e94 (patch) | |
tree | a5052034e7a868972bf27fc4c94d472c1c97d2f3 /meta-agl-drm-lease/dynamic-layers/meta-raspberrypi/recipes-kernel/linux | |
parent | 2466346b7ae14089fbaf31e9b4863a1897812e2e (diff) |
drm-lease: RPi4: Disable DRM_AUTH checks on wayland_clients
DRM authentication does not work via a DRM Leases because the client
can only authenticate against a lease owner (primary node), since
the lease does not have a corresponding device file in the filesystem
for clients to open.
Bypassing DRM authentication by using render nodes is not yet fully
supported in mesa, so for now, just try to authenticate and
continue even if it fails. Also remove the DRM_AUTH permissions
checks in the kernel for the necessary ioctls.
The DRM_AUTH checks for buffer import/export have
been removed in upstream kernels >= Linux 5.6, so just backport
that part of the implementation.
Bug-AGL: SPEC-4317
Change-Id: Ie6c82162037964da697d3ece80a8c463980d2658
Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
Diffstat (limited to 'meta-agl-drm-lease/dynamic-layers/meta-raspberrypi/recipes-kernel/linux')
2 files changed, 47 insertions, 0 deletions
diff --git a/meta-agl-drm-lease/dynamic-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/0001-drm-drop-DRM_AUTH-from-PRIME_TO-FROM_HANDLE-ioctls.patch b/meta-agl-drm-lease/dynamic-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/0001-drm-drop-DRM_AUTH-from-PRIME_TO-FROM_HANDLE-ioctls.patch new file mode 100644 index 00000000..f4890215 --- /dev/null +++ b/meta-agl-drm-lease/dynamic-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/0001-drm-drop-DRM_AUTH-from-PRIME_TO-FROM_HANDLE-ioctls.patch @@ -0,0 +1,44 @@ +From 30a958526d2cc6df38347336a602479d048d92e7 Mon Sep 17 00:00:00 2001 +From: Emil Velikov <emil.velikov@collabora.com> +Date: Fri, 1 Nov 2019 13:03:13 +0000 +Subject: [PATCH] drm: drop DRM_AUTH from PRIME_TO/FROM_HANDLE ioctls +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +As mentioned by Christian, for drivers which support only primary nodes +this changes the returned error from -EACCES into -EOPNOTSUPP/-ENOSYS. + +For others, this check in particular will be a noop. So let's remove it +as suggested by Christian. + +Cc: Alex Deucher <alexander.deucher@amd.com> +Cc: amd-gfx@lists.freedesktop.org +Cc: Daniel Vetter <daniel@ffwll.ch> +Cc: Sean Paul <sean@poorly.run> +Acked-by: Christian König <christian.koenig@amd.com> +Signed-off-by: Emil Velikov <emil.velikov@collabora.com> +Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> +Link: https://patchwork.freedesktop.org/patch/msgid/20191101130313.8862-5-emil.l.velikov@gmail.com +--- + drivers/gpu/drm/drm_ioctl.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c +index fcd728d7cf72..5afb39688b55 100644 +--- a/drivers/gpu/drm/drm_ioctl.c ++++ b/drivers/gpu/drm/drm_ioctl.c +@@ -652,8 +652,8 @@ static const struct drm_ioctl_desc drm_ioctls[] = { + + DRM_IOCTL_DEF(DRM_IOCTL_MODE_GETRESOURCES, drm_mode_getresources, 0), + +- DRM_IOCTL_DEF(DRM_IOCTL_PRIME_HANDLE_TO_FD, drm_prime_handle_to_fd_ioctl, DRM_AUTH|DRM_RENDER_ALLOW), +- DRM_IOCTL_DEF(DRM_IOCTL_PRIME_FD_TO_HANDLE, drm_prime_fd_to_handle_ioctl, DRM_AUTH|DRM_RENDER_ALLOW), ++ DRM_IOCTL_DEF(DRM_IOCTL_PRIME_HANDLE_TO_FD, drm_prime_handle_to_fd_ioctl, DRM_RENDER_ALLOW), ++ DRM_IOCTL_DEF(DRM_IOCTL_PRIME_FD_TO_HANDLE, drm_prime_fd_to_handle_ioctl, DRM_RENDER_ALLOW), + + DRM_IOCTL_DEF(DRM_IOCTL_MODE_GETPLANERESOURCES, drm_mode_getplane_res, 0), + DRM_IOCTL_DEF(DRM_IOCTL_MODE_GETCRTC, drm_mode_getcrtc, 0), +-- +2.17.1 + diff --git a/meta-agl-drm-lease/dynamic-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4.bbappend b/meta-agl-drm-lease/dynamic-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4.bbappend new file mode 100644 index 00000000..b16cec0c --- /dev/null +++ b/meta-agl-drm-lease/dynamic-layers/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" + +SRC_URI += "file://0001-drm-drop-DRM_AUTH-from-PRIME_TO-FROM_HANDLE-ioctls.patch" |