From eb0b0c78d4ab66a73bee2b16623e95919535b178 Mon Sep 17 00:00:00 2001 From: Adeel Raza Date: Fri, 13 Dec 2019 14:57:41 -0800 Subject: [PATCH] gpu: nvgpu: sync: remove snprintf usage snprintf() usage is banned by MISRA because it uses variable arguments. Replace snprintf() with other string operations. JIRA NVGPU-3873 Change-Id: I22205f91500c997c155fe1759ccea90b3f481d59 Signed-off-by: Adeel Raza Reviewed-on: https://git-master.nvidia.com/r/2262188 Reviewed-by: svc-mobile-coverity Reviewed-by: svc-mobile-misra Reviewed-by: svc-mobile-cert GVS: Gerrit_Virtual_Submit Reviewed-by: mobile promotions Tested-by: mobile promotions --- .../gpu/nvgpu/common/sync/channel_sync_syncpt.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/nvgpu/common/sync/channel_sync_syncpt.c b/drivers/gpu/nvgpu/common/sync/channel_sync_syncpt.c index 7f9eb0c43..fcbe5d8f7 100644 --- a/drivers/gpu/nvgpu/common/sync/channel_sync_syncpt.c +++ b/drivers/gpu/nvgpu/common/sync/channel_sync_syncpt.c @@ -35,6 +35,7 @@ #include #include #include +#include #include "channel_sync_priv.h" @@ -376,8 +377,17 @@ nvgpu_channel_sync_syncpt_create(struct nvgpu_channel *c, bool user_managed) sp->nvhost_dev = c->g->nvhost_dev; if (user_managed) { - snprintf(syncpt_name, sizeof(syncpt_name), - "%s_%d_user", c->g->name, c->chid); + (void)strncpy(syncpt_name, c->g->name, sizeof(syncpt_name)); + syncpt_name[nvgpu_safe_sub_u64(sizeof(syncpt_name), 1UL)] = '\0'; + (void)strcat(syncpt_name, "_"); + err = nvgpu_strnadd_u32(syncpt_name, c->chid, + nvgpu_safe_sub_u64(sizeof(syncpt_name), strlen(syncpt_name)), 10); + if (err == 0) { + nvgpu_err(c->g, "strnadd failed!"); + nvgpu_kfree(c->g, sp); + return NULL; + } + (void)strcat(syncpt_name, "_user"); sp->id = nvgpu_nvhost_get_syncpt_client_managed(sp->nvhost_dev, syncpt_name);