diff --git a/drivers/clk/tegra/clk-bpmp.c b/drivers/clk/tegra/clk-bpmp.c index 28f514c4..542e602f 100644 --- a/drivers/clk/tegra/clk-bpmp.c +++ b/drivers/clk/tegra/clk-bpmp.c @@ -1,7 +1,5 @@ -// SPDX-License-Identifier: GPL-2.0 -/* - * Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved. - */ +// SPDX-License-Identifier: GPL-2.0-only +// SPDX-FileCopyrightText: Copyright (c) 2022-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. #include #include @@ -366,7 +364,7 @@ static int tegra_bpmp_clk_get_info(struct tegra_bpmp *bpmp, unsigned int id, if (err < 0) 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; for (i = 0; i < info->num_parents; i++) diff --git a/drivers/media/platform/tegra/camera/vi/channel.c b/drivers/media/platform/tegra/camera/vi/channel.c index c4da4119..91f8d5f8 100644 --- a/drivers/media/platform/tegra/camera/vi/channel.c +++ b/drivers/media/platform/tegra/camera/vi/channel.c @@ -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 - * - * Copyright (c) 2015-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */ #include @@ -1023,14 +1022,21 @@ static int tegra_channel_querycap(struct file *file, void *fh, struct v4l2_capability *cap) { struct tegra_channel *chan = video_drvdata(file); + ssize_t len; int ret = 0; cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING; cap->device_caps |= V4L2_CAP_EXT_PIX_FORMAT; cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS; - strlcpy(cap->driver, "tegra-video", sizeof(cap->driver)); - strlcpy(cap->card, chan->video->name, sizeof(cap->card)); + len = strscpy(cap->driver, "tegra-video", sizeof(cap->driver)); + 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", dev_name(chan->vi->dev), chan->port[0]); if (ret < 0) diff --git a/drivers/media/platform/tegra/camera/vi/mc_common.c b/drivers/media/platform/tegra/camera/vi/mc_common.c index 57c2d61a..ae6b4927 100644 --- a/drivers/media/platform/tegra/camera/vi/mc_common.c +++ b/drivers/media/platform/tegra/camera/vi/mc_common.c @@ -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 - * - * Copyright (c) 2015-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */ #include @@ -116,11 +115,15 @@ static void tegra_vi_notify(struct v4l2_subdev *sd, int tegra_vi_v4l2_init(struct tegra_mc_vi *vi) { + ssize_t len; int ret; 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)); + if (len < 0) + return -ENAMETOOLONG; + vi->media_dev.hw_revision = 3; media_device_init(&vi->media_dev); diff --git a/drivers/net/ethernet/microchip/5.15/lan743x_ethtool.c b/drivers/net/ethernet/microchip/5.15/lan743x_ethtool.c index 91a755ef..5552a8a7 100644 --- a/drivers/net/ethernet/microchip/5.15/lan743x_ethtool.c +++ b/drivers/net/ethernet/microchip/5.15/lan743x_ethtool.c @@ -268,8 +268,8 @@ static void lan743x_ethtool_get_drvinfo(struct net_device *netdev, { struct lan743x_adapter *adapter = netdev_priv(netdev); - strlcpy(info->driver, DRIVER_NAME, sizeof(info->driver)); - strlcpy(info->bus_info, + strscpy(info->driver, DRIVER_NAME, sizeof(info->driver)); + strscpy(info->bus_info, pci_name(adapter->pdev), sizeof(info->bus_info)); } diff --git a/drivers/net/ethernet/realtek/r8168_n.c b/drivers/net/ethernet/realtek/r8168_n.c index 4239a007..60a12bd6 100644 --- a/drivers/net/ethernet/realtek/r8168_n.c +++ b/drivers/net/ethernet/realtek/r8168_n.c @@ -5232,7 +5232,7 @@ rtl8168_get_drvinfo(struct net_device *dev, info->eedump_len = tp->eeprom_len; BUILD_BUG_ON(sizeof(info->fw_version) < sizeof(rtl_fw->version)); if (rtl_fw) - strlcpy(info->fw_version, rtl_fw->version, + strscpy(info->fw_version, rtl_fw->version, sizeof(info->fw_version)); } diff --git a/drivers/platform/tegra/nvadsp/app.c b/drivers/platform/tegra/nvadsp/app.c index 6b725495..32f4deb7 100644 --- a/drivers/platform/tegra/nvadsp/app.c +++ b/drivers/platform/tegra/nvadsp/app.c @@ -1,7 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-only -/** - * Copyright (c) 2014-2023, NVIDIA CORPORATION. All rights reserved. - */ +// Copyright (c) 2014-2024, NVIDIA CORPORATION. All rights reserved. #include #include @@ -310,7 +308,7 @@ static nvadsp_app_handle_t app_load(const char *appfile, ser = devm_kzalloc(dev, sizeof(*ser), GFP_KERNEL); if (!ser) goto err; - strlcpy(ser->name, appname, NVADSP_NAME_SZ); + strscpy(ser->name, appname, NVADSP_NAME_SZ); /*load the module in to memory */ ser->mod = dynamic ? diff --git a/drivers/platform/tegra/nvadsp/mem_manager.c b/drivers/platform/tegra/nvadsp/mem_manager.c index 371cd8e2..777d8db8 100644 --- a/drivers/platform/tegra/nvadsp/mem_manager.c +++ b/drivers/platform/tegra/nvadsp/mem_manager.c @@ -1,7 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-only -/** - * Copyright (c) 2014-2023, NVIDIA CORPORATION. All rights reserved. - */ +// Copyright (c) 2014-2024, NVIDIA CORPORATION. All rights reserved. #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) { list_add_tail(&best_match_chunk->node, &mc_iterator->node); - strlcpy(best_match_chunk->name, name, + strscpy(best_match_chunk->name, name, NAME_SIZE); spin_unlock_irqrestore(&mm_info->lock, flags); return best_match_chunk; } } 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); return best_match_chunk; } 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->size = size; - strlcpy(new_mc->name, name, NAME_SIZE); + strscpy(new_mc->name, name, NAME_SIZE); best_match_chunk->address += size; best_match_chunk->size -= size; 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) { 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 */ if (mc_curr->address == @@ -235,7 +233,7 @@ void *create_mem_manager(const char *name, unsigned long start_address, 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); 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->size = mm_info->size; - strlcpy(mc->name, "FREE", NAME_SIZE); + strscpy(mc->name, "FREE", NAME_SIZE); list_add(&mc->node, mm_info->free_list); spin_lock_init(&mm_info->lock); diff --git a/drivers/platform/tegra/nvadsp/os.c b/drivers/platform/tegra/nvadsp/os.c index 6c07eabb..77657ce8 100644 --- a/drivers/platform/tegra/nvadsp/os.c +++ b/drivers/platform/tegra/nvadsp/os.c @@ -1,5 +1,5 @@ // 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 @@ -498,7 +498,7 @@ __maybe_unused create_global_symbol_table(const struct firmware *fw) ((type == STT_OBJECT) || (type == STT_FUNC))) { 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].info = info; i++; @@ -2519,9 +2519,9 @@ void nvadsp_get_os_version(char *buf, int buf_size) shared_mem = drv_data->shared_adsp_os_data; if (shared_mem) { os_info = &shared_mem->os_info; - strlcpy(buf, os_info->version, buf_size); + strscpy(buf, os_info->version, buf_size); } else { - strlcpy(buf, "unavailable", buf_size); + strscpy(buf, "unavailable", buf_size); } } EXPORT_SYMBOL(nvadsp_get_os_version); diff --git a/include/trace/events/tegra_capture.h b/include/trace/events/tegra_capture.h index ab0e9b98..999942f8 100644 --- a/include/trace/events/tegra_capture.h +++ b/include/trace/events/tegra_capture.h @@ -1,6 +1,6 @@ /* 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 @@ -27,7 +27,7 @@ DECLARE_EVENT_CLASS(capture__msg, __field(u32, ch_id) ), 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->ch_id = ch_id; ), @@ -47,7 +47,7 @@ TRACE_EVENT(capture_ivc_notify, __array(char, ivc_name, IVC_NAME_LEN) ), 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) ); @@ -72,7 +72,7 @@ TRACE_EVENT(capture_ivc_send_error, __field(int, err) ), 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->ch_id = ch_id; __entry->err = err;