0011-04-nss_dp_main-call-unregister_netdev-first-in-dp_remov.patch 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. From 33dd3aa6d0f9cd240d63f53a49157ae44ebccf87 Mon Sep 17 00:00:00 2001
  2. From: Christian Marangi <[email protected]>
  3. Date: Tue, 16 Apr 2024 16:12:11 +0200
  4. Subject: [PATCH 4/6] nss_dp_main: call unregister_netdev first in dp_remove
  5. and carrifer_off
  6. In dp_remove move unregister_netdev up before calling exit and deinit
  7. and first call netif_carrier_off to stop any traffic from happening and
  8. prevent kernel panics for napi in the middle of transfer.
  9. Signed-off-by: Christian Marangi <[email protected]>
  10. ---
  11. nss_dp_main.c | 4 +++-
  12. 1 file changed, 3 insertions(+), 1 deletion(-)
  13. --- a/nss_dp_main.c
  14. +++ b/nss_dp_main.c
  15. @@ -977,6 +977,9 @@ static int nss_dp_remove(struct platform
  16. dp_ops = dp_priv->data_plane_ops;
  17. hal_ops = dp_priv->gmac_hal_ops;
  18. + netif_carrier_off(dp_priv->netdev);
  19. + unregister_netdev(dp_priv->netdev);
  20. +
  21. if (dp_priv->phydev)
  22. phy_disconnect(dp_priv->phydev);
  23. @@ -988,7 +991,6 @@ static int nss_dp_remove(struct platform
  24. #endif
  25. hal_ops->exit(dp_priv->gmac_hal_ctx);
  26. dp_ops->deinit(dp_priv->dpc);
  27. - unregister_netdev(dp_priv->netdev);
  28. free_netdev(dp_priv->netdev);
  29. dp_global_ctx.nss_dp[i] = NULL;
  30. }