Re: [PATCH] drm/amd/pm: And destination bounds checking to struct copy

From: Christian König
Date: Mon Aug 23 2021 - 15:01:46 EST


Am 23.08.21 um 16:23 schrieb Kees Cook:

On August 22, 2021 11:28:54 PM PDT, "Christian König" <christian.koenig@xxxxxxx> wrote:

Am 19.08.21 um 22:14 schrieb Kees Cook:
[...]
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 96e895d6be35..4605934a4fb7 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -1446,4 +1446,29 @@ static inline int amdgpu_in_reset(struct amdgpu_device *adev)
{
return atomic_read(&adev->in_gpu_reset);
}
+
+/**
+ * memcpy_trailing - Copy the end of one structure into the middle of another
+ *
+ * @dst: Pointer to destination struct
+ * @first_dst_member: The member name in @dst where the overwrite begins
+ * @last_dst_member: The member name in @dst where the overwrite ends after
+ * @src: Pointer to the source struct
+ * @first_src_member: The member name in @src where the copy begins
+ *
+ */
+#define memcpy_trailing(dst, first_dst_member, last_dst_member, \
+ src, first_src_member) \
Please don't add a function like this into amdgpu.h, especially when it
is only used by the SMU code.
Sure, I'm happy to move it. It wasn't clear to me which headers were considered "immutable". Which header should I put this in?

I think amdgpu_smuio.h, but I'm not 100% sure. Alex do you have a better idea?

We don't want to put anything new into amdgpu.h any more since this is basically only a legacy leftover.

Thanks,
Christian.


And please give it an amdgpu_ prefix so that we are not confusing it
with a core function.
Sure, I will include that.

Apart from that looks good to me.
Thanks!

-Kees