From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id E90DDECAAD5 for ; Mon, 5 Sep 2022 03:19:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7F8C48019C; Sun, 4 Sep 2022 23:19:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7A8BA80199; Sun, 4 Sep 2022 23:19:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6708B8019C; Sun, 4 Sep 2022 23:19:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 58B3980199 for ; Sun, 4 Sep 2022 23:19:11 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 2875D1617BB for ; Mon, 5 Sep 2022 03:19:11 +0000 (UTC) X-FDA: 79876575702.26.39EF92C Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) by imf21.hostedemail.com (Postfix) with ESMTP id C439D1C0071 for ; Mon, 5 Sep 2022 03:19:10 +0000 (UTC) Received: by mail-pj1-f50.google.com with SMTP id u9-20020a17090a1f0900b001fde6477464so10902721pja.4 for ; Sun, 04 Sep 2022 20:19:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date; bh=PEBNU+8s+VnALvQ6Q/IzE/cDD6Z9rPpGFYpAvTluUdA=; b=F0+uNGBvE+2CtGsEqZT0AF8jPuu+opDZBImWfimmC+VQHNjroxwPmQC2MJTHqbCgvi BkvPcEKFZfLNYpnPvjwzfREuRTo6F1LYaLV6s8376xQHZ3pgv3oyS880MaJmSD80ZAC+ mRK3M9dPkIooWaWspTsgh4vbSlcM2F+THaI6LeZcn4wU0KIr2BjplXA82lRwVGkSDw6B x0KIKFdMt7ZDlLuSB35nkCgXh0ZObbsOOIjobt/StnDhUG9G+RBT+mYjxa3nCKoS7RIE uLa2esHslmqAOBbXSQjPkc1QX2UPTtUsKalWMOROUIM3aSk0ZcJIF6yL0eUMmQurA91r ga3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date; bh=PEBNU+8s+VnALvQ6Q/IzE/cDD6Z9rPpGFYpAvTluUdA=; b=D7ABQTk59w6RnehPdGekq2vXeoSzV1TrdnatqgRB6IhyoUiRz0scDGCMSLujiju1V0 RufFtIDpJsfPPjMRJMM51l2vWJrgtvaqmXakLuvU6OvPM8DjV9C8xLJjTfgTw9AbB3bk 5M8T9cDBAAQr46FDwAr134ct0fIb8QmZjmNUavBI+nZxYbHkEMdZTzP36mZSncsk7DUN cHUKnDfK4rM2ChHxSbpUDi0ckhA/MpUJBAltc3OvC2Y+QWTmdHjp2qyNtvYsnAXBlExE VCKCD0m4HMfseBTg3SPEhf7podPgmNvSwEokjlnfzFzPMCcC7F+V0Ot7GrB+jJAY0kFd EReg== X-Gm-Message-State: ACgBeo0K9KITUABeUNCz80ilSHYmzIKZJXhhkYLQ3vK0Nnhj9pDmpyew P/nYSOKmNxxpKwkPCT8HrSs= X-Google-Smtp-Source: AA6agR43w+NDYUTnu61XS+s5J66CM61nmSKR7p14TTvmFwfyqp9XVpoGl4hr68Biep46zEq0EzAoHw== X-Received: by 2002:a17:90b:1bc4:b0:1fd:b913:ef58 with SMTP id oa4-20020a17090b1bc400b001fdb913ef58mr16797701pjb.220.1662347949665; Sun, 04 Sep 2022 20:19:09 -0700 (PDT) Received: from localhost.localdomain ([202.133.199.56]) by smtp.gmail.com with ESMTPSA id az11-20020a056a02004b00b004296719538esm5366901pgb.40.2022.09.04.20.19.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 04 Sep 2022 20:19:09 -0700 (PDT) From: Matthias Goergens To: linux-arch@vger.kernel.org, linux-mm@kvack.org Cc: Matthias Goergens Subject: [PATCH] tools/headers: Fix undefined behaviour (34 << 26) Date: Mon, 5 Sep 2022 11:19:04 +0800 Message-Id: <20220905031904.150925-1-matthias.goergens@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=F0+uNGBv; spf=pass (imf21.hostedemail.com: domain of matthias.goergens@gmail.com designates 209.85.216.50 as permitted sender) smtp.mailfrom=matthias.goergens@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1662347950; a=rsa-sha256; cv=none; b=svo5zrxPD1QviGZfRZL+/Ed8flzLf4z27BsBnGcGwoaQerOCy2PfNa5wlHYgh/Ef+Jqswl y8M6nTYFZjdjV4+IE3mvYz222oomrPwdY+XcxBiNvA5nNxr+QV5X4+mP6A5zpH4b7cIBrG 7Wv/w02P6ZKxr5XyuQ9TVKdZTX3KkBY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1662347950; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=PEBNU+8s+VnALvQ6Q/IzE/cDD6Z9rPpGFYpAvTluUdA=; b=zGp3ByLPexVT1aw6zLjGLXsMUH2MMdfrh6pwAzXnoBin1VH0OnLUykqqbUUJZsp0BtB19h zMSWBoRBeMjPAcQpuXPGc3sIcRYKCTvTMvyjBZJIUUZFpEev7drqMYgmiAhJPKz7zzHAnR rRwmSRwGkh+NqsNnktJricmH1olphng= X-Rspam-User: Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=F0+uNGBv; spf=pass (imf21.hostedemail.com: domain of matthias.goergens@gmail.com designates 209.85.216.50 as permitted sender) smtp.mailfrom=matthias.goergens@gmail.com; dmarc=pass (policy=none) header.from=gmail.com X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: C439D1C0071 X-Stat-Signature: hd6autp4zu33f6ognrx8wkxr71hms6ee X-HE-Tag: 1662347950-161920 X-Bogosity: Ham, tests=bogofilter, spamicity=0.002640, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Left-shifting past the size of your datatype is undefined behaviour in C. The literal 34 gets the type `int`, and that one is not big enough to be left shifted by 26 bits. An `unsigned` is long enough (on any machine that has at least 32 bits for their ints.) For uniformity, we mark all the literals as unsigned. But it's only really needed for HUGETLB_FLAG_ENCODE_16GB. Thanks to Randy Dunlap for an initial review and suggestion. Signed-off-by: Matthias Goergens --- include/uapi/asm-generic/hugetlb_encode.h | 26 +++++++++++----------- tools/include/asm-generic/hugetlb_encode.h | 26 +++++++++++----------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/include/uapi/asm-generic/hugetlb_encode.h b/include/uapi/asm-generic/hugetlb_encode.h index 4f3d5aaa11f5..de687009bfe5 100644 --- a/include/uapi/asm-generic/hugetlb_encode.h +++ b/include/uapi/asm-generic/hugetlb_encode.h @@ -20,18 +20,18 @@ #define HUGETLB_FLAG_ENCODE_SHIFT 26 #define HUGETLB_FLAG_ENCODE_MASK 0x3f -#define HUGETLB_FLAG_ENCODE_16KB (14 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_64KB (16 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_512KB (19 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_1MB (20 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_2MB (21 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_8MB (23 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_16MB (24 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_32MB (25 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_256MB (28 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_512MB (29 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_1GB (30 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_2GB (31 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_16GB (34 << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_16KB (14U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_64KB (16U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_512KB (19U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_1MB (20U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_2MB (21U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_8MB (23U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_16MB (24U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_32MB (25U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_256MB (28U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_512MB (29U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_1GB (30U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_2GB (31U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_16GB (34U << HUGETLB_FLAG_ENCODE_SHIFT) #endif /* _ASM_GENERIC_HUGETLB_ENCODE_H_ */ diff --git a/tools/include/asm-generic/hugetlb_encode.h b/tools/include/asm-generic/hugetlb_encode.h index 4f3d5aaa11f5..de687009bfe5 100644 --- a/tools/include/asm-generic/hugetlb_encode.h +++ b/tools/include/asm-generic/hugetlb_encode.h @@ -20,18 +20,18 @@ #define HUGETLB_FLAG_ENCODE_SHIFT 26 #define HUGETLB_FLAG_ENCODE_MASK 0x3f -#define HUGETLB_FLAG_ENCODE_16KB (14 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_64KB (16 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_512KB (19 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_1MB (20 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_2MB (21 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_8MB (23 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_16MB (24 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_32MB (25 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_256MB (28 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_512MB (29 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_1GB (30 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_2GB (31 << HUGETLB_FLAG_ENCODE_SHIFT) -#define HUGETLB_FLAG_ENCODE_16GB (34 << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_16KB (14U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_64KB (16U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_512KB (19U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_1MB (20U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_2MB (21U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_8MB (23U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_16MB (24U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_32MB (25U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_256MB (28U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_512MB (29U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_1GB (30U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_2GB (31U << HUGETLB_FLAG_ENCODE_SHIFT) +#define HUGETLB_FLAG_ENCODE_16GB (34U << HUGETLB_FLAG_ENCODE_SHIFT) #endif /* _ASM_GENERIC_HUGETLB_ENCODE_H_ */ -- 2.37.3