Author: hselasky
Date: Fri Mar 30 19:49:35 2018
New Revision: 331824
URL: https://svnweb.freebsd.org/changeset/base/331824

Log:
  Make sure Giant is locked when allocating bus resources in mlx5core.
  
  During health care IRQ resources will be reallocated.
  Newbus requires that Giant is locked before accessing
  these resources.
  
  MFC after:    3 days
  Sponsored by: Mellanox Technologies

Modified:
  head/sys/dev/mlx5/mlx5_core/mlx5_health.c

Modified: head/sys/dev/mlx5/mlx5_core/mlx5_health.c
==============================================================================
--- head/sys/dev/mlx5/mlx5_core/mlx5_health.c   Fri Mar 30 19:48:25 2018        
(r331823)
+++ head/sys/dev/mlx5/mlx5_core/mlx5_health.c   Fri Mar 30 19:49:35 2018        
(r331824)
@@ -300,6 +300,8 @@ static void health_recover(struct work_struct *work)
        priv = container_of(health, struct mlx5_priv, health);
        dev = container_of(priv, struct mlx5_core_dev, priv);
 
+       mtx_lock(&Giant);       /* XXX newbus needs this */
+
        if (sensor_pci_no_comm(dev)) {
                dev_err(&dev->pdev->dev, "health recovery flow aborted, PCI 
reads still not working\n");
                recover = false;
@@ -322,6 +324,8 @@ static void health_recover(struct work_struct *work)
                dev_err(&dev->pdev->dev, "starting health recovery flow\n");
                mlx5_recover_device(dev);
        }
+
+       mtx_unlock(&Giant);
 }
 
 /* How much time to wait until health resetting the driver (in msecs) */
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to