From: Tim Hockin <thockin@sun.com>

Remove the usage of TASK_SIZE and just use put_user().


---

 25-akpm/arch/ia64/ia32/sys_ia32.c         |   16 ++--------------
 25-akpm/arch/s390/kernel/compat_linux.c   |   16 ++--------------
 25-akpm/arch/sparc64/kernel/sys_sparc32.c |   16 ++--------------
 25-akpm/kernel/uid16.c                    |   16 ++--------------
 4 files changed, 8 insertions(+), 56 deletions(-)

diff -puN arch/ia64/ia32/sys_ia32.c~increase-NGROUPS-cleanup arch/ia64/ia32/sys_ia32.c
--- 25/arch/ia64/ia32/sys_ia32.c~increase-NGROUPS-cleanup	Thu Jan 29 15:44:36 2004
+++ 25-akpm/arch/ia64/ia32/sys_ia32.c	Thu Jan 29 15:44:36 2004
@@ -2419,15 +2419,9 @@ groups16_to_user(short *grouplist, struc
 	int i;
 	short group;
 
-	if (group_info->ngroups > TASK_SIZE/sizeof(group))
-		return -EFAULT;
-	if (!access_ok(VERIFY_WRITE, grouplist,
-	    group_info->ngroups * sizeof(group)))
-		return -EFAULT;
-
 	for (i = 0; i < group_info->ngroups; i++) {
 		group = (short)GROUP_AT(group_info, i);
-		if (__put_user(group, grouplist+i))
+		if (put_user(group, grouplist+i))
 			return -EFAULT;
 	}
 
@@ -2440,14 +2434,8 @@ groups16_from_user(struct group_info *gr
 	int i;
 	short group;
 
-	if (group_info->ngroups > TASK_SIZE/sizeof(group))
-		return -EFAULT;
-	if (!access_ok(VERIFY_READ, grouplist,
-	    group_info->ngroups * sizeof(group)))
-		return -EFAULT;
-
 	for (i = 0; i < group_info->ngroups; i++) {
-		if (__get_user(group, grouplist+i))
+		if (get_user(group, grouplist+i))
 			return  -EFAULT;
 		GROUP_AT(group_info, i) = (gid_t)group;
 	}
diff -puN arch/s390/kernel/compat_linux.c~increase-NGROUPS-cleanup arch/s390/kernel/compat_linux.c
--- 25/arch/s390/kernel/compat_linux.c~increase-NGROUPS-cleanup	Thu Jan 29 15:44:36 2004
+++ 25-akpm/arch/s390/kernel/compat_linux.c	Thu Jan 29 15:44:36 2004
@@ -195,15 +195,9 @@ static int groups16_to_user(u16 *groupli
 	int i;
 	u16 group;
 
-	if (group_info->ngroups > TASK_SIZE/sizeof(group))
-		return -EFAULT;
-	if (!access_ok(VERIFY_WRITE, grouplist,
-	    group_info->ngroups * sizeof(group)))
-		return -EFAULT;
-
 	for (i = 0; i < group_info->ngroups; i++) {
 		group = (u16)GROUP_AT(group_info, i);
-		if (__put_user(group, grouplist+i))
+		if (put_user(group, grouplist+i))
 			return -EFAULT;
 	}
 
@@ -215,14 +209,8 @@ static int groups16_from_user(struct gro
 	int i;
 	u16 group;
 
-	if (group_info->ngroups > TASK_SIZE/sizeof(group))
-		return -EFAULT;
-	if (!access_ok(VERIFY_READ, grouplist,
-	    group_info->ngroups * sizeof(group)))
-		return -EFAULT;
-
 	for (i = 0; i < group_info->ngroups; i++) {
-		if (__get_user(group, grouplist+i))
+		if (get_user(group, grouplist+i))
 			return  -EFAULT;
 		GROUP_AT(group_info, i) = (gid_t)group;
 	}
diff -puN arch/sparc64/kernel/sys_sparc32.c~increase-NGROUPS-cleanup arch/sparc64/kernel/sys_sparc32.c
--- 25/arch/sparc64/kernel/sys_sparc32.c~increase-NGROUPS-cleanup	Thu Jan 29 15:44:36 2004
+++ 25-akpm/arch/sparc64/kernel/sys_sparc32.c	Thu Jan 29 15:44:36 2004
@@ -184,15 +184,9 @@ static int groups16_to_user(u16 *groupli
 	int i;
 	u16 group;
 
-	if (group_info->ngroups > TASK_SIZE/sizeof(group))
-		return -EFAULT;
-	if (!access_ok(VERIFY_WRITE, grouplist,
-	    group_info->ngroups * sizeof(group)))
-		return -EFAULT;
-
 	for (i = 0; i < group_info->ngroups; i++) {
 		group = (u16)GROUP_AT(group_info, i);
-		if (__put_user(group, grouplist+i))
+		if (put_user(group, grouplist+i))
 			return -EFAULT;
 	}
 
@@ -204,14 +198,8 @@ static int groups16_from_user(struct gro
 	int i;
 	u16 group;
 
-	if (group_info->ngroups > TASK_SIZE/sizeof(group))
-		return -EFAULT;
-	if (!access_ok(VERIFY_READ, grouplist,
-	    group_info->ngroups * sizeof(group)))
-		return -EFAULT;
-
 	for (i = 0; i < group_info->ngroups; i++) {
-		if (__get_user(group, grouplist+i))
+		if (get_user(group, grouplist+i))
 			return  -EFAULT;
 		GROUP_AT(group_info, i) = (gid_t)group;
 	}
diff -puN kernel/uid16.c~increase-NGROUPS-cleanup kernel/uid16.c
--- 25/kernel/uid16.c~increase-NGROUPS-cleanup	Thu Jan 29 15:44:36 2004
+++ 25-akpm/kernel/uid16.c	Thu Jan 29 15:44:36 2004
@@ -113,15 +113,9 @@ static int groups16_to_user(old_gid_t __
 	int i;
 	old_gid_t group;
 
-	if (group_info->ngroups > TASK_SIZE/sizeof(group))
-		return -EFAULT;
-	if (!access_ok(VERIFY_WRITE, grouplist,
-	    group_info->ngroups * sizeof(group)))
-		return -EFAULT;
-
 	for (i = 0; i < group_info->ngroups; i++) {
 		group = (old_gid_t)GROUP_AT(group_info, i);
-		if (__put_user(group, grouplist+i))
+		if (put_user(group, grouplist+i))
 			return -EFAULT;
 	}
 
@@ -134,14 +128,8 @@ static int groups16_from_user(struct gro
 	int i;
 	old_gid_t group;
 
-	if (group_info->ngroups > TASK_SIZE/sizeof(group))
-		return -EFAULT;
-	if (!access_ok(VERIFY_READ, grouplist,
-	    group_info->ngroups * sizeof(group)))
-		return -EFAULT;
-
 	for (i = 0; i < group_info->ngroups; i++) {
-		if (__get_user(group, grouplist+i))
+		if (get_user(group, grouplist+i))
 			return  -EFAULT;
 		GROUP_AT(group_info, i) = (gid_t)group;
 	}

_