linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: "Chen Li" <chenli@uniontech.com>,
	"Christian König" <christian.koenig@amd.com>,
	"Alex Deucher" <alexander.deucher@amd.com>,
	"Sasha Levin" <sashal@kernel.org>,
	amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: [PATCH AUTOSEL 5.12 28/33] radeon: use memcpy_to/fromio for UVD fw upload
Date: Tue, 15 Jun 2021 11:48:19 -0400	[thread overview]
Message-ID: <20210615154824.62044-28-sashal@kernel.org> (raw)
In-Reply-To: <20210615154824.62044-1-sashal@kernel.org>

From: Chen Li <chenli@uniontech.com>

[ Upstream commit ab8363d3875a83f4901eb1cc00ce8afd24de6c85 ]

I met a gpu addr bug recently and the kernel log
tells me the pc is memcpy/memset and link register is
radeon_uvd_resume.

As we know, in some architectures, optimized memcpy/memset
may not work well on device memory. Trival memcpy_toio/memset_io
can fix this problem.

BTW, amdgpu has already done it in:
commit ba0b2275a678 ("drm/amdgpu: use memcpy_to/fromio for UVD fw upload"),
that's why it has no this issue on the same gpu and platform.

Signed-off-by: Chen Li <chenli@uniontech.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/gpu/drm/radeon/radeon_uvd.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_uvd.c b/drivers/gpu/drm/radeon/radeon_uvd.c
index dfa9fdbe98da..06bb24d7a9fe 100644
--- a/drivers/gpu/drm/radeon/radeon_uvd.c
+++ b/drivers/gpu/drm/radeon/radeon_uvd.c
@@ -286,7 +286,7 @@ int radeon_uvd_resume(struct radeon_device *rdev)
 	if (rdev->uvd.vcpu_bo == NULL)
 		return -EINVAL;
 
-	memcpy(rdev->uvd.cpu_addr, rdev->uvd_fw->data, rdev->uvd_fw->size);
+	memcpy_toio((void __iomem *)rdev->uvd.cpu_addr, rdev->uvd_fw->data, rdev->uvd_fw->size);
 
 	size = radeon_bo_size(rdev->uvd.vcpu_bo);
 	size -= rdev->uvd_fw->size;
@@ -294,7 +294,7 @@ int radeon_uvd_resume(struct radeon_device *rdev)
 	ptr = rdev->uvd.cpu_addr;
 	ptr += rdev->uvd_fw->size;
 
-	memset(ptr, 0, size);
+	memset_io((void __iomem *)ptr, 0, size);
 
 	return 0;
 }
-- 
2.30.2


  parent reply	other threads:[~2021-06-15 15:50 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-15 15:47 [PATCH AUTOSEL 5.12 01/33] regulator: cros-ec: Fix error code in dev_err message Sasha Levin
2021-06-15 15:47 ` [PATCH AUTOSEL 5.12 02/33] regulator: max77620: Silence deferred probe error Sasha Levin
2021-06-15 15:54   ` Mark Brown
2021-06-20 12:55     ` Sasha Levin
2021-06-21 10:40       ` Mark Brown
2021-06-21 18:03         ` Sasha Levin
2021-06-15 15:47 ` [PATCH AUTOSEL 5.12 03/33] regulator: bd70528: Fix off-by-one for buck123 .n_voltages setting Sasha Levin
2021-06-15 15:47 ` [PATCH AUTOSEL 5.12 04/33] platform/x86: thinkpad_acpi: Add X1 Carbon Gen 9 second fan support Sasha Levin
2021-06-15 15:47 ` [PATCH AUTOSEL 5.12 05/33] ASoC: rt5659: Fix the lost powers for the HDA header Sasha Levin
2021-06-15 15:47 ` [PATCH AUTOSEL 5.12 06/33] phy: phy-mtk-tphy: Fix some resource leaks in mtk_phy_init() Sasha Levin
2021-06-15 15:47 ` [PATCH AUTOSEL 5.12 07/33] ASoC: fsl-asoc-card: Set .owner attribute when registering card Sasha Levin
2021-06-15 15:47 ` [PATCH AUTOSEL 5.12 08/33] regulator: mt6315: Fix function prototype for mt6315_map_mode Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 09/33] regulator: rtmv20: Fix to make regcache value first reading back from HW Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 10/33] NFSv4: nfs4_proc_set_acl needs to restore NFS_CAP_UIDGID_NOMAP on error Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 11/33] ASoC: AMD Renoir - add DMI entry for Lenovo 2020 AMD platforms Sasha Levin
2021-06-15 15:56   ` Mark Brown
2021-06-20 12:56     ` Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 12/33] spi: spi-zynq-qspi: Fix some wrong goto jumps & missing error code Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 13/33] sched/pelt: Ensure that *_sum is always synced with *_avg Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 14/33] ASoC: AMD Renoir: Remove fix for DMI entry on Lenovo 2020 platforms Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 15/33] ASoC: tas2562: Fix TDM_CFG0_SAMPRATE values Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 16/33] regulator: hi6421v600: Fix .vsel_mask setting Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 17/33] spi: stm32-qspi: Always wait BUSY bit to be cleared in stm32_qspi_wait_cmd() Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 18/33] NFSv4: Fix second deadlock in nfs4_evict_inode() Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 19/33] regulator: rt4801: Fix NULL pointer dereference if priv->enable_gpios is NULL Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 20/33] ASoC: rt5682: Fix the fast discharge for headset unplugging in soundwire mode Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 21/33] pinctrl: ralink: rt2880: avoid to error in calls is pin is already enabled Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 22/33] drm/sun4i: dw-hdmi: Make HDMI PHY into a platform device Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 23/33] ASoC: qcom: lpass-cpu: Fix pop noise during audio capture begin Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 24/33] scsi: core: Fix error handling of scsi_host_alloc() Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 25/33] scsi: core: Fix failure handling of scsi_add_host_with_dma() Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 26/33] scsi: core: Put .shost_dev in failure path if host state changes to RUNNING Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 27/33] scsi: core: Only put parent device if host state differs from SHOST_CREATED Sasha Levin
2021-06-15 15:48 ` Sasha Levin [this message]
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 29/33] kvm: avoid speculation-based attacks from out-of-range memslot accesses Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 30/33] kvm: fix previous commit for 32-bit builds Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 31/33] hwmon: (scpi-hwmon) shows the negative temperature properly Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 32/33] riscv: code patching only works on !XIP_KERNEL Sasha Levin
2021-06-15 15:48 ` [PATCH AUTOSEL 5.12 33/33] mm: relocate 'write_protect_seq' in struct mm_struct 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=20210615154824.62044-28-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=alexander.deucher@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=chenli@uniontech.com \
    --cc=christian.koenig@amd.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@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;
as well as URLs for NNTP newsgroup(s).