summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2018-07-23 09:41:41 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2018-07-23 09:41:41 -0400
commit4282eafe675b00afc976b973724e449956fd7e33 (patch)
tree9064e8f5e6599e7ae2f29749d8b093fa8e23f1c3
parentd85c96669023a993813e2af557ad4c14ed6d3539 (diff)
downloadlongterm-queue-4.12-4282eafe675b00afc976b973724e449956fd7e33.tar.gz
cgroup: context refresh
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--queue/kernel-make-groups_sort-calling-a-responsibility-gro.patch40
1 files changed, 22 insertions, 18 deletions
diff --git a/queue/kernel-make-groups_sort-calling-a-responsibility-gro.patch b/queue/kernel-make-groups_sort-calling-a-responsibility-gro.patch
index 0a49795..7c568b6 100644
--- a/queue/kernel-make-groups_sort-calling-a-responsibility-gro.patch
+++ b/queue/kernel-make-groups_sort-calling-a-responsibility-gro.patch
@@ -1,4 +1,4 @@
-From bdcf0a423ea1c40bbb40e7ee483b50fc8aa3d758 Mon Sep 17 00:00:00 2001
+From 7e7e3191808c62996962413029d8f4a6a0f7d718 Mon Sep 17 00:00:00 2001
From: Thiago Rafael Becker <thiago.becker@gmail.com>
Date: Thu, 14 Dec 2017 15:33:12 -0800
Subject: [PATCH] kernel: make groups_sort calling a responsibility group_info
@@ -26,12 +26,13 @@ Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c
-index f04db3779b34..59eea9c65d3e 100644
+index a3d14161abcb..df27905f88d4 100644
--- a/arch/s390/kernel/compat_linux.c
+++ b/arch/s390/kernel/compat_linux.c
-@@ -263,6 +263,7 @@ COMPAT_SYSCALL_DEFINE2(s390_setgroups16, int, gidsetsize, u16 __user *, grouplis
+@@ -262,6 +262,7 @@ COMPAT_SYSCALL_DEFINE2(s390_setgroups16, int, gidsetsize, u16 __user *, grouplis
return retval;
}
@@ -40,10 +41,10 @@ index f04db3779b34..59eea9c65d3e 100644
put_group_info(group_info);
diff --git a/fs/nfsd/auth.c b/fs/nfsd/auth.c
-index 697f8ae7792d..f650e475d8f0 100644
+index 62469c60be23..75f942ae5176 100644
--- a/fs/nfsd/auth.c
+++ b/fs/nfsd/auth.c
-@@ -60,6 +60,9 @@ int nfsd_setuser(struct svc_rqst *rqstp, struct svc_export *exp)
+@@ -59,6 +59,9 @@ int nfsd_setuser(struct svc_rqst *rqstp, struct svc_export *exp)
gi->gid[i] = exp->ex_anon_gid;
else
gi->gid[i] = rqgi->gid[i];
@@ -54,7 +55,7 @@ index 697f8ae7792d..f650e475d8f0 100644
} else {
gi = get_group_info(rqgi);
diff --git a/include/linux/cred.h b/include/linux/cred.h
-index 099058e1178b..631286535d0f 100644
+index b03e7d049a64..935686dfb191 100644
--- a/include/linux/cred.h
+++ b/include/linux/cred.h
@@ -83,6 +83,7 @@ extern int set_current_groups(struct group_info *);
@@ -66,24 +67,27 @@ index 099058e1178b..631286535d0f 100644
/*
* The security context of a task
diff --git a/kernel/groups.c b/kernel/groups.c
-index e357bc800111..daae2f2dc6d4 100644
+index d09727692a2a..73040c252b96 100644
--- a/kernel/groups.c
+++ b/kernel/groups.c
-@@ -86,11 +86,12 @@ static int gid_cmp(const void *_a, const void *_b)
- return gid_gt(a, b) - gid_lt(a, b);
+@@ -77,7 +77,7 @@ static int groups_from_user(struct group_info *group_info,
}
+ /* a simple Shell sort */
-static void groups_sort(struct group_info *group_info)
+void groups_sort(struct group_info *group_info)
{
- sort(group_info->gid, group_info->ngroups, sizeof(*group_info->gid),
- gid_cmp, NULL);
+ int base, max, stride;
+ int gidsetsize = group_info->ngroups;
+@@ -103,6 +103,7 @@ static void groups_sort(struct group_info *group_info)
+ stride /= 3;
+ }
}
+EXPORT_SYMBOL(groups_sort);
/* a simple bsearch */
int groups_search(const struct group_info *group_info, kgid_t grp)
-@@ -122,7 +123,6 @@ int groups_search(const struct group_info *group_info, kgid_t grp)
+@@ -134,7 +135,6 @@ int groups_search(const struct group_info *group_info, kgid_t grp)
void set_groups(struct cred *new, struct group_info *group_info)
{
put_group_info(new->group_info);
@@ -91,7 +95,7 @@ index e357bc800111..daae2f2dc6d4 100644
get_group_info(group_info);
new->group_info = group_info;
}
-@@ -206,6 +206,7 @@ SYSCALL_DEFINE2(setgroups, int, gidsetsize, gid_t __user *, grouplist)
+@@ -218,6 +218,7 @@ SYSCALL_DEFINE2(setgroups, int, gidsetsize, gid_t __user *, grouplist)
return retval;
}
@@ -100,10 +104,10 @@ index e357bc800111..daae2f2dc6d4 100644
put_group_info(group_info);
diff --git a/kernel/uid16.c b/kernel/uid16.c
-index ce74a4901d2b..ef1da2a5f9bd 100644
+index 5c2dc5b2bf4f..fcf2442a4410 100644
--- a/kernel/uid16.c
+++ b/kernel/uid16.c
-@@ -192,6 +192,7 @@ SYSCALL_DEFINE2(setgroups16, int, gidsetsize, old_gid_t __user *, grouplist)
+@@ -191,6 +191,7 @@ SYSCALL_DEFINE2(setgroups16, int, gidsetsize, old_gid_t __user *, grouplist)
return retval;
}
@@ -112,7 +116,7 @@ index ce74a4901d2b..ef1da2a5f9bd 100644
put_group_info(group_info);
diff --git a/net/sunrpc/auth_gss/gss_rpc_xdr.c b/net/sunrpc/auth_gss/gss_rpc_xdr.c
-index c4778cae58ef..444380f968f1 100644
+index 25d9a9cf7b66..624c322af3ab 100644
--- a/net/sunrpc/auth_gss/gss_rpc_xdr.c
+++ b/net/sunrpc/auth_gss/gss_rpc_xdr.c
@@ -231,6 +231,7 @@ static int gssx_dec_linux_creds(struct xdr_stream *xdr,
@@ -124,7 +128,7 @@ index c4778cae58ef..444380f968f1 100644
return 0;
out_free_groups:
diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c
-index 5dd4e6c9fef2..26531193fce4 100644
+index a54a7a3d28f5..cddbba1cfe22 100644
--- a/net/sunrpc/auth_gss/svcauth_gss.c
+++ b/net/sunrpc/auth_gss/svcauth_gss.c
@@ -481,6 +481,7 @@ static int rsc_parse(struct cache_detail *cd,
@@ -136,7 +140,7 @@ index 5dd4e6c9fef2..26531193fce4 100644
/* mech name */
len = qword_get(&mesg, buf, mlen);
diff --git a/net/sunrpc/svcauth_unix.c b/net/sunrpc/svcauth_unix.c
-index 740b67d5a733..af7f28fb8102 100644
+index f81eaa8e0888..acb70d235e47 100644
--- a/net/sunrpc/svcauth_unix.c
+++ b/net/sunrpc/svcauth_unix.c
@@ -520,6 +520,7 @@ static int unix_gid_parse(struct cache_detail *cd,