diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2008-03-29 00:39:58 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-03-29 00:39:58 +0100 |
commit | 095d911201b0741e7f326d269a005dba55985acf (patch) | |
tree | 7bb8001d8230214e790d1705b11c8f8afa6cc65e /lib | |
parent | [SOCK]: Drop inuse pcounter from struct proto (v2). (diff) | |
download | linux-095d911201b0741e7f326d269a005dba55985acf.tar.xz linux-095d911201b0741e7f326d269a005dba55985acf.zip |
[LIB]: Drop the pcounter itself.
The knock-out. The pcounter abstraction is not used any longer in the
kernel.
Not sure whether this should go via netdev tree, but as far as I
remember it was added via this one, and besides Eric thinks that
Andrew shouldn't mind this.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Makefile | 1 | ||||
-rw-r--r-- | lib/pcounter.c | 58 |
2 files changed, 0 insertions, 59 deletions
diff --git a/lib/Makefile b/lib/Makefile index 23de261a4c83..4d059d469554 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -61,7 +61,6 @@ obj-$(CONFIG_TEXTSEARCH_KMP) += ts_kmp.o obj-$(CONFIG_TEXTSEARCH_BM) += ts_bm.o obj-$(CONFIG_TEXTSEARCH_FSM) += ts_fsm.o obj-$(CONFIG_SMP) += percpu_counter.o -obj-$(CONFIG_SMP) += pcounter.o obj-$(CONFIG_AUDIT_GENERIC) += audit.o obj-$(CONFIG_SWIOTLB) += swiotlb.o diff --git a/lib/pcounter.c b/lib/pcounter.c deleted file mode 100644 index 9b56807da93b..000000000000 --- a/lib/pcounter.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Define default pcounter functions - * Note that often used pcounters use dedicated functions to get a speed increase. - * (see DEFINE_PCOUNTER/REF_PCOUNTER_MEMBER) - */ - -#include <linux/module.h> -#include <linux/pcounter.h> -#include <linux/smp.h> -#include <linux/cpumask.h> - -static void pcounter_dyn_add(struct pcounter *self, int inc) -{ - per_cpu_ptr(self->per_cpu_values, smp_processor_id())[0] += inc; -} - -static int pcounter_dyn_getval(const struct pcounter *self, int cpu) -{ - return per_cpu_ptr(self->per_cpu_values, cpu)[0]; -} - -int pcounter_getval(const struct pcounter *self) -{ - int res = 0, cpu; - - for_each_possible_cpu(cpu) - res += self->getval(self, cpu); - - return res; -} -EXPORT_SYMBOL_GPL(pcounter_getval); - -int pcounter_alloc(struct pcounter *self) -{ - int rc = 0; - if (self->add == NULL) { - self->per_cpu_values = alloc_percpu(int); - if (self->per_cpu_values != NULL) { - self->add = pcounter_dyn_add; - self->getval = pcounter_dyn_getval; - } else - rc = 1; - } - return rc; -} -EXPORT_SYMBOL_GPL(pcounter_alloc); - -void pcounter_free(struct pcounter *self) -{ - if (self->per_cpu_values != NULL) { - free_percpu(self->per_cpu_values); - self->per_cpu_values = NULL; - self->getval = NULL; - self->add = NULL; - } -} -EXPORT_SYMBOL_GPL(pcounter_free); - |