diff options
author | Mohamad Haj Yahia <mohamad@mellanox.com> | 2016-06-30 16:34:43 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-07-01 12:12:03 +0200 |
commit | 65ee67084589c1783a74b4a4a5db38d7264ec8b5 (patch) | |
tree | cdb22bab9aa9a17e0728d0ff202be063607c9b59 /include | |
parent | net/mlx5: Fix potential deadlock in command mode change (diff) | |
download | linux-65ee67084589c1783a74b4a4a5db38d7264ec8b5.tar.xz linux-65ee67084589c1783a74b4a4a5db38d7264ec8b5.zip |
net/mlx5: Add timeout handle to commands with callback
The current implementation does not handle timeout in case of command
with callback request, and this can lead to deadlock if the command
doesn't get fw response.
Add delayed callback timeout work before posting the command to fw.
In case of real fw command completion we will cancel the delayed work.
In case of fw command timeout the callback timeout handler will be
called and it will simulate fw completion with timeout error.
Fixes: e126ba97dba9 ('mlx5: Add driver for Mellanox Connect-IB adapters')
Signed-off-by: Mohamad Haj Yahia <mohamad@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/mlx5/driver.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index 80776d0c52dc..fd72ecf0ce9f 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h @@ -629,6 +629,7 @@ struct mlx5_cmd_work_ent { void *uout; int uout_size; mlx5_cmd_cbk_t callback; + struct delayed_work cb_timeout_work; void *context; int idx; struct completion done; |