lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1307955422.1878.3.camel@epip-laptop>
Date:	Mon, 13 Jun 2011 16:57:02 +0800
From:	Guan Xuetao <gxt@...c.pku.edu.cn>
To:	Akinobu Mita <akinobu.mita@...il.com>
Cc:	arnd@...db.de, linux-kernel@...r.kernel.org,
	linux-arch@...r.kernel.org, greg@...ah.com
Subject: Re: [PATCH] unicore32: fix build error for find bitops

On Fri, 2011-06-10 at 13:22 +0900, Akinobu Mita wrote:
> 2011/6/10 Guan Xuetao <gxt@...c.pku.edu.cn>:
> > On Thu, 2011-06-09 at 23:05 +0900, Akinobu Mita wrote:
> >> 2011/6/9 Akinobu Mita <akinobu.mita@...il.com>:
> >> > 2011/6/9 GuanXuetao <gxt@...c.pku.edu.cn>:
> >> >> From: Guan Xuetao <gxt@...c.pku.edu.cn>
> >> >>
> >> >> Remove the __uc32_ prefix in find bitops functions.
> >> >> see commit <19de85ef574c3a2182e3ccad9581805052f14946>
> >> >>  bitops: add #ifndef for each of find bitops
> >> >>
> >> >> Signed-off-by: Guan Xuetao <gxt@...c.pku.edu.cn>
> >> >> Cc: Akinobu Mita <akinobu.mita@...il.com>
> >> >> ---
> >> >>  arch/unicore32/include/asm/bitops.h |    6 ------
> >> >>  arch/unicore32/kernel/ksyms.c       |    4 ++--
> >> >>  arch/unicore32/lib/findbit.S        |   14 ++++++++------
> >> >>  3 files changed, 10 insertions(+), 14 deletions(-)
> >> >>
> >> >> diff --git a/arch/unicore32/include/asm/bitops.h b/arch/unicore32/include/asm/bitops.h
> >> >> index 1628a63..a9653f0 100644
> >> >> --- a/arch/unicore32/include/asm/bitops.h
> >> >> +++ b/arch/unicore32/include/asm/bitops.h
> >> >> @@ -13,12 +13,6 @@
> >> >>  #ifndef __UNICORE_BITOPS_H__
> >> >>  #define __UNICORE_BITOPS_H__
> >> >>
> >> >> -#define find_next_bit          __uc32_find_next_bit
> >> >> -#define find_next_zero_bit     __uc32_find_next_zero_bit
> >> >> -
> >> >> -#define find_first_bit         __uc32_find_first_bit
> >> >> -#define find_first_zero_bit    __uc32_find_first_zero_bit
> >> >> -
> >> >
> >> > Is this patch really fix the build error?
> >> >
> >> > If these find_*_bit macros are removed, vmlinux will have multiple
> >> > definisions of find_*_bit. Because lib/find_next_bit.c is built
> >> > unconditionally after the commit 63e424c84429903c92a0f1e9654c31ccaf6694d0
> >> > ("arch: remove CONFIG_GENERIC_FIND_{NEXT_BIT,BIT_LE,LAST_BIT}".
> >>
> >> The attached patch hopefully fix the build error but it is untested
> >> because I can't find crosstool for unicore32. So could you apply
> >> this patch on top of your patch and check whether it fixes?
> >
> > Thanks Akinobu.
> > I want to avoid the duplication of the 'extern' function definitions in
> > asm-generic header and arch-specific header.
> 
> OK then adding the following four lines after asm-generic/bitops.h
> inclusion should fix the problem.
> 
> #define find_next_bit find_next_bit
> #define find_next_zero_bit find_next_zero_bit
> #define find_first_bit find_first_bit
> #define find_first_zero_bit find_first_zero_bit

Thanks, please review following patch:
>From 660882536a3c7c77e0f8d817dabcbbecab20367d Mon Sep 17 00:00:00 2001
From: Guan Xuetao <gxt@...c.pku.edu.cn>
Date: Mon, 13 Jun 2011 11:44:49 +0800
Subject: [PATCH] unicore32: fix build error for find bitops

Remove the __uc32_ prefix in find bitops functions.
Move find_* macros behind asm-generic/bitops.h inclusion.
see commit <19de85ef574c3a2182e3ccad9581805052f14946>
  bitops: add #ifndef for each of find bitops
also see commit <63e424c84429903c92a0f1e9654c31ccaf6694d0>
  arch: remove CONFIG_GENERIC_FIND_{NEXT_BIT,BIT_LE,LAST_BIT}

Signed-off-by: Guan Xuetao <gxt@...c.pku.edu.cn>
Cc: Akinobu Mita <akinobu.mita@...il.com>
---
 arch/unicore32/include/asm/bitops.h |   12 ++++++------
 arch/unicore32/kernel/ksyms.c       |    4 ++--
 arch/unicore32/lib/findbit.S        |   14 ++++++++------
 3 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/arch/unicore32/include/asm/bitops.h
b/arch/unicore32/include/asm/bitops.h
index 1628a63..401f597 100644
--- a/arch/unicore32/include/asm/bitops.h
+++ b/arch/unicore32/include/asm/bitops.h
@@ -13,12 +13,6 @@
 #ifndef __UNICORE_BITOPS_H__
 #define __UNICORE_BITOPS_H__
 
-#define find_next_bit		__uc32_find_next_bit
-#define find_next_zero_bit	__uc32_find_next_zero_bit
-
-#define find_first_bit		__uc32_find_first_bit
-#define find_first_zero_bit	__uc32_find_first_zero_bit
-
 #define _ASM_GENERIC_BITOPS_FLS_H_
 #define _ASM_GENERIC_BITOPS___FLS_H_
 #define _ASM_GENERIC_BITOPS_FFS_H_
@@ -44,4 +38,10 @@ static inline int fls(int x)
 
 #include <asm-generic/bitops.h>
 
+/* following definitions: to avoid using codes in lib/find_*.c */
+#define find_next_bit		find_next_bit
+#define find_next_zero_bit	find_next_zero_bit
+#define find_first_bit		find_first_bit
+#define find_first_zero_bit	find_first_zero_bit
+
 #endif /* __UNICORE_BITOPS_H__ */
diff --git a/arch/unicore32/kernel/ksyms.c
b/arch/unicore32/kernel/ksyms.c
index a897080..d98bd81 100644
--- a/arch/unicore32/kernel/ksyms.c
+++ b/arch/unicore32/kernel/ksyms.c
@@ -24,8 +24,8 @@
 
 #include "ksyms.h"
 
-EXPORT_SYMBOL(__uc32_find_next_zero_bit);
-EXPORT_SYMBOL(__uc32_find_next_bit);
+EXPORT_SYMBOL(find_next_zero_bit);
+EXPORT_SYMBOL(find_next_bit);
 
 EXPORT_SYMBOL(__backtrace);
 
diff --git a/arch/unicore32/lib/findbit.S b/arch/unicore32/lib/findbit.S
index c360ce9..c777462 100644
--- a/arch/unicore32/lib/findbit.S
+++ b/arch/unicore32/lib/findbit.S
@@ -17,7 +17,7 @@
  * Purpose  : Find a 'zero' bit
  * Prototype: int find_first_zero_bit(void *addr, unsigned int maxbit);
  */
-__uc32_find_first_zero_bit:
+ENTRY(find_first_zero_bit)
 		cxor.a	r1, #0
 		beq	3f
 		mov	r2, #0
@@ -29,13 +29,14 @@ __uc32_find_first_zero_bit:
 		bub	1b
 3:		mov	r0, r1			@ no free bits
 		mov	pc, lr
+ENDPROC(find_first_zero_bit)
 
 /*
  * Purpose  : Find next 'zero' bit
  * Prototype: int find_next_zero_bit
  *		(void *addr, unsigned int maxbit, int offset)
  */
-ENTRY(__uc32_find_next_zero_bit)
+ENTRY(find_next_zero_bit)
 		cxor.a	r1, #0
 		beq	3b
 		and.a	ip, r2, #7
@@ -47,14 +48,14 @@ ENTRY(__uc32_find_next_zero_bit)
 		or	r2, r2, #7		@ if zero, then no bits here
 		add	r2, r2, #1		@ align bit pointer
 		b	2b			@ loop for next bit
-ENDPROC(__uc32_find_next_zero_bit)
+ENDPROC(find_next_zero_bit)
 
 /*
  * Purpose  : Find a 'one' bit
  * Prototype: int find_first_bit
  *		(const unsigned long *addr, unsigned int maxbit);
  */
-__uc32_find_first_bit:
+ENTRY(find_first_bit)
 		cxor.a	r1, #0
 		beq	3f
 		mov	r2, #0
@@ -66,13 +67,14 @@ __uc32_find_first_bit:
 		bub	1b
 3:		mov	r0, r1			@ no free bits
 		mov	pc, lr
+ENDPROC(find_first_bit)
 
 /*
  * Purpose  : Find next 'one' bit
  * Prototype: int find_next_zero_bit
  *		(void *addr, unsigned int maxbit, int offset)
  */
-ENTRY(__uc32_find_next_bit)
+ENTRY(find_next_bit)
 		cxor.a	r1, #0
 		beq	3b
 		and.a	ip, r2, #7
@@ -83,7 +85,7 @@ ENTRY(__uc32_find_next_bit)
 		or	r2, r2, #7		@ if zero, then no bits here
 		add	r2, r2, #1		@ align bit pointer
 		b	2b			@ loop for next bit
-ENDPROC(__uc32_find_next_bit)
+ENDPROC(find_next_bit)
 
 /*
  * One or more bits in the LSB of r3 are assumed to be set.
-- 
1.6.2.2



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ