Message ID | 20230807083205.18557-1-ganeshgr@linux.ibm.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net/mlx5: Avoid MMIO when the error is detected | expand |
On 07 Aug 14:02, Ganesh Goudar wrote: >When the drivers are notfied about the pci error, All >the IO to the card must be stopped, Else the recovery would >fail, Avoid memory-mapped IO until the device recovers >from pci error. > >Signed-off-by: Ganesh Goudar <ganeshgr@linux.ibm.com> >--- > drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c | 3 +++ > 1 file changed, 3 insertions(+) > >diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c >index 932fbc843c69..010dee4eec14 100644 >--- a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c >+++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c >@@ -221,10 +221,13 @@ static void mlx5_timestamp_overflow(struct work_struct *work) > clock = container_of(timer, struct mlx5_clock, timer); > mdev = container_of(clock, struct mlx5_core_dev, clock); > >+ if (mdev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR) >+ goto out; > write_seqlock_irqsave(&clock->lock, flags); > timecounter_read(&timer->tc); > mlx5_update_clock_info_page(mdev); > write_sequnlock_irqrestore(&clock->lock, flags); >+out: > schedule_delayed_work(&timer->overflow_work, timer->overflow_period); > } > Another version of this fix was already submitted and accepted: https://patchwork.kernel.org/project/netdevbpf/patch/20230807212607.50883-10-saeed@kernel.org/ >-- >2.40.1 > >
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c index 932fbc843c69..010dee4eec14 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c @@ -221,10 +221,13 @@ static void mlx5_timestamp_overflow(struct work_struct *work) clock = container_of(timer, struct mlx5_clock, timer); mdev = container_of(clock, struct mlx5_core_dev, clock); + if (mdev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR) + goto out; write_seqlock_irqsave(&clock->lock, flags); timecounter_read(&timer->tc); mlx5_update_clock_info_page(mdev); write_sequnlock_irqrestore(&clock->lock, flags); +out: schedule_delayed_work(&timer->overflow_work, timer->overflow_period); }
When the drivers are notfied about the pci error, All the IO to the card must be stopped, Else the recovery would fail, Avoid memory-mapped IO until the device recovers from pci error. Signed-off-by: Ganesh Goudar <ganeshgr@linux.ibm.com> --- drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c | 3 +++ 1 file changed, 3 insertions(+)