diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4589-drm-amdgpu-avoid-sleep-while-executing-atombios-tabl.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/4589-drm-amdgpu-avoid-sleep-while-executing-atombios-tabl.patch | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4589-drm-amdgpu-avoid-sleep-while-executing-atombios-tabl.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4589-drm-amdgpu-avoid-sleep-while-executing-atombios-tabl.patch new file mode 100644 index 00000000..415cbe31 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4589-drm-amdgpu-avoid-sleep-while-executing-atombios-tabl.patch @@ -0,0 +1,71 @@ +From ad62d7bc1a8dc279b1687bc7bd14a77181f4ff7e Mon Sep 17 00:00:00 2001 +From: Shirish S <shirish.s@amd.com> +Date: Tue, 29 May 2018 09:23:53 +0530 +Subject: [PATCH 4589/5725] drm/amdgpu: avoid sleep while executing atombios + table (V2) + +This patch replaces kzalloc's flag from GFP_KERNEL to +GFP_ATOMIC to avoid sleeping in atomic context. + +Below is the stack trace: + +BUG: sleeping function called from invalid context at mm/slab.h:*** +in_atomic(): 1, irqs_disabled(): 0, pid: 1137, name: DrmThread +CPU: 1 PID: 1137 Comm: DrmThread Tainted: G W 4.14.43 #10 +Call Trace: + dump_stack+0x4d/0x63 + ___might_sleep+0x11f/0x12e + __kmalloc+0x76/0x126 + amdgpu_atom_execute_table_locked+0xfc/0x285 + amdgpu_atom_execute_table+0x5d/0x72 + transmitter_control_v1_5+0xef/0x11a + hwss_edp_backlight_control+0x132/0x151 + dce110_disable_stream+0x133/0x16e + core_link_disable_stream+0x1c5/0x23b + dce110_reset_hw_ctx_wrap+0xb4/0x1aa + dce110_apply_ctx_to_hw+0x4e/0x6da + ? generic_reg_get+0x1f/0x33 + dc_commit_state+0x33f/0x3d2 + amdgpu_dm_atomic_commit_tail+0x2cf/0x5d2 + ? wait_for_common+0x5b/0x69 + commit_tail+0x42/0x64 + drm_atomic_helper_commit+0xdc/0xf9 + drm_atomic_helper_set_config+0x5c/0x76 + __drm_mode_set_config_internal+0x64/0x105 + drm_mode_setcrtc+0x474/0x56f + ? drm_mode_getcrtc+0x155/0x155 + drm_ioctl_kernel+0x6c/0xa8 + drm_ioctl+0x267/0x353 + ? drm_mode_getcrtc+0x155/0x155 + amdgpu_drm_ioctl+0x4f/0x7f + vfs_ioctl+0x21/0x2f + do_vfs_ioctl+0x4c4/0x4e7 + ? security_file_ioctl+0x3b/0x4f + SyS_ioctl+0x57/0x79 + do_syscall_64+0x64/0x72 + entry_SYSCALL_64_after_hwframe+0x3d/0xa2 + +V2: Added stack trace in commit message. + +Signed-off-by: Shirish S <shirish.s@amd.com> +Reviewed-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/atom.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/atom.c b/drivers/gpu/drm/amd/amdgpu/atom.c +index bfd98f0..da4558c 100644 +--- a/drivers/gpu/drm/amd/amdgpu/atom.c ++++ b/drivers/gpu/drm/amd/amdgpu/atom.c +@@ -1221,7 +1221,7 @@ static int amdgpu_atom_execute_table_locked(struct atom_context *ctx, int index, + ectx.abort = false; + ectx.last_jump = 0; + if (ws) +- ectx.ws = kzalloc(4 * ws, GFP_KERNEL); ++ ectx.ws = kzalloc(4 * ws, GFP_ATOMIC); + else + ectx.ws = NULL; + +-- +2.7.4 + |