diff options
author | Konstantin Belousov <konstantinb@nvidia.com> | 2021-07-05 09:24:00 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2021-07-26 13:51:12 +0000 |
commit | 9dee4f67892bf82369e4fedf8353354f01346d93 (patch) | |
tree | e369e00d5080666a8dd1b8740db4ca222ca29426 | |
parent | f2e512d09bbe6f28b48a5df246b495c3f62eb0c6 (diff) | |
download | src-9dee4f67892bf82369e4fedf8353354f01346d93.tar.gz src-9dee4f67892bf82369e4fedf8353354f01346d93.zip |
mlx5: drop Giant around VSC lock and CRSPACE enumeration on attach
(cherry picked from commit 78f5ebaed62e38caafc72f4ec1c0a7c2013e15c7)
-rw-r--r-- | sys/dev/mlx5/mlx5_core/mlx5_fwdump.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c b/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c index 7bb563846144..a23de943f4aa 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fwdump.c @@ -81,17 +81,19 @@ mlx5_fwdump_prep(struct mlx5_core_dev *mdev) return; } + DROP_GIANT(); + error = mlx5_vsc_find_cap(mdev); if (error != 0) { /* Inability to create a firmware dump is not fatal. */ mlx5_core_warn(mdev, "Unable to find vendor-specific capability, error %d\n", error); - return; + goto pickup_g; } error = mlx5_vsc_lock(mdev); if (error != 0) - return; + goto pickup_g; error = mlx5_vsc_set_space(mdev, MLX5_VSC_DOMAIN_SCAN_CRSPACE); if (error != 0) { mlx5_core_warn(mdev, "VSC scan space is not supported\n"); @@ -180,6 +182,8 @@ mlx5_fwdump_prep(struct mlx5_core_dev *mdev) unlock_vsc: mlx5_vsc_unlock(mdev); +pickup_g: + PICKUP_GIANT(); } int |