* [PATCH 25/38] staging: media: davinci_vpfe: fix ipipe_mode type [not found] <1442842450-29769-1-git-send-email-a.hajda@samsung.com> @ 2015-09-21 13:33 ` Andrzej Hajda 2015-11-09 21:18 ` Laurent Pinchart 2015-09-21 13:42 ` [PATCH 00/38] Fixes related to incorrect usage of unsigned types David Howells 1 sibling, 1 reply; 5+ messages in thread From: Andrzej Hajda @ 2015-09-21 13:33 UTC (permalink / raw) To: linux-kernel Cc: Andrzej Hajda, Bartlomiej Zolnierkiewicz, Marek Szyprowski, Mauro Carvalho Chehab, Greg Kroah-Hartman, Hans Verkuil, Sakari Ailus, Boris BREZILLON, Tapasweni Pathak, linux-media, devel The variable can take negative values. The problem has been detected using proposed semantic patch scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2038576 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> --- drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c b/drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c index 2a3a56b..b1d5e23 100644 --- a/drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c +++ b/drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c @@ -254,7 +254,7 @@ int config_ipipe_hw(struct vpfe_ipipe_device *ipipe) void __iomem *ipipe_base = ipipe->base_addr; struct v4l2_mbus_framefmt *outformat; u32 color_pat; - u32 ipipe_mode; + int ipipe_mode; u32 data_path; /* enable clock to IPIPE */ -- 1.9.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 25/38] staging: media: davinci_vpfe: fix ipipe_mode type 2015-09-21 13:33 ` [PATCH 25/38] staging: media: davinci_vpfe: fix ipipe_mode type Andrzej Hajda @ 2015-11-09 21:18 ` Laurent Pinchart 0 siblings, 0 replies; 5+ messages in thread From: Laurent Pinchart @ 2015-11-09 21:18 UTC (permalink / raw) To: Andrzej Hajda Cc: linux-kernel, Bartlomiej Zolnierkiewicz, Marek Szyprowski, Mauro Carvalho Chehab, Greg Kroah-Hartman, Hans Verkuil, Sakari Ailus, Boris BREZILLON, Tapasweni Pathak, linux-media, devel Hi Andrzej, Thank you for the patch. On Monday 21 September 2015 15:33:57 Andrzej Hajda wrote: > The variable can take negative values. > > The problem has been detected using proposed semantic patch > scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1]. > > [1]: http://permalink.gmane.org/gmane.linux.kernel/2038576 > > Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> and applied to my tree. > --- > drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c > b/drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c index > 2a3a56b..b1d5e23 100644 > --- a/drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c > +++ b/drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c > @@ -254,7 +254,7 @@ int config_ipipe_hw(struct vpfe_ipipe_device *ipipe) > void __iomem *ipipe_base = ipipe->base_addr; > struct v4l2_mbus_framefmt *outformat; > u32 color_pat; > - u32 ipipe_mode; > + int ipipe_mode; > u32 data_path; > > /* enable clock to IPIPE */ -- Regards, Laurent Pinchart ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 00/38] Fixes related to incorrect usage of unsigned types [not found] <1442842450-29769-1-git-send-email-a.hajda@samsung.com> 2015-09-21 13:33 ` [PATCH 25/38] staging: media: davinci_vpfe: fix ipipe_mode type Andrzej Hajda @ 2015-09-21 13:42 ` David Howells 2015-09-22 9:13 ` Andrzej Hajda 1 sibling, 1 reply; 5+ messages in thread From: David Howells @ 2015-09-21 13:42 UTC (permalink / raw) To: Andrzej Hajda Cc: dhowells, linux-kernel, linux-api, linux-arm-kernel, linux-cachefs, linux-clk, linux-crypto, linux-fbdev, linux-input, linux-leds, linux-media, linux-mips, linux-mm, linux-omap, linux-rdma, linux-serial, linux-sh, linux-usb, linux-wireless, lustre-devel Andrzej Hajda <a.hajda@samsung.com> wrote: > Semantic patch finds comparisons of types: > unsigned < 0 > unsigned >= 0 > The former is always false, the latter is always true. > Such comparisons are useless, so theoretically they could be > safely removed, but their presence quite often indicates bugs. Or someone has left them in because they don't matter and there's the possibility that the type being tested might be or become signed under some circumstances. If the comparison is useless, I'd expect the compiler to just discard it - for such cases your patch is pointless. If I have, for example: unsigned x; if (x == 0 || x > 27) give_a_range_error(); I will write this as: unsigned x; if (x <= 0 || x > 27) give_a_range_error(); because it that gives a way to handle x being changed to signed at some point in the future for no cost. In which case, your changing the <= to an == "because the < part of the case is useless" is arguably wrong. David ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 00/38] Fixes related to incorrect usage of unsigned types 2015-09-21 13:42 ` [PATCH 00/38] Fixes related to incorrect usage of unsigned types David Howells @ 2015-09-22 9:13 ` Andrzej Hajda 2015-09-22 9:46 ` Jacek Anaszewski 0 siblings, 1 reply; 5+ messages in thread From: Andrzej Hajda @ 2015-09-22 9:13 UTC (permalink / raw) To: David Howells Cc: Andrzej Hajda, Bartlomiej Zolnierkiewicz, Marek Szyprowski, linux-kernel, brcm80211-dev-list, devel, dev, dri-devel, intel-gfx, linux-api, linux-arm-kernel, linux-cachefs, linux-clk, linux-crypto, linux-fbdev, linux-input, linux-kernel, linux-leds, linux-media, linux-mips, linux-mm, linux-omap, linux-rdma, linux-serial, linux-sh, linux-usb, linux-wireless, lustre-devel, netdev, rtc-linux On 09/21/2015 03:42 PM, David Howells wrote: > Andrzej Hajda <a.hajda-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> wrote: > >> Semantic patch finds comparisons of types: >> unsigned < 0 >> unsigned >= 0 >> The former is always false, the latter is always true. >> Such comparisons are useless, so theoretically they could be >> safely removed, but their presence quite often indicates bugs. > > Or someone has left them in because they don't matter and there's the > possibility that the type being tested might be or become signed under some > circumstances. If the comparison is useless, I'd expect the compiler to just > discard it - for such cases your patch is pointless. > > If I have, for example: > > unsigned x; > > if (x == 0 || x > 27) > give_a_range_error(); > > I will write this as: > > unsigned x; > > if (x <= 0 || x > 27) > give_a_range_error(); > > because it that gives a way to handle x being changed to signed at some point > in the future for no cost. In which case, your changing the <= to an == > "because the < part of the case is useless" is arguably wrong. This is why I have not checked for such cases - I have skipped checks of type unsigned <= 0 exactly for the reasons above. However I have left two other checks as they seems to me more suspicious - they are always true or false. But as Dmitry and Andrew pointed out Linus have quite strong opinion against removing range checks in such cases as he finds it clearer. I think it applies to patches 29-36. I am not sure about patches 26-28,37. Regards Andrzej > > David > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 00/38] Fixes related to incorrect usage of unsigned types 2015-09-22 9:13 ` Andrzej Hajda @ 2015-09-22 9:46 ` Jacek Anaszewski 0 siblings, 0 replies; 5+ messages in thread From: Jacek Anaszewski @ 2015-09-22 9:46 UTC (permalink / raw) To: Andrzej Hajda Cc: David Howells, Bartlomiej Zolnierkiewicz, Marek Szyprowski, linux-kernel, brcm80211-dev-list, devel, dev, dri-devel, intel-gfx, linux-api, linux-arm-kernel, linux-cachefs, linux-clk, linux-crypto, linux-fbdev, linux-input, linux-leds, linux-media, linux-mips, linux-mm, linux-omap, linux-rdma, linux-serial, linux-sh, linux-usb, linux-wireless, lustre-devel, netdev, rtc-linux On 09/22/2015 11:13 AM, Andrzej Hajda wrote: > On 09/21/2015 03:42 PM, David Howells wrote: >> Andrzej Hajda <a.hajda-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> wrote: >> >>> Semantic patch finds comparisons of types: >>> unsigned < 0 >>> unsigned >= 0 >>> The former is always false, the latter is always true. >>> Such comparisons are useless, so theoretically they could be >>> safely removed, but their presence quite often indicates bugs. >> >> Or someone has left them in because they don't matter and there's the >> possibility that the type being tested might be or become signed under some >> circumstances. If the comparison is useless, I'd expect the compiler to just >> discard it - for such cases your patch is pointless. >> >> If I have, for example: >> >> unsigned x; >> >> if (x == 0 || x > 27) >> give_a_range_error(); >> >> I will write this as: >> >> unsigned x; >> >> if (x <= 0 || x > 27) >> give_a_range_error(); >> >> because it that gives a way to handle x being changed to signed at some point >> in the future for no cost. In which case, your changing the <= to an == >> "because the < part of the case is useless" is arguably wrong. > > This is why I have not checked for such cases - I have skipped checks of type > unsigned <= 0 > exactly for the reasons above. > > However I have left two other checks as they seems to me more suspicious - they > are always true or false. But as Dmitry and Andrew pointed out Linus have quite > strong opinion against removing range checks in such cases as he finds it > clearer. I think it applies to patches 29-36. I am not sure about patches 26-28,37. Dropped 30/38 and 31/38 from LED tree then. -- Best Regards, Jacek Anaszewski ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-11-09 21:17 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1442842450-29769-1-git-send-email-a.hajda@samsung.com>
2015-09-21 13:33 ` [PATCH 25/38] staging: media: davinci_vpfe: fix ipipe_mode type Andrzej Hajda
2015-11-09 21:18 ` Laurent Pinchart
2015-09-21 13:42 ` [PATCH 00/38] Fixes related to incorrect usage of unsigned types David Howells
2015-09-22 9:13 ` Andrzej Hajda
2015-09-22 9:46 ` Jacek Anaszewski
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).