From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: "Sasha Levin" <sashal@kernel.org>,
dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org,
"Christian König" <christian.koenig@amd.com>,
linux-media@vger.kernel.org
Subject: [PATCH AUTOSEL 5.12 031/160] drm/sched: Avoid data corruptions
Date: Tue, 6 Jul 2021 07:16:17 -0400 [thread overview]
Message-ID: <20210706111827.2060499-31-sashal@kernel.org> (raw)
In-Reply-To: <20210706111827.2060499-1-sashal@kernel.org>
From: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
[ Upstream commit 0b10ab80695d61422337ede6ff496552d8ace99d ]
Wait for all dependencies of a job to complete before
killing it to avoid data corruptions.
Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210519141407.88444-1-andrey.grodzovsky@amd.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/gpu/drm/scheduler/sched_entity.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/gpu/drm/scheduler/sched_entity.c b/drivers/gpu/drm/scheduler/sched_entity.c
index 72c39608236b..1b2fdf7f3ccd 100644
--- a/drivers/gpu/drm/scheduler/sched_entity.c
+++ b/drivers/gpu/drm/scheduler/sched_entity.c
@@ -222,11 +222,16 @@ static void drm_sched_entity_kill_jobs_cb(struct dma_fence *f,
static void drm_sched_entity_kill_jobs(struct drm_sched_entity *entity)
{
struct drm_sched_job *job;
+ struct dma_fence *f;
int r;
while ((job = to_drm_sched_job(spsc_queue_pop(&entity->job_queue)))) {
struct drm_sched_fence *s_fence = job->s_fence;
+ /* Wait for all dependencies to avoid data corruptions */
+ while ((f = job->sched->ops->dependency(job, entity)))
+ dma_fence_wait(f, false);
+
drm_sched_fence_scheduled(s_fence);
dma_fence_set_error(&s_fence->finished, -ESRCH);
--
2.30.2
next prev parent reply other threads:[~2021-07-06 11:19 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-06 11:15 [PATCH AUTOSEL 5.12 001/160] drm/etnaviv: fix NULL check before some freeing functions is not needed Sasha Levin
2021-07-06 11:15 ` [PATCH AUTOSEL 5.12 002/160] drm/mxsfb: Don't select DRM_KMS_FB_HELPER Sasha Levin
2021-07-06 11:15 ` [PATCH AUTOSEL 5.12 003/160] drm/zte: " Sasha Levin
2021-07-06 11:15 ` [PATCH AUTOSEL 5.12 004/160] drm/ast: Fixed CVE for DP501 Sasha Levin
2021-07-06 11:15 ` [PATCH AUTOSEL 5.12 005/160] drm/amd/display: fix HDCP reset sequence on reinitialize Sasha Levin
2021-07-06 11:15 ` [PATCH AUTOSEL 5.12 006/160] drm/amd/amdgpu/sriov disable all ip hw status by default Sasha Levin
2021-07-06 11:15 ` [PATCH AUTOSEL 5.12 007/160] drm/vc4: fix argument ordering in vc4_crtc_get_margins() Sasha Levin
2021-07-06 11:15 ` [PATCH AUTOSEL 5.12 008/160] drm/bridge: nwl-dsi: Force a full modeset when crtc_state->active is changed to be true Sasha Levin
2021-07-06 11:15 ` [PATCH AUTOSEL 5.12 009/160] drm/imx: ipuv3-plane: do not advertise YUV formats on planes without CSC Sasha Levin
2021-07-06 11:15 ` [PATCH AUTOSEL 5.12 011/160] drm/amd/display: fix potential gpu reset deadlock Sasha Levin
2021-07-06 11:15 ` [PATCH AUTOSEL 5.12 012/160] drm/amdgpu: change the default timeout for kernel compute queues Sasha Levin
2021-07-06 11:15 ` [PATCH AUTOSEL 5.12 013/160] drm/amd/display: fix use_max_lb flag for 420 pixel formats Sasha Levin
2021-07-06 11:16 ` [PATCH AUTOSEL 5.12 020/160] drm/mediatek: Fix PM reference leak in mtk_crtc_ddp_hw_init() Sasha Levin
2021-07-06 11:16 ` [PATCH AUTOSEL 5.12 022/160] drm/bridge: lt9611: Add missing MODULE_DEVICE_TABLE Sasha Levin
2021-07-06 11:16 ` [PATCH AUTOSEL 5.12 024/160] drm/virtio: Fixes a potential NULL pointer dereference on probe failure Sasha Levin
2021-07-06 11:16 ` [PATCH AUTOSEL 5.12 025/160] drm/virtio: Fix double free " Sasha Levin
2021-07-06 11:16 ` [PATCH AUTOSEL 5.12 030/160] drm/scheduler: Fix hang when sched_entity released Sasha Levin
2021-07-06 11:16 ` Sasha Levin [this message]
2021-07-06 11:16 ` [PATCH AUTOSEL 5.12 034/160] drm/vc4: Fix clock source for VEC PixelValve on BCM2711 Sasha Levin
2021-07-06 11:16 ` [PATCH AUTOSEL 5.12 035/160] drm/vc4: hdmi: Fix PM reference leak in vc4_hdmi_encoder_pre_crtc_co() Sasha Levin
2021-07-06 11:16 ` [PATCH AUTOSEL 5.12 039/160] drm/bridge: cdns: Fix PM reference leak in cdns_dsi_transfer() Sasha Levin
2021-07-06 11:16 ` [PATCH AUTOSEL 5.12 041/160] drm/amd/display: fix odm scaling Sasha Levin
2021-07-06 11:16 ` [PATCH AUTOSEL 5.12 044/160] drm: rockchip: add missing registers for RK3188 Sasha Levin
2021-07-06 11:16 ` [PATCH AUTOSEL 5.12 045/160] drm: rockchip: add missing registers for RK3066 Sasha Levin
2021-07-06 11:16 ` [PATCH AUTOSEL 5.12 050/160] drm: bridge: cdns-mhdp8546: Fix PM reference leak in Sasha Levin
2021-07-06 11:16 ` [PATCH AUTOSEL 5.12 055/160] drm/amdgpu: fix sdma firmware version error in sriov Sasha Levin
2021-07-06 11:16 ` [PATCH AUTOSEL 5.12 056/160] drm/amd/display: Avoid HDCP over-read and corruption Sasha Levin
2021-07-06 11:16 ` [PATCH AUTOSEL 5.12 057/160] drm/amdgpu: remove unsafe optimization to drop preamble ib Sasha Levin
2021-07-06 11:17 ` [PATCH AUTOSEL 5.12 075/160] drm/amd/display: Fix DCN 3.01 DSCCLK validation Sasha Levin
2021-07-06 11:17 ` [PATCH AUTOSEL 5.12 076/160] drm/amd/display: Update scaling settings on modeset Sasha Levin
2021-07-06 11:17 ` [PATCH AUTOSEL 5.12 077/160] drm/amd/display: Release MST resources on switch from MST to SST Sasha Levin
2021-07-06 11:17 ` [PATCH AUTOSEL 5.12 078/160] drm/amd/display: Set DISPCLK_MAX_ERRDET_CYCLES to 7 Sasha Levin
2021-07-06 11:17 ` [PATCH AUTOSEL 5.12 079/160] drm/amd/display: Fix off-by-one error in DML Sasha Levin
2021-07-06 11:17 ` [PATCH AUTOSEL 5.12 080/160] drm/amd/display: Fix crash during MPO + ODM combine mode recalculation Sasha Levin
2021-07-06 11:17 ` [PATCH AUTOSEL 5.12 084/160] drm/amdkfd: use allowed domain for vmbo validation Sasha Levin
2021-07-06 11:17 ` [PATCH AUTOSEL 5.12 088/160] drm/amd/display: Verify Gamma & Degamma LUT sizes in amdgpu_dm_atomic_check Sasha Levin
2021-07-06 11:17 ` [PATCH AUTOSEL 5.12 095/160] drm/amdkfd: fix circular locking on get_wave_state Sasha Levin
2021-07-06 11:17 ` [PATCH AUTOSEL 5.12 096/160] drm/amdkfd: Fix circular lock in nocpsch path Sasha Levin
2021-07-06 11:17 ` [PATCH AUTOSEL 5.12 107/160] drm/amdgpu: fix bad address translation for sienna_cichlid Sasha Levin
2021-07-06 11:17 ` [PATCH AUTOSEL 5.12 108/160] drm/amdkfd: Walk through list with dqm lock hold Sasha Levin
2021-07-06 11:17 ` [PATCH AUTOSEL 5.12 119/160] drm/amd/display: Fix edp_bootup_bl_level initialization issue Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210706111827.2060499-31-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=christian.koenig@amd.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox