diff options
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/en_rx.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_rx.c b/drivers/net/ethernet/mellanox/mlx4/en_rx.c index a33048ee9621..01660c595f5c 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c | |||
@@ -76,10 +76,10 @@ static int mlx4_alloc_pages(struct mlx4_en_priv *priv, | |||
76 | page_alloc->dma = dma; | 76 | page_alloc->dma = dma; |
77 | page_alloc->page_offset = frag_info->frag_align; | 77 | page_alloc->page_offset = frag_info->frag_align; |
78 | /* Not doing get_page() for each frag is a big win | 78 | /* Not doing get_page() for each frag is a big win |
79 | * on asymetric workloads. | 79 | * on asymetric workloads. Note we can not use atomic_set(). |
80 | */ | 80 | */ |
81 | atomic_set(&page->_count, | 81 | atomic_add(page_alloc->page_size / frag_info->frag_stride - 1, |
82 | page_alloc->page_size / frag_info->frag_stride); | 82 | &page->_count); |
83 | return 0; | 83 | return 0; |
84 | } | 84 | } |
85 | 85 | ||