r4568 - in dists/trunk/linux-2.6/debian/patches-debian: . series

Bastian Blank waldi at costa.debian.org
Thu Oct 20 16:52:41 UTC 2005


Author: waldi
Date: 2005-10-20 16:52:40 +0000 (Thu, 20 Oct 2005)
New Revision: 4568

Added:
   dists/trunk/linux-2.6/debian/patches-debian/s390-uaccess-const.patch
Modified:
   dists/trunk/linux-2.6/debian/patches-debian/series/2.6.13+2.6.14-rc4-1
Log:
* debian/patches-debian/series/2.6.13+2.6.14-rc4-1:
  Add s390-uaccess-const.patch.
* debian/patches-debian/s390-uaccess-const.patch: Add upstream fix.


Added: dists/trunk/linux-2.6/debian/patches-debian/s390-uaccess-const.patch
===================================================================
--- dists/trunk/linux-2.6/debian/patches-debian/s390-uaccess-const.patch	2005-10-20 16:51:52 UTC (rev 4567)
+++ dists/trunk/linux-2.6/debian/patches-debian/s390-uaccess-const.patch	2005-10-20 16:52:40 UTC (rev 4568)
@@ -0,0 +1,63 @@
+[patch] s390: const pointer uaccess.
+
+From: Martin Schwidefsky <schwidefsky at de.ibm.com>
+
+Using __typeof__(*ptr) on a pointer to const makes the __x
+variable in __get_user const as well. The latest gcc will
+refuse to write to it.
+
+Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
+
+diffstat:
+ include/asm-s390/uaccess.h |   28 ++++++++++++++++++++++------
+ 1 files changed, 22 insertions(+), 6 deletions(-)
+
+diff -urpN linux-2.6/include/asm-s390/uaccess.h linux-2.6-patched/include/asm-s390/uaccess.h
+--- linux-2.6/include/asm-s390/uaccess.h	2005-10-19 15:54:19.000000000 +0200
++++ linux-2.6-patched/include/asm-s390/uaccess.h	2005-10-19 15:54:44.000000000 +0200
+@@ -200,21 +200,37 @@ extern int __put_user_bad(void) __attrib
+ 
+ #define __get_user(x, ptr)					\
+ ({								\
+-	__typeof__(*(ptr)) __x;					\
+ 	int __gu_err;						\
+         __chk_user_ptr(ptr);                                    \
+ 	switch (sizeof(*(ptr))) {				\
+-	case 1:							\
+-	case 2:							\
+-	case 4:							\
+-	case 8:							\
++	case 1: {						\
++		unsigned char __x;				\
+ 		__get_user_asm(__x, ptr, __gu_err);		\
++		(x) = (__typeof__(*(ptr))) __x;			\
+ 		break;						\
++	};							\
++	case 2: {						\
++		unsigned short __x;				\
++		__get_user_asm(__x, ptr, __gu_err);		\
++		(x) = (__typeof__(*(ptr))) __x;			\
++		break;						\
++	};							\
++	case 4: {						\
++		unsigned int __x;				\
++		__get_user_asm(__x, ptr, __gu_err);		\
++		(x) = (__typeof__(*(ptr))) __x;			\
++		break;						\
++	};							\
++	case 8: {						\
++		unsigned long long __x;				\
++		__get_user_asm(__x, ptr, __gu_err);		\
++		(x) = (__typeof__(*(ptr))) __x;			\
++		break;						\
++	};							\
+ 	default:						\
+ 		__get_user_bad();				\
+ 		break;						\
+ 	}							\
+-	(x) = __x;						\
+ 	__gu_err;						\
+ })
+ 
+
+

Modified: dists/trunk/linux-2.6/debian/patches-debian/series/2.6.13+2.6.14-rc4-1
===================================================================
--- dists/trunk/linux-2.6/debian/patches-debian/series/2.6.13+2.6.14-rc4-1	2005-10-20 16:51:52 UTC (rev 4567)
+++ dists/trunk/linux-2.6/debian/patches-debian/series/2.6.13+2.6.14-rc4-1	2005-10-20 16:52:40 UTC (rev 4568)
@@ -23,3 +23,4 @@
 + version.patch
 + powerpc-mv643xx-hotplug-support.patch
 + powerpc-apus.patch
++ s390-uaccess-const.patch




More information about the Kernel-svn-changes mailing list