diff options
Diffstat (limited to 'lib/is_single_threaded.c')
| -rw-r--r-- | lib/is_single_threaded.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/is_single_threaded.c b/lib/is_single_threaded.c index bd2bea963364..391fd23976a2 100644 --- a/lib/is_single_threaded.c +++ b/lib/is_single_threaded.c | |||
| @@ -36,8 +36,7 @@ bool current_is_single_threaded(void) | |||
| 36 | if (unlikely(p == task->group_leader)) | 36 | if (unlikely(p == task->group_leader)) |
| 37 | continue; | 37 | continue; |
| 38 | 38 | ||
| 39 | t = p; | 39 | for_each_thread(p, t) { |
| 40 | do { | ||
| 41 | if (unlikely(t->mm == mm)) | 40 | if (unlikely(t->mm == mm)) |
| 42 | goto found; | 41 | goto found; |
| 43 | if (likely(t->mm)) | 42 | if (likely(t->mm)) |
| @@ -48,7 +47,7 @@ bool current_is_single_threaded(void) | |||
| 48 | * forked before exiting. | 47 | * forked before exiting. |
| 49 | */ | 48 | */ |
| 50 | smp_rmb(); | 49 | smp_rmb(); |
| 51 | } while_each_thread(p, t); | 50 | } |
| 52 | } | 51 | } |
| 53 | ret = true; | 52 | ret = true; |
| 54 | found: | 53 | found: |
