• Jun Chen's avatar
    serial: ifx6x60: add_timer is not safe in the mrdy_assert function · c73ba2ae
    Jun Chen authored
    This patch make use of mod_timer instead of add_timer in the mrdy_assert function.
    Because the srdy interrupter can go high when we are running function mrdy_assert and mrdy_assert
    can be called by multi-entry. In our medfield platform, spi stress test can encounter this
    error logs triggered by the BUG_ON of add_timer function.This patch had been tested on
    our medfield platform.
    
    the scenario:
          CPU0							CPU1
    mrdy_assert
    set_bit(IFX_SPI_STATE_TIMER_PENDING)
    								ifx_spi_handle_srdy
    								...
    								clear_bit(IFX_SPI_STATE_TIMER_PENDING)
    								...
    								mrdy_assert
    								set_bit(IFX_SPI_STATE_TIMER_PENDING)
    								...
    								add_timer
    ...
    add_timer
    
    Cc: liu chuansheng <chuansheng.liu@intel.com>
    Cc: Bi Chao <chao.bi@intel.com>
    Signed-off-by: default avatarChen Jun <jun.d.chen@intel.com>
    Acked-by: default avatarAlan Cox <alan@linux.intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    c73ba2ae
ifx6x60.c 37.5 KB