]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - lib/gcd.c
Merge remote-tracking branch 'remotes/stable/linux-4.4.y' into karo-tx6-mainline
[karo-tx-linux.git] / lib / gcd.c
1 #include <linux/kernel.h>
2 #include <linux/gcd.h>
3 #include <linux/export.h>
4
5 /* Greatest common divisor */
6 unsigned long gcd(unsigned long a, unsigned long b)
7 {
8         unsigned long r;
9
10         if (a < b)
11                 swap(a, b);
12
13         if (!b)
14                 return a;
15         while ((r = a % b) != 0) {
16                 a = b;
17                 b = r;
18         }
19         return b;
20 }
21 EXPORT_SYMBOL_GPL(gcd);