From da8264ce6c5c02b78f95d31021e942ab38d8dd39 Mon Sep 17 00:00:00 2001 From: John Hubbard Date: Mon, 5 Jan 2026 19:52:25 -0800 Subject: [PATCH] gpu: nova-core: use CStr::from_bytes_until_nul() and remove util.rs The util.rs module contained a single helper function, str_from_null_terminated(), which duplicated functionality that is now available in core::ffi::CStr. Specifically, CStr::from_bytes_until_nul() is available in the kernel's minimum supported Rust version (1.78.0), so it time to stop using this custom workaround. Reviewed-by: Joel Fernandes Signed-off-by: John Hubbard Link: https://patch.msgid.link/20260106035226.48853-2-jhubbard@nvidia.com Signed-off-by: Danilo Krummrich --- drivers/gpu/nova-core/gsp/commands.rs | 5 +++-- drivers/gpu/nova-core/nova_core.rs | 1 - drivers/gpu/nova-core/util.rs | 16 ---------------- 3 files changed, 3 insertions(+), 19 deletions(-) delete mode 100644 drivers/gpu/nova-core/util.rs diff --git a/drivers/gpu/nova-core/gsp/commands.rs b/drivers/gpu/nova-core/gsp/commands.rs index 0425c65b5d6fa..a11fe60180917 100644 --- a/drivers/gpu/nova-core/gsp/commands.rs +++ b/drivers/gpu/nova-core/gsp/commands.rs @@ -30,7 +30,6 @@ use crate::{ }, }, sbuffer::SBufferIter, - util, }; /// The `GspSetSystemInfo` command. @@ -209,7 +208,9 @@ impl GetGspStaticInfoReply { /// Returns the name of the GPU as a string, or `None` if the string given by the GSP was /// invalid. pub(crate) fn gpu_name(&self) -> Option<&str> { - util::str_from_null_terminated(&self.gpu_name) + CStr::from_bytes_until_nul(&self.gpu_name) + .ok() + .and_then(|cstr| cstr.to_str().ok()) } } diff --git a/drivers/gpu/nova-core/nova_core.rs b/drivers/gpu/nova-core/nova_core.rs index b98a1c03f13dd..c1121e7c64c57 100644 --- a/drivers/gpu/nova-core/nova_core.rs +++ b/drivers/gpu/nova-core/nova_core.rs @@ -16,7 +16,6 @@ mod gsp; mod num; mod regs; mod sbuffer; -mod util; mod vbios; pub(crate) const MODULE_NAME: &kernel::str::CStr = ::NAME; diff --git a/drivers/gpu/nova-core/util.rs b/drivers/gpu/nova-core/util.rs deleted file mode 100644 index 4b503249a3ef7..0000000000000 --- a/drivers/gpu/nova-core/util.rs +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 - -/// Converts a null-terminated byte slice to a string, or `None` if the array does not -/// contains any null byte or contains invalid characters. -/// -/// Contrary to [`kernel::str::CStr::from_bytes_with_nul`], the null byte can be anywhere in the -/// slice, and not only in the last position. -pub(crate) fn str_from_null_terminated(bytes: &[u8]) -> Option<&str> { - use kernel::str::CStr; - - bytes - .iter() - .position(|&b| b == 0) - .and_then(|null_pos| CStr::from_bytes_with_nul(&bytes[..=null_pos]).ok()) - .and_then(|cstr| cstr.to_str().ok()) -} -- 2.47.3