| From 144b7123db0d58152625875aa54328255713e7fe Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 29 Jul 2020 10:52:17 -0700 |
| Subject: ionic: unlock queue mutex in error path |
| |
| From: Shannon Nelson <snelson@pensando.io> |
| |
| [ Upstream commit 59929fbb45e06da7d501d3a97f10a91912181f7c ] |
| |
| On an error return, jump to the unlock at the end to be sure |
| to unlock the queue_lock mutex. |
| |
| Fixes: 0925e9db4dc8 ("ionic: use mutex to protect queue operations") |
| Reported-by: kernel test robot <lkp@intel.com> |
| Reported-by: Julia Lawall <julia.lawall@lip6.fr> |
| Signed-off-by: Shannon Nelson <snelson@pensando.io> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/pensando/ionic/ionic_lif.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c b/drivers/net/ethernet/pensando/ionic/ionic_lif.c |
| index 2c3e9ef22129c..337d971ffd92c 100644 |
| --- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c |
| +++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c |
| @@ -1959,7 +1959,7 @@ int ionic_reset_queues(struct ionic_lif *lif, ionic_reset_cb cb, void *arg) |
| netif_device_detach(lif->netdev); |
| err = ionic_stop(lif->netdev); |
| if (err) |
| - return err; |
| + goto reset_out; |
| } |
| |
| if (cb) |
| @@ -1969,6 +1969,8 @@ int ionic_reset_queues(struct ionic_lif *lif, ionic_reset_cb cb, void *arg) |
| err = ionic_open(lif->netdev); |
| netif_device_attach(lif->netdev); |
| } |
| + |
| +reset_out: |
| mutex_unlock(&lif->queue_lock); |
| |
| return err; |
| -- |
| 2.25.1 |
| |