diff options
| -rw-r--r-- | include/linux/kthread.h | 1 | ||||
| -rw-r--r-- | kernel/kthread.c | 24 |
2 files changed, 2 insertions, 23 deletions
diff --git a/include/linux/kthread.h b/include/linux/kthread.h index 7cce5dfa092f..1c65e7a9f186 100644 --- a/include/linux/kthread.h +++ b/include/linux/kthread.h | |||
| @@ -28,7 +28,6 @@ struct task_struct *kthread_create(int (*threadfn)(void *data), | |||
| 28 | 28 | ||
| 29 | void kthread_bind(struct task_struct *k, unsigned int cpu); | 29 | void kthread_bind(struct task_struct *k, unsigned int cpu); |
| 30 | int kthread_stop(struct task_struct *k); | 30 | int kthread_stop(struct task_struct *k); |
| 31 | int kthread_stop_sem(struct task_struct *k, struct semaphore *s); | ||
| 32 | int kthread_should_stop(void); | 31 | int kthread_should_stop(void); |
| 33 | 32 | ||
| 34 | #endif /* _LINUX_KTHREAD_H */ | 33 | #endif /* _LINUX_KTHREAD_H */ |
diff --git a/kernel/kthread.c b/kernel/kthread.c index 24be714b04c7..4f9c60ef95e8 100644 --- a/kernel/kthread.c +++ b/kernel/kthread.c | |||
| @@ -216,23 +216,6 @@ EXPORT_SYMBOL(kthread_bind); | |||
| 216 | */ | 216 | */ |
| 217 | int kthread_stop(struct task_struct *k) | 217 | int kthread_stop(struct task_struct *k) |
| 218 | { | 218 | { |
| 219 | return kthread_stop_sem(k, NULL); | ||
| 220 | } | ||
| 221 | EXPORT_SYMBOL(kthread_stop); | ||
| 222 | |||
| 223 | /** | ||
| 224 | * kthread_stop_sem - stop a thread created by kthread_create(). | ||
| 225 | * @k: thread created by kthread_create(). | ||
| 226 | * @s: semaphore that @k waits on while idle. | ||
| 227 | * | ||
| 228 | * Does essentially the same thing as kthread_stop() above, but wakes | ||
| 229 | * @k by calling up(@s). | ||
| 230 | * | ||
| 231 | * Returns the result of threadfn(), or %-EINTR if wake_up_process() | ||
| 232 | * was never called. | ||
| 233 | */ | ||
| 234 | int kthread_stop_sem(struct task_struct *k, struct semaphore *s) | ||
| 235 | { | ||
| 236 | int ret; | 219 | int ret; |
| 237 | 220 | ||
| 238 | mutex_lock(&kthread_stop_lock); | 221 | mutex_lock(&kthread_stop_lock); |
| @@ -246,10 +229,7 @@ int kthread_stop_sem(struct task_struct *k, struct semaphore *s) | |||
| 246 | 229 | ||
| 247 | /* Now set kthread_should_stop() to true, and wake it up. */ | 230 | /* Now set kthread_should_stop() to true, and wake it up. */ |
| 248 | kthread_stop_info.k = k; | 231 | kthread_stop_info.k = k; |
| 249 | if (s) | 232 | wake_up_process(k); |
| 250 | up(s); | ||
| 251 | else | ||
| 252 | wake_up_process(k); | ||
| 253 | put_task_struct(k); | 233 | put_task_struct(k); |
| 254 | 234 | ||
| 255 | /* Once it dies, reset stop ptr, gather result and we're done. */ | 235 | /* Once it dies, reset stop ptr, gather result and we're done. */ |
| @@ -260,7 +240,7 @@ int kthread_stop_sem(struct task_struct *k, struct semaphore *s) | |||
| 260 | 240 | ||
| 261 | return ret; | 241 | return ret; |
| 262 | } | 242 | } |
| 263 | EXPORT_SYMBOL(kthread_stop_sem); | 243 | EXPORT_SYMBOL(kthread_stop); |
| 264 | 244 | ||
| 265 | static __init int helper_init(void) | 245 | static __init int helper_init(void) |
| 266 | { | 246 | { |
