diff options
| author | Ingo Molnar <mingo@elte.hu> | 2009-06-07 05:34:59 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-06-07 05:35:05 -0400 |
| commit | 56fdd18c7b89a2fac1dfe5d54750c9143867fdc4 (patch) | |
| tree | ce48eee7d5960936fa6e385320b7a261a8bee071 /kernel/async.c | |
| parent | 7caf6a49bb17d0377210693af5737563b31aa5ee (diff) | |
| parent | b87297fb405ef13cac375f202d114323b076a56d (diff) | |
Merge branch 'linus' into core/iommu
Merge reason: This branch was on an -rc5 base so pull almost-2.6.30
to resync with the latest upstream fixes and make sure
the combination works fine.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/async.c')
| -rw-r--r-- | kernel/async.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/kernel/async.c b/kernel/async.c index 968ef9457d4e..50540301ed0f 100644 --- a/kernel/async.c +++ b/kernel/async.c | |||
| @@ -92,19 +92,23 @@ extern int initcall_debug; | |||
| 92 | static async_cookie_t __lowest_in_progress(struct list_head *running) | 92 | static async_cookie_t __lowest_in_progress(struct list_head *running) |
| 93 | { | 93 | { |
| 94 | struct async_entry *entry; | 94 | struct async_entry *entry; |
| 95 | async_cookie_t ret = next_cookie; /* begin with "infinity" value */ | ||
| 96 | |||
| 95 | if (!list_empty(running)) { | 97 | if (!list_empty(running)) { |
| 96 | entry = list_first_entry(running, | 98 | entry = list_first_entry(running, |
| 97 | struct async_entry, list); | 99 | struct async_entry, list); |
| 98 | return entry->cookie; | 100 | ret = entry->cookie; |
| 99 | } else if (!list_empty(&async_pending)) { | ||
| 100 | entry = list_first_entry(&async_pending, | ||
| 101 | struct async_entry, list); | ||
| 102 | return entry->cookie; | ||
| 103 | } else { | ||
| 104 | /* nothing in progress... next_cookie is "infinity" */ | ||
| 105 | return next_cookie; | ||
| 106 | } | 101 | } |
| 107 | 102 | ||
| 103 | if (!list_empty(&async_pending)) { | ||
| 104 | list_for_each_entry(entry, &async_pending, list) | ||
| 105 | if (entry->running == running) { | ||
| 106 | ret = entry->cookie; | ||
| 107 | break; | ||
| 108 | } | ||
| 109 | } | ||
| 110 | |||
| 111 | return ret; | ||
| 108 | } | 112 | } |
| 109 | 113 | ||
| 110 | static async_cookie_t lowest_in_progress(struct list_head *running) | 114 | static async_cookie_t lowest_in_progress(struct list_head *running) |
