Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp2599351pxb; Thu, 3 Feb 2022 09:51:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJz5nAOb0XAxCxrxrgE/H+WD5INzwY/07YvDUx+7fJ8PlLRmtEjAD/1gDHQThyK2lUy/sRrn X-Received: by 2002:a17:907:6d12:: with SMTP id sa18mr30170794ejc.244.1643910714980; Thu, 03 Feb 2022 09:51:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643910714; cv=none; d=google.com; s=arc-20160816; b=ueVAMc6ZGBtQzFDYSa3TWXUCV8g81ZK6qySQRxN3tz/YcznhXOJQgqPUtacnK7Y4IW K2PDGOa5edkEnt/SY9J+7b62GLw7O4MB90xDbi5YJB9XHIoY74uUbItSbEJ4iFpDvUS8 cvZMdInbor5Qj3mX4XIfyVEf+F52kUlGAAeDQKqX8ksweF36PR6bfYzmRSbrd/MgVCiD 7prOjxACZmFtP8lMH+oY/0C8x7OJL/ZBVhMZfueBYr/ST1y6jbMbaSXsOhfZxEnuyTd4 S4znYpUfxZbPKzYQDY60mOUH+tc5d8XQslvn1vsAyrIJfXVuvg6qSqTxgiekCNLCEpxU +ZhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:subject :from:references:cc:to:content-language:user-agent:mime-version:date :message-id:dkim-signature; bh=ToMkD3NhCL+hPPf7KxvRIJwpB4XEsVAIGStkVTqGaoY=; b=ZwHdrLwtL4N+QiA3hbmzPTkwZ9Za8wcNrRn+qBekgwSmtT/CcQRigfbZM8wx+pn3wu qNUXuFrX3WTvPY60Kc+r7Uc0FrCI8SlY1OTLX57ON9LA2flSLTHMLmCJaRrCKQwuvmOB tEh+D2tOJuasCh5iv4Mlpi3G7w7uyEiI8Q23T+al2y8YvvKYrHawKqlvtNIskRO45TnK JrSxQnyRPPjeqA+7hYbLLklIYYID8BY0sppHgSdzjeJ6fH94A9i+atCR3cd4OprcmTG/ NzyM+bWcqoY+/pADcZoaxRuy7aGyRiqVXane1Tie+ftlvwzA+vdz34sG/t++PhPcBPnO YUvA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmx.net header.s=badeba3b8450 header.b=Ig2IPZ5z; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmx.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h7si15228187edb.418.2022.02.03.09.51.30; Thu, 03 Feb 2022 09:51:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmx.net header.s=badeba3b8450 header.b=Ig2IPZ5z; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmx.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239739AbiBAPDi (ORCPT + 99 others); Tue, 1 Feb 2022 10:03:38 -0500 Received: from mout.gmx.net ([212.227.17.22]:43617 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239685AbiBAPDe (ORCPT ); Tue, 1 Feb 2022 10:03:34 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1643727768; bh=nvs4NamF8w3PSAtLVFdwadPiUvfzFg613upYNZ/yXSg=; h=X-UI-Sender-Class:Date:To:Cc:References:From:Subject:In-Reply-To; b=Ig2IPZ5zKlouxpflVVmYYGrUePr/LI8+qLrp7aZA4uucD+2hXbYwRZLq855afcj7/ 1C1nsPz7s9e8i+8N7F1wnisBRN0mfKm2sAbMpx8DRuRWuiFg04oBnMytrkdwEQpEIQ DQTyXsVmllotv/hXvaZbbuOUiJ+3eYZuhKq4mj3U= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.20.60] ([92.116.146.124]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MwQXN-1mP0sn1g4j-00sNis; Tue, 01 Feb 2022 16:02:48 +0100 Message-ID: Date: Tue, 1 Feb 2022 16:02:40 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.0 Content-Language: en-US To: Yizhuo Zhai Cc: Daniel Vetter , Sam Ravnborg , Matthew Wilcox , Tetsuo Handa , Alex Deucher , Zhen Lei , Zheyu Ma , Xiyu Yang , linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org References: <20220131065719.1552958-1-yzhai003@ucr.edu> From: Helge Deller Subject: Re: [PATCH] fbdev: fbmem: Fix the implicit type casting In-Reply-To: <20220131065719.1552958-1-yzhai003@ucr.edu> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:8rcnp3IDWKRjEYPQV485Zi+kFbcxjfN0d1QI0X2MU7OVul75bod eQuXX8jdrKjMIB2fbFNnodmCyPeknr4i/kfQBcukaVrSA3NwBE0B1kXD4gZR7qZqfK6SHW+ P5Z3tyGBWi0S9W4OBNjklGZGQ+uS0XMCezCx8oxze65ATS7BFRkOph2vBGq3QOogmBUJFqh HohuYWpL/6NFwDvUyuDtA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:8Rn0yXCvoSI=:wCSp2dm5E03DqfVW0te626 y3QbpDpBUuTKWhC/2BhKHIV114JvdTj7FO7RgQjiIh0KVHFyDX7evBCCP7F7QZ1ym7TRzJ9Zd n0RjjMB5hei2NBwh1vXhjC7GF+gyG1PwKcEiNrYRjEgeDHRQ3HYYmyJK03F0F6HzWx7tmBnyL B6cNR7yC4WT0uB/OkuthjxwrEOL2HALsrdV74B6i4dvAfRLdet1ddKocbBqLpW0o6LQG1k3AD SQyeaSEztHEG2F9zKvC0uEaJjKPaiSTZuMyXeXiOIOW9jDiLM56Q2vKR0WnnRDH659abnY4o9 nE+nlgTcCp78zrEd8D3r+tG1yBMKLhid/cVKvlQM4s+xZ9PIbZX0yAxyj6HVQYyGKtCaOmpu0 Np4Jw35NnT7pfFo7vih+wmRc+D6K7Q2O0DxWgT60fwt1ia7v40fq40xZJXAO6XyWHPyCw9v2g Zb4rs/ro/DKlt4r/+Zk0470cy5Hj+wiuAXftlxMUp3E4naFS8ah1YPILH7JfRn3XI5/QXz3hn Uo6mWMn///bBb6RBSCUawnYKSuFTvUqztCr8NUuW0+vt0kO7OM/L9HpoGijp5Q14kpISNLVbr 4F8o9A5rGgdNMHHiLwZmxst6Ir+m9e7X6xyjdEUcbhe7fma3wWzba54WQwIbRk33qAHWeFFyK h++uWp0yaOiYo05cMbaoIUdpcKB41YSD5638kF6NQtSuYHu9wGHHRnsI36i1JzJ17XZ9tLDaJ wnxL2qRxBLK5bLLioFBPKq0l17iOm+T47NgBa9+RGUmRM6a6iUf+OoTcMRATCSnMkG1F2Swi6 Qj9e+XDFcZi1I1Iew5pDjzvtJxsdKTIdUArCPaUpEJ3i8vIhRLoEU3YQDKVxPIbdzndhvxM95 nQ/6MMGob1zcMXn7AOZ4Cfj5u5zbl6h0IIYogZeAs73GQeVem2p1FdITwZYy4085v2MfB4pjl yvF1AdneaI+JZcr9OjM31zQrRW9vIB77/i+g4VHydbDZewVNxBqXlAmw6mac2FmS0IgQ65bxc Y4CO9SIvE/gKzU627zJIG1jMzE7BxSwIfLv4kDuxuQ6tR7KfNZSn+3EBl6f1LBos4J2aWdf4M /gNvQFfC3+A13s= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 1/31/22 07:57, Yizhuo Zhai wrote: > In function do_fb_ioctl(), the "arg" is the type of unsigned long, yes, because it comes from the ioctl framework... > and in "case FBIOBLANK:" this argument is casted into an int before > passig to fb_blank(). which makes sense IMHO. > In fb_blank(), the comparision if (blank > FB_BLANK_POWERDOWN) would > be bypass if the original "arg" is a large number, which is possible > because it comes from the user input. The main problem I see with your patch is that you change the behaviour. Let's assume someone passes in -1UL. With your patch applied, this means the -1 (which is e.g. 0xffffffff on 32= bit) is converted to a positive integer and will be capped to FB_BLANK_POWERDOW= N. Since most blank functions just check and react on specific values, you ch= anged the behaviour that the screen now gets blanked at -1, while it wasn't befo= re. One could now argue, that it's undefined behaviour if people pass in wrong values, but anyway, it's different now. So, your patch isn't wrong. I'm just not sure if this is what we want... Helge > Signed-off-by: Yizhuo Zhai > --- > drivers/video/fbdev/core/fbmem.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core= /fbmem.c > index 0fa7ede94fa6..a5f71c191122 100644 > --- a/drivers/video/fbdev/core/fbmem.c > +++ b/drivers/video/fbdev/core/fbmem.c > @@ -1064,7 +1064,7 @@ fb_set_var(struct fb_info *info, struct fb_var_scr= eeninfo *var) > EXPORT_SYMBOL(fb_set_var); > > int > -fb_blank(struct fb_info *info, int blank) > +fb_blank(struct fb_info *info, unsigned long blank) > {