From: John Hubbard Date: Tue, 6 Jan 2026 03:52:25 +0000 (-0800) Subject: gpu: nova-core: use CStr::from_bytes_until_nul() and remove util.rs X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=da8264ce6c5c02b78f95d31021e942ab38d8dd39;p=thirdparty%2Fkernel%2Flinux.git 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 --- diff --git a/drivers/gpu/nova-core/gsp/commands.rs b/drivers/gpu/nova-core/gsp/commands.rs index 0425c65b5d6f..a11fe6018091 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 b98a1c03f13d..c1121e7c64c5 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 4b503249a3ef..000000000000 --- 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()) -}