From 8cc8aeb322a9d1ece0c0763c15917dce43d13f59 Mon Sep 17 00:00:00 2001 From: Scott Long Date: Thu, 1 Nov 2018 12:29:27 -0700 Subject: [PATCH] gpu: nvgpu: MISRA 21.15 fixes to mm code MISRA Rule 21.15 prohibits use of memcpy() with incompatible ptrs to qualified/unqualified types. To circumvent this issue we've introduced a new MISRA-compliant nvgpu_memcpy() function. This change switches all offending uses of memcpy() in mm/* over to use nvgpu_memcpy() with appropriate casts applied. JIRA NVGPU-849 Change-Id: I17be87475fde62e969b014d4d0fa455dae5d4373 Signed-off-by: Scott Long Reviewed-on: https://git-master.nvidia.com/r/1941257 Reviewed-by: Philip Elcan Reviewed-by: svc-misra-checker GVS: Gerrit_Virtual_Submit Reviewed-by: Alex Waterman Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/common/mm/nvgpu_mem.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/nvgpu/common/mm/nvgpu_mem.c b/drivers/gpu/nvgpu/common/mm/nvgpu_mem.c index e542c757b..6154f5deb 100644 --- a/drivers/gpu/nvgpu/common/mm/nvgpu_mem.c +++ b/drivers/gpu/nvgpu/common/mm/nvgpu_mem.c @@ -26,6 +26,8 @@ #include #include #include +#include + /* * Make sure to use the right coherency aperture if you use this function! This * will not add any checks. If you want to simply use the default coherency then @@ -240,7 +242,7 @@ void nvgpu_mem_rd_n(struct gk20a *g, struct nvgpu_mem *mem, u8 *src = (u8 *)mem->cpu_va + offset; WARN_ON(mem->cpu_va == NULL); - (void) memcpy(dest, src, size); + nvgpu_memcpy((u8 *)dest, src, size); } else if (mem->aperture == APERTURE_VIDMEM) { nvgpu_pramin_rd_n(g, mem, offset, size, dest); } else { @@ -281,7 +283,7 @@ void nvgpu_mem_wr_n(struct gk20a *g, struct nvgpu_mem *mem, u32 offset, u8 *dest = (u8 *)mem->cpu_va + offset; WARN_ON(mem->cpu_va == NULL); - (void) memcpy(dest, src, size); + nvgpu_memcpy(dest, (u8 *)src, size); } else if (mem->aperture == APERTURE_VIDMEM) { nvgpu_pramin_wr_n(g, mem, offset, size, src); if (!mem->skip_wmb) {