Re: [SMATCH] Can also be NULL false positive

Dan Carpenter <[email protected]> Wed, 8 Apr 2026 09:47:14 +0300
Newsgroups org.kernel.vger.smatch
Message-ID <[email protected]>
On Tue, Apr 07, 2026 at 11:16:45AM -0500, Ethan Tidmore wrote:
> Hi Dan,
> 
> Smatch gives these two warnings: 
> 
> drivers/gpu/drm/i915/display/intel_crtc.c:333 __intel_crtc_init() warn: 'primary' can also be NULL
> drivers/gpu/drm/i915/display/intel_crtc.c:348 __intel_crtc_init() warn: 'plane' can also be NULL
> 
> 	if (DISPLAY_VER(display) >= 9)
> 		primary = skl_universal_plane_create(display, pipe, PLANE_1);
> 	else
> 		primary = intel_primary_plane_create(display, pipe);
> 	if (IS_ERR(primary)) {
> 		ret = PTR_ERR(primary);
> 		goto fail;
> 	}
> 	crtc->plane_ids_mask |= BIT(primary->id);
> 
> and
> 
> 		if (DISPLAY_VER(display) >= 9)
> 			plane = skl_universal_plane_create(display, pipe, PLANE_2 + sprite);
> 		else
> 			plane = intel_sprite_plane_create(display, pipe, sprite);
> 		if (IS_ERR(plane)) {
> 			ret = PTR_ERR(plane);
> 			goto fail;
> 		}
> 		crtc->plane_ids_mask |= BIT(plane->id);
> 
> But, this is a false positive because skl_universal_plane_create() and
> intel_sprite_plane_create() never return NULL and always error pointers.

I don't see that warning on my builds.

One thing that I see is that intel_primary_plane_create() can return NULL
if CONFIG_I915 is disabled.  But I can't see how we would build that
file without CONFIG_I915.  I wondered if it might be a CONFIG_COMPILE_TEST
thing, but I don't see that possibility.

Do you have the cross function DB built?

regards,
dan carpenter