mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 09:11:26 +03:00
drivers: Don't use strlcpy()
For Linux v6.8, the function strlcpy() has been removed. The function
strscpy() was added in Linux v4.3 and has been preferred over strlcpy().
See upstream Linux commit 30035e45753b ("string: provide strscpy()") for
more details. The Linux checkpatch.pl script warns against using
strlcpy().
The function strscpy() takes the same arguments as strlcpy(), but
returns a type of ssize_t instead of size_t. Update the drivers to use
strscpy() instead of strlcpy().
Bug 4448428
Change-Id: Id6f196f0e81decf1545f9aa4f74f5c63a7f72a48
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3059457
(cherry picked from commit ecf383265b)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3063000
Reviewed-by: Brad Griffis <bgriffis@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
1b6db0ce3c
commit
1ccb6edda2
@@ -1,7 +1,5 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
/*
|
// SPDX-FileCopyrightText: Copyright (c) 2022-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||||
* Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/clk-provider.h>
|
#include <linux/clk-provider.h>
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
@@ -366,7 +364,7 @@ static int tegra_bpmp_clk_get_info(struct tegra_bpmp *bpmp, unsigned int id,
|
|||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
strlcpy(info->name, response.name, MRQ_CLK_NAME_MAXLEN);
|
strscpy(info->name, response.name, MRQ_CLK_NAME_MAXLEN);
|
||||||
info->num_parents = response.num_parents;
|
info->num_parents = response.num_parents;
|
||||||
|
|
||||||
for (i = 0; i < info->num_parents; i++)
|
for (i = 0; i < info->num_parents; i++)
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
// SPDX-FileCopyrightText: Copyright (c) 2015-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||||
/*
|
/*
|
||||||
* NVIDIA Tegra Video Input Device
|
* NVIDIA Tegra Video Input Device
|
||||||
*
|
|
||||||
* Copyright (c) 2015-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/atomic.h>
|
#include <linux/atomic.h>
|
||||||
@@ -1023,14 +1022,21 @@ static int
|
|||||||
tegra_channel_querycap(struct file *file, void *fh, struct v4l2_capability *cap)
|
tegra_channel_querycap(struct file *file, void *fh, struct v4l2_capability *cap)
|
||||||
{
|
{
|
||||||
struct tegra_channel *chan = video_drvdata(file);
|
struct tegra_channel *chan = video_drvdata(file);
|
||||||
|
ssize_t len;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
|
cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
|
||||||
cap->device_caps |= V4L2_CAP_EXT_PIX_FORMAT;
|
cap->device_caps |= V4L2_CAP_EXT_PIX_FORMAT;
|
||||||
cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
|
cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
|
||||||
|
|
||||||
strlcpy(cap->driver, "tegra-video", sizeof(cap->driver));
|
len = strscpy(cap->driver, "tegra-video", sizeof(cap->driver));
|
||||||
strlcpy(cap->card, chan->video->name, sizeof(cap->card));
|
if (len < 0)
|
||||||
|
return -ENAMETOOLONG;
|
||||||
|
|
||||||
|
len = strscpy(cap->card, chan->video->name, sizeof(cap->card));
|
||||||
|
if (len < 0)
|
||||||
|
return -ENAMETOOLONG;
|
||||||
|
|
||||||
ret = snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s:%u",
|
ret = snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s:%u",
|
||||||
dev_name(chan->vi->dev), chan->port[0]);
|
dev_name(chan->vi->dev), chan->port[0]);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
// SPDX-FileCopyrightText: Copyright (c) 2015-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||||
/*
|
/*
|
||||||
* Tegra Video Input device common APIs
|
* Tegra Video Input device common APIs
|
||||||
*
|
|
||||||
* Copyright (c) 2015-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
@@ -116,11 +115,15 @@ static void tegra_vi_notify(struct v4l2_subdev *sd,
|
|||||||
|
|
||||||
int tegra_vi_v4l2_init(struct tegra_mc_vi *vi)
|
int tegra_vi_v4l2_init(struct tegra_mc_vi *vi)
|
||||||
{
|
{
|
||||||
|
ssize_t len;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
vi->media_dev.dev = vi->dev;
|
vi->media_dev.dev = vi->dev;
|
||||||
strlcpy(vi->media_dev.model, "NVIDIA Tegra Video Input Device",
|
len = strscpy(vi->media_dev.model, "NVIDIA Tegra Video Input Device",
|
||||||
sizeof(vi->media_dev.model));
|
sizeof(vi->media_dev.model));
|
||||||
|
if (len < 0)
|
||||||
|
return -ENAMETOOLONG;
|
||||||
|
|
||||||
vi->media_dev.hw_revision = 3;
|
vi->media_dev.hw_revision = 3;
|
||||||
|
|
||||||
media_device_init(&vi->media_dev);
|
media_device_init(&vi->media_dev);
|
||||||
|
|||||||
@@ -268,8 +268,8 @@ static void lan743x_ethtool_get_drvinfo(struct net_device *netdev,
|
|||||||
{
|
{
|
||||||
struct lan743x_adapter *adapter = netdev_priv(netdev);
|
struct lan743x_adapter *adapter = netdev_priv(netdev);
|
||||||
|
|
||||||
strlcpy(info->driver, DRIVER_NAME, sizeof(info->driver));
|
strscpy(info->driver, DRIVER_NAME, sizeof(info->driver));
|
||||||
strlcpy(info->bus_info,
|
strscpy(info->bus_info,
|
||||||
pci_name(adapter->pdev), sizeof(info->bus_info));
|
pci_name(adapter->pdev), sizeof(info->bus_info));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5232,7 +5232,7 @@ rtl8168_get_drvinfo(struct net_device *dev,
|
|||||||
info->eedump_len = tp->eeprom_len;
|
info->eedump_len = tp->eeprom_len;
|
||||||
BUILD_BUG_ON(sizeof(info->fw_version) < sizeof(rtl_fw->version));
|
BUILD_BUG_ON(sizeof(info->fw_version) < sizeof(rtl_fw->version));
|
||||||
if (rtl_fw)
|
if (rtl_fw)
|
||||||
strlcpy(info->fw_version, rtl_fw->version,
|
strscpy(info->fw_version, rtl_fw->version,
|
||||||
sizeof(info->fw_version));
|
sizeof(info->fw_version));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
/**
|
// Copyright (c) 2014-2024, NVIDIA CORPORATION. All rights reserved.
|
||||||
* Copyright (c) 2014-2023, NVIDIA CORPORATION. All rights reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/tegra_nvadsp.h>
|
#include <linux/tegra_nvadsp.h>
|
||||||
@@ -310,7 +308,7 @@ static nvadsp_app_handle_t app_load(const char *appfile,
|
|||||||
ser = devm_kzalloc(dev, sizeof(*ser), GFP_KERNEL);
|
ser = devm_kzalloc(dev, sizeof(*ser), GFP_KERNEL);
|
||||||
if (!ser)
|
if (!ser)
|
||||||
goto err;
|
goto err;
|
||||||
strlcpy(ser->name, appname, NVADSP_NAME_SZ);
|
strscpy(ser->name, appname, NVADSP_NAME_SZ);
|
||||||
|
|
||||||
/*load the module in to memory */
|
/*load the module in to memory */
|
||||||
ser->mod = dynamic ?
|
ser->mod = dynamic ?
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
/**
|
// Copyright (c) 2014-2024, NVIDIA CORPORATION. All rights reserved.
|
||||||
* Copyright (c) 2014-2023, NVIDIA CORPORATION. All rights reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define pr_fmt(fmt) "%s : %d, " fmt, __func__, __LINE__
|
#define pr_fmt(fmt) "%s : %d, " fmt, __func__, __LINE__
|
||||||
|
|
||||||
@@ -56,14 +54,14 @@ void *mem_request(void *mem_handle, const char *name, size_t size)
|
|||||||
if (best_match_chunk->address < mc_iterator->address) {
|
if (best_match_chunk->address < mc_iterator->address) {
|
||||||
list_add_tail(&best_match_chunk->node,
|
list_add_tail(&best_match_chunk->node,
|
||||||
&mc_iterator->node);
|
&mc_iterator->node);
|
||||||
strlcpy(best_match_chunk->name, name,
|
strscpy(best_match_chunk->name, name,
|
||||||
NAME_SIZE);
|
NAME_SIZE);
|
||||||
spin_unlock_irqrestore(&mm_info->lock, flags);
|
spin_unlock_irqrestore(&mm_info->lock, flags);
|
||||||
return best_match_chunk;
|
return best_match_chunk;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
list_add(&best_match_chunk->node, mm_info->alloc_list);
|
list_add(&best_match_chunk->node, mm_info->alloc_list);
|
||||||
strlcpy(best_match_chunk->name, name, NAME_SIZE);
|
strscpy(best_match_chunk->name, name, NAME_SIZE);
|
||||||
spin_unlock_irqrestore(&mm_info->lock, flags);
|
spin_unlock_irqrestore(&mm_info->lock, flags);
|
||||||
return best_match_chunk;
|
return best_match_chunk;
|
||||||
} else {
|
} else {
|
||||||
@@ -76,7 +74,7 @@ void *mem_request(void *mem_handle, const char *name, size_t size)
|
|||||||
}
|
}
|
||||||
new_mc->address = best_match_chunk->address;
|
new_mc->address = best_match_chunk->address;
|
||||||
new_mc->size = size;
|
new_mc->size = size;
|
||||||
strlcpy(new_mc->name, name, NAME_SIZE);
|
strscpy(new_mc->name, name, NAME_SIZE);
|
||||||
best_match_chunk->address += size;
|
best_match_chunk->address += size;
|
||||||
best_match_chunk->size -= size;
|
best_match_chunk->size -= size;
|
||||||
list_for_each_entry(mc_iterator, mm_info->alloc_list, node) {
|
list_for_each_entry(mc_iterator, mm_info->alloc_list, node) {
|
||||||
@@ -112,7 +110,7 @@ bool mem_release(void *mem_handle, void *handle)
|
|||||||
list_for_each_entry(mc_curr, mm_info->free_list, node) {
|
list_for_each_entry(mc_curr, mm_info->free_list, node) {
|
||||||
if (mc_free->address < mc_curr->address) {
|
if (mc_free->address < mc_curr->address) {
|
||||||
|
|
||||||
strlcpy(mc_free->name, "FREE", NAME_SIZE);
|
strscpy(mc_free->name, "FREE", NAME_SIZE);
|
||||||
|
|
||||||
/* adjacent next free node */
|
/* adjacent next free node */
|
||||||
if (mc_curr->address ==
|
if (mc_curr->address ==
|
||||||
@@ -235,7 +233,7 @@ void *create_mem_manager(const char *name, unsigned long start_address,
|
|||||||
return ERR_PTR(-ENOMEM);
|
return ERR_PTR(-ENOMEM);
|
||||||
}
|
}
|
||||||
|
|
||||||
strlcpy(mm_info->name, name, NAME_SIZE);
|
strscpy(mm_info->name, name, NAME_SIZE);
|
||||||
|
|
||||||
mm_info->alloc_list = kzalloc(sizeof(struct list_head), GFP_KERNEL);
|
mm_info->alloc_list = kzalloc(sizeof(struct list_head), GFP_KERNEL);
|
||||||
if (unlikely(!mm_info->alloc_list)) {
|
if (unlikely(!mm_info->alloc_list)) {
|
||||||
@@ -267,7 +265,7 @@ void *create_mem_manager(const char *name, unsigned long start_address,
|
|||||||
|
|
||||||
mc->address = mm_info->start_address;
|
mc->address = mm_info->start_address;
|
||||||
mc->size = mm_info->size;
|
mc->size = mm_info->size;
|
||||||
strlcpy(mc->name, "FREE", NAME_SIZE);
|
strscpy(mc->name, "FREE", NAME_SIZE);
|
||||||
list_add(&mc->node, mm_info->free_list);
|
list_add(&mc->node, mm_info->free_list);
|
||||||
spin_lock_init(&mm_info->lock);
|
spin_lock_init(&mm_info->lock);
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
// SPDX-FileCopyrightText: Copyright (c) 2014-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
// SPDX-FileCopyrightText: Copyright (c) 2014-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||||
|
|
||||||
#include <nvidia/conftest.h>
|
#include <nvidia/conftest.h>
|
||||||
|
|
||||||
@@ -498,7 +498,7 @@ __maybe_unused create_global_symbol_table(const struct firmware *fw)
|
|||||||
((type == STT_OBJECT) || (type == STT_FUNC))) {
|
((type == STT_OBJECT) || (type == STT_FUNC))) {
|
||||||
char *name = priv.adsp_glo_sym_tbl[i].name;
|
char *name = priv.adsp_glo_sym_tbl[i].name;
|
||||||
|
|
||||||
strlcpy(name, name_table + sym->st_name, SYM_NAME_SZ);
|
strscpy(name, name_table + sym->st_name, SYM_NAME_SZ);
|
||||||
priv.adsp_glo_sym_tbl[i].addr = sym->st_value;
|
priv.adsp_glo_sym_tbl[i].addr = sym->st_value;
|
||||||
priv.adsp_glo_sym_tbl[i].info = info;
|
priv.adsp_glo_sym_tbl[i].info = info;
|
||||||
i++;
|
i++;
|
||||||
@@ -2519,9 +2519,9 @@ void nvadsp_get_os_version(char *buf, int buf_size)
|
|||||||
shared_mem = drv_data->shared_adsp_os_data;
|
shared_mem = drv_data->shared_adsp_os_data;
|
||||||
if (shared_mem) {
|
if (shared_mem) {
|
||||||
os_info = &shared_mem->os_info;
|
os_info = &shared_mem->os_info;
|
||||||
strlcpy(buf, os_info->version, buf_size);
|
strscpy(buf, os_info->version, buf_size);
|
||||||
} else {
|
} else {
|
||||||
strlcpy(buf, "unavailable", buf_size);
|
strscpy(buf, "unavailable", buf_size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(nvadsp_get_os_version);
|
EXPORT_SYMBOL(nvadsp_get_os_version);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
* Copyright (c) 2022-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#undef TRACE_SYSTEM
|
#undef TRACE_SYSTEM
|
||||||
@@ -27,7 +27,7 @@ DECLARE_EVENT_CLASS(capture__msg,
|
|||||||
__field(u32, ch_id)
|
__field(u32, ch_id)
|
||||||
),
|
),
|
||||||
TP_fast_assign(
|
TP_fast_assign(
|
||||||
strlcpy(__entry->ivc_name, ivc_name, sizeof(__entry->ivc_name));
|
strscpy(__entry->ivc_name, ivc_name, sizeof(__entry->ivc_name));
|
||||||
__entry->msg_id = msg_id;
|
__entry->msg_id = msg_id;
|
||||||
__entry->ch_id = ch_id;
|
__entry->ch_id = ch_id;
|
||||||
),
|
),
|
||||||
@@ -47,7 +47,7 @@ TRACE_EVENT(capture_ivc_notify,
|
|||||||
__array(char, ivc_name, IVC_NAME_LEN)
|
__array(char, ivc_name, IVC_NAME_LEN)
|
||||||
),
|
),
|
||||||
TP_fast_assign(
|
TP_fast_assign(
|
||||||
strlcpy(__entry->ivc_name, ivc_name, sizeof(__entry->ivc_name));
|
strscpy(__entry->ivc_name, ivc_name, sizeof(__entry->ivc_name));
|
||||||
),
|
),
|
||||||
TP_printk("ivc:\"%s\"", __entry->ivc_name)
|
TP_printk("ivc:\"%s\"", __entry->ivc_name)
|
||||||
);
|
);
|
||||||
@@ -72,7 +72,7 @@ TRACE_EVENT(capture_ivc_send_error,
|
|||||||
__field(int, err)
|
__field(int, err)
|
||||||
),
|
),
|
||||||
TP_fast_assign(
|
TP_fast_assign(
|
||||||
strlcpy(__entry->ivc_name, ivc_name, sizeof(__entry->ivc_name));
|
strscpy(__entry->ivc_name, ivc_name, sizeof(__entry->ivc_name));
|
||||||
__entry->msg_id = msg_id;
|
__entry->msg_id = msg_id;
|
||||||
__entry->ch_id = ch_id;
|
__entry->ch_id = ch_id;
|
||||||
__entry->err = err;
|
__entry->err = err;
|
||||||
|
|||||||
Reference in New Issue
Block a user