Message ID | 1592899989-22049-1-git-send-email-likaige@loongson.cn |
---|---|
State | New |
Headers | show |
Series | [RESEND] net/cisco: Fix a sleep-in-atomic-context bug in enic_init_affinity_hint() | expand |
diff --git a/drivers/net/ethernet/cisco/enic/enic_main.c b/drivers/net/ethernet/cisco/enic/enic_main.c index cd5fe4f..ee62065 100644 --- a/drivers/net/ethernet/cisco/enic/enic_main.c +++ b/drivers/net/ethernet/cisco/enic/enic_main.c @@ -122,7 +122,7 @@ static void enic_init_affinity_hint(struct enic *enic) !cpumask_empty(enic->msix[i].affinity_mask))) continue; if (zalloc_cpumask_var(&enic->msix[i].affinity_mask, - GFP_KERNEL)) + GFP_ATOMIC)) cpumask_set_cpu(cpumask_local_spread(i, numa_node), enic->msix[i].affinity_mask); }
The kernel module may sleep with holding a spinlock. The function call paths (from bottom to top) are: [FUNC] zalloc_cpumask_var(GFP_KERNEL) drivers/net/ethernet/cisco/enic/enic_main.c, 125: zalloc_cpumask_var in enic_init_affinity_hint drivers/net/ethernet/cisco/enic/enic_main.c, 1918: enic_init_affinity_hint in enic_open drivers/net/ethernet/cisco/enic/enic_main.c, 2348: enic_open in enic_reset drivers/net/ethernet/cisco/enic/enic_main.c, 2341: spin_lock in enic_reset To fix this bug, GFP_KERNEL is replaced with GFP_ATOMIC. Signed-off-by: Kaige Li <likaige@loongson.cn> --- +cc netdev@vger.kernel.org drivers/net/ethernet/cisco/enic/enic_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)