[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