|
@@ -21,8 +21,6 @@
|
|
|
#include <linux/percpu.h>
|
|
|
#include <asm/module.h>
|
|
|
|
|
|
-#include <trace/events/module.h>
|
|
|
-
|
|
|
/* Not Yet Implemented */
|
|
|
#define MODULE_SUPPORTED_DEVICE(name)
|
|
|
|
|
@@ -452,33 +450,11 @@ void symbol_put_addr(void *addr);
|
|
|
|
|
|
/* Sometimes we know we already have a refcount, and it's easier not
|
|
|
to handle the error case (which only happens with rmmod --wait). */
|
|
|
-static inline void __module_get(struct module *module)
|
|
|
-{
|
|
|
- if (module) {
|
|
|
- preempt_disable();
|
|
|
- __this_cpu_inc(module->refptr->incs);
|
|
|
- trace_module_get(module, _THIS_IP_);
|
|
|
- preempt_enable();
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-static inline int try_module_get(struct module *module)
|
|
|
-{
|
|
|
- int ret = 1;
|
|
|
-
|
|
|
- if (module) {
|
|
|
- preempt_disable();
|
|
|
+extern void __module_get(struct module *module);
|
|
|
|
|
|
- if (likely(module_is_live(module))) {
|
|
|
- __this_cpu_inc(module->refptr->incs);
|
|
|
- trace_module_get(module, _THIS_IP_);
|
|
|
- } else
|
|
|
- ret = 0;
|
|
|
-
|
|
|
- preempt_enable();
|
|
|
- }
|
|
|
- return ret;
|
|
|
-}
|
|
|
+/* This is the Right Way to get a module: if it fails, it's being removed,
|
|
|
+ * so pretend it's not there. */
|
|
|
+extern bool try_module_get(struct module *module);
|
|
|
|
|
|
extern void module_put(struct module *module);
|
|
|
|