[Intel-gfx] xf86-video-intel hits an assert when using dri and xorg is not suid root

Hans de Goede hdegoede at redhat.com
Fri Jun 13 14:44:44 CEST 2014


Hi,

On 06/13/2014 02:36 PM, Chris Wilson wrote:
> On Fri, Jun 13, 2014 at 02:08:06PM +0200, Hans de Goede wrote:
>> Hi,
>>
>> When trying to run the latest xorg + intel drv, with dri3, with Xorg not
>> running as root, the followin assert in src/intel_device.c: authorise() :
>>
>> assert(is_i915_gem(fd));
>>
>> Triggers, this is caused by the DRM_IOCTL_I915_GETPARAM ioctl in
>> is_i915_gem() failing with -EACCESS in this case.
>>
>> I thought that the use of rendernodes should work as normal user ?
> 
> Hmm, I have
> 
> DRM_IOCTL_DEF_DRV(I915_GETPARAM, i915_getparam, DRM_AUTH|DRM_RENDER_ALLOW),
> 
> What path did find_render_node() choose? Was it right?

I don't have USE_RENDERNODE defined in config.h, so find_render_node()
is returning NULL, which makes dev->render_node point to dev->master_node,
and thus makes intel_get_client_fd open the /dev/dri/card0 node a second
time (when using non suid-root xorg the first time it was opened by
systemd-logind and the fd was passed from systemd-logind to xf86-video-intel
by the server).

Do we really want a second open in this case, maybe intel_get_client_fd
should detect that render_node == master_node and re-use the master fd
in that case ?

Regards,

Hans



More information about the Intel-gfx mailing list