Re: [PATCH] kernel/sys.c: Fix UNAME26 for 4.0

Andrew Morton
2015-02-23T19:00:44Z

On Mon, 23 Feb 2015 00:43:12 -0500 Jon DeVree <nuxi@vault24.org> wrote:

> --- a/kernel/sys.c
> +++ b/kernel/sys.c
> @@ -1127,7 +1127,7 @@ static int override_release(char __user *release, size_t len)
> break;
> rest++;
> }
> - v = ((LINUX_VERSION_CODE >> 8) & 0xff) + 40;
> + v = ((LINUX_VERSION_CODE >> 8) & 0xff) + 60;
> copy = clamp_t(size_t, len, 1, sizeof(buf));
> copy = scnprintf(buf, copy, "2.6.%u%s", v, rest);
> ret = copy_to_user(release, buf, copy + 1);

Huh.

I wonder if we still need this.

We should update the comment:

--- a/kernel/sys.c~kernel-sysc-fix-uname26-for-40-fix
+++ a/kernel/sys.c
@@ -1108,6 +1108,7 @@ 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.
*/
static int override_release(char __user *release, size_t len)
{