0001
0002 #include <linux/compiler.h>
0003 #include <linux/gcd.h>
0004 #include <linux/export.h>
0005 #include <linux/lcm.h>
0006
0007
0008 unsigned long lcm(unsigned long a, unsigned long b)
0009 {
0010 if (a && b)
0011 return (a / gcd(a, b)) * b;
0012 else
0013 return 0;
0014 }
0015 EXPORT_SYMBOL_GPL(lcm);
0016
0017 unsigned long lcm_not_zero(unsigned long a, unsigned long b)
0018 {
0019 unsigned long l = lcm(a, b);
0020
0021 if (l)
0022 return l;
0023
0024 return (b ? : a);
0025 }
0026 EXPORT_SYMBOL_GPL(lcm_not_zero);