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

Commit fd1e84e8 authored by Ghanim Fodi's avatar Ghanim Fodi
Browse files

msm: ipa: use GFP_ATOMIC for DMA memory allocation during SSR



SSR logic is executed during device shutdown. During device
shutdown the Linux tasks (processes) are moving to SIGKILL
state. If a DMA allocation from the kernel happens
in a context of a process in SIGKILL state and page migration
is needed, the allocation will fail.
Use GFP_ATOMIC allocation flag during SSR. This will
utilize the atomic memory pool and will not require page
migration.

CRs-fixed: 1077811
Change-Id: Ie06b85d1f9d0a230c3d3832b6f0bbcdefc520c1e
Signed-off-by: default avatarGhanim Fodi <gfodi@codeaurora.org>
parent ef3068bf
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1837,7 +1837,7 @@ static int ipa_q6_clean_q6_tables(void)
	u32 max_cmds = ipa_get_max_flt_rt_cmds(ipa_ctx->ipa_num_pipes);

	mem.base = dma_alloc_coherent(ipa_ctx->pdev, 4, &mem.phys_base,
		GFP_KERNEL);
		GFP_ATOMIC);
	if (!mem.base) {
		IPAERR("failed to alloc DMA buff of size 4\n");
		return -ENOMEM;
+1 −1
Original line number Diff line number Diff line
@@ -2088,7 +2088,7 @@ static int ipa3_q6_clean_q6_tables(void)

	mem.size = IPA_HW_TBL_HDR_WIDTH;
	mem.base = dma_alloc_coherent(ipa3_ctx->pdev, mem.size,
		&mem.phys_base, GFP_KERNEL);
		&mem.phys_base, GFP_ATOMIC);
	if (!mem.base) {
		IPAERR("failed to alloc DMA buff of size %d\n", mem.size);
		return -ENOMEM;