• Suresh Siddha's avatar
    crypto, tcrypt: remove local_bh_disable/enable() around local_irq_disable/enable() · b6f3fefe
    Suresh Siddha authored
    Ran into this while looking at some new crypto code using FPU
    hitting a WARN_ON_ONCE(!irq_fpu_usable()) in the kernel_fpu_begin()
    on a x86 kernel that uses the new eagerfpu model. In short, current eagerfpu
    changes return 0 for interrupted_kernel_fpu_idle() and the in_interrupt()
    thinks it is in the interrupt context because of the local_bh_disable().
    Thus resulting in the WARN_ON().
    
    Remove the local_bh_disable/enable() calls around the existing
    local_irq_disable/enable() calls. local_irq_disable/enable() already
    disables the BH.
    
     [ If there are any other legitimate users calling kernel_fpu_begin() from
       the process context but with BH disabled, then we can look into fixing the
       irq_fpu_usable() in future. ]
    Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
    Cc: Tim Chen <tim.c.chen@linux.intel.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    b6f3fefe
tcrypt.c 42.5 KB