Skip to content

Commit

Permalink
drm: remove va_drm_is_authenticated check
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
evelikov authored and Sean V Kelley committed Nov 17, 2016
1 parent 6b8fbf6 commit 4dc07b2
Show file tree
Hide file tree
Showing 3 changed files with 2 additions and 45 deletions.
8 changes: 2 additions & 6 deletions va/drm/va_drm.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
35 changes: 0 additions & 35 deletions va/drm/va_drm_auth.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 0 additions & 4 deletions va/drm/va_drm_auth.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,6 @@
#include <stdint.h>
#include <stdbool.h>

DLL_HIDDEN
bool
va_drm_is_authenticated(int fd);

DLL_HIDDEN
bool
va_drm_authenticate(int fd, uint32_t magic);
Expand Down

0 comments on commit 4dc07b2

Please sign in to comment.