aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/async.c
diff options
context:
space:
mode:
authorLai Jiangshan <laijs@cn.fujitsu.com>2013-03-12 16:59:14 -0400
committerTejun Heo <tj@kernel.org>2013-03-12 16:59:14 -0400
commit362f2b098b188ede9c4350cc20e58040dbfa515e (patch)
tree17ff75cb57d281e46facf7704ae49d76dc29a3b7 /kernel/async.c
parentcc2a8b1a5595a435191fb197d92d1f3e193c9a6d (diff)
async: rename and redefine async_func_ptr
A function type is typically defined as typedef ret_type (*func)(args..) but async_func_ptr is not. Redefine it. Also rename async_func_ptr to async_func_t for _func_t suffix is more generic. Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Arjan van de Ven <arjan@linux.intel.com>
Diffstat (limited to 'kernel/async.c')
-rw-r--r--kernel/async.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/kernel/async.c b/kernel/async.c
index ab99c92f6b68..61f023ce0228 100644
--- a/kernel/async.c
+++ b/kernel/async.c
@@ -73,7 +73,7 @@ struct async_entry {
73 struct list_head global_list; 73 struct list_head global_list;
74 struct work_struct work; 74 struct work_struct work;
75 async_cookie_t cookie; 75 async_cookie_t cookie;
76 async_func_ptr *func; 76 async_func_t func;
77 void *data; 77 void *data;
78 struct async_domain *domain; 78 struct async_domain *domain;
79}; 79};
@@ -145,7 +145,7 @@ static void async_run_entry_fn(struct work_struct *work)
145 wake_up(&async_done); 145 wake_up(&async_done);
146} 146}
147 147
148static async_cookie_t __async_schedule(async_func_ptr *ptr, void *data, struct async_domain *domain) 148static async_cookie_t __async_schedule(async_func_t func, void *data, struct async_domain *domain)
149{ 149{
150 struct async_entry *entry; 150 struct async_entry *entry;
151 unsigned long flags; 151 unsigned long flags;
@@ -165,13 +165,13 @@ static async_cookie_t __async_schedule(async_func_ptr *ptr, void *data, struct a
165 spin_unlock_irqrestore(&async_lock, flags); 165 spin_unlock_irqrestore(&async_lock, flags);
166 166
167 /* low on memory.. run synchronously */ 167 /* low on memory.. run synchronously */
168 ptr(data, newcookie); 168 func(data, newcookie);
169 return newcookie; 169 return newcookie;
170 } 170 }
171 INIT_LIST_HEAD(&entry->domain_list); 171 INIT_LIST_HEAD(&entry->domain_list);
172 INIT_LIST_HEAD(&entry->global_list); 172 INIT_LIST_HEAD(&entry->global_list);
173 INIT_WORK(&entry->work, async_run_entry_fn); 173 INIT_WORK(&entry->work, async_run_entry_fn);
174 entry->func = ptr; 174 entry->func = func;
175 entry->data = data; 175 entry->data = data;
176 entry->domain = domain; 176 entry->domain = domain;
177 177
@@ -198,21 +198,21 @@ static async_cookie_t __async_schedule(async_func_ptr *ptr, void *data, struct a
198 198
199/** 199/**
200 * async_schedule - schedule a function for asynchronous execution 200 * async_schedule - schedule a function for asynchronous execution
201 * @ptr: function to execute asynchronously 201 * @func: function to execute asynchronously
202 * @data: data pointer to pass to the function 202 * @data: data pointer to pass to the function
203 * 203 *
204 * Returns an async_cookie_t that may be used for checkpointing later. 204 * Returns an async_cookie_t that may be used for checkpointing later.
205 * Note: This function may be called from atomic or non-atomic contexts. 205 * Note: This function may be called from atomic or non-atomic contexts.
206 */ 206 */
207async_cookie_t async_schedule(async_func_ptr *ptr, void *data) 207async_cookie_t async_schedule(async_func_t func, void *data)
208{ 208{
209 return __async_schedule(ptr, data, &async_dfl_domain); 209 return __async_schedule(func, data, &async_dfl_domain);
210} 210}
211EXPORT_SYMBOL_GPL(async_schedule); 211EXPORT_SYMBOL_GPL(async_schedule);
212 212
213/** 213/**
214 * async_schedule_domain - schedule a function for asynchronous execution within a certain domain 214 * async_schedule_domain - schedule a function for asynchronous execution within a certain domain
215 * @ptr: function to execute asynchronously 215 * @func: function to execute asynchronously
216 * @data: data pointer to pass to the function 216 * @data: data pointer to pass to the function
217 * @domain: the domain 217 * @domain: the domain
218 * 218 *
@@ -222,10 +222,10 @@ EXPORT_SYMBOL_GPL(async_schedule);
222 * synchronization domain is specified via @domain. Note: This function 222 * synchronization domain is specified via @domain. Note: This function
223 * may be called from atomic or non-atomic contexts. 223 * may be called from atomic or non-atomic contexts.
224 */ 224 */
225async_cookie_t async_schedule_domain(async_func_ptr *ptr, void *data, 225async_cookie_t async_schedule_domain(async_func_t func, void *data,
226 struct async_domain *domain) 226 struct async_domain *domain)
227{ 227{
228 return __async_schedule(ptr, data, domain); 228 return __async_schedule(func, data, domain);
229} 229}
230EXPORT_SYMBOL_GPL(async_schedule_domain); 230EXPORT_SYMBOL_GPL(async_schedule_domain);
231 231