git: DragonFly_RELEASE_4_6 kernel - cli interlock with critcount in interrupt assembly

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Jul 25 14:35:33 PDT 2016


commit e74c9440c06bbad6130ad570539fd6c87faf66c8
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sun Jul 24 21:44:33 2016 -0700

    kernel - cli interlock with critcount in interrupt assembly
    
    * Disable interrupts when decrementing the critical section count
      and gd_intr_nesting_level, just prior to jumping into doreti.
      This prevents a stacking interrupt from occurring in this roughly
      10-instruction window.
    
    * While limited stacking is not really a problem, this closes a very
      small and unlikely window where multiple device interrupts could
      stack excessively and run the kernel thread out of stack space.
      (unlikely that it has ever happened in real life, but becoming more
      likely as some modern devices are capable of much higher interrupt
      rates).

Summary of changes:
 sys/platform/pc64/apic/apic_vector.s | 3 +++
 1 file changed, 3 insertions(+)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/e74c9440c06bbad6130ad570539fd6c87faf66c8


-- 
DragonFly BSD source repository



More information about the Commits mailing list