Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a82268b3 authored by Insu Yun's avatar Insu Yun Committed by Doug Ledford
Browse files

nes: handling failed allocation when creating workqueue



Since create_singlethread_workqueue uses kzalloc internally,
it can fail when the system is under memory pressure, so need
to handle it.

Signed-off-by: default avatarInsu Yun <wuninsu@gmail.com>
Reviewed-by: default avatarLeon Romanovsky <leon@leon.nu>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent bfec53c6
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -2856,12 +2856,22 @@ static struct nes_cm_core *nes_cm_alloc_core(void)

	nes_debug(NES_DBG_CM, "Enable QUEUE EVENTS\n");
	cm_core->event_wq = create_singlethread_workqueue("nesewq");
	if (!cm_core->event_wq)
		goto out_free_cmcore;
	cm_core->post_event = nes_cm_post_event;
	nes_debug(NES_DBG_CM, "Enable QUEUE DISCONNECTS\n");
	cm_core->disconn_wq = create_singlethread_workqueue("nesdwq");
	if (!cm_core->disconn_wq)
		goto out_free_wq;

	print_core(cm_core);
	return cm_core;

out_free_wq:
	destroy_workqueue(cm_core->event_wq);
out_free_cmcore:
	kfree(cm_core);
	return NULL;
}