在 2022/2/7 12:01, Greg KH 写道:
On Mon, Feb 07, 2022 at 11:52:12AM +0000, Jiaxun Yang wrote:
Since the SUBLEVEL overflowed LINUX_VERSION, we have no reliable
way to tell the current SUBLEVEL in source code.
What in-kernel code needs to know the SUBLEVEL?
Hi,
Ah sorry, to clarification, backport here means "Backport Project"
(https://backports.wiki.kernel.org).
Though it is not in-tree, it is a vital part of kernel ecosystem to
deliver some new drivers to stable kernels.
It relies on KERNEL_VERSION macros to enable compat code.
This brings significant difficulties for backport works to deal
with changes in stable releases.
What backport issues?
Context:
https://lore.kernel.org/backports/bb0ae37aa770e016463706d557fec1c5205bc6a9.camel@xxxxxxxxxxxxxxxx/T/#t
We are nolonger able to detect linux version > 4.9.255 in source.
Define those macros so we can continue to get proper SUBLEVEL
in source without breaking stable ABI by refining KERNEL_VERSION
bit fields.
Signed-off-by: Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx>
---
For some context: https://lore.kernel.org/backports/bb0ae37aa770e016463706d557fec1c5205bc6a9.camel@xxxxxxxxxxxxxxxx/T/#t
---
Makefile | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 99d37c23495e..8132f81d94d8 100644
--- a/Makefile
+++ b/Makefile
@@ -1142,7 +1142,10 @@ endef
define filechk_version.h
(echo \#define LINUX_VERSION_CODE $(shell \
expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 255); \
- echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';)
+ echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'; \
+ echo \#define LINUX_VERSION_MAJOR $(VERSION); \
+ echo \#define LINUX_VERSION_PATCHLEVEL $(PATCHLEVEL); \
+ echo \#define LINUX_VERSION_SUBLEVEL $(SUBLEVEL);)
This is already in Makefile, are you sure you just do not need to
backport
I wish this can be a part of existing stable kernels so backport project
can maintain flawless build againt stable kernels.
Thanks.
- Jiaxun
a specific patch instead of making your own that does the same
thing?
thanks,
greg k-h