From nobody Sat Oct 4 12:45:47 2025 Received: from mta-65-225.siemens.flowmailer.net (mta-65-225.siemens.flowmailer.net [185.136.65.225]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 116A32165F3 for ; Fri, 15 Aug 2025 19:22:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.136.65.225 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755285776; cv=none; b=iDNr1CBHxLKhTbgkIkuf/3dNT7qe0zVkqukyBGPdkbwd8tfFrHX0TKC+DjeYbMvb0nhDa6YMfPwL0SkyQNu6KnzawUvJ2+OdB+J/ifhZGArvmKjDRD7wSipfVg8FnG89wkoC51XgXbljbo+udUNg7DWCLe2f6j1aeUe9iEEpd3A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755285776; c=relaxed/simple; bh=WzGu0vkiWxurZhjxNWxXiL8wXMkA0Krs3vEf+B93y/c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dATO7hGF1DfBQYjczI+kofhttqdLxiBxUCwOvdWFy3mi4A5NXxylqyAnFsPZHhmZ2GJDKvLU7TvRQ428uxM0LVQPO5SKozp08EcbBrYp+ZDmWUIJWJ7D3n5g+2feYfRXkYPCxCojHwaqAxLasCf9RTT1W81XvLoC/nW1bVWZ+h4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=siemens.com; spf=pass smtp.mailfrom=rts-flowmailer.siemens.com; dkim=pass (2048-bit key) header.d=siemens.com header.i=jan.kiszka@siemens.com header.b=IPSf+y9d; arc=none smtp.client-ip=185.136.65.225 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=siemens.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rts-flowmailer.siemens.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siemens.com header.i=jan.kiszka@siemens.com header.b="IPSf+y9d" Received: by mta-65-225.siemens.flowmailer.net with ESMTPSA id 202508151912425bf0b4102ee56acdf2 for ; Fri, 15 Aug 2025 21:12:42 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm2; d=siemens.com; i=jan.kiszka@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=zAcR7qNUqu2BVY+5qNzpxP47Zaao6Yqb3FymgBZ/xr0=; b=IPSf+y9dTc573fZiVeJ4w3qo0pkWfTVD0xdMnLP6qifHIwVaL33swWDl5JMxXa6O32RoTN XJs4OoGTXUa7JMV/mOvqC/dmw30bEsW/mXqSaIDIeDHUuCt3QdFJCPqvOZNs8UYroPwufu2P kSX1gpYipxutw5yqQrKM4+yyUs7CauLMDA1tZqaNhC0A5+ieiE5dcw6Kcg6KlYRRBzJ0TuXT zv2+CG+5tcTL3HGyxN5HdvgGFYkOuNqQje7/7xK0qUI7eA9XYPfZvBcha+YMSLB1q2C+l1PL t0dex2/YLj6p1FAiySYSPSzgxA0p8Iw2++fV8Yrg1IgBIumzvdDpAsAw==; From: Jan Kiszka To: Ard Biesheuvel , Masahisa Kojima , Ilias Apalodimas Cc: linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org, Sumit Garg , Jens Wiklander Subject: [PATCH 1/3] efi: stmm: Fix incorrect buffer allocation method Date: Fri, 15 Aug 2025 21:12:39 +0200 Message-ID: <37ba67b97d55c49a7c6a1597f104b30b31a4a395.1755285161.git.jan.kiszka@siemens.com> In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-294854:519-21489:flowmailer Content-Type: text/plain; charset="utf-8" From: Jan Kiszka The communication buffer allocated by setup_mm_hdr is later on passed to tee_shm_register_kernel_buf. The latter expects those buffers to be contiguous pages, but setup_mm_hdr just uses kmalloc. That can cause various corruptions or BUGs, specifically since 9aec2fb0fd5e, though it was broken before as well. Fix this by using alloc_pages_exact instead of kmalloc. Fixes: c44b6be62e8d ("efi: Add tee-based EFI variable driver") Signed-off-by: Jan Kiszka --- drivers/firmware/efi/stmm/tee_stmm_efi.c | 44 +++++++++++++++--------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/drivers/firmware/efi/stmm/tee_stmm_efi.c b/drivers/firmware/ef= i/stmm/tee_stmm_efi.c index f741ca279052..706ba095a4ba 100644 --- a/drivers/firmware/efi/stmm/tee_stmm_efi.c +++ b/drivers/firmware/efi/stmm/tee_stmm_efi.c @@ -148,13 +148,14 @@ static efi_status_t mm_communicate(u8 *comm_buf, size= _t payload_size) * header data. * * @dptr: pointer address to store allocated buffer + * @nr_pages: pointer address to store number of allocated pages * @payload_size: payload size * @func: standAloneMM function number * @ret: EFI return code * Return: pointer to corresponding StandAloneMM function buffer or NULL */ -static void *setup_mm_hdr(u8 **dptr, size_t payload_size, size_t func, - efi_status_t *ret) +static void *setup_mm_hdr(u8 **dptr, size_t *nr_pages, size_t payload_size, + size_t func, efi_status_t *ret) { const efi_guid_t mm_var_guid =3D EFI_MM_VARIABLE_GUID; struct efi_mm_communicate_header *mm_hdr; @@ -173,9 +174,12 @@ static void *setup_mm_hdr(u8 **dptr, size_t payload_si= ze, size_t func, return NULL; } =20 - comm_buf =3D kzalloc(MM_COMMUNICATE_HEADER_SIZE + - MM_VARIABLE_COMMUNICATE_SIZE + payload_size, - GFP_KERNEL); + *nr_pages =3D roundup(MM_COMMUNICATE_HEADER_SIZE + + MM_VARIABLE_COMMUNICATE_SIZE + payload_size, + PAGE_SIZE) / PAGE_SIZE; + + comm_buf =3D alloc_pages_exact(*nr_pages * PAGE_SIZE, + GFP_KERNEL | __GFP_ZERO); if (!comm_buf) { *ret =3D EFI_OUT_OF_RESOURCES; return NULL; @@ -205,13 +209,14 @@ static efi_status_t get_max_payload(size_t *size) struct smm_variable_payload_size *var_payload =3D NULL; size_t payload_size; u8 *comm_buf =3D NULL; + size_t nr_pages; efi_status_t ret; =20 if (!size) return EFI_INVALID_PARAMETER; =20 payload_size =3D sizeof(*var_payload); - var_payload =3D setup_mm_hdr(&comm_buf, payload_size, + var_payload =3D setup_mm_hdr(&comm_buf, &nr_pages, payload_size, SMM_VARIABLE_FUNCTION_GET_PAYLOAD_SIZE, &ret); if (!var_payload) @@ -239,7 +244,7 @@ static efi_status_t get_max_payload(size_t *size) */ *size -=3D 2; out: - kfree(comm_buf); + free_pages_exact(comm_buf, nr_pages * PAGE_SIZE); return ret; } =20 @@ -250,6 +255,7 @@ static efi_status_t get_property_int(u16 *name, size_t = name_size, struct smm_variable_var_check_property *smm_property; size_t payload_size; u8 *comm_buf =3D NULL; + size_t nr_pages; efi_status_t ret; =20 memset(var_property, 0, sizeof(*var_property)); @@ -258,7 +264,7 @@ static efi_status_t get_property_int(u16 *name, size_t = name_size, return EFI_INVALID_PARAMETER; =20 smm_property =3D setup_mm_hdr( - &comm_buf, payload_size, + &comm_buf, &nr_pages, payload_size, SMM_VARIABLE_FUNCTION_VAR_CHECK_VARIABLE_PROPERTY_GET, &ret); if (!smm_property) return EFI_OUT_OF_RESOURCES; @@ -282,7 +288,7 @@ static efi_status_t get_property_int(u16 *name, size_t = name_size, memcpy(var_property, &smm_property->property, sizeof(*var_property)); =20 out: - kfree(comm_buf); + free_pages_exact(comm_buf, nr_pages * PAGE_SIZE); return ret; } =20 @@ -296,6 +302,7 @@ static efi_status_t tee_get_variable(u16 *name, efi_gui= d_t *vendor, size_t name_size; size_t tmp_dsize; u8 *comm_buf =3D NULL; + size_t nr_pages; efi_status_t ret; =20 if (!name || !vendor || !data_size) @@ -314,7 +321,7 @@ static efi_status_t tee_get_variable(u16 *name, efi_gui= d_t *vendor, } =20 payload_size =3D MM_VARIABLE_ACCESS_HEADER_SIZE + name_size + tmp_dsize; - var_acc =3D setup_mm_hdr(&comm_buf, payload_size, + var_acc =3D setup_mm_hdr(&comm_buf, &nr_pages, payload_size, SMM_VARIABLE_FUNCTION_GET_VARIABLE, &ret); if (!var_acc) return EFI_OUT_OF_RESOURCES; @@ -347,7 +354,7 @@ static efi_status_t tee_get_variable(u16 *name, efi_gui= d_t *vendor, memcpy(data, (u8 *)var_acc->name + var_acc->name_size, var_acc->data_size); out: - kfree(comm_buf); + free_pages_exact(comm_buf, nr_pages * PAGE_SIZE); return ret; } =20 @@ -359,6 +366,7 @@ static efi_status_t tee_get_next_variable(unsigned long= *name_size, size_t out_name_size; size_t in_name_size; u8 *comm_buf =3D NULL; + size_t nr_pages; efi_status_t ret; =20 if (!name_size || !name || !guid) @@ -379,7 +387,7 @@ static efi_status_t tee_get_next_variable(unsigned long= *name_size, max_payload_size - MM_VARIABLE_GET_NEXT_HEADER_SIZE; =20 payload_size =3D MM_VARIABLE_GET_NEXT_HEADER_SIZE + out_name_size; - var_getnext =3D setup_mm_hdr(&comm_buf, payload_size, + var_getnext =3D setup_mm_hdr(&comm_buf, &nr_pages, payload_size, SMM_VARIABLE_FUNCTION_GET_NEXT_VARIABLE_NAME, &ret); if (!var_getnext) @@ -404,7 +412,7 @@ static efi_status_t tee_get_next_variable(unsigned long= *name_size, memcpy(name, var_getnext->name, var_getnext->name_size); =20 out: - kfree(comm_buf); + free_pages_exact(comm_buf, nr_pages * PAGE_SIZE); return ret; } =20 @@ -418,6 +426,7 @@ static efi_status_t tee_set_variable(efi_char16_t *name= , efi_guid_t *vendor, size_t payload_size; size_t name_size; u8 *comm_buf =3D NULL; + size_t nr_pages; =20 if (!name || name[0] =3D=3D 0 || !vendor) return EFI_INVALID_PARAMETER; @@ -436,7 +445,7 @@ static efi_status_t tee_set_variable(efi_char16_t *name= , efi_guid_t *vendor, * so we won't need to account for any failures in reading/setting * the properties, if the allocation fails */ - var_acc =3D setup_mm_hdr(&comm_buf, payload_size, + var_acc =3D setup_mm_hdr(&comm_buf, &nr_pages, payload_size, SMM_VARIABLE_FUNCTION_SET_VARIABLE, &ret); if (!var_acc) return EFI_OUT_OF_RESOURCES; @@ -467,7 +476,7 @@ static efi_status_t tee_set_variable(efi_char16_t *name= , efi_guid_t *vendor, ret =3D mm_communicate(comm_buf, payload_size); dev_dbg(pvt_data.dev, "Set Variable %s %d %lx\n", __FILE__, __LINE__, ret= ); out: - kfree(comm_buf); + free_pages_exact(comm_buf, nr_pages * PAGE_SIZE); return ret; } =20 @@ -489,9 +498,10 @@ static efi_status_t tee_query_variable_info(u32 attrib= utes, size_t payload_size; efi_status_t ret; u8 *comm_buf; + size_t nr_pages; =20 payload_size =3D sizeof(*mm_query_info); - mm_query_info =3D setup_mm_hdr(&comm_buf, payload_size, + mm_query_info =3D setup_mm_hdr(&comm_buf, &nr_pages, payload_size, SMM_VARIABLE_FUNCTION_QUERY_VARIABLE_INFO, &ret); if (!mm_query_info) @@ -507,7 +517,7 @@ static efi_status_t tee_query_variable_info(u32 attribu= tes, *max_variable_size =3D mm_query_info->max_variable_size; =20 out: - kfree(comm_buf); + free_pages_exact(comm_buf, nr_pages * PAGE_SIZE); return ret; } =20 --=20 2.43.0 From nobody Sat Oct 4 12:45:47 2025 Received: from mta-64-225.siemens.flowmailer.net (mta-64-225.siemens.flowmailer.net [185.136.64.225]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 75C062288D5 for ; Fri, 15 Aug 2025 19:53:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.136.64.225 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755287585; cv=none; b=C3wH+yyFJpUz+zM6/bqK5yGnv3MYz0Q/OIHk2E4flc04/5QHE0gUW442kQKsqAYVS3+pqKVv7FrqBTlESI5US+AXVP28OeMopQEoz/poDAtWRI+AU378wXUKajzds388fwNR704rQS5JoudKOqfmssji4K0ujrkM7CI3lOnmDEo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755287585; c=relaxed/simple; bh=x92zVQNMZzDOH2cvOB+047T4zZpTmVv+/3XQay17u4w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=I8SDdSoAvOCptxLcD22z2CkIGKUi1c6FTcjGqzConDEYQs+WQ8Imxn8aWkGkcRIYoI7w5MXJilod6clKdrGqIgKFzFu8mebs79HM4N4qz5/a3OMZ+PyNW9sVBkvblNFOWNa5iGY/Jy3OQCKd58zySK31xeVTXNM8Kx5fNU0pmdY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=siemens.com; spf=pass smtp.mailfrom=rts-flowmailer.siemens.com; dkim=pass (2048-bit key) header.d=siemens.com header.i=jan.kiszka@siemens.com header.b=Bp+lJA6J; arc=none smtp.client-ip=185.136.64.225 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=siemens.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rts-flowmailer.siemens.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siemens.com header.i=jan.kiszka@siemens.com header.b="Bp+lJA6J" Received: by mta-64-225.siemens.flowmailer.net with ESMTPSA id 202508151912437213f75c34ffdeb15b for ; Fri, 15 Aug 2025 21:12:43 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm2; d=siemens.com; i=jan.kiszka@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=B5JIt8JUCWyoCLiiDyVPQuDaUtKXoi8UQzuy3UgNRf0=; b=Bp+lJA6JCPtntWDmrUIPaNasoO198Xrz3XAG+ebELqAxryy64IHMHOH0cj1g+KsRWRI9Ex sekUoNIGTT3skdIhI9oVuqEHn5WGyoq/MCALpM/4a5cND3Spv694IBPPZk6x6WVlilCa1pHW k4jtenDY2rhZp0PWSKTc3QfU6log535N/2ma5oal2624C9VJXvkP6Cn2vmQ6rgjgO4pQtKGJ N6FoTAFcwd5E8EdCJms7JmyRZs93TFgneB5pEnQONKn5wAZZKUsNgX4LCjQloxLTdsVZxPFr mD6TbGS9di3v5XgXyqk23lD2JfU/ZooIh+az9Ruq/4NeWH7bwvOXSdTw==; From: Jan Kiszka To: Ard Biesheuvel , Masahisa Kojima , Ilias Apalodimas Cc: linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org, Sumit Garg , Jens Wiklander Subject: [PATCH 2/3] efi: stmm: Use EFI return code of setup_mm_hdr Date: Fri, 15 Aug 2025 21:12:40 +0200 Message-ID: In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-294854:519-21489:flowmailer Content-Type: text/plain; charset="utf-8" From: Jan Kiszka If a too large payload_size is passed to setup_mm_hdr, callers will returned EFI_OUT_OF_RESOURCES rather than EFI_INVALID_PARAMETER that is passed down via ret. No need to fold errors here. Signed-off-by: Jan Kiszka --- drivers/firmware/efi/stmm/tee_stmm_efi.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/firmware/efi/stmm/tee_stmm_efi.c b/drivers/firmware/ef= i/stmm/tee_stmm_efi.c index 706ba095a4ba..bf992b42be70 100644 --- a/drivers/firmware/efi/stmm/tee_stmm_efi.c +++ b/drivers/firmware/efi/stmm/tee_stmm_efi.c @@ -220,7 +220,7 @@ static efi_status_t get_max_payload(size_t *size) SMM_VARIABLE_FUNCTION_GET_PAYLOAD_SIZE, &ret); if (!var_payload) - return EFI_OUT_OF_RESOURCES; + return ret; =20 ret =3D mm_communicate(comm_buf, payload_size); if (ret !=3D EFI_SUCCESS) @@ -267,7 +267,7 @@ static efi_status_t get_property_int(u16 *name, size_t = name_size, &comm_buf, &nr_pages, payload_size, SMM_VARIABLE_FUNCTION_VAR_CHECK_VARIABLE_PROPERTY_GET, &ret); if (!smm_property) - return EFI_OUT_OF_RESOURCES; + return ret; =20 memcpy(&smm_property->guid, vendor, sizeof(smm_property->guid)); smm_property->name_size =3D name_size; @@ -324,7 +324,7 @@ static efi_status_t tee_get_variable(u16 *name, efi_gui= d_t *vendor, var_acc =3D setup_mm_hdr(&comm_buf, &nr_pages, payload_size, SMM_VARIABLE_FUNCTION_GET_VARIABLE, &ret); if (!var_acc) - return EFI_OUT_OF_RESOURCES; + return ret; =20 /* Fill in contents */ memcpy(&var_acc->guid, vendor, sizeof(var_acc->guid)); @@ -391,7 +391,7 @@ static efi_status_t tee_get_next_variable(unsigned long= *name_size, SMM_VARIABLE_FUNCTION_GET_NEXT_VARIABLE_NAME, &ret); if (!var_getnext) - return EFI_OUT_OF_RESOURCES; + return ret; =20 /* Fill in contents */ memcpy(&var_getnext->guid, guid, sizeof(var_getnext->guid)); @@ -448,7 +448,7 @@ static efi_status_t tee_set_variable(efi_char16_t *name= , efi_guid_t *vendor, var_acc =3D setup_mm_hdr(&comm_buf, &nr_pages, payload_size, SMM_VARIABLE_FUNCTION_SET_VARIABLE, &ret); if (!var_acc) - return EFI_OUT_OF_RESOURCES; + return ret; =20 /* * The API has the ability to override RO flags. If no RO check was @@ -505,7 +505,7 @@ static efi_status_t tee_query_variable_info(u32 attribu= tes, SMM_VARIABLE_FUNCTION_QUERY_VARIABLE_INFO, &ret); if (!mm_query_info) - return EFI_OUT_OF_RESOURCES; + return ret; =20 mm_query_info->attr =3D attributes; ret =3D mm_communicate(comm_buf, payload_size); --=20 2.43.0 From nobody Sat Oct 4 12:45:47 2025 Received: from mta-65-226.siemens.flowmailer.net (mta-65-226.siemens.flowmailer.net [185.136.65.226]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C4D10257841 for ; Fri, 15 Aug 2025 19:22:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.136.65.226 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755285777; cv=none; b=dtwtR5YCIFG67KytZO/OFvk6SR9SrteHz3RWfKHS5dZoTHy9XYuYl5kDd2QnlnKTKnbJjy/O2fNE7eDtYPsPZZN3q+hUzeuue02P2RSiIV/4mU4fWMELZgv0WpS8tTPvckoOmRu3d7ya/yHxGih2Wzc0vKlLKf2mZROGCaZuhPU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755285777; c=relaxed/simple; bh=SUHzG+YVz6tmPkt8PbQimgyYEQxXh/By0+v+cVDhWEI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UzhCHEMN9dmG804Afur5nIb8HFohJJxaPW4+3Ip2FGqMjD7BgdOubDj3mmYky5N7l5nFgOkEKMDK840bRbWWQb9z7BAPhcKXUQwrUw0uwD3BRx7M28r8JNnWsRSWc+ExjhjV9co5qZbvj7qxeLkDnfhdTPdJ3My4bW/LDi0F41U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=siemens.com; spf=pass smtp.mailfrom=rts-flowmailer.siemens.com; dkim=pass (2048-bit key) header.d=siemens.com header.i=jan.kiszka@siemens.com header.b=Xq1eH0Ft; arc=none smtp.client-ip=185.136.65.226 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=siemens.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rts-flowmailer.siemens.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siemens.com header.i=jan.kiszka@siemens.com header.b="Xq1eH0Ft" Received: by mta-65-226.siemens.flowmailer.net with ESMTPSA id 2025081519124302d58c9e7046475238 for ; Fri, 15 Aug 2025 21:12:43 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm2; d=siemens.com; i=jan.kiszka@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=xXGWVd566Z2K+snOqQZoB1IZL8d8mK8yVfnQMaQkZF4=; b=Xq1eH0FtgCVlzwt28fyg9CI33tndT8+pLzS2oFUBQTH5sHmaSpMc/Vgya+ojW93JrDNQ5s I9rVgEnn/nTSJYuoTnA8ZcJFgV+VYFZzYViF2jCCgcVTtx0NwzbJdpJo8/835XUbln6UUtNw yH5fNy5GcPRd7+WeFfaL0T0QjhaZwFoLrlXj2d71ilFatdfRJWrR0rlYOLWFWQk/Sj236tJq SXnfPqF2QideN8H+K+6tXbiT43dbWoR9YBWGDYjlTelApc1Ro16iggJgGBWDfKvM/wFECB3t C3zAXwQe9WA8hbQy5IeBJW55KnpjS0kH5w5vfGzQlTLiKngz5kJ0xEDg==; From: Jan Kiszka To: Ard Biesheuvel , Masahisa Kojima , Ilias Apalodimas Cc: linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org, Sumit Garg , Jens Wiklander Subject: [PATCH 3/3] efi: stmm: Drop unneeded null pointer check Date: Fri, 15 Aug 2025 21:12:41 +0200 Message-ID: <8b4aeccbc005087ead1c261745877ccdb7dbb9d5.1755285161.git.jan.kiszka@siemens.com> In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-294854:519-21489:flowmailer Content-Type: text/plain; charset="utf-8" From: Jan Kiszka The API documenation of setup_mm_hdr does not mention that dptr can be NULL, this is a local function, and no caller passes NULL. So drop the unneeded check. Signed-off-by: Jan Kiszka Reviewed-by: Ilias Apalodimas --- drivers/firmware/efi/stmm/tee_stmm_efi.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/firmware/efi/stmm/tee_stmm_efi.c b/drivers/firmware/ef= i/stmm/tee_stmm_efi.c index bf992b42be70..ff41667b1005 100644 --- a/drivers/firmware/efi/stmm/tee_stmm_efi.c +++ b/drivers/firmware/efi/stmm/tee_stmm_efi.c @@ -191,8 +191,7 @@ static void *setup_mm_hdr(u8 **dptr, size_t *nr_pages, = size_t payload_size, =20 var_hdr =3D (struct smm_variable_communicate_header *)mm_hdr->data; var_hdr->function =3D func; - if (dptr) - *dptr =3D comm_buf; + *dptr =3D comm_buf; *ret =3D EFI_SUCCESS; =20 return var_hdr->data; --=20 2.43.0