diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-12-26 09:21:05 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-12-26 09:21:05 +0100 |
commit | c656d9ca48d3ef1a11449e892ce488ee0bb5a335 (patch) | |
tree | 0c5598659b3e7f12864d203967d42ac3feb1142c /lib/idr.c | |
parent | 71ab6b245fda6e7597a667a67cce0d26c3c7a14b (diff) | |
parent | a73ad3331fdbf4191cf99b83ea9ac7082b6757ba (diff) |
Merge branch 'x86/fpu' into x86/cleanups
Diffstat (limited to 'lib/idr.c')
-rw-r--r-- | lib/idr.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/idr.c b/lib/idr.c index 7a785a0c2ea0f..1c4f9281f412d 100644 --- a/lib/idr.c +++ b/lib/idr.c @@ -220,8 +220,14 @@ build_up: */ while ((layers < (MAX_LEVEL - 1)) && (id >= (1 << (layers*IDR_BITS)))) { layers++; - if (!p->count) + if (!p->count) { + /* special case: if the tree is currently empty, + * then we grow the tree by moving the top node + * upwards. + */ + p->layer++; continue; + } if (!(new = get_from_free_list(idp))) { /* * The allocation failed. If we built part of |