From: Arnd Bergmann Date: Fri, 21 Jun 2013 19:55:35 +0000 (+0200) Subject: staging: line6: avoid __sync_fetch_and_{and,or} X-Git-Tag: v3.2.70~6 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cee9e1e861382df144a3a880f8e2c89285197a3e;p=pandora-kernel.git staging: line6: avoid __sync_fetch_and_{and,or} commit 9f613601482c56e05884f21565e3d218fac427ae upstream. __sync_fetch_and_and and __sync_fetch_and_or are functions that are provided by gcc and depending on the target architecture may be implemented in libgcc, which is not always available in the kernel. This leads to a build failure on ARMv5: drivers/built-in.o: In function `line6_pcm_release': :(.text+0x3bfe80): undefined reference to `__sync_fetch_and_and_4' drivers/built-in.o: In function `line6_pcm_acquire': :(.text+0x3bff30): undefined reference to `__sync_fetch_and_or_4' To work around this, we can use the kernel-provided cmpxchg macro. Build-tested only. Signed-off-by: Arnd Bergmann Cc: Markus Grabner Acked-by: Randy Dunlap Signed-off-by: Greg Kroah-Hartman [bwh: Backported to 3.2: - Adjust context - Fix up two more instances of __sync_fetch_and_and() that were removed separately upstream] Signed-off-by: Ben Hutchings --- Reading git-diff-tree failed