From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755682AbdJLKok (ORCPT ); Thu, 12 Oct 2017 06:44:40 -0400 Received: from mailout4.samsung.com ([203.254.224.34]:51845 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755723AbdJLKoF (ORCPT ); Thu, 12 Oct 2017 06:44:05 -0400 X-AuditID: b6c32a4b-56dff70000001095-da-59df4772abf8 From: Manjeet Pawar To: linux@arm.linux.org.uk, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: pankaj.m@samsung.com, a.sahrawat@samsung.com, lalit.mohan@samsung.com, Rohit Thapliyal , Manjeet Pawar Subject: [PATCH] arm:fix negation of -2147483648 warning with UBSASN Date: Thu, 12 Oct 2017 16:10:58 +0530 Message-Id: <1507804858-10205-1-git-send-email-manjeet.p@samsung.com> X-Mailer: git-send-email 1.9.1 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrCKsWRmVeSWpSXmKPExsWy7bCmhm6R+/1Igw1zTSwu7k616F9sZrHp 8TVWi8u75rBZ3L7Ma3GvdS2bxb03W5ksNt7LduDwaGnuYfPYvKTeo2/LKkaPz5vkAliiUm0y UhNTUosUUvOS81My89JtlbyD453jTc0MDHUNLS3MlRTyEnNTbZVcfAJ03TJzgC5QUihLzCkF CgUkFhcr6dvZFOWXlqQqZOQXl9gqRRsaGukZGpjrGRkZ6ZmYxloZmQKVJKRmnLt2h73gqETF hs6/rA2MX0S6GDk5JARMJJqunmXrYuTiEBLYzSixdclkdgjnE6PE+TkrmSCcb4wSBz4+ZYZp ebV4HVTLXkaJM697oVq+MEp0T/rPBFLFJqAtsedHGzuILSKQIDHxxFdmkCJmgfmMEp1924AS HBzCAi4S397YgdSwCKhKbL+/nhHE5hVwlfjw5xcTxDY5iZPHJrNC2H9ZJR48YoGwXSS2/XvG BmELS7w6voUdwpaSeNnfBnaQhEAzo8Tt18fZIJweRomd29ugJtlLPLhxFOwIZgFNifW79CHC thKz59wHe5NZgE+i9/cTJpASCQFeiY42IYgSZYll5zdDhT0kFjd7QZiOEl//yoBUCAnESsx5 fJ9tAqPsLITxCxgZVzFKphYU56anFpsWGOellusVJ+YWl+al6yXn525iBKcoLe8djJvO+Rxi FOBgVOLhnaBxL1KINbGsuDL3EKMEB7OSCK+B5f1IId6UxMqq1KL8+KLSnNTiQ4ymwOCbyCwl mpwPTJ95JfGGJpYGJmZm5oYGBpYmSuK8x3aWRgoJpCeWpGanphakFsH0MXFwSjUwTjrGd1km 91a3mJOh6fHETWmmTvKT7q2PlFU4/dbzQcXjG+rlCe9Wav2Z1zzZ/fUM6b7rBavrxGoDdz5x P+jeKzltvbKkAIPgmb8b7QNetdV7Xbk5M/71xA4Thmv5EeZcAdaH7y7S97HklJRY/TJ4sk56 wmFxQ/nPrR+PRsyw0AhXk1+9X6NaiaU4I9FQi7moOBEAEC6NmmcDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpnluLIzCtJLcpLzFFi42LZdlhJXrfQ/X6kwZkt5hYXd6da9C82s9j0 +BqrxeVdc9gsbl/mtbjXupbN4t6brUwWG+9lO3B4tDT3sHlsXlLv0bdlFaPH501yASxRXDYp qTmZZalF+nYJXBnnrt1hLzgqUbGh8y9rA+MXkS5GTg4JAROJV4vXsXUxcnEICexmlOg/84MV IiEp0b9uKguELSyx8t9zdoiiT4wSuztOs4Ek2AS0Jfb8aGMHsUUEkiROP+wBK2IWWMwo8W7t NcYuRg4OYQEXiW9v7EBqWARUJbbfX88IYvMKuEp8+POLCWKBnMTJY5NZJzDyLGBkWMUomVpQ nJueW2xYYJSXWq5XnJhbXJqXrpecn7uJERw8Wlo7GE+ciD/EKMDBqMTDO0HjXqQQa2JZcWXu IUYJDmYlEV4Dy/uRQrwpiZVVqUX58UWlOanFhxilOViUxHnl849FCgmkJ5akZqemFqQWwWSZ ODilGhgr7nhbNoR7Gpy75L66KdHynjr/q+thap6Sl76KiEx+mmnSteeVvIySnP/13V86J0Rx 8P2Mm9myP22VTdGVoGOno5sD3mjeU3b57uNx6SDr31a1Nx73aqqC6i55vLmWPJ8lRoTrl33g Idkj5oV2wZ9k+NqFrWMW+B9UDGxf5tKaJG/GtPa3oRJLcUaioRZzUXEiAILpDOsaAgAA X-CMS-MailID: 20171012104401epcas5p3c707a85cc3a6b35bf34a710f435736cd X-Msg-Generator: CA X-Sender-IP: 182.195.40.13 X-Local-Sender: =?UTF-8?B?TWFuamVldCBQYXdhchtTUkktRGVsaGktUGxhdGZvcm0gUy9X?= =?UTF-8?B?IDEgVGVhbRvsgrzshLHsoITsnpAbRW5naW5lZXI=?= X-Global-Sender: =?UTF-8?B?TWFuamVldCBQYXdhchtTUkktRGVsaGktUGxhdGZvcm0gUy9X?= =?UTF-8?B?IDEgVGVhbRtTYW1zdW5nIEVsZWN0cm9uaWNzG0VuZ2luZWVy?= X-Sender-Code: =?UTF-8?B?QzEwG1NXQUhRG0MxMElEMDJJRDAyODExNQ==?= Content-Type: text/plain; charset="utf-8" X-MTR: 20171012104401epcas5p3c707a85cc3a6b35bf34a710f435736cd CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20171012104401epcas5p3c707a85cc3a6b35bf34a710f435736cd X-RootMTR: 20171012104401epcas5p3c707a85cc3a6b35bf34a710f435736cd References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Rohit Thapliyal Using gcc-6 and UBSAN enabled, we get the following warning: ========================================================= [1-1.4604] UBSAN: Undefined behaviour in ./arch/arm/include/asm/bitops.h:296:17 [1-1.4604] negation of -2147483648 cannot be represented in type 'int': [1-1.4605] CPU: 1 PID: 189 Comm: sync Tainted: GO 4.1.10 #1 PPID: 166 PComm: init [1-1.4605] SCHED_NORMAL (p:120, static_p:120, normal_p:120, rt_p:0) [1-1.4605] Backtrace: [1-1.4605] [] (dump_backtrace) from [] (show_stack+0x18/0x20) [1-1.4605] r7:c098196c r6:00000000 r5:60040093 r4:c0a177f4 [1-1.4605] [] (show_stack) from [] (dump_stack+0xf4/0x148) [1-1.4605] [] (dump_stack) from [] (ubsan_epilogue+0x14/0x54) [1-1.4605] r10:00000101 r9:00000120 r8:00000100 r7:00001000 r6:80000000 r5:c0a18b00 [1-1.4605] r4:d8099c00 [1-1.4605] [] (ubsan_epilogue) from [] (__ubsan_handle_negate_overflow+0x88/0x90) [1-1.4605] r5:c0a18b00 r4:c098148c [1-1.4605] [] (__ubsan_handle_negate_overflow) from [] (radix_tree_next_chunk+0x380/0x470) [1-1.4605] r6:e1b88d20 r5:00000006 r4:00000020 [1-1.4606] [] (radix_tree_next_chunk) from [] (find_get_pages_tag+0x158/0x1e8) [1-1.4606] r10:00000004 r9:0000000e r8:00000101 r7:ffffffff r6:00000000 r5:e1b91cb4 [1-1.4606] r4:00000001 [1-1.4606] [] (find_get_pages_tag) from [] (pagevec_lookup_tag+0x30/0x3c) [1-1.4606] r10:0000000e r9:27f662e4 r8:00000000 r7:ffffffff r6:e50da320 r5:d8099d60 ========================================================= In order to remove these warnings, it seems harmless to modify the signed ints with unsigned long as a fix of negation of -2147483648 in signed int. Signed-off-by: Rohit Thapliyal Signed-off-by: Manjeet Pawar --- arch/arm/include/asm/bitops.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/include/asm/bitops.h b/arch/arm/include/asm/bitops.h index 5638099..95028db 100644 --- a/arch/arm/include/asm/bitops.h +++ b/arch/arm/include/asm/bitops.h @@ -222,7 +222,7 @@ extern int _find_next_bit_be(const unsigned long *p, int size, int offset); #else -static inline int constant_fls(int x) +static inline int constant_fls(unsigned long x) { int r = 32; @@ -270,7 +270,7 @@ static inline unsigned int __clz(unsigned int x) * fls() returns zero if the input is zero, otherwise returns the bit * position of the last set bit, where the LSB is 1 and MSB is 32. */ -static inline int fls(int x) +static inline int fls(unsigned long x) { if (__builtin_constant_p(x)) return constant_fls(x); @@ -291,7 +291,7 @@ static inline unsigned long __fls(unsigned long x) * ffs() returns zero if the input was zero, otherwise returns the bit * position of the first set bit, where the LSB is 1 and MSB is 32. */ -static inline int ffs(int x) +static inline int ffs(unsigned long x) { return fls(x & -x); } -- 1.9.1