Skip to content

RDMA/irdma: Fix KASAN issue with tasklet

Kamal Heib requested to merge kheib/centos-stream-9:RHEL-32264 into main

JIRA: https://issues.redhat.com/browse/RHEL-32264

commit bd97cea7b18a0a553773af806dfbfac27a7c4acb
Author: Mike Marciniszyn mike.marciniszyn@intel.com
Date: Wed Jan 31 17:38:46 2024 -0600

RDMA/irdma: Fix KASAN issue with tasklet  

KASAN testing revealed the following issue assocated with freeing an IRQ.  

[50006.466686] Call Trace:  
[50006.466691]  <IRQ>  
[50006.489538]  dump_stack+0x5c/0x80  
[50006.493475]  print_address_description.constprop.6+0x1a/0x150  
[50006.499872]  ? irdma_sc_process_ceq+0x483/0x790 [irdma]  
[50006.505742]  ? irdma_sc_process_ceq+0x483/0x790 [irdma]  
[50006.511644]  kasan_report.cold.11+0x7f/0x118  
[50006.516572]  ? irdma_sc_process_ceq+0x483/0x790 [irdma]  
[50006.522473]  irdma_sc_process_ceq+0x483/0x790 [irdma]  
[50006.528232]  irdma_process_ceq+0xb2/0x400 [irdma]  
[50006.533601]  ? irdma_hw_flush_wqes_callback+0x370/0x370 [irdma]  
[50006.540298]  irdma_ceq_dpc+0x44/0x100 [irdma]  
[50006.545306]  tasklet_action_common.isra.14+0x148/0x2c0  
[50006.551096]  __do_softirq+0x1d0/0xaf8  
[50006.555396]  irq_exit_rcu+0x219/0x260  
[50006.559670]  irq_exit+0xa/0x20  
[50006.563320]  smp_apic_timer_interrupt+0x1bf/0x690  
[50006.568645]  apic_timer_interrupt+0xf/0x20  
[50006.573341]  </IRQ>  

The issue is that a tasklet could be pending on another core racing  
the delete of the irq.  

Fix by insuring any scheduled tasklet is killed after deleting the  
irq.  

Fixes: 44d9e52977a1 ("RDMA/irdma: Implement device initialization definitions")  
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>  
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>  
Signed-off-by: Sindhu Devale <sindhu.devale@intel.com>  
Link: https://lore.kernel.org/r/20240131233849.400285-2-sindhu.devale@intel.com  
Signed-off-by: Leon Romanovsky <leon@kernel.org>  

Signed-off-by: Kamal Heib kheib@redhat.com

aa910ae9 (Kamal Heib)
RDMA/irdma: Fix KASAN issue with tasklet

drivers/infiniband/hw/irdma/hw.c | 7 +++++++
1 file changed, 7 insertions(+)

Edited by Kamal Heib

Merge request reports