   ,     
 (  ) ,   ,  -
   addr:

int find_first_bit(unsigned long *addr, unsigned int size)
int find first zero bit(unsigned long *addr, unsigned int size)

          -
        ,    -
 .        
  .       
,       _ffs ()   ffz(),
       ,  
 .

       ,    -
   ,      -
 ,     , 
     .    , 
       . 
          , 
   ,    
   .

-

   ,         ,
    ,      .  -
          -
. ,        , 
,         
.       .  
            , 
     .   ,   -
      ,   
    (lock).

       Linux   -
(spin lock). -  ,     
   .      -
,      (contended), ..  , 
     (busy loop)  ""
(spin),    .      -
   ,        
 .    ,  -
         .
 ,          
  ,         
 , ,  -  .

    183