aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian King <brking@linux.vnet.ibm.com>2017-04-19 13:44:41 -0400
committerDavid S. Miller <davem@davemloft.net>2017-04-21 13:33:52 -0400
commit59af56c25bc34d4e98820c694d48fd5145fb6e4f (patch)
tree30a4279d483aeb7ae4af50ca487516703a12d2c8
parentibmvnic: Fix ibmvnic_change_mac_addr struct format (diff)
downloadlinux-dev-59af56c25bc34d4e98820c694d48fd5145fb6e4f.tar.xz
linux-dev-59af56c25bc34d4e98820c694d48fd5145fb6e4f.zip
ibmvnic: Unmap longer term buffer before free
Make sure we unregister long term buffers from the adapter prior to DMA unmapping it and freeing the buffer. Failure to do so could result in a DMA to a now invalid address. Signed-off-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: Nathan Fontenot <nfont@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 625896de25f7..c10bae7823e0 100644
--- a/drivers/net/ethernet/ibm/ibmvnic.c
+++ b/drivers/net/ethernet/ibm/ibmvnic.c
@@ -193,9 +193,9 @@ static void free_long_term_buff(struct ibmvnic_adapter *adapter,
if (!ltb->buff)
return;
- dma_free_coherent(dev, ltb->size, ltb->buff, ltb->addr);
if (!adapter->failover)
send_request_unmap(adapter, ltb->map_id);
+ dma_free_coherent(dev, ltb->size, ltb->buff, ltb->addr);
}
static void replenish_rx_pool(struct ibmvnic_adapter *adapter,