提交 ae90dd5d 编写于 作者: D Dave Jones

Move workqueue exports to where the functions are defined.

Signed-off-by: NDave Jones <davej@redhat.com>
上级 ffac80e9
...@@ -114,6 +114,7 @@ int fastcall queue_work(struct workqueue_struct *wq, struct work_struct *work) ...@@ -114,6 +114,7 @@ int fastcall queue_work(struct workqueue_struct *wq, struct work_struct *work)
put_cpu(); put_cpu();
return ret; return ret;
} }
EXPORT_SYMBOL_GPL(queue_work);
static void delayed_work_timer_fn(unsigned long __data) static void delayed_work_timer_fn(unsigned long __data)
{ {
...@@ -147,6 +148,7 @@ int fastcall queue_delayed_work(struct workqueue_struct *wq, ...@@ -147,6 +148,7 @@ int fastcall queue_delayed_work(struct workqueue_struct *wq,
} }
return ret; return ret;
} }
EXPORT_SYMBOL_GPL(queue_delayed_work);
int queue_delayed_work_on(int cpu, struct workqueue_struct *wq, int queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
struct work_struct *work, unsigned long delay) struct work_struct *work, unsigned long delay)
...@@ -168,6 +170,7 @@ int queue_delayed_work_on(int cpu, struct workqueue_struct *wq, ...@@ -168,6 +170,7 @@ int queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
} }
return ret; return ret;
} }
EXPORT_SYMBOL_GPL(queue_delayed_work_on);
static void run_workqueue(struct cpu_workqueue_struct *cwq) static void run_workqueue(struct cpu_workqueue_struct *cwq)
{ {
...@@ -302,6 +305,7 @@ void fastcall flush_workqueue(struct workqueue_struct *wq) ...@@ -302,6 +305,7 @@ void fastcall flush_workqueue(struct workqueue_struct *wq)
unlock_cpu_hotplug(); unlock_cpu_hotplug();
} }
} }
EXPORT_SYMBOL_GPL(flush_workqueue);
static struct task_struct *create_workqueue_thread(struct workqueue_struct *wq, static struct task_struct *create_workqueue_thread(struct workqueue_struct *wq,
int cpu) int cpu)
...@@ -379,6 +383,7 @@ struct workqueue_struct *__create_workqueue(const char *name, ...@@ -379,6 +383,7 @@ struct workqueue_struct *__create_workqueue(const char *name,
} }
return wq; return wq;
} }
EXPORT_SYMBOL_GPL(__create_workqueue);
static void cleanup_workqueue_thread(struct workqueue_struct *wq, int cpu) static void cleanup_workqueue_thread(struct workqueue_struct *wq, int cpu)
{ {
...@@ -416,6 +421,7 @@ void destroy_workqueue(struct workqueue_struct *wq) ...@@ -416,6 +421,7 @@ void destroy_workqueue(struct workqueue_struct *wq)
free_percpu(wq->cpu_wq); free_percpu(wq->cpu_wq);
kfree(wq); kfree(wq);
} }
EXPORT_SYMBOL_GPL(destroy_workqueue);
static struct workqueue_struct *keventd_wq; static struct workqueue_struct *keventd_wq;
...@@ -423,17 +429,20 @@ int fastcall schedule_work(struct work_struct *work) ...@@ -423,17 +429,20 @@ int fastcall schedule_work(struct work_struct *work)
{ {
return queue_work(keventd_wq, work); return queue_work(keventd_wq, work);
} }
EXPORT_SYMBOL(schedule_work);
int fastcall schedule_delayed_work(struct work_struct *work, unsigned long delay) int fastcall schedule_delayed_work(struct work_struct *work, unsigned long delay)
{ {
return queue_delayed_work(keventd_wq, work, delay); return queue_delayed_work(keventd_wq, work, delay);
} }
EXPORT_SYMBOL(schedule_delayed_work);
int schedule_delayed_work_on(int cpu, int schedule_delayed_work_on(int cpu,
struct work_struct *work, unsigned long delay) struct work_struct *work, unsigned long delay)
{ {
return queue_delayed_work_on(cpu, keventd_wq, work, delay); return queue_delayed_work_on(cpu, keventd_wq, work, delay);
} }
EXPORT_SYMBOL(schedule_delayed_work_on);
/** /**
* schedule_on_each_cpu - call a function on each online CPU from keventd * schedule_on_each_cpu - call a function on each online CPU from keventd
...@@ -470,6 +479,7 @@ void flush_scheduled_work(void) ...@@ -470,6 +479,7 @@ void flush_scheduled_work(void)
{ {
flush_workqueue(keventd_wq); flush_workqueue(keventd_wq);
} }
EXPORT_SYMBOL(flush_scheduled_work);
/** /**
* cancel_rearming_delayed_workqueue - reliably kill off a delayed * cancel_rearming_delayed_workqueue - reliably kill off a delayed
...@@ -626,14 +636,3 @@ void init_workqueues(void) ...@@ -626,14 +636,3 @@ void init_workqueues(void)
BUG_ON(!keventd_wq); BUG_ON(!keventd_wq);
} }
EXPORT_SYMBOL_GPL(__create_workqueue);
EXPORT_SYMBOL_GPL(queue_work);
EXPORT_SYMBOL_GPL(queue_delayed_work);
EXPORT_SYMBOL_GPL(queue_delayed_work_on);
EXPORT_SYMBOL_GPL(flush_workqueue);
EXPORT_SYMBOL_GPL(destroy_workqueue);
EXPORT_SYMBOL(schedule_work);
EXPORT_SYMBOL(schedule_delayed_work);
EXPORT_SYMBOL(schedule_delayed_work_on);
EXPORT_SYMBOL(flush_scheduled_work);
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册