aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Falcon <tlfalcon@linux.vnet.ibm.com>2018-02-21 19:18:30 -0500
committerDavid S. Miller <davem@davemloft.net>2018-02-22 14:45:42 -0500
commita2c0f039bbd0f9ebf375176d05b056e3f3b5c4f7 (patch)
treeeeabc314339ef97d4912345ecf1f6d0b560e84c8
parent83090e7d35caaabc8daa65fd698275951455bbec (diff)
ibmvnic: Fix early release of login buffer
The login buffer is released before the driver can perform sanity checks between resources the driver requested and what firmware will provide. Don't release the login buffer until the sanity check is performed. Fixes: 34f0f4e3f488 ("ibmvnic: Fix login buffer memory leaks") Signed-off-by: Thomas Falcon <tlfalcon@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/ibm/ibmvnic.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c
index 1495cb99f924..1b3cc8bb0705 100644
--- a/drivers/net/ethernet/ibm/ibmvnic.c
+++ b/drivers/net/ethernet/ibm/ibmvnic.c
@@ -3760,7 +3760,6 @@ static int handle_login_rsp(union ibmvnic_crq *login_rsp_crq,
3760 3760
3761 dma_unmap_single(dev, adapter->login_buf_token, adapter->login_buf_sz, 3761 dma_unmap_single(dev, adapter->login_buf_token, adapter->login_buf_sz,
3762 DMA_BIDIRECTIONAL); 3762 DMA_BIDIRECTIONAL);
3763 release_login_buffer(adapter);
3764 dma_unmap_single(dev, adapter->login_rsp_buf_token, 3763 dma_unmap_single(dev, adapter->login_rsp_buf_token,
3765 adapter->login_rsp_buf_sz, DMA_BIDIRECTIONAL); 3764 adapter->login_rsp_buf_sz, DMA_BIDIRECTIONAL);
3766 3765
@@ -3791,6 +3790,7 @@ static int handle_login_rsp(union ibmvnic_crq *login_rsp_crq,
3791 ibmvnic_remove(adapter->vdev); 3790 ibmvnic_remove(adapter->vdev);
3792 return -EIO; 3791 return -EIO;
3793 } 3792 }
3793 release_login_buffer(adapter);
3794 complete(&adapter->init_done); 3794 complete(&adapter->init_done);
3795 3795
3796 return 0; 3796 return 0;