Re: [PATCH] m68k: remove arch specific non-optimized memcmp()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/02/11 10:57, Greg Ungerer wrote:
m68k: remove arch specific non-optimized memcmp()

The m68k arch implements its own memcmp() function. It is not optimized
in any way (it is the most strait forward coding of memcmp you can get).
Remove it and use the kernels standard memcmp() implementation.

This also goes part of the way to fixing a regression caused by commit
ea61bc461d09e8d331a307916530aaae808c72a2 ("m68k/m68knommu: merge MMU and
non-MMU string.h"), which breaks non-coldfire non-mmu builds (which is
the 68x328 and 68360 families). They currently have no memcmp() function
defined, since there is none in the m68knommu/lib functions.

Signed-off-by: Greg Ungerer<gerg@xxxxxxxxxxx>

Does anyone have any comments on this?

I would like to push to Linus very soon now (so in the current
2.6.38-rc). It seems like a clean fix on its own, but in particular
it helps me fix the problems caused by commit ea61bc461d09e8d331a307916530aaae808c72a2
("m68k/m68knommu: merge MMU and non-MMU string.h"

I have compile and run tested on m68knommu targets, and compile
tested on m68k targets.

Regards
Greg


---
  arch/m68k/include/asm/string.h |    4 +---
  arch/m68k/lib/string.c         |   11 -----------
  2 files changed, 1 insertions(+), 14 deletions(-)

diff --git a/arch/m68k/include/asm/string.h b/arch/m68k/include/asm/string.h
index 65b1312..ffc3c3f 100644
--- a/arch/m68k/include/asm/string.h
+++ b/arch/m68k/include/asm/string.h
@@ -102,11 +102,9 @@ static inline int strcmp(const char *cs, const char *ct)

  #define __HAVE_ARCH_MEMMOVE
  extern void *memmove(void *, const void *, __kernel_size_t);
+#endif /* CONFIG_COLDFIRE */

-#define __HAVE_ARCH_MEMCMP
-extern int memcmp(const void *, const void *, __kernel_size_t);
  #define memcmp(d, s, n) __builtin_memcmp(d, s, n)
-#endif /* CONFIG_COLDFIRE */

  #define __HAVE_ARCH_MEMSET
  extern void *memset(void *, int, __kernel_size_t);
diff --git a/arch/m68k/lib/string.c b/arch/m68k/lib/string.c
index 4253f87..d399c5f 100644
--- a/arch/m68k/lib/string.c
+++ b/arch/m68k/lib/string.c
@@ -243,14 +243,3 @@ void *memmove(void *dest, const void *src, size_t n)
  	return xdest;
  }
  EXPORT_SYMBOL(memmove);
-
-int memcmp(const void *cs, const void *ct, size_t count)
-{
-	const unsigned char *su1, *su2;
-
-	for (su1 = cs, su2 = ct; count>  0; ++su1, ++su2, count--)
-		if (*su1 != *su2)
-			return *su1<  *su2 ? -1 : +1;
-	return 0;
-}
-EXPORT_SYMBOL(memcmp);



--
------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     gerg@xxxxxxxxxxxx
SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
8 Gardner Close                             FAX:         +61 7 3217 5323
Milton, QLD, 4064, Australia                WEB: http://www.SnapGear.com
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux