On Fri, 2018-08-24 at 11:47 -0700, Jeff Kirsher wrote: > From: YueHaibing <yuehaib...@huawei.com> > > Use dma_zalloc_coherent instead of dma_alloc_coherent > followed by memset 0.
Unrelated trivia: above this, perhaps the size = sizeof(struct ixgb_buffer) * txdr->count; txdr->buffer_info = vzalloc(size); if (!txdr->buffer_info) return -ENOMEM; should be changed to kvzalloc to avoid using vzalloc where possible, with the appropriate vfree/kvfree conversions. Perhaps across all intel drivers: $ git grep -n "\bv.alloc(" drivers/net/ethernet/intel drivers/net/ethernet/intel/e1000/e1000_main.c:1499: txdr->buffer_info = vzalloc(size); drivers/net/ethernet/intel/e1000/e1000_main.c:1689: rxdr->buffer_info = vzalloc(size); drivers/net/ethernet/intel/e1000e/ethtool.c:705: temp_tx = vmalloc(size); drivers/net/ethernet/intel/e1000e/ethtool.c:712: temp_rx = vmalloc(size); drivers/net/ethernet/intel/e1000e/netdev.c:2328: tx_ring->buffer_info = vzalloc(size); drivers/net/ethernet/intel/e1000e/netdev.c:2363: rx_ring->buffer_info = vzalloc(size); drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c:561: temp_ring = vmalloc(array_size(i, sizeof(struct fm10k_ring))); drivers/net/ethernet/intel/fm10k/fm10k_netdev.c:22: tx_ring->tx_buffer = vzalloc(size); drivers/net/ethernet/intel/fm10k/fm10k_netdev.c:90: rx_ring->rx_buffer = vzalloc(size); drivers/net/ethernet/intel/igb/igb_ethtool.c:905: temp_ring = vmalloc(array_size(sizeof(struct igb_ring), drivers/net/ethernet/intel/igb/igb_ethtool.c:908: temp_ring = vmalloc(array_size(sizeof(struct igb_ring), drivers/net/ethernet/intel/igb/igb_main.c:4075: tx_ring->tx_buffer_info = vmalloc(size); drivers/net/ethernet/intel/igb/igb_main.c:4224: rx_ring->rx_buffer_info = vmalloc(size); drivers/net/ethernet/intel/igbvf/ethtool.c:226: temp_ring = vmalloc(sizeof(struct igbvf_ring)); drivers/net/ethernet/intel/igbvf/netdev.c:421: tx_ring->buffer_info = vzalloc(size); drivers/net/ethernet/intel/igbvf/netdev.c:459: rx_ring->buffer_info = vzalloc(size); drivers/net/ethernet/intel/ixgb/ixgb_main.c:682: txdr->buffer_info = vzalloc(size); drivers/net/ethernet/intel/ixgb/ixgb_main.c:765: rxdr->buffer_info = vzalloc(size); drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c:1074: temp_ring = vmalloc(array_size(i, sizeof(struct ixgbe_ring))); drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:6352: tx_ring->tx_buffer_info = vmalloc(size); drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:6446: rx_ring->rx_buffer_info = vmalloc(size); drivers/net/ethernet/intel/ixgbevf/ethtool.c:285: tx_ring = vmalloc(array_size(sizeof(*tx_ring), drivers/net/ethernet/intel/ixgbevf/ethtool.c:331: rx_ring = vmalloc(array_size(sizeof(*rx_ring), drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:3373: tx_ring->tx_buffer_info = vmalloc(size); drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:3451: rx_ring->rx_buffer_info = vmalloc(size);