[kernel/f15] * Tue Aug 16 2011 Dennis Gilmore <dennis at ausil.us> - add patch to work around gcc bug on arm

Dennis Gilmore ausil at fedoraproject.org
Tue Aug 16 18:46:44 UTC 2011


commit fc919d08c49f2f94566b8cb2e8f37a3e667214f7
Author: Dennis Gilmore <dennis at ausil.us>
Date:   Tue Aug 16 13:42:11 2011 -0500

    * Tue Aug 16 2011 Dennis Gilmore <dennis at ausil.us>
    - add patch to work around gcc bug on arm

 arm-readl.patch |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 kernel.spec     |   11 +++++++++++
 2 files changed, 60 insertions(+), 0 deletions(-)
---
diff --git a/arm-readl.patch b/arm-readl.patch
new file mode 100644
index 0000000..4cbd5af
--- /dev/null
+++ b/arm-readl.patch
@@ -0,0 +1,49 @@
+--- arch/arm/include/asm/io.h.orig	2011-07-26 00:44:15.000000000 -0400
++++ arch/arm/include/asm/io.h	2011-07-26 00:40:41.000000000 -0400
+@@ -55,6 +55,46 @@
+ #define __raw_readw(a)		(__chk_io_ptr(a), *(volatile unsigned short __force *)(a))
+ #define __raw_readl(a)		(__chk_io_ptr(a), *(volatile unsigned int __force   *)(a))
+ 
++#undef __raw_writew
++#define __raw_writew(v,a) __dj_writew(v,a)
++static inline void
++__dj_writew(unsigned short v, unsigned short *a)
++{
++  __chk_io_ptr(a);
++  asm volatile ("strh %0,[%1,#0]" :: "r" (v), "r" (a));
++}
++
++#undef __raw_writel
++#define __raw_writel(v,a) __dj_writel(v,a)
++static inline void
++__dj_writel(unsigned int v, unsigned int *a)
++{
++  __chk_io_ptr(a);
++  asm volatile ("str %0,[%1,#0]" :: "r" (v), "r" (a));
++}
++
++#undef __raw_readw
++#define __raw_readw(a) __dj_readw(a)
++static inline unsigned short
++__dj_readw(unsigned short *a)
++{
++  unsigned short rv;
++  __chk_io_ptr(a);
++  asm volatile ("ldrh %0,[%1,#0]" : "=r" (rv) : "r" (a));
++  return rv;
++}
++
++#undef __raw_readl
++#define __raw_readl(a) __dj_readl(a)
++static inline unsigned int
++__dj_readl(unsigned int *a)
++{
++  unsigned long rv;
++  __chk_io_ptr(a);
++  asm volatile ("ldr %0,[%1,#0]" : "=r" (rv) : "r" (a));
++  return rv;
++}
++
+ /*
+  * Architecture ioremap implementation.
+  */
diff --git a/kernel.spec b/kernel.spec
index 859eeb9..81e2aa5 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -687,6 +687,13 @@ Patch20000: utrace.patch
 # Flattened devicetree support
 Patch21000: arm-omap-dt-compat.patch
 Patch21001: arm-smsc-support-reading-mac-address-from-device-tree.patch
+
+# workaround for issue with gcc-4.6.x
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45819
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45704
+# patch from http://www.delorie.com/tmp/arm-readl.patch
+Patch21002: arm-readl.patch
+
 %endif
 
 BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
@@ -1127,6 +1134,7 @@ ApplyPatch linux-2.6.29-sparc-IOC_TYPECHECK.patch
 #
 ApplyPatch arm-omap-dt-compat.patch
 ApplyPatch arm-smsc-support-reading-mac-address-from-device-tree.patch
+ApplyPatch arm-readl.patch
 
 #
 # Exec shield
@@ -1882,6 +1890,9 @@ fi
 # and build.
 
 %changelog
+* Tue Aug 16 2011 Dennis Gilmore <dennis at ausil.us>
+- add patch to work around gcc bug on arm
+
 * Mon Aug 15 2011 Dave Jones <davej at redhat.com> 2.6.40.3-0
 - Apply patches from 3.0.3-rc1
 


More information about the scm-commits mailing list