It turns out there aren't that many of these in xen. $ grep IS_ERR_OR_NULL drivers/gpu/drm/xen/ -Rn drivers/gpu/drm/xen/xen_drm_front_kms.c:63: if (IS_ERR_OR_NULL(fb)) drivers/gpu/drm/xen/xen_drm_front_gem.c:86: if (IS_ERR_OR_NULL(xen_obj)) drivers/gpu/drm/xen/xen_drm_front_gem.c:120: if (IS_ERR_OR_NULL(xen_obj->pages)) { drivers/gpu/drm/xen/xen_drm_front_gem.c:139: if (IS_ERR_OR_NULL(xen_obj)) drivers/gpu/drm/xen/xen_drm_front_gem.c:197: if (IS_ERR_OR_NULL(xen_obj)) drivers/gpu/drm/xen/xen_drm_front.c:403: if (IS_ERR_OR_NULL(obj)) { They're all wrong, because if the pointer was really NULL then it's not handled correctly and would eventually lead to a runtime failure. Normally Smatch is smart enough to know that the pointer isn't NULL so it doesn't generate a warning but yesterday I introduced a bug in Smatch by mistake. It's fixed now. regards, dan carpenter