• Eran Ben Elisha's avatar
    net/mlx5e: Fix soft lockup when HW Timestamping is enabled · 0ad9b204
    Eran Ben Elisha authored
    Readers/Writers lock for SW timecounter was acquired without disabling
    interrupts on local CPU.
    
    The problematic scenario:
    * HW timestamping is enabled
    * Timestamp overflow periodic service task is running on local CPU and
      holding write_lock for SW timecounter
    * Completion arrives, triggers interrupt for local CPU.
      Interrupt routine calls napi_schedule(), which triggers rx/tx
      skb process.
      An attempt to read SW timecounter using read_lock is done, which is
      already locked by a writer on the same CPU and cause soft lockup.
    
    Add irqsave/irqrestore for when using the readers/writers lock for
    writing.
    
    Fixes: ef9814de ('net/mlx5e: Add HW timestamping (TS) support')
    Signed-off-by: default avatarEran Ben Elisha <eranbe@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    0ad9b204
en_clock.c 8.11 KB