aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/cpumask.h11
-rw-r--r--lib/Makefile2
-rw-r--r--lib/cpumask.c11
3 files changed, 19 insertions, 5 deletions
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
index 60e56c6e03dd..9b702fd24a72 100644
--- a/include/linux/cpumask.h
+++ b/include/linux/cpumask.h
@@ -212,11 +212,12 @@ static inline void __cpus_shift_left(cpumask_t *dstp,
212 bitmap_shift_left(dstp->bits, srcp->bits, n, nbits); 212 bitmap_shift_left(dstp->bits, srcp->bits, n, nbits);
213} 213}
214 214
215#define first_cpu(src) __first_cpu(&(src), NR_CPUS) 215#ifdef CONFIG_SMP
216static inline int __first_cpu(const cpumask_t *srcp, int nbits) 216int __first_cpu(const cpumask_t *srcp);
217{ 217#define first_cpu(src) __first_cpu(&(src))
218 return min_t(int, nbits, find_first_bit(srcp->bits, nbits)); 218#else
219} 219#define first_cpu(src) 0
220#endif
220 221
221#define next_cpu(n, src) __next_cpu((n), &(src), NR_CPUS) 222#define next_cpu(n, src) __next_cpu((n), &(src), NR_CPUS)
222static inline int __next_cpu(int n, const cpumask_t *srcp, int nbits) 223static inline int __next_cpu(int n, const cpumask_t *srcp, int nbits)
diff --git a/lib/Makefile b/lib/Makefile
index 648b2c1242fd..f827e3c24ec0 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -7,6 +7,8 @@ lib-y := errno.o ctype.o string.o vsprintf.o cmdline.o \
7 idr.o div64.o int_sqrt.o bitmap.o extable.o prio_tree.o \ 7 idr.o div64.o int_sqrt.o bitmap.o extable.o prio_tree.o \
8 sha1.o 8 sha1.o
9 9
10lib-$(CONFIG_SMP) += cpumask.o
11
10lib-y += kobject.o kref.o kobject_uevent.o klist.o 12lib-y += kobject.o kref.o kobject_uevent.o klist.o
11 13
12obj-y += sort.o parser.o halfmd4.o iomap_copy.o 14obj-y += sort.o parser.o halfmd4.o iomap_copy.o
diff --git a/lib/cpumask.c b/lib/cpumask.c
new file mode 100644
index 000000000000..1560d97390dd
--- /dev/null
+++ b/lib/cpumask.c
@@ -0,0 +1,11 @@
1#include <linux/kernel.h>
2#include <linux/bitops.h>
3#include <linux/cpumask.h>
4#include <linux/module.h>
5
6int __first_cpu(const cpumask_t *srcp)
7{
8 return min_t(int, NR_CPUS, find_first_bit(srcp->bits, NR_CPUS));
9}
10EXPORT_SYMBOL(__first_cpu);
11