public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] dma-direct: Fix dma_direct_use_pool helper
@ 2021-12-13 12:33 Alexander Stein
  2021-12-13 12:55 ` Christoph Hellwig
  0 siblings, 1 reply; 2+ messages in thread
From: Alexander Stein @ 2021-12-13 12:33 UTC (permalink / raw)
  To: Christoph Hellwig, Marek Szyprowski, Robin Murphy
  Cc: Alexander Stein, iommu, linux-kernel

During refactoring the logic around gfpflags_allow_blocking() got inverted
due to missing '!'. Fix this by adding it back.

Fixes: 8d7c141bb80f ("dma-direct: add a dma_direct_use_pool helper")
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
---
I bisected this to the commit in 'Fixed:' tag. Here is the splat:
------------[ cut here ]------------                                                                                                                                                                                                                                           
Failed to get suitable pool for 30be0000.ethernet                                                                                                                                                                                                                              
WARNING: CPU: 0 PID: 62 at kernel/dma/pool.c:279 dma_alloc_from_pool+0x88/0x1d0                                                                                                                                                                                                
Modules linked in:                                                                                                                                                                                                                                                             
CPU: 0 PID: 62 Comm: kworker/u8:2 Not tainted 5.16.0-rc4-tq+ #238                                                                                                                                                                                                              
Hardware name: TQ-Systems GmbH i.MX8MQ TQMa8MQ on MBa8Mx (DT)                                                                                                                                                                                                                  
Workqueue: events_unbound deferred_probe_work_func                                                                                                                                                                                                                             
pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)                                                                                                                                                                                                                
pc : dma_alloc_from_pool+0x88/0x1d0                                                                                                                                                                                                                                            
lr : dma_alloc_from_pool+0x88/0x1d0                                                                                                                                                                                                                                            
sp : ffff8000126b3860                                                                                                                                                                                                                                                          
x29: ffff8000126b3860 x28: ffff800012133d68 x27: 0000000000000000                                                                                                                                                                                                              
x26: ffff0000c03e0000 x25: ffff8000126b3930 x24: ffff0000c08ee010                                                                                                                                                                                                              
x23: ffff800012133d48 x22: ffff80001011f4b0 x21: ffff800011712820                                                                                                                                                                                                              
x20: 0000000000018000 x19: ffff0000c0ef8000 x18: 0000000000000014                                                                                                                                                                                                              
x17: 756420676e697375 x16: 202c646e756f6620 x15: 0000000000000000                                                                                                                                                                                                              
x14: 0000000000000000 x13: 20726f66206c6f6f x12: 7020656c62617469                                                                                                                                                                                                              
x11: 656820747563205b x10: 000000000000000a x9 : ffff8000126b3860                                                                                                                                                                                                              
x8 : 000000000000000a x7 : 0000000000000011 x6 : 000000000000000a
x5 : 0000000000000000 x4 : 0000000000000000 x3 : 00000000ffffffff
x2 : ffff800011eb6b30 x1 : 0000000000000000 x0 : 0000000000000000
Call trace:
 dma_alloc_from_pool+0x88/0x1d0
 dma_direct_alloc+0x8c/0x39c
 dma_alloc_attrs+0x7c/0xe4
 dmam_alloc_attrs+0x68/0xbc
 fec_enet_init+0xfc/0x504
 fec_probe+0x558/0x8b0
 platform_probe+0x64/0x100
 call_driver_probe+0x28/0x130
 really_probe+0xbc/0x390
 __driver_probe_device+0xfc/0x144
 driver_probe_device+0xcc/0x150
 __device_attach_driver+0xd4/0x180
 bus_for_each_drv+0x74/0xc4
 __device_attach+0xd8/0x1e0
 device_initial_probe+0x10/0x20
 bus_probe_device+0x90/0xa0
 deferred_probe_work_func+0x9c/0xf0
 process_one_work+0x1cc/0x360
 worker_thread+0x214/0x3b0
 kthread+0x150/0x160
 ret_from_fork+0x10/0x20
---[ end trace 3934c72dbe137fa9 ]---

 kernel/dma/direct.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index d0a317ed8f02..50f48e9e4598 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -162,7 +162,7 @@ static struct page *__dma_direct_alloc_pages(struct device *dev, size_t size,
  */
 static bool dma_direct_use_pool(struct device *dev, gfp_t gfp)
 {
-	return gfpflags_allow_blocking(gfp) && !is_swiotlb_for_alloc(dev);
+	return !gfpflags_allow_blocking(gfp) && !is_swiotlb_for_alloc(dev);
 }
 
 static void *dma_direct_alloc_from_pool(struct device *dev, size_t size,
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 1/1] dma-direct: Fix dma_direct_use_pool helper
  2021-12-13 12:33 [PATCH 1/1] dma-direct: Fix dma_direct_use_pool helper Alexander Stein
@ 2021-12-13 12:55 ` Christoph Hellwig
  0 siblings, 0 replies; 2+ messages in thread
From: Christoph Hellwig @ 2021-12-13 12:55 UTC (permalink / raw)
  To: Alexander Stein
  Cc: Christoph Hellwig, Marek Szyprowski, Robin Murphy, iommu,
	linux-kernel

Thanks Alexander,

but this was already fixed 4 days ago.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-12-13 12:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-12-13 12:33 [PATCH 1/1] dma-direct: Fix dma_direct_use_pool helper Alexander Stein
2021-12-13 12:55 ` Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox