Commit 1a44cc3778f63dca5795708da2a2a7696da7fd61
Committed by
David S. Miller
1 parent
b1b243afac
Exists in
master
and in
7 other branches
mlx4_en: Fix cleanup if workqueue create in mlx4_en_add() fails
If creating a workqueue fails, don't jump to the error path where that same workqueue is destroyed, since destroy_workqueue() can't handle a NULL pointer. This was spotted by the Coverity checker (CID 2617). Signed-off-by: Roland Dreier <rolandd@cisco.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 1 changed file with 2 additions and 3 deletions Side-by-side Diff
drivers/net/mlx4/en_main.c
... | ... | @@ -181,7 +181,7 @@ |
181 | 181 | mdev->workqueue = create_singlethread_workqueue("mlx4_en"); |
182 | 182 | if (!mdev->workqueue) { |
183 | 183 | err = -ENOMEM; |
184 | - goto err_close_nic; | |
184 | + goto err_mr; | |
185 | 185 | } |
186 | 186 | |
187 | 187 | /* At this stage all non-port specific tasks are complete: |
188 | 188 | |
... | ... | @@ -214,9 +214,8 @@ |
214 | 214 | flush_workqueue(mdev->workqueue); |
215 | 215 | |
216 | 216 | /* Stop event queue before we drop down to release shared SW state */ |
217 | - | |
218 | -err_close_nic: | |
219 | 217 | destroy_workqueue(mdev->workqueue); |
218 | + | |
220 | 219 | err_mr: |
221 | 220 | mlx4_mr_free(dev, &mdev->mr); |
222 | 221 | err_uar: |