* [SMATCH] Can also be NULL false positive
@ 2026-04-07 16:16 Ethan Tidmore
2026-04-08 6:47 ` Dan Carpenter
0 siblings, 1 reply; 3+ messages in thread
From: Ethan Tidmore @ 2026-04-07 16:16 UTC (permalink / raw)
To: Dan Carpenter; +Cc: smatch
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.
Thanks,
ET
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [SMATCH] Can also be NULL false positive
2026-04-07 16:16 [SMATCH] Can also be NULL false positive Ethan Tidmore
@ 2026-04-08 6:47 ` Dan Carpenter
2026-04-08 13:40 ` Ethan Tidmore
0 siblings, 1 reply; 3+ messages in thread
From: Dan Carpenter @ 2026-04-08 6:47 UTC (permalink / raw)
To: Ethan Tidmore; +Cc: smatch
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
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [SMATCH] Can also be NULL false positive
2026-04-08 6:47 ` Dan Carpenter
@ 2026-04-08 13:40 ` Ethan Tidmore
0 siblings, 0 replies; 3+ messages in thread
From: Ethan Tidmore @ 2026-04-08 13:40 UTC (permalink / raw)
To: Dan Carpenter, Ethan Tidmore; +Cc: smatch
On Wed Apr 8, 2026 at 1:47 AM CDT, Dan Carpenter wrote:
> 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?
I'm building with 'allmodconfig' and using these smatch scripts:
./smatch/smatch_scripts/build_kernel_data.sh
./smatch/smatch_scripts/test_kernel.sh --endian
Thanks,
ET
>
> regards,
> dan carpenter
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-04-08 13:40 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-07 16:16 [SMATCH] Can also be NULL false positive Ethan Tidmore
2026-04-08 6:47 ` Dan Carpenter
2026-04-08 13:40 ` Ethan Tidmore
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox