a9cdae1f20
Access to irq_data is maintained using RCU. In irq_dispose_mapping(), unmapping and freeing of the irq data is done asynchronously using call_rcu() API when the conditions are met. In the next instruction, the same irq_data which is passed on for freeing is used to retrieve virq number. This creates use-after-free case if the task gets preempted out after the call to irq_dispose_mapping() and irq_data gets freed asynchronously before it gets scheduled back. As a fix, this patch introduces a variable to store virq number beforehand so that no access to irq_data is made after irq_dispose_mapping() is called. Change-Id: I2f6b4d98d953e0ce1ff55455453965d8c942c942 Signed-off-by: Hrishabh Rajput <quic_hrishabh@quicinc.com> |
||
---|---|---|
.. | ||
gh_arm.c | ||
gunyah_hypercall.c | ||
irq.c | ||
Kconfig | ||
Makefile | ||
reset.c | ||
reset.h |