commit 48f1ebb3911b6b20e431216a593896d0258fdba5
Author: Matthew Dillon <dil...@apollo.backplane.com>
Date:   Thu Dec 5 10:25:23 2013 +0100

    idr: Fix an infinite loop issue
    
    * idr routines were doing an infinite loop when the array was full but 
element
      #0 was still free
    
    * Because allocations start at 1, the low bound was not being taken account 
of
      in idr_find_free(), causing an infinite loop
    
    * idr_get_new_above() couldn't allocate an id >= 1 and idr_pre_get() 
thought it
      didn't have to expand because id #0 was available

Summary of changes:
 sys/libkern/linux_idr.c | 308 +++++++++++++++++++++++++++++++-----------------
 sys/sys/idr.h           |   3 +-
 2 files changed, 201 insertions(+), 110 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/48f1ebb3911b6b20e431216a593896d0258fdba5


-- 
DragonFly BSD source repository

Reply via email to