Message ID | 20190731073842.16948-1-christophe.jaillet@wanadoo.fr |
---|---|
State | Accepted |
Commit | 47b69bf74f16b20a3bb95b1fe27e5347dd34b683 |
Headers | show |
Series |
|
Related | show |
From: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Date: Wed, 31 Jul 2019 09:38:42 +0200 > There is no good reason to use GFP_ATOMIC here. Other memory allocations > are performed with GFP_KERNEL (see other 'dma_alloc_coherent()' below and > 'kzalloc()' in 'et131x_rx_dma_memory_alloc()') > > Use GFP_KERNEL which should be enough. > > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Applied, thanks.
On Wed, 31 Jul 2019 09:38:42 +0200 Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote: > There is no good reason to use GFP_ATOMIC here. Other memory allocations > are performed with GFP_KERNEL (see other 'dma_alloc_coherent()' below and > 'kzalloc()' in 'et131x_rx_dma_memory_alloc()') > > Use GFP_KERNEL which should be enough. > > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Sure, but generally I'd say GFP_ATOMIC is ok if you're in an init path and you can afford to have the allocation thread sleep while memory is being found by the kernel. Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
On Wed, Aug 07, 2019 at 10:23:46PM -0700, Jesse Brandeburg wrote: > On Wed, 31 Jul 2019 09:38:42 +0200 > Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote: > > > There is no good reason to use GFP_ATOMIC here. Other memory allocations > > are performed with GFP_KERNEL (see other 'dma_alloc_coherent()' below and > > 'kzalloc()' in 'et131x_rx_dma_memory_alloc()') > > > > Use GFP_KERNEL which should be enough. > > > > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> > > Sure, but generally I'd say GFP_ATOMIC is ok if you're in an init path > and you can afford to have the allocation thread sleep while memory is > being found by the kernel. That's not what GFP_ATOMIC means. GFP_ATOMIC _will not_ sleep. GFP_KERNEL will.
diff --git a/drivers/net/ethernet/agere/et131x.c b/drivers/net/ethernet/agere/et131x.c index e43d922f043e..174344c450af 100644 --- a/drivers/net/ethernet/agere/et131x.c +++ b/drivers/net/ethernet/agere/et131x.c @@ -2362,7 +2362,7 @@ static int et131x_tx_dma_memory_alloc(struct et131x_adapter *adapter) /* Allocate memory for the TCB's (Transmit Control Block) */ tx_ring->tcb_ring = kcalloc(NUM_TCB, sizeof(struct tcb), - GFP_ATOMIC | GFP_DMA); + GFP_KERNEL | GFP_DMA); if (!tx_ring->tcb_ring) return -ENOMEM;
There is no good reason to use GFP_ATOMIC here. Other memory allocations are performed with GFP_KERNEL (see other 'dma_alloc_coherent()' below and 'kzalloc()' in 'et131x_rx_dma_memory_alloc()') Use GFP_KERNEL which should be enough. Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> --- drivers/net/ethernet/agere/et131x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)