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
This commit is contained in:
Hans Petter Selasky 2018-03-30 19:49:35 +00:00
parent 92d23c82cd
commit ca2345a05d

View File

@ -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) */