diff mbox series

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

Message ID CAC=TnSDKMDF5_CihZz9UgB9+LUdVptkBdidwNJ0NvJNS5oEp6A@mail.gmail.com (mailing list archive)
State New, archived
Headers show
Series GPU DRM ioctl operation drm_setversion on /dev/dri/card0 returns -1 (EACCES) | expand

Commit Message

Ikshwaku Chauhan Oct. 8, 2018, 10:30 a.m. UTC
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.

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
diff mbox series

Patch

--- 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?