浏览代码

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>
Brian King 8 年之前
父节点
当前提交
59af56c25b
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      drivers/net/ethernet/ibm/ibmvnic.c

+ 1 - 1
drivers/net/ethernet/ibm/ibmvnic.c

@@ -193,9 +193,9 @@ static void free_long_term_buff(struct ibmvnic_adapter *adapter,
 	if (!ltb->buff)
 	if (!ltb->buff)
 		return;
 		return;
 
 
-	dma_free_coherent(dev, ltb->size, ltb->buff, ltb->addr);
 	if (!adapter->failover)
 	if (!adapter->failover)
 		send_request_unmap(adapter, ltb->map_id);
 		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,
 static void replenish_rx_pool(struct ibmvnic_adapter *adapter,