Looks to me to be a NULL pointer check issue in mesa: static inline struct wl_drm_buffer * wayland_drm_buffer_get(struct wl_drm *drm, struct wl_resource *resource) { if (resource == NULL) return NULL;
if (wl_resource_instance_of(resource, &wl_buffer_interface, &drm->buffer_interface)) return wl_resource_get_user_data(resource); else return NULL; } (gdb) disass $pc-32-16,$pc+16 Dump of assembler code from 0xec46dd14 to 0xec46dd54: 0xec46dd14 <dri2_query_wayland_buffer_wl+0>: stw rp,-14(sp) 0xec46dd18 <dri2_query_wayland_buffer_wl+4>: ldo 80(sp),sp 0xec46dd1c <dri2_query_wayland_buffer_wl+8>: ldw -b4(sp),ret0 0xec46dd20 <dri2_query_wayland_buffer_wl+12>: stw r5,-74(sp) 0xec46dd24 <dri2_query_wayland_buffer_wl+16>: copy r23,r5 0xec46dd28 <dri2_query_wayland_buffer_wl+20>: stw r4,-70(sp) 0xec46dd2c <dri2_query_wayland_buffer_wl+24>: stw r3,-6c(sp) 0xec46dd30 <dri2_query_wayland_buffer_wl+28>: stw r19,-20(sp) 0xec46dd34 <dri2_query_wayland_buffer_wl+32>: stw ret0,-78(sp) 0xec46dd38 <dri2_query_wayland_buffer_wl+36>: ldw 58(r25),ret0 0xec46dd3c <dri2_query_wayland_buffer_wl+40>: ldo c0(ret0),ret0 0xec46dd40 <dri2_query_wayland_buffer_wl+44>: movb,= r24,r3,0xec46dd94 <dri2_query_wayland_buffer_wl+128> => 0xec46dd44 <dri2_query_wayland_buffer_wl+48>: ldw 0(ret0),ret0 0xec46dd48 <dri2_query_wayland_buffer_wl+52>: addil L%800,r19,r1 0xec46dd4c <dri2_query_wayland_buffer_wl+56>: copy r19,r4 0xec46dd50 <dri2_query_wayland_buffer_wl+60>: ldw 200(r1),r25 The NULL pointer check has bee4n optimized away. -- John David Anglin dave.ang...@bell.net