Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp2988332ybt; Mon, 29 Jun 2020 12:13:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzyflrZuNXrzLtNT8S0YgFvu8i2ryyjlggbMsGjw1K2DK9skRJkd/LCVZgiIHDrGPv74dXs X-Received: by 2002:a17:906:4bcf:: with SMTP id x15mr6532641ejv.188.1593457988172; Mon, 29 Jun 2020 12:13:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593457988; cv=none; d=google.com; s=arc-20160816; b=dZwPK2ofSLQ14qJH3KTxcHxzLcCUR6A20BYdMu3JjOWAMJRAG4JDSB+J4l1m2G9Ylg FkOf9rjpe9Pb5G1ZmEeGSXdeLrEFhSKED9GXFLkSHalWlU/5NoJFGCuiIT3sHfVz7q6m 1p7ZgTPDga4A02guhhlt1J+LCrF/06kWRr7dotSiAIK9qDDlSeiCFtWGsygEIV4AmSnq yXYfIwjirUXbRAQzfZUTD9rDRMYsM4rrBGrxzx2wSNJa1FVpGMcGTxY4z+NKjhF5nPPr z/wayS6nE1AHMYPdihTP8nXbOhKBHoQs2JtQQjTOT4KKcXwEp8n2c65k/Da51a6ooezA +hGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=m5nNTk+Rr7aBM5DTS5cp71lgZOWE28lWrdNV/WvJoQM=; b=rA7Na0AF7b6yLkZ9A04GR8m17aKSp08rLOquib3W8iDvn5ueKnmfHHoiQcr5WZnFmP iJrl33b7ws/LYmVBXH++6WY0gGtH0fFaV33V9OB36OR4CqTV6M+8+dUb/CxC0ttbCsvN O4JExVy0Nk5JPvXg/YIEX9YuXFSIoYROSwxeL99J1dhOUH8P0N2JTwdeo6cqfMLL09ed xcjjd7Zvuuwr7UCMKL3NOLickGwt5m3hmDkDXFCYjHXEZgnFnqd9XhKRR6bpxsMFuNaR N30alygMQixPaQVfzKeSG3V8NzgrO5MIMv55a5tBXN+2AxUibLVw5GnTf+P+AZdMVhty 3pog== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=D1ts4VzD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cw21si192340edb.600.2020.06.29.12.12.44; Mon, 29 Jun 2020 12:13:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=D1ts4VzD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730681AbgF2TMl (ORCPT + 99 others); Mon, 29 Jun 2020 15:12:41 -0400 Received: from mail.kernel.org ([198.145.29.99]:53772 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730964AbgF2TKS (ORCPT ); Mon, 29 Jun 2020 15:10:18 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id B90E1254EF; Mon, 29 Jun 2020 15:54:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1593446048; bh=xh3UdEMZpdGNd9bxEHkP9QErM1NQotGeJT+jSfjzBbE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=D1ts4VzD9eOQiRhmVuAzApqad+OlcPExK7aSLvxZMn/NuGwaTKn++AuJKcLdq3xYS zt4B01wByldP5SnPw0GPmAGGg3XlQQSw4+TwdP4W34oQKpN+6Qf1FiqfTOOCnwrFQj dXJ3L2sBKQBaebM7zwfe/+lcZz3fy/dsGz0K+H1w= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Arnd Bergmann , Andrew Morton , Christian Brauner , Andy Shevchenko , Rasmus Villemoes , Josh Poimboeuf , Nick Desaulniers , Linus Torvalds , Sasha Levin Subject: [PATCH 4.4 051/135] include/linux/bitops.h: avoid clang shift-count-overflow warnings Date: Mon, 29 Jun 2020 11:51:45 -0400 Message-Id: <20200629155309.2495516-52-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200629155309.2495516-1-sashal@kernel.org> References: <20200629155309.2495516-1-sashal@kernel.org> MIME-Version: 1.0 X-KernelTest-Patch: http://kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.4.229-rc1.gz X-KernelTest-Tree: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git X-KernelTest-Branch: linux-4.4.y X-KernelTest-Patches: git://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git X-KernelTest-Version: 4.4.229-rc1 X-KernelTest-Deadline: 2020-07-01T15:53+00:00 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Arnd Bergmann [ Upstream commit bd93f003b7462ae39a43c531abca37fe7073b866 ] Clang normally does not warn about certain issues in inline functions when it only happens in an eliminated code path. However if something else goes wrong, it does tend to complain about the definition of hweight_long() on 32-bit targets: include/linux/bitops.h:75:41: error: shift count >= width of type [-Werror,-Wshift-count-overflow] return sizeof(w) == 4 ? hweight32(w) : hweight64(w); ^~~~~~~~~~~~ include/asm-generic/bitops/const_hweight.h:29:49: note: expanded from macro 'hweight64' define hweight64(w) (__builtin_constant_p(w) ? __const_hweight64(w) : __arch_hweight64(w)) ^~~~~~~~~~~~~~~~~~~~ include/asm-generic/bitops/const_hweight.h:21:76: note: expanded from macro '__const_hweight64' define __const_hweight64(w) (__const_hweight32(w) + __const_hweight32((w) >> 32)) ^ ~~ include/asm-generic/bitops/const_hweight.h:20:49: note: expanded from macro '__const_hweight32' define __const_hweight32(w) (__const_hweight16(w) + __const_hweight16((w) >> 16)) ^ include/asm-generic/bitops/const_hweight.h:19:72: note: expanded from macro '__const_hweight16' define __const_hweight16(w) (__const_hweight8(w) + __const_hweight8((w) >> 8 )) ^ include/asm-generic/bitops/const_hweight.h:12:9: note: expanded from macro '__const_hweight8' (!!((w) & (1ULL << 2))) + \ Adding an explicit cast to __u64 avoids that warning and makes it easier to read other output. Signed-off-by: Arnd Bergmann Signed-off-by: Andrew Morton Acked-by: Christian Brauner Cc: Andy Shevchenko Cc: Rasmus Villemoes Cc: Josh Poimboeuf Cc: Nick Desaulniers Link: http://lkml.kernel.org/r/20200505135513.65265-1-arnd@arndb.de Signed-off-by: Linus Torvalds Signed-off-by: Sasha Levin --- include/linux/bitops.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/bitops.h b/include/linux/bitops.h index ce2bb045b3fdd..9b9711ea267a4 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h @@ -59,7 +59,7 @@ static inline int get_count_order(unsigned int count) static __always_inline unsigned long hweight_long(unsigned long w) { - return sizeof(w) == 4 ? hweight32(w) : hweight64(w); + return sizeof(w) == 4 ? hweight32(w) : hweight64((__u64)w); } /** -- 2.25.1