diff options
author | Emil Velikov <emil.l.velikov@gmail.com> | 2016-11-15 15:24:15 +0000 |
---|---|---|
committer | Sean V Kelley <seanvk@posteo.de> | 2016-11-17 14:38:19 -0800 |
commit | 4dc07b2298840bb75de2f7e78a5abe63adaff236 (patch) | |
tree | 6bd366c1c5900e10fc4c6067fe2a78a3cafc228e | |
parent | 6b8fbf6ea348bb2970af2df9b8e0b3493e3e86f5 (diff) |
drm: remove va_drm_is_authenticated check
If we do not use a render node we must authenticate. Doing the extra
GetClient calls/ioctls does not help much, so don't bother.
Cc: David Herrmann <dh.herrmann@gmail.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
-rw-r--r-- | va/drm/va_drm.c | 8 | ||||
-rw-r--r-- | va/drm/va_drm_auth.c | 35 | ||||
-rw-r--r-- | va/drm/va_drm_auth.h | 4 |
3 files changed, 2 insertions, 45 deletions
diff --git a/va/drm/va_drm.c b/va/drm/va_drm.c index 08071cf..59e33fa 100644 --- a/va/drm/va_drm.c +++ b/va/drm/va_drm.c @@ -74,12 +74,8 @@ va_DisplayContextGetDriverName( if (ret < 0) return VA_STATUS_ERROR_OPERATION_FAILED; - if (!va_drm_is_authenticated(drm_state->fd)) { - if (!va_drm_authenticate(drm_state->fd, magic)) - return VA_STATUS_ERROR_OPERATION_FAILED; - if (!va_drm_is_authenticated(drm_state->fd)) - return VA_STATUS_ERROR_OPERATION_FAILED; - } + if (!va_drm_authenticate(drm_state->fd, magic)) + return VA_STATUS_ERROR_OPERATION_FAILED; } drm_state->auth_type = VA_DRM_AUTH_CUSTOM; diff --git a/va/drm/va_drm_auth.c b/va/drm/va_drm_auth.c index 53794d3..592381d 100644 --- a/va/drm/va_drm_auth.c +++ b/va/drm/va_drm_auth.c @@ -28,41 +28,6 @@ #include "va_drm_auth.h" #include "va_drm_auth_x11.h" -#if defined __linux__ -# include <sys/syscall.h> -#endif - -/* Checks whether the thread id is the current thread */ -static bool -is_local_tid(pid_t tid) -{ -#if defined __linux__ - /* On Linux systems, drmGetClient() would return the thread ID - instead of the actual process ID */ - return syscall(SYS_gettid) == tid; -#else - return false; -#endif -} - -/* Checks whether DRM connection is authenticated */ -bool -va_drm_is_authenticated(int fd) -{ - pid_t client_pid; - int i, auth, pid, uid; - unsigned long magic, iocs; - bool is_authenticated = false; - - client_pid = getpid(); - for (i = 0; !is_authenticated; i++) { - if (drmGetClient(fd, i, &auth, &pid, &uid, &magic, &iocs) != 0) - break; - is_authenticated = auth && (pid == client_pid || is_local_tid(pid)); - } - return is_authenticated; -} - /* Try to authenticate the DRM connection with the supplied magic id */ bool va_drm_authenticate(int fd, uint32_t magic) diff --git a/va/drm/va_drm_auth.h b/va/drm/va_drm_auth.h index 1aa6989..a8ca794 100644 --- a/va/drm/va_drm_auth.h +++ b/va/drm/va_drm_auth.h @@ -30,10 +30,6 @@ DLL_HIDDEN bool -va_drm_is_authenticated(int fd); - -DLL_HIDDEN -bool va_drm_authenticate(int fd, uint32_t magic); #endif /* VA_DRM_AUTH_H */ |