From nobody Mon Feb 9 16:17:42 2026 Received: from mail-yw1-f176.google.com (mail-yw1-f176.google.com [209.85.128.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D715274B30 for ; Thu, 25 Dec 2025 17:09:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766682579; cv=none; b=YpiLGsXG5u/JopFX8/UFnXSclJ24wFO3LnWvG0gKpZVij6CLcpIPDkeix6EsCE5Nlc/9h5bxfsH1Pw8x7oENPMbteSJm2OBT6L3/Djjo9wv1GrCcwRzE6y2UTfKowzP0emIQfnpWiFW2a7t83DzGJYGt0oaaPeDc2wGsDTPv4bc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766682579; c=relaxed/simple; bh=StpIGDCYbsALR3Ba5LOgwHS3EyBzqwjbuM5PV4Ik6eQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=BHro3dhKDSYRLTq/Hh8NlHknui6MxQbtTA7TYWb5wcumVjrU0hIrBEnO8M8Rh1g62i2K5J2IH8Ehz8FjoHrm9kYhxzUiaP4zGOsWOf5CrtxFWT8jfE9grchwb8DBt1BXmIRiJfzx33YQfJY2Wgxi7Up8TTq1VuAjqvTCaiEHxXU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=hQJphvVU; arc=none smtp.client-ip=209.85.128.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hQJphvVU" Received: by mail-yw1-f176.google.com with SMTP id 00721157ae682-78fb5764382so47509497b3.0 for ; Thu, 25 Dec 2025 09:09:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766682576; x=1767287376; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NNd78aAqU5EbrtjfwRe6vlIJ1RKc0HFvUVEnBy0vIWA=; b=hQJphvVUfAdwnxTi9K2gpheLbqAND07XlpvGPpLlLUdZrIEmMF2AXsA8gF4+pkqhye 8oA4dGg9SC0DdMb6no9afhZ30HOFcPcvGQO9b4rQHCjF7EzfemTj3kCPnjK+QHlDXe4T UqsHFlp4QyBYN4YXwTIFkkDECwD2wgWk+kVxDb7pcRHibPa52pr9T5A5f1oiHP9JN2mF Z1jGmJgvNm8W1kmSlE2gwh1Sqo5UYok03LzVdG/yt7kHzgR5dGBDY3p7QaH7ESWgRI/v GxibTQMmj5XD3KKG+/JoxOz7TSLNX860K1UfgSC6RDwCNZdhtzCSezyZa8iZrAd7FHK7 f1+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766682576; x=1767287376; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=NNd78aAqU5EbrtjfwRe6vlIJ1RKc0HFvUVEnBy0vIWA=; b=k7sHP8uwFCow7YLoV46nPpbq5m/ys5N/QfvN9QAJeWm6s4+GnoT8TyHBli4FOtaB6O RMOhYrX0JDOjdEI+WAV7/zMc1Rpq75hqfazpUoVL82r+o+tcO4ooXKgcZ0ZofgPvfYJy TuG9NNp8FGAvnQ/bpDRXNr8m7qo0QeBwLZnK7cAYS5E4obs2zT3jz0LOBgOJIEPsT/Ni cisKOdEjT9rMgiQ1CZGlrGNNsw5oeCx7t991ngO4HiVdVZ7aXMd+PYBPYtXzXNJHDSoM y+BkHI1GPivJ672/NWt7gwg3X42T6+Ud+pv0qfnFJBOPui2mztZuqf8jOVmL8MC9oaD/ hfuA== X-Forwarded-Encrypted: i=1; AJvYcCWN78A8I8hmCzZeFirLXhIN6xyZRa3zxYkdltZQ/ksswEnzR9p2FVmj7qGsCrPKAnZYe1cN16ccUEb3nRs=@vger.kernel.org X-Gm-Message-State: AOJu0YzYZVo52d+VV8fDhYOyXTop1bJ/V35cIW6JgFX5Y/pH+WePbSIF ThP4Acmet64HUmJApu1nfaIGPcn3V7hE/oOArMns7SYOByEPgg58py82 X-Gm-Gg: AY/fxX4H1T2RBwBrS9RIAyQ6daT6bA+M4Uf6fQu0myvJ6yCrZ1V6GO9MQbw+xB/CUMe WwpZDGcjboRffR/OO8kzMubhc3xKiXPd/HGS3SF/SgPJUD9qP1nT20NfHs81s0YzVGUftvBzQlK jueRXKJkrwBOTx79K8oUQc96sveJaxjhFO8pzaiIpOYqh2R4EyOwZtMzl23MxuAVGgJ27sLh7mw /i3QwXICr30sIwlFEetAIoefnZphGF7r3MMWbo7V6mO/nLvJk7MYIabmpiSpO0DO/asfgrT/JVY HLLA64iH0ixJ+B2XAixgEdxA+rR9SiUL3xnt/dyuINHPaYOVA45sHHzwNw36aK3VPjvOp9DNpKY 2eL8eUGx69U0qD0vQEh4Jn4TXtmVx7TpIZ6ZTcLJdk/muKByRMroqTpRpo2WFPqH3FUgmUnQJxx R8hd+P+c0= X-Google-Smtp-Source: AGHT+IEiizqa7gXB/ACCt9JE7Q6rU9XXmV2EFcojqYXAdUzX6FLa2edp+vH8KkFhKHQ2zor39oLYCg== X-Received: by 2002:a05:690c:4989:b0:78c:2c09:4748 with SMTP id 00721157ae682-78fb3f7e542mr153887627b3.30.1766682576087; Thu, 25 Dec 2025 09:09:36 -0800 (PST) Received: from localhost ([2601:346:0:79bd:5a70:118b:3656:4527]) by smtp.gmail.com with ESMTPSA id 00721157ae682-78fb439b8acsm76287267b3.13.2025.12.25.09.09.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Dec 2025 09:09:35 -0800 (PST) From: "Yury Norov (NVIDIA)" To: Steven Rostedt , Andrew Morton , Masami Hiramatsu , Mathieu Desnoyers , Andy Shevchenko , Christophe Leroy , Randy Dunlap , Ingo Molnar , Jani Nikula , Joonas Lahtinen , David Laight , Petr Pavlu , Andi Shyti , Rodrigo Vivi , Tvrtko Ursulin , Daniel Gomez , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-modules@vger.kernel.org, linux-trace-kernel@vger.kernel.org Cc: "Yury Norov (NVIDIA)" Subject: [PATCH v4 3/7] kernel.h: move VERIFY_OCTAL_PERMISSIONS() to sysfs.h Date: Thu, 25 Dec 2025 12:09:25 -0500 Message-ID: <20251225170930.1151781-4-yury.norov@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251225170930.1151781-1-yury.norov@gmail.com> References: <20251225170930.1151781-1-yury.norov@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The macro is related to sysfs, but is defined in kernel.h. Move it to the proper header, and unload the generic kernel.h. Now that the macro is removed from kernel.h, linux/moduleparam.h is decoupled, and kernel.h inclusion can be removed. Acked-by: Randy Dunlap Tested-by: Randy Dunlap Reviewed-by: Andy Shevchenko Reviewed-by: Petr Pavlu Signed-off-by: Yury Norov (NVIDIA) --- Documentation/filesystems/sysfs.rst | 2 +- include/linux/kernel.h | 12 ------------ include/linux/moduleparam.h | 2 +- include/linux/sysfs.h | 13 +++++++++++++ 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/Documentation/filesystems/sysfs.rst b/Documentation/filesystem= s/sysfs.rst index 2703c04af7d0..ffcef4d6bc8d 100644 --- a/Documentation/filesystems/sysfs.rst +++ b/Documentation/filesystems/sysfs.rst @@ -120,7 +120,7 @@ is equivalent to doing:: .store =3D store_foo, }; =20 -Note as stated in include/linux/kernel.h "OTHER_WRITABLE? Generally +Note as stated in include/linux/sysfs.h "OTHER_WRITABLE? Generally considered a bad idea." so trying to set a sysfs file writable for everyone will fail reverting to RO mode for "Others". =20 diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 61d63c57bc2d..5b879bfea948 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -389,16 +389,4 @@ static inline void ftrace_dump(enum ftrace_dump_mode o= ops_dump_mode) { } # define REBUILD_DUE_TO_DYNAMIC_FTRACE #endif =20 -/* Permissions on a sysfs file: you didn't miss the 0 prefix did you? */ -#define VERIFY_OCTAL_PERMISSIONS(perms) \ - (BUILD_BUG_ON_ZERO((perms) < 0) + \ - BUILD_BUG_ON_ZERO((perms) > 0777) + \ - /* USER_READABLE >=3D GROUP_READABLE >=3D OTHER_READABLE */ \ - BUILD_BUG_ON_ZERO((((perms) >> 6) & 4) < (((perms) >> 3) & 4)) + \ - BUILD_BUG_ON_ZERO((((perms) >> 3) & 4) < ((perms) & 4)) + \ - /* USER_WRITABLE >=3D GROUP_WRITABLE */ \ - BUILD_BUG_ON_ZERO((((perms) >> 6) & 2) < (((perms) >> 3) & 2)) + \ - /* OTHER_WRITABLE? Generally considered a bad idea. */ \ - BUILD_BUG_ON_ZERO((perms) & 2) + \ - (perms)) #endif diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h index 03a977168c52..281a006dc284 100644 --- a/include/linux/moduleparam.h +++ b/include/linux/moduleparam.h @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include =20 /* diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h index c33a96b7391a..99b775f3ff46 100644 --- a/include/linux/sysfs.h +++ b/include/linux/sysfs.h @@ -808,4 +808,17 @@ static inline void sysfs_put(struct kernfs_node *kn) kernfs_put(kn); } =20 +/* Permissions on a sysfs file: you didn't miss the 0 prefix did you? */ +#define VERIFY_OCTAL_PERMISSIONS(perms) \ + (BUILD_BUG_ON_ZERO((perms) < 0) + \ + BUILD_BUG_ON_ZERO((perms) > 0777) + \ + /* USER_READABLE >=3D GROUP_READABLE >=3D OTHER_READABLE */ \ + BUILD_BUG_ON_ZERO((((perms) >> 6) & 4) < (((perms) >> 3) & 4)) + \ + BUILD_BUG_ON_ZERO((((perms) >> 3) & 4) < ((perms) & 4)) + \ + /* USER_WRITABLE >=3D GROUP_WRITABLE */ \ + BUILD_BUG_ON_ZERO((((perms) >> 6) & 2) < (((perms) >> 3) & 2)) + \ + /* OTHER_WRITABLE? Generally considered a bad idea. */ \ + BUILD_BUG_ON_ZERO((perms) & 2) + \ + (perms)) + #endif /* _SYSFS_H_ */ --=20 2.43.0