diff options
author | David S. Miller <davem@davemloft.net> | 2008-12-16 05:03:50 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-12-16 05:03:50 +0100 |
commit | eb14f019597cd86c21a6c601d7e900f40030c2e7 (patch) | |
tree | 36fb2f36a1747f98988f87215db1eef3a71d45eb /lib/idr.c | |
parent | 8390/8390p: Fix compat netdev ops handling. (diff) | |
parent | Merge master.kernel.org:/home/rmk/linux-2.6-arm (diff) | |
download | linux-eb14f019597cd86c21a6c601d7e900f40030c2e7.tar.xz linux-eb14f019597cd86c21a6c601d7e900f40030c2e7.zip |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/e1000e/ich8lan.c
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 7a785a0c2ea0..1c4f9281f412 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 |