[PATCH v2] kernel/sys.c: Clarify that UNAME26 does not generate unique versions anymore

From: Jonathan NeuschÃfer
Date: Sat Jan 12 2019 - 12:20:11 EST


UNAME26 is a mechanism to report Linux's version as 2.6.x, for
compatibility with old/broken software. Due to the way it is
implemented, it would have to be updated after 5.0, to keep the
resulting versions unique. Linus Torvalds argued:

> Do we actually need this?
>
> I'd rather let it bitrot, and just let it return random versions. It
> will just start again at 2.4.60, won't it?
>
> Anybody who uses UNAME26 for a 5.x kernel might as well think it's
> still 4.x. The user space is so old that it can't possibly care about
> differences between 4.x and 5.x, can it?
>
> The only thing that matters is that it shows "2.4.<largeenough>",
> which it will do regardless.

Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Jonathan NeuschÃfer <j.neuschaefer@xxxxxxx>
---

v2:
- Switched to documenting why UNAME26 is not updated

v1:
- https://lore.kernel.org/patchwork/patch/1029578/
---
kernel/sys.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/sys.c b/kernel/sys.c
index a48cbf1414b8..f7eb62eceb24 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -1207,7 +1207,8 @@ DECLARE_RWSEM(uts_sem);
/*
* Work around broken programs that cannot handle "Linux 3.0".
* Instead we map 3.x to 2.6.40+x, so e.g. 3.0 would be 2.6.40
- * And we map 4.x to 2.6.60+x, so 4.0 would be 2.6.60.
+ * And we map 4.x and later versions to 2.6.60+x, so 4.0/5.0/6.0/... would be
+ * 2.6.60.
*/
static int override_release(char __user *release, size_t len)
{
--
2.20.1