[PATCH] drm/amdkfd: Fix memory leakage

2022-11-28 Thread Konstantin Meskhidze
This patch fixes potential memory leakage and seg fault
in  _gpuvm_import_dmabuf() function

Signed-off-by: Konstantin Meskhidze 
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
index 978d3970b5cc..e0084f712e02 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
@@ -2257,7 +2257,7 @@ int amdgpu_amdkfd_gpuvm_import_dmabuf(struct 
amdgpu_device *adev,
 
ret = drm_vma_node_allow(&obj->vma_node, drm_priv);
if (ret) {
-   kfree(mem);
+   kfree(*mem);
return ret;
}
 
-- 
2.25.1



[PATCH] drm: amdgpu: Fix logic error

2022-11-28 Thread Konstantin Meskhidze
This commit fixes logic error in function 'amdgpu_hw_ip_info':
   - value 'uvd' might be 'vcn'.

Signed-off-by: Konstantin Meskhidze 
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index fe23e09eec98..28752a6a92c4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -424,7 +424,7 @@ static int amdgpu_hw_ip_info(struct amdgpu_device *adev,
case AMDGPU_HW_IP_VCN_DEC:
type = AMD_IP_BLOCK_TYPE_VCN;
for (i = 0; i < adev->vcn.num_vcn_inst; i++) {
-   if (adev->uvd.harvest_config & (1 << i))
+   if (adev->vcn.harvest_config & (1 << i))
continue;
 
if (adev->vcn.inst[i].ring_dec.sched.ready)
@@ -436,7 +436,7 @@ static int amdgpu_hw_ip_info(struct amdgpu_device *adev,
case AMDGPU_HW_IP_VCN_ENC:
type = AMD_IP_BLOCK_TYPE_VCN;
for (i = 0; i < adev->vcn.num_vcn_inst; i++) {
-   if (adev->uvd.harvest_config & (1 << i))
+   if (adev->vcn.harvest_config & (1 << i))
continue;
 
for (j = 0; j < adev->vcn.num_enc_rings; j++)
-- 
2.25.1



[PATCH] drm: amd: display: Fix memory leakage

2022-11-29 Thread Konstantin Meskhidze
This commit fixes memory leakage in dc_construct_ctx() function.

Signed-off-by: Konstantin Meskhidze 
---
 drivers/gpu/drm/amd/display/dc/core/dc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c 
b/drivers/gpu/drm/amd/display/dc/core/dc.c
index 997ab031f816..359e28d3567e 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -878,6 +878,7 @@ static bool dc_construct_ctx(struct dc *dc,
 
dc_ctx->perf_trace = dc_perf_trace_create();
if (!dc_ctx->perf_trace) {
+   kfree(dc_ctx);
ASSERT_CRITICAL(false);
return false;
}
-- 
2.25.1



[PATCH] drivers: gpu: drm: nouveau: fix invalid variable name

2023-07-31 Thread Konstantin Meskhidze
This commit fixes logic error in function 'nvkm_dp_train':
argument of function nvkm_dp_train_link might be rate, not ret

Co-developed-by: Ivanov Mikhail 
Signed-off-by: Konstantin Meskhidze 
---
 drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c 
b/drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c
index 40c8ea43c..8740978ac 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c
@@ -455,7 +455,7 @@ nvkm_dp_train(struct nvkm_outp *outp, u32 dataKBps)
if (atomic_read(&outp->dp.lt.done)) {
for (rate = 0; rate < outp->dp.rates; rate++) {
if (outp->dp.rate[rate].rate == ior->dp.bw * 27000)
-   return nvkm_dp_train_link(outp, ret);
+   return nvkm_dp_train_link(outp, rate);
}
WARN_ON(1);
return -EINVAL;
-- 
2.34.1



[PATCH] drivers: gpu: drm: radeon: possible buffer overflow

2023-08-17 Thread Konstantin Meskhidze
Buffer 'afmt_status' of size 6 could overflow, since index 'afmt_idx' is
checked after access.

Fixes: 5cc4e5fc293b ("drm/radeon: Cleanup HDMI audio interrupt handling for 
evergreen")
Co-developed-by: Ivanov Mikhail 
Signed-off-by: Konstantin Meskhidze 
---
 drivers/gpu/drm/radeon/evergreen.c | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/radeon/evergreen.c 
b/drivers/gpu/drm/radeon/evergreen.c
index 4f06356d9..f0ae087be 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -4821,14 +4821,15 @@ int evergreen_irq_process(struct radeon_device *rdev)
break;
case 44: /* hdmi */
afmt_idx = src_data;
-   if (!(afmt_status[afmt_idx] & AFMT_AZ_FORMAT_WTRIG))
-   DRM_DEBUG("IH: IH event w/o asserted irq 
bit?\n");
-
if (afmt_idx > 5) {
DRM_ERROR("Unhandled interrupt: %d %d\n",
  src_id, src_data);
break;
}
+
+   if (!(afmt_status[afmt_idx] & AFMT_AZ_FORMAT_WTRIG))
+   DRM_DEBUG("IH: IH event w/o asserted irq 
bit?\n");
+
afmt_status[afmt_idx] &= ~AFMT_AZ_FORMAT_WTRIG;
queue_hdmi = true;
DRM_DEBUG("IH: HDMI%d\n", afmt_idx + 1);
-- 
2.34.1



[PATCH] drm/vmwgfx: fix typo of sizeof argument

2023-09-05 Thread Konstantin Meskhidze
Since size of 'header' pointer and '*header' structure is equal on 64-bit
machines issue probably didn't cause any wrong behavior. But anyway,
fixing typo is required.

Fixes: 7a73ba7469cb ("drm/vmwgfx: Use TTM handles instead of SIDs as user-space 
surface handles.")
Co-developed-by: Ivanov Mikhail 
Signed-off-by: Konstantin Meskhidze 
---
 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
index 98e0723ca6f5..cc3f301ca163 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -1619,7 +1619,7 @@ static int vmw_cmd_tex_state(struct vmw_private *dev_priv,
 {
VMW_DECLARE_CMD_VAR(*cmd, SVGA3dCmdSetTextureState);
SVGA3dTextureState *last_state = (SVGA3dTextureState *)
- ((unsigned long) header + header->size + sizeof(header));
+ ((unsigned long) header + header->size + sizeof(*header));
SVGA3dTextureState *cur_state = (SVGA3dTextureState *)
((unsigned long) header + sizeof(*cmd));
struct vmw_resource *ctx;
-- 
2.34.1