On Thu, 4 Jun 2009 16:39:03 +0200 Florian Fainelli <florian@xxxxxxxxxxx> wrote: > This patch adds lib/gcd.c which contains a greatest > common divider implementation taken from > sound/core/pcm_timer.c > > Changes from v1: > - fixed indentation > - use EXPORT_SYMBOL_GPL instead of EXPORT_SYMBOL as > suggested by Ralf Baechle I'm not sure about the _GPL change really - it's just a little helper function. But whatever - I'm trained to avoid that issue. I made some changes: From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> - use swap() (pointed out by Joe) - Just add gcd.o to lib-y, reove Kconfig changes. Cc: David S. Miller <davem@xxxxxxxxxxxxx> Cc: Florian Fainelli <florian@xxxxxxxxxxx> Cc: Julius Volz <juliusv@xxxxxxxxxx> Cc: Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx> Cc: Simon Horman <horms@xxxxxxxxxxxx> Cc: Takashi Iwai <tiwai@xxxxxxx> Cc: Joe Perches <joe@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- lib/Kconfig | 3 --- lib/Makefile | 3 +-- lib/gcd.c | 8 +++----- 3 files changed, 4 insertions(+), 10 deletions(-) diff -puN lib/Kconfig~lib-add-lib-gcdc-fix lib/Kconfig --- a/lib/Kconfig~lib-add-lib-gcdc-fix +++ a/lib/Kconfig @@ -10,9 +10,6 @@ menu "Library routines" config BITREVERSE tristate -config GCD - bool - config GENERIC_FIND_FIRST_BIT bool diff -puN lib/Makefile~lib-add-lib-gcdc-fix lib/Makefile --- a/lib/Makefile~lib-add-lib-gcdc-fix +++ a/lib/Makefile @@ -12,7 +12,7 @@ lib-y := ctype.o string.o vsprintf.o cmd idr.o int_sqrt.o extable.o prio_tree.o \ sha1.o irq_regs.o reciprocal_div.o argv_split.o \ proportions.o prio_heap.o ratelimit.o show_mem.o \ - is_single_threaded.o plist.o decompress.o + is_single_threaded.o plist.o decompress.o gcd.o lib-$(CONFIG_MMU) += ioremap.o lib-$(CONFIG_SMP) += cpumask.o @@ -57,7 +57,6 @@ obj-$(CONFIG_CRC_ITU_T) += crc-itu-t.o obj-$(CONFIG_CRC32) += crc32.o obj-$(CONFIG_CRC7) += crc7.o obj-$(CONFIG_LIBCRC32C) += libcrc32c.o -obj-$(CONFIG_GCD) += gcd.o obj-$(CONFIG_GENERIC_ALLOCATOR) += genalloc.o obj-$(CONFIG_ZLIB_INFLATE) += zlib_inflate/ diff -puN lib/gcd.c~lib-add-lib-gcdc-fix lib/gcd.c --- a/lib/gcd.c~lib-add-lib-gcdc-fix +++ a/lib/gcd.c @@ -1,3 +1,4 @@ +#include <linux/kernel.h> #include <linux/gcd.h> #include <linux/module.h> @@ -6,11 +7,8 @@ unsigned long gcd(unsigned long a, unsig { unsigned long r; - if (a < b) { - r = a; - a = b; - b = r; - } + if (a < b) + swap(a, b); while ((r = a % b) != 0) { a = b; b = r; _