GPU DRM ioctl operation drm_setversion on /dev/dri/card0 returns -1 (EACCES)

Ikshwaku Chauhan ikshwaku.ec2004 at gmail.com
Mon Oct 8 06:30:11 EDT 2018


Dear All,

We are facing one issue related to drm and layer manager.
We are using below setup;

SOC:imx6 QUAD
BSP:Linux 3.1.17
Layer Manager : 1.1

Below components are using “/dev/dri/card0”
meucy17-t101-a0:~# lsof /dev/dri/card0

COMMAND         PID        USER   FD            TYPE DEVICE SIZE/OFF
NODE NAME
Xorg                    165        root  mem          CHR  226,0
1113     /dev/dri/card0
Xorg                    165        root   12u            CHR  226,0     0t0
1113 /dev/dri/card0
LayerMana          239        root  mem          CHR  226,0          1113
   /dev/dri/card0
LayerMana          239        root    6u             CHR  226,0      0t0
1113  /dev/dri/card0


Below ioctl is failing when called from Layermanger, which will return as
permission denied(-EACCES);
DRM_IOCTL_DEF(DRM_IOCTL_SET_VERSION, drm_setversion, DRM_MASTER),

I am getting these kind of system logs:
type=SYSCALL msg=audit(07/30/18 12:58:38.890:23) : arch=armeb syscall=ioctl
per=PER_LINUX_32BIT success=no exit=EACCES(Permission denied) a0=0x6
a1=0xc0106407 a2=0x768d9a28 a3=0x7 items=0 ppid=1 pid=1527 auid=unset
uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root
fsgid=root ses=unset tty=(none) comm=LayerManagerSer
exe=/usr/bin/LayerManagerService key=DAC


If I changed the flag from DRM_MASTER to DRM_AUTH in drm driver, no
errorlogs observed related to Layermanger.

--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -69,7 +69,8 @@ static const struct drm_ioctl_desc drm_ioctls[] = {
        DRM_IOCTL_DEF(DRM_IOCTL_GET_CLIENT, drm_getclient, DRM_UNLOCKED),
        DRM_IOCTL_DEF(DRM_IOCTL_GET_STATS, drm_getstats, DRM_UNLOCKED),
        DRM_IOCTL_DEF(DRM_IOCTL_GET_CAP, drm_getcap, DRM_UNLOCKED),
-       DRM_IOCTL_DEF(DRM_IOCTL_SET_VERSION, drm_setversion, DRM_MASTER),
+       DRM_IOCTL_DEF(DRM_IOCTL_SET_VERSION, drm_setversion, DRM_AUTH),

I have following queries:

1. Is it ok to have the above changes?
2. With failure logs, there is no problem in system behavior. Can we ignore
these system logs?
3. In logs we found that, Xorg setting the version, then why LayerManager
again trying to change the version?

Thanks in advance.

Regards,
Ikshwaku


More information about the genivi-ivi-layer-management mailing list