aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorColin Cross2013-03-13 19:16:02 -0500
committerColin Cross2013-03-13 19:16:02 -0500
commit0b203ab4aacdb6e6dfb8c277aa290f0a02428e6f (patch)
tree9bab760a750d9cf4504d92603ee7fc82beeb2e38 /lib
parenta276def548828763cf5ac228adf8c1ca73f8d4d3 (diff)
parente28c3f2b514b5581e15614f7cf976131092cf4b6 (diff)
downloadkernel-common-0b203ab4aacdb6e6dfb8c277aa290f0a02428e6f.tar.gz
kernel-common-0b203ab4aacdb6e6dfb8c277aa290f0a02428e6f.tar.xz
kernel-common-0b203ab4aacdb6e6dfb8c277aa290f0a02428e6f.zip
Merge tag 'v3.0.68' into android-3.0
This is the 3.0.68 stable release Conflicts: kernel/cgroup.c Change-Id: I067982d25e18e3a12de93a5eb6429b8829d7ca11
Diffstat (limited to 'lib')
-rw-r--r--lib/idr.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/idr.c b/lib/idr.c
index e15502e8b21..b0540c6a0ec 100644
--- a/lib/idr.c
+++ b/lib/idr.c
@@ -621,7 +621,14 @@ void *idr_get_next(struct idr *idp, int *nextidp)
621 return p; 621 return p;
622 } 622 }
623 623
624 id += 1 << n; 624 /*
625 * Proceed to the next layer at the current level. Unlike
626 * idr_for_each(), @id isn't guaranteed to be aligned to
627 * layer boundary at this point and adding 1 << n may
628 * incorrectly skip IDs. Make sure we jump to the
629 * beginning of the next layer using round_up().
630 */
631 id = round_up(id + 1, 1 << n);
625 while (n < fls(id)) { 632 while (n < fls(id)) {
626 n += IDR_BITS; 633 n += IDR_BITS;
627 p = *--paa; 634 p = *--paa;