• Ard Biesheuvel's avatar
    ARM: vfp: Reimplement VFP exception entry in C code · 4708fb04
    Ard Biesheuvel authored
    En/disabling softirqs from asm code turned out to be trickier than
    expected, so vfp_support_entry now returns by tail calling
    __local_enable_bh_ip() and passing the same arguments that a C call to
    local_bh_enable() would pass. However, this is slightly hacky, as we
    don't want to carry our own implementation of local_bh_enable().
    
    So let's bite the bullet, and get rid of the asm logic in
    vfp_support_entry that reasons about whether or not to save and/or
    reload the VFP state, and about whether or not an FP exception is
    pending, and only keep the VFP loading logic as a function that is
    callable from C.
    
    Replicate the removed logic in vfp_entry(), and use the exact same
    reasoning as in the asm code. To emphasize the correspondence, retain
    some of the asm comments in the C version as well.
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    4708fb04
vfpmodule.c 25.8 KB