6.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Danilo Krummrich dakr@kernel.org
[ Upstream commit f7a33a67c50c92589b046e69b9075b7d28d31f87 ]
Don't use unwrap() to extract an Option<SGEntry>, instead handle the error condition gracefully.
Fixes: a841614e607c ("gpu: nova-core: firmware: process and prepare the GSP firmware") Signed-off-by: Danilo Krummrich dakr@kernel.org Reviewed-by: John Hubbard jhubbard@nvidia.com Signed-off-by: Alexandre Courbot acourbot@nvidia.com Message-ID: 20250926130623.61316-2-dakr@kernel.org Signed-off-by: Sasha Levin sashal@kernel.org --- drivers/gpu/nova-core/firmware/gsp.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/nova-core/firmware/gsp.rs b/drivers/gpu/nova-core/firmware/gsp.rs index ca785860e1c82..6b0761460a57d 100644 --- a/drivers/gpu/nova-core/firmware/gsp.rs +++ b/drivers/gpu/nova-core/firmware/gsp.rs @@ -202,9 +202,10 @@ pub(crate) fn new<'a, 'b>( let mut level0_data = kvec![0u8; GSP_PAGE_SIZE]?;
// Fill level 1 page entry. - let level1_entry = level1.iter().next().unwrap().dma_address(); - let dst = &mut level0_data[..size_of_val(&level1_entry)]; - dst.copy_from_slice(&level1_entry.to_le_bytes()); + let level1_entry = level1.iter().next().ok_or(EINVAL)?; + let level1_entry_addr = level1_entry.dma_address(); + let dst = &mut level0_data[..size_of_val(&level1_entry_addr)]; + dst.copy_from_slice(&level1_entry_addr.to_le_bytes());
// Turn the level0 page table into a [`DmaObject`]. DmaObject::from_data(dev, &level0_data)?