summaryrefslogtreecommitdiffstats
path: root/drivers/net/vmxnet3
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2016-10-30 12:42:58 -0400
committerDavid S. Miller <davem@davemloft.net>2016-10-30 12:42:58 -0400
commit27058af401e49d88a905df000dd26f443fcfa8ce (patch)
tree819f32113d3b8374b9fbf72e2202d4c4d4511a60 /drivers/net/vmxnet3
parent357f4aae859b5d74554b0ccbb18556f1df4166c3 (diff)
parent2a26d99b251b8625d27aed14e97fc10707a3a81f (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Mostly simple overlapping changes. For example, David Ahern's adjacency list revamp in 'net-next' conflicted with an adjacency list traversal bug fix in 'net'. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/vmxnet3')
-rw-r--r--drivers/net/vmxnet3/vmxnet3_drv.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
index 0c36de121eb0..e34b1297c96a 100644
--- a/drivers/net/vmxnet3/vmxnet3_drv.c
+++ b/drivers/net/vmxnet3/vmxnet3_drv.c
@@ -2279,6 +2279,7 @@ vmxnet3_set_mc(struct net_device *netdev)
2279 &adapter->shared->devRead.rxFilterConf; 2279 &adapter->shared->devRead.rxFilterConf;
2280 u8 *new_table = NULL; 2280 u8 *new_table = NULL;
2281 dma_addr_t new_table_pa = 0; 2281 dma_addr_t new_table_pa = 0;
2282 bool new_table_pa_valid = false;
2282 u32 new_mode = VMXNET3_RXM_UCAST; 2283 u32 new_mode = VMXNET3_RXM_UCAST;
2283 2284
2284 if (netdev->flags & IFF_PROMISC) { 2285 if (netdev->flags & IFF_PROMISC) {
@@ -2307,13 +2308,15 @@ vmxnet3_set_mc(struct net_device *netdev)
2307 new_table, 2308 new_table,
2308 sz, 2309 sz,
2309 PCI_DMA_TODEVICE); 2310 PCI_DMA_TODEVICE);
2311 if (!dma_mapping_error(&adapter->pdev->dev,
2312 new_table_pa)) {
2313 new_mode |= VMXNET3_RXM_MCAST;
2314 new_table_pa_valid = true;
2315 rxConf->mfTablePA = cpu_to_le64(
2316 new_table_pa);
2317 }
2310 } 2318 }
2311 2319 if (!new_table_pa_valid) {
2312 if (!dma_mapping_error(&adapter->pdev->dev,
2313 new_table_pa)) {
2314 new_mode |= VMXNET3_RXM_MCAST;
2315 rxConf->mfTablePA = cpu_to_le64(new_table_pa);
2316 } else {
2317 netdev_info(netdev, 2320 netdev_info(netdev,
2318 "failed to copy mcast list, setting ALL_MULTI\n"); 2321 "failed to copy mcast list, setting ALL_MULTI\n");
2319 new_mode |= VMXNET3_RXM_ALL_MULTI; 2322 new_mode |= VMXNET3_RXM_ALL_MULTI;
@@ -2338,7 +2341,7 @@ vmxnet3_set_mc(struct net_device *netdev)
2338 VMXNET3_CMD_UPDATE_MAC_FILTERS); 2341 VMXNET3_CMD_UPDATE_MAC_FILTERS);
2339 spin_unlock_irqrestore(&adapter->cmd_lock, flags); 2342 spin_unlock_irqrestore(&adapter->cmd_lock, flags);
2340 2343
2341 if (new_table_pa) 2344 if (new_table_pa_valid)
2342 dma_unmap_single(&adapter->pdev->dev, new_table_pa, 2345 dma_unmap_single(&adapter->pdev->dev, new_table_pa,
2343 rxConf->mfTableLen, PCI_DMA_TODEVICE); 2346 rxConf->mfTableLen, PCI_DMA_TODEVICE);
2344 kfree(new_table); 2347 kfree(new_table);