[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <7ca66bcf-a29a-987c-4606-9209590dae91@suse.de>
Date: Tue, 26 Jul 2022 17:38:44 +0200
From: Thomas Zimmermann <tzimmermann@...e.de>
To: Sami Tolvanen <samitolvanen@...gle.com>,
Nathan Chancellor <nathan@...nel.org>
Cc: Tomasz Paweł Gajc <tpgxyz@...il.com>,
Kees Cook <keescook@...omium.org>, llvm@...ts.linux.dev,
LKML <linux-kernel@...r.kernel.org>,
dri-devel@...ts.freedesktop.org,
Javier Martinez Canillas <javierm@...hat.com>,
"# 3.4.x" <stable@...r.kernel.org>
Subject: Re: [PATCH] drm/simpledrm: Fix return type of
simpledrm_simple_display_pipe_mode_valid()
Hi
Am 26.07.22 um 02:12 schrieb Sami Tolvanen:
> On Mon, Jul 25, 2022 at 4:37 PM Nathan Chancellor <nathan@...nel.org> wrote:
>>
>> When booting a kernel compiled with clang's CFI protection
>> (CONFIG_CFI_CLANG), there is a CFI failure in
>> drm_simple_kms_crtc_mode_valid() when trying to call
>> simpledrm_simple_display_pipe_mode_valid() through ->mode_valid():
>>
>> [ 0.322802] CFI failure (target: simpledrm_simple_display_pipe_mode_valid+0x0/0x8):
>> ...
>> [ 0.324928] Call trace:
>> [ 0.324969] __ubsan_handle_cfi_check_fail+0x58/0x60
>> [ 0.325053] __cfi_check_fail+0x3c/0x44
>> [ 0.325120] __cfi_slowpath_diag+0x178/0x200
>> [ 0.325192] drm_simple_kms_crtc_mode_valid+0x58/0x80
>> [ 0.325279] __drm_helper_update_and_validate+0x31c/0x464
>> ...
>>
>> The ->mode_valid() member in 'struct drm_simple_display_pipe_funcs'
>> expects a return type of 'enum drm_mode_status', not 'int'. Correct it
>> to fix the CFI failure.
>>
>> Cc: stable@...r.kernel.org
>> Fixes: 11e8f5fd223b ("drm: Add simpledrm driver")
>> Link: https://github.com/ClangBuiltLinux/linux/issues/1647
>> Reported-by: Tomasz Paweł Gajc <tpgxyz@...il.com>
>> Signed-off-by: Nathan Chancellor <nathan@...nel.org>
>> ---
>> drivers/gpu/drm/tiny/simpledrm.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/tiny/simpledrm.c b/drivers/gpu/drm/tiny/simpledrm.c
>> index 768242a78e2b..5422363690e7 100644
>> --- a/drivers/gpu/drm/tiny/simpledrm.c
>> +++ b/drivers/gpu/drm/tiny/simpledrm.c
>> @@ -627,7 +627,7 @@ static const struct drm_connector_funcs simpledrm_connector_funcs = {
>> .atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
>> };
>>
>> -static int
>> +static enum drm_mode_status
>> simpledrm_simple_display_pipe_mode_valid(struct drm_simple_display_pipe *pipe,
>> const struct drm_display_mode *mode)
>> {
>
> Thanks for fixing this, Nathan! The patch looks correct to me.
>
> Reviewed-by: Sami Tolvanen <samitolvanen@...gle.com>
Thanks a lot. I've added the patch to drm-misc-fixes.
Best regards
Thomas
>
> Sami
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev
Download attachment "OpenPGP_signature" of type "application/pgp-signature" (841 bytes)
Powered by blists - more mailing lists