From 5c74b5a2092c1ef394a241f4a83936eef99bb0cf Mon Sep 17 00:00:00 2001 From: Scott Long Date: Tue, 30 Oct 2018 09:41:32 -0700 Subject: [PATCH] gpu: nvgpu: MISRA 21.15 fixes to acr 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 acr code over to use nvgpu_memcpy() with appropriate casts applied. JIRA NVGPU-849 Change-Id: Ib7bac9353cf69c402f8925927c84d4ae7ecbe49d Signed-off-by: Scott Long Reviewed-on: https://git-master.nvidia.com/r/1939422 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: svc-misra-checker GVS: Gerrit_Virtual_Submit Reviewed-by: Alex Waterman Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gm20b/acr_gm20b.c | 7 ++++--- drivers/gpu/nvgpu/gp106/acr_gp106.c | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/nvgpu/gm20b/acr_gm20b.c b/drivers/gpu/nvgpu/gm20b/acr_gm20b.c index 56a024974..3505deebc 100644 --- a/drivers/gpu/nvgpu/gm20b/acr_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/acr_gm20b.c @@ -36,6 +36,7 @@ #include #include #include +#include #include "mm_gm20b.h" #include "pmu_gm20b.h" @@ -125,7 +126,7 @@ static int pmu_ucode_details(struct gk20a *g, struct flcn_ucode_img *p_img) err = -ENOMEM; goto release_sig; } - memcpy(lsf_desc, (void *)pmu_sig->data, + nvgpu_memcpy((u8 *)lsf_desc, (u8 *)pmu_sig->data, min_t(size_t, sizeof(*lsf_desc), pmu_sig->size)); lsf_desc->falcon_id = LSF_FALCON_ID_PMU; @@ -165,7 +166,7 @@ static int fecs_ucode_details(struct gk20a *g, struct flcn_ucode_img *p_img) err = -ENOMEM; goto rel_sig; } - memcpy(lsf_desc, (void *)fecs_sig->data, + nvgpu_memcpy((u8 *)lsf_desc, (u8 *)fecs_sig->data, min_t(size_t, sizeof(*lsf_desc), fecs_sig->size)); lsf_desc->falcon_id = LSF_FALCON_ID_FECS; @@ -237,7 +238,7 @@ static int gpccs_ucode_details(struct gk20a *g, struct flcn_ucode_img *p_img) err = -ENOMEM; goto rel_sig; } - memcpy(lsf_desc, (void *)gpccs_sig->data, + nvgpu_memcpy((u8 *)lsf_desc, (u8 *)gpccs_sig->data, min_t(size_t, sizeof(*lsf_desc), gpccs_sig->size)); lsf_desc->falcon_id = LSF_FALCON_ID_GPCCS; diff --git a/drivers/gpu/nvgpu/gp106/acr_gp106.c b/drivers/gpu/nvgpu/gp106/acr_gp106.c index d3fa505e6..58233e9fa 100644 --- a/drivers/gpu/nvgpu/gp106/acr_gp106.c +++ b/drivers/gpu/nvgpu/gp106/acr_gp106.c @@ -31,6 +31,7 @@ #include #include #include +#include #include "gm20b/mm_gm20b.h" #include "gm20b/acr_gm20b.h" @@ -160,7 +161,7 @@ int pmu_ucode_details(struct gk20a *g, struct flcn_ucode_img_v1 *p_img) err = -ENOMEM; goto release_sig; } - memcpy(lsf_desc, (void *)pmu_sig->data, + nvgpu_memcpy((u8 *)lsf_desc, (u8 *)pmu_sig->data, min_t(size_t, sizeof(*lsf_desc), pmu_sig->size)); lsf_desc->falcon_id = LSF_FALCON_ID_PMU; @@ -233,7 +234,7 @@ int fecs_ucode_details(struct gk20a *g, struct flcn_ucode_img_v1 *p_img) err = -ENOMEM; goto rel_sig; } - memcpy(lsf_desc, (void *)fecs_sig->data, + nvgpu_memcpy((u8 *)lsf_desc, (u8 *)fecs_sig->data, min_t(size_t, sizeof(*lsf_desc), fecs_sig->size)); lsf_desc->falcon_id = LSF_FALCON_ID_FECS; @@ -433,7 +434,7 @@ int sec2_ucode_details(struct gk20a *g, struct flcn_ucode_img_v1 *p_img) goto release_sig; } - memcpy(lsf_desc, (void *)sec2_sig->data, + nvgpu_memcpy((u8 *)lsf_desc, (u8 *)sec2_sig->data, min_t(size_t, sizeof(*lsf_desc), sec2_sig->size)); lsf_desc->falcon_id = LSF_FALCON_ID_SEC2;