      ,   ,  -
   .

   

       .
 ,      , -
       . , -
          -
,     9.       
     .

         ( -
  , , ),   
local_bh_disable ().       -
  local_bh_enable (). ,    "" .
     ,     -
   .  . 7.4    
.

 7.4.      

 

void local_bh_disable            (softirq)
  (tasklet)   

void local_bh_enable ()            (softirq)
  (tasklet)   

           -
  local_bh_enable ()    . ,
    local_bh_disable ()   -
    .   local_bh_disable ()
   ,      .
       ,   local_bh_enable ()
    .

      preempt_count, -
     (,     -
       )9.    
 ,      .    
 local_bh_enable ()    ,   -
          -
 .

9          ,   
  .         -
 Linux   .   ,    
  , ,   ,      -
   ,     (sleeping-while-atomic bug).

160                                                              7