I've reported this here: https://bugs.freedesktop.org/show_bug.cgi?id=107384
The patch in the comments initializing drmDevicePtr device to NULL makes it work properly for me. I don't think the patch is on the mailing list yet. It's probably a good idea to check if there are more places where this initialization needs to be done... On 29.07.2018 10:20, Mariusz Ceier wrote: > In drmGetDevice2 when no local device is found or when > drm_device_has_rdev filters out all devices, *device might be left > uninitialized causing drmGetDevice2 to not return error - since > it's only returned when *device == NULL. > > Above leads to crash in the firefox in system with amdgpu. > > With this change firefox displays: > > libGL error: MESA-LOADER: failed to retrieve device information > libGL error: unable to load driver: amdgpu_dri.so > libGL error: driver pointer missing > libGL error: failed to load driver: amdgpu > libGL error: MESA-LOADER: failed to retrieve device information > libGL error: unable to load driver: amdgpu_dri.so > libGL error: driver pointer missing > libGL error: failed to load driver: amdgpu > > and doesn't crash. > > Signed-off-by: Mariusz Ceier <mceier+mesa-...@gmail.com> > --- > xf86drm.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/xf86drm.c b/xf86drm.c > index 1e621e99..336d64de 100644 > --- a/xf86drm.c > +++ b/xf86drm.c > @@ -3935,6 +3935,8 @@ int drmGetDevice2(int fd, uint32_t flags, drmDevicePtr > *device) > > drmFoldDuplicatedDevices(local_devices, node_count); > > + *device = NULL; > + > for (i = 0; i < node_count; i++) { > if (!local_devices[i]) > continue; > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev