]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
ibmvnic: Fix early release of login buffer
authorThomas Falcon <tlfalcon@linux.vnet.ibm.com>
Tue, 27 Feb 2018 15:12:15 +0000 (12:12 -0300)
committerSeth Forshee <seth.forshee@canonical.com>
Tue, 27 Feb 2018 15:21:14 +0000 (09:21 -0600)
BugLink: https://bugs.launchpad.net/bugs/1748517
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>
(cherry picked from commit a2c0f039bbd0f9ebf375176d05b056e3f3b5c4f7)
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
drivers/net/ethernet/ibm/ibmvnic.c

index fb6993da6eeb73985ec867da2bf32098c0aa84e4..47b68cd7c898c7342ec27060e8b7c282f0beb98c 100644 (file)
@@ -3760,7 +3760,6 @@ static int handle_login_rsp(union ibmvnic_crq *login_rsp_crq,
 
        dma_unmap_single(dev, adapter->login_buf_token, adapter->login_buf_sz,
                         DMA_BIDIRECTIONAL);
-       release_login_buffer(adapter);
        dma_unmap_single(dev, adapter->login_rsp_buf_token,
                         adapter->login_rsp_buf_sz, DMA_BIDIRECTIONAL);
 
@@ -3791,6 +3790,7 @@ static int handle_login_rsp(union ibmvnic_crq *login_rsp_crq,
                ibmvnic_remove(adapter->vdev);
                return -EIO;
        }
+       release_login_buffer(adapter);
        complete(&adapter->init_done);
 
        return 0;