Skip to content
  • David Howells's avatar
    [PATCH] FRV: Use virtual interrupt disablement · 28baebae
    David Howells authored
    Make the FRV arch use virtual interrupt disablement because accesses to the
    processor status register (PSR) are relatively slow and because we will
    soon have the need to deal with multiple interrupt controls at the same
    time (separate h/w and inter-core interrupts).
    
    The way this is done is to dedicate one of the four integer condition code
    registers (ICC2) to maintaining a virtual interrupt disablement state
    whilst inside the kernel.  This uses the ICC2.Z flag (Zero) to indicate
    whether the interrupts are virtually disabled and the ICC2.C flag (Carry)
    to indicate whether the interrupts are physically disabled.
    
    ICC2.Z is set to indicate interrupts are virtually disabled.  ICC2.C is set
    to indicate interrupts are physically enabled.  Under normal running
    conditions Z==0 and C==1.
    
    Disabling interrupts with local_irq_disable() doesn't then actually
    physically disable interrupts - it merely sets ICC2.Z to 1.  Should an
    interrupt then happen, the exception prolo...
    28baebae