projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix build error in <linux/irq.h>
[firefly-linux-kernel-4.4.55.git]
/
lib
/
kref.c
diff --git
a/lib/kref.c
b/lib/kref.c
index a6dc3ec328e05fc8da4d69d185d13a5758ac0464..9ecd6e86561034f2a097bcc027765704e124f7df 100644
(file)
--- a/
lib/kref.c
+++ b/
lib/kref.c
@@
-14,14
+14,24
@@
#include <linux/kref.h>
#include <linux/module.h>
#include <linux/kref.h>
#include <linux/module.h>
+/**
+ * kref_set - initialize object and set refcount to requested number.
+ * @kref: object in question.
+ * @num: initial reference counter
+ */
+void kref_set(struct kref *kref, int num)
+{
+ atomic_set(&kref->refcount, num);
+ smp_mb();
+}
+
/**
* kref_init - initialize object.
* @kref: object in question.
*/
void kref_init(struct kref *kref)
{
/**
* kref_init - initialize object.
* @kref: object in question.
*/
void kref_init(struct kref *kref)
{
- atomic_set(&kref->refcount,1);
- smp_mb();
+ kref_set(kref, 1);
}
/**
}
/**
@@
-61,6
+71,7
@@
int kref_put(struct kref *kref, void (*release)(struct kref *kref))
return 0;
}
return 0;
}
+EXPORT_SYMBOL(kref_set);
EXPORT_SYMBOL(kref_init);
EXPORT_SYMBOL(kref_get);
EXPORT_SYMBOL(kref_put);
EXPORT_SYMBOL(kref_init);
EXPORT_SYMBOL(kref_get);
EXPORT_SYMBOL(kref_put);