From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Howells Subject: Re: [PATCH] Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt] Date: Tue, 20 Mar 2012 09:33:40 +0000 Message-ID: <14078.1332236020@redhat.com> References: <1332212514-22071-1-git-send-email-gxt@mprc.pku.edu.cn> <7019.1332155925@redhat.com> Return-path: Received: from mx1.redhat.com ([209.132.183.28]:45777 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753443Ab2CTJdz (ORCPT ); Tue, 20 Mar 2012 05:33:55 -0400 In-Reply-To: <1332212514-22071-1-git-send-email-gxt@mprc.pku.edu.cn> Sender: linux-arch-owner@vger.kernel.org List-ID: To: Guan Xuetao Cc: dhowells@redhat.com, paul.gortmaker@windriver.com, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, arnd@arndb.de Guan Xuetao wrote: > Disintegrate asm/system.h for Unicore32. (Compilation successful) > The implementation details are not changed, but only splitted. > BTW, some codestyles are adjusted. > > Signed-off-by: David Howells > Signed-off-by: Guan Xuetao Aha! Much better. It mostly looks reasonable, apart from one thing. See the attached patch, which I'll roll in if you're happy with it. David --- From: David Howells Subject: [PATCH] Fix unicore xchg() to fail at build time with an unsupported pointer Fix unicore xchg() to fail at build time with an unsupported pointer rather then using panic(). Additionally, panic() should not be redeclared in this manner, but rather should be brought in by #inclusion of . Signed-off-by: David Howells --- arch/unicore32/include/asm/cmpxchg.h | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-) diff --git a/arch/unicore32/include/asm/cmpxchg.h b/arch/unicore32/include/asm/cmpxchg.h index 37c431d..f39a59d 100644 --- a/arch/unicore32/include/asm/cmpxchg.h +++ b/arch/unicore32/include/asm/cmpxchg.h @@ -10,7 +10,11 @@ #ifndef __UNICORE_CMPXCHG_H__ #define __UNICORE_CMPXCHG_H__ -extern void panic(const char *fmt, ...); +/* + * Generate a link failure on undefined symbol if the pointer points to a value + * of unsupported size. + */ +extern void __xchg_bad_pointer(void) static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size) @@ -31,8 +35,8 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, : "memory", "cc"); break; default: - panic("xchg: bad data size: ptr 0x%p, size %d\n", - ptr, size); + __xchg_bad_pointer(); + break; } return ret;