Browse Source

qcacmn: fix GFP flag for memory allocation

As per implementation of might_sleep(), rcu_read_lock()
nesting depth should be taken into consideration too to
figure out whether sleeping is allowable or not.
To make align with it, allocate memory with GFP_ATOMIC
if rcu_read_lock() nesting depth is not zero.

Change-Id: I83c042827db4024cedf4f043a4243e399a33f6e5
CRs-Fixed: 3272683
Yu Wang 2 years ago
parent
commit
c520d7fe83
1 changed files with 1 additions and 1 deletions
  1. 1 1
      qdf/linux/src/qdf_mem.c

+ 1 - 1
qdf/linux/src/qdf_mem.c

@@ -510,7 +510,7 @@ qdf_export_symbol(prealloc_disabled);
 
 int qdf_mem_malloc_flags(void)
 {
-	if (in_interrupt() || irqs_disabled() || in_atomic())
+	if (in_interrupt() || !preemptible() || rcu_preempt_depth())
 		return GFP_ATOMIC;
 
 	return GFP_KERNEL;