kernel: nvidia-oot: Fix Linux KMD coverity defect

Fix STR31-C ad STR07-C for
- drivers/media/platform/tegra/cdi/cdi_gpio.c
- drivers/media/platform/tegra/cdi/cdi_mgr.c

Jira CAMERASW-30856

Change-Id: I40d2c1b47b83d2dbc6102229dd67225e1a9156ab
Signed-off-by: Zhiyuan Wang <zhiwang@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3281931
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: Frank Chen <frankc@nvidia.com>
Reviewed-by: Ajith Kumar <ajithk@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Semi Malinen <smalinen@nvidia.com>
This commit is contained in:
Zhiyuan Wang
2025-01-10 12:24:40 +00:00
committed by Jon Hunter
parent 6fb5af66eb
commit 82af289c71
2 changed files with 18 additions and 8 deletions

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (c) 2017-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-FileCopyrightText: Copyright (c) 2017-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#include <nvidia/conftest.h>
@@ -52,12 +52,11 @@ static struct gpio_chip *cdi_gpio_get_chip(struct platform_device *pdev,
#endif
char name[MAX_STR_SIZE];
if (strlen(pd->gpio_prnt_chip) > MAX_STR_SIZE) {
dev_err(&pdev->dev, "%s: gpio chip name is too long: %s\n",
__func__, pd->gpio_prnt_chip);
if (strscpy(name, pd->gpio_prnt_chip, MAX_STR_SIZE) < 0) {
dev_err(&pdev->dev, "%s: gpio chip name is too long: %.*s\n",
__func__, MAX_STR_SIZE, pd->gpio_prnt_chip);
return NULL;
}
strcpy(name, pd->gpio_prnt_chip);
#if defined(NV_GPIO_DEVICE_FIND_PRESENT) && \
defined(NV_GPIO_DEVICE_GET_CHIP_PRESENT) /* Linux 6.7 */

View File

@@ -498,7 +498,20 @@ static int __cdi_create_dev(
struct cdi_mgr_priv *cdi_mgr, struct cdi_mgr_new_dev *new_dev)
{
struct cdi_mgr_client *cdi_dev;
struct i2c_board_info brd;
struct i2c_board_info brd = {
.type = "cdi-dev",
.flags = 0U,
.addr = 0U,
.dev_name = NULL,
.platform_data = NULL,
.of_node = NULL,
.fwnode = NULL,
.swnode = NULL,
.resources = NULL,
.num_resources = 0U,
.irq = 0
};
int err = 0;
if (new_dev->addr >= 0x80 || new_dev->drv_name[0] == '\0' ||
@@ -542,8 +555,6 @@ static int __cdi_create_dev(
mutex_init(&cdi_dev->mutex);
INIT_LIST_HEAD(&cdi_dev->list);
memset(&brd, 0, sizeof(brd));
strncpy(brd.type, "cdi-dev", sizeof(brd.type));
brd.addr = cdi_dev->cfg.addr;
brd.platform_data = &cdi_dev->pdata;
cdi_dev->client = i2c_new_client_device(cdi_mgr->adap, &brd);