[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAK7LNASoWNfEAzQYOo7_PqgU61iiZk8i=F-JS38yn5AnfQNhzQ@mail.gmail.com>
Date: Sat, 6 Feb 2021 21:45:44 +0900
From: Masahiro Yamada <masahiroy@...nel.org>
To: Sasha Levin <sashal@...nel.org>
Cc: Michal Marek <michal.lkml@...kovi.net>,
Linux Kbuild mailing list <linux-kbuild@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
stable@...nel.org
Subject: Re: [PATCH 3/3] kbuild: introduce KERNEL_VERSION2 and LINUX_VERSION_CODE2
On Sat, Feb 6, 2021 at 12:50 PM Sasha Levin <sashal@...nel.org> wrote:
>
> SUBLEVEL only has 8 bits of space, which means that we'll overflow it
> once it reaches 256.
>
> Few of the stable branches will imminently overflow SUBLEVEL while
> there's no risk of overflowing VERSION.
>
> Thus, give SUBLEVEL 8 more bits which will be stolen from VERSION, this
> should create a better balance between the different version numbers we
> use.
>
> We can't however use the original KERNEL_VERSION and LINUX_VERSION_CODE
> as userspace has created ABI dependency on their structure, and we risk
> breaking this userspace by modifying the layout of the version integers.
>
> Cc: stable@...nel.org
> Signed-off-by: Sasha Levin <sashal@...nel.org>
> Reviewed-by: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
> Signed-off-by: Masahiro Yamada <masahiroy@...nel.org>
> Signed-off-by: Sasha Levin <sashal@...nel.org>
> ---
> Makefile | 8 +++++++-
> drivers/net/ethernet/mellanox/mlx5/core/main.c | 4 ++--
> drivers/usb/core/hcd.c | 4 ++--
> drivers/usb/gadget/udc/aspeed-vhub/hub.c | 4 ++--
> include/linux/usb/composite.h | 4 ++--
> kernel/sys.c | 2 +-
> tools/perf/tests/bpf-script-example.c | 2 +-
> tools/perf/tests/bpf-script-test-kbuild.c | 2 +-
> tools/perf/tests/bpf-script-test-prologue.c | 2 +-
> 9 files changed, 19 insertions(+), 13 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 157be50c691e5..2177c548e4c24 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1266,7 +1266,13 @@ define filechk_version.h
> expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + $(SUBLEVEL)); \
> fi; \
> echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + \
> - ((c) > 255 ? 255 : (c)))'
> + ((c) > 255 ? 255 : (c)))'; \
> + echo \#define LINUX_VERSION_CODE2 $(shell \
> + expr $(VERSION) \* 16777216 + 0$(PATCHLEVEL) \* 65536 + 0$(SUBLEVEL)); \
Is this needed?
No one in this patch uses LINUX_VERSION_CODE2.
The in-kernel code can use
LINUX_VERSION_MAJOR/PATCHLEVEL/SUBLEVEL directly.
Userspace does not need LINUX_VERSION_CODE2 either.
Your comment in 2/3 states that
userspace only decodes MAJOR and PATCHLEVEL fields,
so LINUX_VERSION_CODE will still do well.
> index ab4b98b3165db..a56bf381335e9 100644
> --- a/tools/perf/tests/bpf-script-example.c
> +++ b/tools/perf/tests/bpf-script-example.c
> @@ -5,7 +5,7 @@
> */
> #ifndef LINUX_VERSION_CODE
> # error Need LINUX_VERSION_CODE
> -# error Example: for 4.2 kernel, put 'clang-opt="-DLINUX_VERSION_CODE=0x40200" into llvm section of ~/.perfconfig'
> +# error Example: for 4.2 kernel, put 'clang-opt="-DLINUX_VERSION_CODE=0x4020000" into llvm section of ~/.perfconfig'
Is this change needed?
> #endif
> #define BPF_ANY 0
> #define BPF_MAP_TYPE_ARRAY 2
> diff --git a/tools/perf/tests/bpf-script-test-kbuild.c b/tools/perf/tests/bpf-script-test-kbuild.c
> index 219673aa278fb..21663295d5b5a 100644
> --- a/tools/perf/tests/bpf-script-test-kbuild.c
> +++ b/tools/perf/tests/bpf-script-test-kbuild.c
> @@ -5,7 +5,7 @@
> */
> #ifndef LINUX_VERSION_CODE
> # error Need LINUX_VERSION_CODE
> -# error Example: for 4.2 kernel, put 'clang-opt="-DLINUX_VERSION_CODE=0x40200" into llvm section of ~/.perfconfig'
> +# error Example: for 4.2 kernel, put 'clang-opt="-DLINUX_VERSION_CODE=0x4020000" into llvm section of ~/.perfconfig'
> #endif
> #define SEC(NAME) __attribute__((section(NAME), used))
>
> diff --git a/tools/perf/tests/bpf-script-test-prologue.c b/tools/perf/tests/bpf-script-test-prologue.c
> index bd83d364cf30d..8db19e70813cc 100644
> --- a/tools/perf/tests/bpf-script-test-prologue.c
> +++ b/tools/perf/tests/bpf-script-test-prologue.c
> @@ -5,7 +5,7 @@
> */
> #ifndef LINUX_VERSION_CODE
> # error Need LINUX_VERSION_CODE
> -# error Example: for 4.2 kernel, put 'clang-opt="-DLINUX_VERSION_CODE=0x40200" into llvm section of ~/.perfconfig'
> +# error Example: for 4.2 kernel, put 'clang-opt="-DLINUX_VERSION_CODE=0x4020000" into llvm section of ~/.perfconfig'
> #endif
> #define SEC(NAME) __attribute__((section(NAME), used))
>
> --
> 2.27.0
>
--
Best Regards
Masahiro Yamada
Powered by blists - more mailing lists