From nobody Mon Jun 8 22:51:08 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012048.outbound.protection.outlook.com [52.101.48.48]) (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 B24333CBE78 for ; Tue, 26 May 2026 07:40:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779781248; cv=fail; b=C50MobLqD1EWtUQk8NP4Npevm558UkpEylDkRvgZUqLFKKhmUcYPcOamUnxMUPOCx6CJmrElRXhflAvIzvL3TgIENL81J4GgNmxAp1Yz7IO77+c76p5SVkeZUlRmw9wsSNn307mKlY/ZFq9z24qNXZtPDwbpDmUpoLmhzil4Rl8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779781248; c=relaxed/simple; bh=z6x6ryAO9wVRAfcCxJq56DZ+EDSHMMtmhm1WWyM2tYw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=fw6f829GY/GBTiOtEGpx6XbfloSehrNeiAMKH+61Z3ueHmL79zAbN8/xSDEeWOpmYdzmq6g4QItOvlpAxob5eWa25NJhqrb7z0QT/ShyPpDH0d27YpZl3MHm2gt/giwRxzuhEhQgWGPVYiCMLWa7BnrUfvA/qMCOICuCxZGcgEY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com; spf=pass smtp.mailfrom=altera.com; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b=hL/6EmrY; arc=fail smtp.client-ip=52.101.48.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=altera.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b="hL/6EmrY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=F7Y5HPCpMIlSZMJ8bNLuSC32oPzSzVHyJBhfNFhXUlyNVCOkWb2LYJOvOY9EvgUci6AhJVSb2OyrU2dGW2jGlFk2j6VLdyHrXLc5LFphRTsrIOfGT7rqYf5+d4DIEl7sdLYN7fqsVgjGjszzpKmUEcAlIm/ZxaTVdQuupuUD93m3YDBGsjQoTvtI2ZiId5P7nEd2g6OCA1iIIvEtvVidBhk389MWQ2uQJ/Cm6Zt2Z5Zzz1xFSteG+dZHVymwsP2HCOWuwtNMO0ryYRMKGZty1J2jQ1yZzNEISdyodS2BxgUsTsNOX5cMeH1/b46NEkedIZ4dAVDJc5fIHHUgnNzZkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=D04v4Nt1whcprXXya1dNlfRju0nbXJETqFAbMihh6Zg=; b=MsrL35vpUzo33KDhZcRR/HcOZx5MpjstBylBxVIUJVDlbOS+8/PaTwJ8h8kW4evT7LHPOWpYVito5MPWNpbLWlYfDVuHEX7bwp/nbbk/vItqBVQdErR/avaeWYhkidwxFW6Dfqt7wAVqPbBkD46ILfL9YvXVL4xXXVPJ5jj7Iu7EladFWlzFOP4nfSWV7Z0Sy+1j+6NjXxHRUVGZh8w3BoIfHjP9Iu8pp1s5UhFNYy9UmStIjjDCEy0AwSEQ3qg857GfLc9eOL6KOlQVrIZBNTUsfLKWxly6imYUkYkNmKAzzbejzVbZFEG2H8o0q6pPVO3tPtXN6AFTB8ZsokgIeA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=altera.com; dmarc=pass action=none header.from=altera.com; dkim=pass header.d=altera.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=altera.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=D04v4Nt1whcprXXya1dNlfRju0nbXJETqFAbMihh6Zg=; b=hL/6EmrYWilzHfFzurKb0G4zr6K94yPFmor3P0Ne3ZRVLq8q85a8rUCX4BUNv2sGOFJZwdCExpOxQ+Lqdr9tjRK7SuqCy7rQ0VWbhqfh9u3tBI9RTF0khb+b7bFxvzoXCZQXcqvuYrLWCZ0Nnt9XrJMeBBWnG3/WLAqcTtVEv85eGy2O4aRKhskpEuzpoYnSrJfWWRUq/n4zpDNnRVvi/zvma7lUZJq8DQAfqv3qivEgU2r/dnmmpAGTYr8dKBWePCD8wNCGP+3IzX30KCOJLPV6m9gr2jf1rZYnvTRh9RDUuui8+dbfajoHA9gjF0L4ysLLCvMdfdHm8CIZ/ed8cw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=altera.com; Received: from DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) by PH7PR03MB6861.namprd03.prod.outlook.com (2603:10b6:510:15e::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.11; Tue, 26 May 2026 07:40:45 +0000 Received: from DM8PR03MB6230.namprd03.prod.outlook.com ([fe80::abad:9d80:7a13:9542]) by DM8PR03MB6230.namprd03.prod.outlook.com ([fe80::abad:9d80:7a13:9542%4]) with mapi id 15.21.0048.016; Tue, 26 May 2026 07:40:45 +0000 From: Adrian Ng Ho Yin To: Dinh Nguyen , linux-kernel@vger.kernel.org Cc: Adrian Ng Ho Yin Subject: [PATCH 1/2] firmware: stratix10-svc: fix dangling kaddr pointers in callback data Date: Tue, 26 May 2026 15:35:12 +0800 Message-ID: <6c8c2719a4836589129aa9bfff48c8f7a63c03cf.1779780223.git.adrian.ho.yin.ng@altera.com> X-Mailer: git-send-email 2.49.GIT In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR03CA0181.namprd03.prod.outlook.com (2603:10b6:a03:2ef::6) To DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM8PR03MB6230:EE_|PH7PR03MB6861:EE_ X-MS-Office365-Filtering-Correlation-Id: 6165dea6-a49f-471b-0f03-08debafa17ec X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|55112099003|11063799006|3023799007|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: zaeYxQvnPYWLpXAti0XAnlXCDzTnsYPgvnDY+sjtYAfE3WD/SPl+zOcBWySuH8hmcMZggpojOmh3fTs/7zrsZKIAUhjFYRHLiEu3YvH3bjW8lRT/2qASUP/6vBwcntA+3gOE2my9ogG1TdNjrGojnli28+HagNbeyV+jQLyGEIJk3FVIuOg4zPwwdwN2hUdyxg2CncxVf7zXBQxusnqS0qFirITn6jTRRycMEqcSMLQptgOLgPSW0NBUfLmCE7FxYHquJBXFWViikix/RnHfCV3fTt/KG+PWkmhuMr16yLzeBNupMb66QeYvDi4PN8yYZz/25GgxN3kwdMYl0jGZ/M9WPNNG6qNVuYzXlcNugcPt8jwmpH/oB8UXdwLqF17qZipHKdfwGj67vv2xsEbX/vZ2hNcbqHuvg+HDs0IS1SEXy85GUQRgSJbiBn0LsergZ7SyeTM2WLD9CMPA2haQZZLWaHBuwqzWIz3q1a+3M9Z4vPNloCIkFvXc5lw/WBeGlIxLf7VwXQHZdiVK8FIMo8H+oN7ZiEQXuo1gT2QlsfqtFHeTLA/UMeIiIhO3HBZTtYPW6leqX976NtDkT7QVCpGGQ+2EyyBYAJbd96YLPxTarUjhyIrYlqcGYsWbQM07tb6pbiawCOO6mjcne4sPlskhrmvg5f2zi3exAfgtUwlYGskXypPdep4/Oi+CyQxC X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM8PR03MB6230.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(55112099003)(11063799006)(3023799007)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tXTNdLvb5QxWAD33FO79Ho7XSGjvFqAvCdhLPeZsItC5eJpCN2Er8cEFGiaH?= =?us-ascii?Q?SaRA65vlqGQoae2WQximzxH767qu7/+Tq8FBAEcI5cVYhjynzRdGfnWVyy30?= =?us-ascii?Q?BwV1Cz/LiFJgg6XD4aHJsnHGxpzq+h436BXclBakrNcBRKs2c6/bG/m8LNkz?= =?us-ascii?Q?hNpf55KFFhQivRbpvMAnNMUipRQZXELX1FKpK9j1sDfm0z19WyenX19Zkgui?= =?us-ascii?Q?QsMuSqTGNtX2wAYbRvmBZ73MLTFBBHsARcdkQWwi/9v45zqW7CVV7QqxNGZP?= =?us-ascii?Q?UZp8/LCX52My6RJJ4RAL0HXVvPyb/i6q7Cga/zmJDq/wbrf2wJSIUmzo0lTU?= =?us-ascii?Q?2qvGM8kgaXQ86nvo2HM95GpVVbFexOZ2qD07XqHYxu4FeIjl5aF4d8Guwcd0?= =?us-ascii?Q?/de1lYhdUf5pNlWam7OUw7DLT73lcZjnOaj3LOfbAd4r8z0U3A3l52iFek5R?= =?us-ascii?Q?hLC9y+LiiHckWNg0nWojZkBG32hrZyTBUMDMrgjZaFNHZIfO26AXNZLuUNdi?= =?us-ascii?Q?dHVZdr4ufW4tPIWmYuZpVTZSe3MQlP3s0NJNJs7GtEHwVUrlAmVUsKOlkw48?= =?us-ascii?Q?EPFwklWU20AC1KBvDwR29Joi2ZdcF2D7htI2SfDmn0TB2WwKdpkuit9CzJxE?= =?us-ascii?Q?oQtCYaWebylpNTcFDfmtT1KX3jWB77MGMUyOUW89O4cpb+zyWhzBq4X5aBQr?= =?us-ascii?Q?FsAqka5TuWpsaZNRKYuUJWyuQ5Kc6ibnpeThJM6d2RNxIXYPujoTRCo/eG7f?= =?us-ascii?Q?a1u6f5gxPI02BWKes/syv06Pfs9xO+2UAW7xwL+AgD/6oN4cXw3eBXTFrX2M?= =?us-ascii?Q?XKzeu4Sl4Kye17DbI3SybcxqSnpL3K1BO/1N0+WhWtC3BD2RnWUyV+YNM0rx?= =?us-ascii?Q?oErWM3AYzGqcMlBLMmT1xlnUzROMPWb2IuKwYVqIVOPprH/qhGNbvAQdxtVX?= =?us-ascii?Q?ch0kdXfmU4zx31zyZaACW5Z+7DEWGPTFiX+AFnjzMG0deRs2Bw/wVOcDNQyS?= =?us-ascii?Q?0b1AlZC7lWjm/tgKvhrg8dTcBEY2s7UspPWZYSXbNAqWjUS9oY01IlWllmv/?= =?us-ascii?Q?DmByYhzP99YIaIZ3OQFiuybS7yiIkMB5Pm5dk9wI6f9vfx4ny30YLGju16x+?= =?us-ascii?Q?nAY4b1DjXaKsvdRML7zpUe6DMjCwpi5zJ+3VA+97cWPMy23dZgX3mGgaJ5Ps?= =?us-ascii?Q?nYdtZ+9LVodudC5l2H4MHha8AjgNb805Aj7DxTOQ+NwJBAQBgKWdSWja+Dwi?= =?us-ascii?Q?7WefMo+Ni3KDmODr0YW8Au6RAt18CLVDXlE4hzUnIrRZvRsVWdmSbg+ZmQKs?= =?us-ascii?Q?SPsd4syDJtGsu9JLWn1FIAgopy0b9uS2b2Izx1f0EthtIhOwKj8Z2dzXF2/P?= =?us-ascii?Q?0GOIGUpRqqur/oDoaLcuPejA46FU46dwHdkMl0OZDK2wme5MZj6Hjj0B8EFb?= =?us-ascii?Q?0LpYHV/nHGjOA/U/FOLIeBECRcyQdLSzE7o7eEFk+3U8a2zH3kEJuJD/i33m?= =?us-ascii?Q?jMeHB30AyYrIYuM8t+s+QOkk8w2WhqUJ8m1PyGCT4HmpL2R+DGHDHWR3zbLm?= =?us-ascii?Q?hjTp7cZrhBnroSOrW1ZvIPOmSImZZgO28kskGpIKFt54slhfsB/2FbBBIiwl?= =?us-ascii?Q?wbNAAnUjGZdhNpWnk6VjA8Gr3DLbC6XH9M6tQOdQunHmJrptWpUQy/OGur7M?= =?us-ascii?Q?HTRbLDEFTFq6eLIxk1enpgvecBwRQ3ZzkJTlF/T1yZhw9Ed5okic5vyeXMcX?= =?us-ascii?Q?50+rTg/+zJNs6sF4laDw+XQ1iSjd0c0=3D?= X-OriginatorOrg: altera.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6165dea6-a49f-471b-0f03-08debafa17ec X-MS-Exchange-CrossTenant-AuthSource: DM8PR03MB6230.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 07:40:44.9713 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: i2KmZFETIyBypf6qkkyFJp4LUk5R1x0b+i4bMY/SdTA+tPqFTwXG2byImjwfmVOKE7mCuMpM7lpQkcoq1VmFoJRw79tQ3vzfmrDrkzjBCdg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB6861 Content-Type: text/plain; charset="utf-8" svc_thread_recv_status_ok() and svc_thread_cmd_config_status() store addresses of fields from a stack-local struct arm_smccc_res into cb_data->kaddr1/2/3, then return. Once the stack frame is released those pointers are dangling; any client that reads them after receive_cb() returns accesses freed stack memory. Add a1/a2/a3 storage fields to struct stratix10_svc_cb_data, which lives for the lifetime of the SVC thread, and copy the SMC return values into them instead of taking their stack address. Apply the same pattern to the STATUS_ERROR path in svc_normal_to_secure_thread() for consistency. Signed-off-by: Adrian Ng Ho Yin --- drivers/firmware/stratix10-svc.c | 43 ++++++++++++------- .../firmware/intel/stratix10-svc-client.h | 17 ++++++++ 2 files changed, 45 insertions(+), 15 deletions(-) diff --git a/drivers/firmware/stratix10-svc.c b/drivers/firmware/stratix10-= svc.c index 39eb78f5905b..32f09478e1f8 100644 --- a/drivers/firmware/stratix10-svc.c +++ b/drivers/firmware/stratix10-svc.c @@ -428,13 +428,16 @@ static void svc_thread_cmd_config_status(struct strat= ix10_svc_controller *ctrl, cb_data->status =3D BIT(SVC_STATUS_COMPLETED); cb_data->kaddr2 =3D (res.a2) ? svc_pa_to_va(res.a2) : NULL; - cb_data->kaddr3 =3D (res.a3) ? &res.a3 : NULL; + cb_data->a3 =3D res.a3; + cb_data->kaddr3 =3D (res.a3) ? &cb_data->a3 : NULL; } else { pr_err("%s: poll status error\n", __func__); - cb_data->kaddr1 =3D &res.a1; + cb_data->a1 =3D res.a1; + cb_data->kaddr1 =3D &cb_data->a1; cb_data->kaddr2 =3D (res.a2) ? svc_pa_to_va(res.a2) : NULL; - cb_data->kaddr3 =3D (res.a3) ? &res.a3 : NULL; + cb_data->a3 =3D res.a3; + cb_data->kaddr3 =3D (res.a3) ? &cb_data->a3 : NULL; cb_data->status =3D BIT(SVC_STATUS_ERROR); } =20 @@ -480,32 +483,40 @@ static void svc_thread_recv_status_ok(struct stratix1= 0_svc_data *p_data, case COMMAND_HWMON_READTEMP: case COMMAND_HWMON_READVOLT: cb_data->status =3D BIT(SVC_STATUS_OK); - cb_data->kaddr1 =3D &res.a1; + cb_data->a1 =3D res.a1; + cb_data->kaddr1 =3D &cb_data->a1; break; case COMMAND_SMC_SVC_VERSION: cb_data->status =3D BIT(SVC_STATUS_OK); - cb_data->kaddr1 =3D &res.a1; - cb_data->kaddr2 =3D &res.a2; + cb_data->a1 =3D res.a1; + cb_data->kaddr1 =3D &cb_data->a1; + cb_data->a2 =3D res.a2; + cb_data->kaddr2 =3D &cb_data->a2; break; case COMMAND_RSU_DCMF_VERSION: cb_data->status =3D BIT(SVC_STATUS_OK); - cb_data->kaddr1 =3D &res.a1; - cb_data->kaddr2 =3D &res.a2; + cb_data->a1 =3D res.a1; + cb_data->kaddr1 =3D &cb_data->a1; + cb_data->a2 =3D res.a2; + cb_data->kaddr2 =3D &cb_data->a2; break; case COMMAND_FCS_RANDOM_NUMBER_GEN: case COMMAND_FCS_GET_PROVISION_DATA: case COMMAND_POLL_SERVICE_STATUS: cb_data->status =3D BIT(SVC_STATUS_OK); - cb_data->kaddr1 =3D &res.a1; + cb_data->a1 =3D res.a1; + cb_data->kaddr1 =3D &cb_data->a1; cb_data->kaddr2 =3D svc_pa_to_va(res.a2); - cb_data->kaddr3 =3D &res.a3; + cb_data->a3 =3D res.a3; + cb_data->kaddr3 =3D &cb_data->a3; break; case COMMAND_MBOX_SEND_CMD: cb_data->status =3D BIT(SVC_STATUS_OK); - cb_data->kaddr1 =3D &res.a1; + cb_data->a1 =3D res.a1; + cb_data->kaddr1 =3D &cb_data->a1; /* SDM return size in u8. Convert size to u32 word */ - res.a2 =3D res.a2 * BYTE_TO_WORD_SIZE; - cb_data->kaddr2 =3D &res.a2; + cb_data->a2 =3D res.a2 * BYTE_TO_WORD_SIZE; + cb_data->kaddr2 =3D &cb_data->a2; break; default: pr_warn("it shouldn't happen\n"); @@ -794,10 +805,12 @@ static int svc_normal_to_secure_thread(void *data) case INTEL_SIP_SMC_RSU_ERROR: pr_err("%s: STATUS_ERROR\n", __func__); cbdata->status =3D BIT(SVC_STATUS_ERROR); - cbdata->kaddr1 =3D &res.a1; + cbdata->a1 =3D res.a1; + cbdata->kaddr1 =3D &cbdata->a1; cbdata->kaddr2 =3D (res.a2) ? svc_pa_to_va(res.a2) : NULL; - cbdata->kaddr3 =3D (res.a3) ? &res.a3 : NULL; + cbdata->a3 =3D res.a3; + cbdata->kaddr3 =3D (res.a3) ? &cbdata->a3 : NULL; pdata->chan->scl->receive_cb(pdata->chan->scl, cbdata); break; default: diff --git a/include/linux/firmware/intel/stratix10-svc-client.h b/include/= linux/firmware/intel/stratix10-svc-client.h index 91013161e9db..5c2b24b20359 100644 --- a/include/linux/firmware/intel/stratix10-svc-client.h +++ b/include/linux/firmware/intel/stratix10-svc-client.h @@ -222,12 +222,29 @@ struct stratix10_svc_command_config_type { * @kaddr1: address of 1st completed data block * @kaddr2: address of 2nd completed data block * @kaddr3: address of 3rd completed data block + * @a1: internal scratch storage; kaddr1 points here when the firmware + * returns a scalar in res.a1 rather than a buffer address + * @a2: internal scratch storage; kaddr2 points here when the firmware + * returns a scalar in res.a2 rather than a buffer address; the stored + * value may be derived from res.a2 rather than copied verbatim + * (e.g. byte-to-word unit conversion for MBOX_SEND_CMD) + * @a3: internal scratch storage; kaddr3 points here when the firmware + * returns a scalar in res.a3 rather than a buffer address + * + * a1/a2/a3 are only used when the corresponding kaddrN field carries a + * scalar SMC/HVC return value. When kaddrN points to a persistent mapped + * buffer obtained via svc_pa_to_va(), these fields are not used. Storing + * the scalar copies here rather than in a stack-local arm_smccc_res ensur= es + * the pointer remains valid for the lifetime of this structure. */ struct stratix10_svc_cb_data { u32 status; void *kaddr1; void *kaddr2; void *kaddr3; + unsigned long a1; + unsigned long a2; + unsigned long a3; }; =20 /** --=20 2.49.GIT From nobody Mon Jun 8 22:51:08 2026 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010053.outbound.protection.outlook.com [52.101.56.53]) (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 540DD3CBE80 for ; Tue, 26 May 2026 07:40:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.56.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779781251; cv=fail; b=oS+fzzuQ8gnctWa4IbIAr05wHxoPbpto0AXg1EOejrqu5O0USMz4FkeDBXtGPvAB6Q7uN87H2dm+TE6TN0O+C+Hdbs4Hzh6msQoJJa8/ao6IEV5LeePcyPsEqG51kTB0K+fWgSfZkcDz0oX446otkH8lhx3ZWfwrt/rBgox/UJQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779781251; c=relaxed/simple; bh=FgN7MzHgdLBGwt92T7aNwgvY0XUiYRMjXgspT1XLNw8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=QI3vz+U+lUULAFUnWHVP2T4uIJ5s/qyAtJMQ2mszGUrIyjlTsZzJUKq8PeREKor6r7CqGMp3hrhco0007p8Gh2pvNhO1LHtjEs6NylADlLOj+MMQjmZeuSFfZS91DsVVZ1jp4MhoFGrglaJxGtTF+4+Hj6yyDo4dzWmmYzsInnI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com; spf=pass smtp.mailfrom=altera.com; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b=FDrgvFY2; arc=fail smtp.client-ip=52.101.56.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=altera.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b="FDrgvFY2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ykc+O8LaWKJAKU5VCC5P3nRwgGUzISCa1R3/cS6fqXHynANNhZ60adX3PByp0szHYlrCLEPtLCun/H3T6Lu2ZhdF037LPg3uZ35IXlceuCYiISGOMtrYZd+mhSzzc38sMTNtkUE36kqV2LBtKyRkmwjS9fep8o1IcdaWJemXlE1Xo9LcKRBgDXi8Bpmi4e1b4DEyYJkx3XrqtnK+qCZQwOdzFgAx+2LwH3IPDPvdD828MNVTvFtDf6xC2V0nXIGFKZ/qV9YLTFbHUhZRn/QSyzO60yujZrtiBJOcDOi9o6zPDpwp5BiQ7T8jVKaqVMlrKpS7ojz10nNef6y7gTkdDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6vf3BdkuC8XAvLwCvOPSP+htmgBrpcuBxSCgafnGBGo=; b=lNhBdxLAl9u8qkpE2OYf/0SilYgM0nzJapM9uVZi9Sq9eARGjIP7+GYIMrwu8E4EqG6KHoserVP3P39so1sgDa/YYEQDgDaGHaZnEeirsVc4mSlqiuWtBbm+iaQbDTYrJSxXapawbnai2wyPtg/wiGRPUEJI78Hu3bhowuRjtI0IRjkMd94VWKUJwqKPZZ1NiK1akvZvQRK6flEIc9dm75a3/d4EN7C5e/Qiwujm1UbSpO2+0LXi9FS1jH8SdJoysA+z47vohAemuK42OUuOsL/sYEU9p86jTOWTK+wVg6++cbLYbgLl8lksUB6biXpHA45OUMi0WjYYTxlr2lXpPg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=altera.com; dmarc=pass action=none header.from=altera.com; dkim=pass header.d=altera.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=altera.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6vf3BdkuC8XAvLwCvOPSP+htmgBrpcuBxSCgafnGBGo=; b=FDrgvFY22G0IM6vCyLt/Fxge1O791k8WXjP4ldsm/bTtN4XcVwGXr2GX1ZGRwuHLmIHzNrSAovF/w8TRdfmxDykj3kLtZCOOQDa1CHR/MTpV/ExT2Y6JE7Ll/++YEActpeQlcVJDxAYtgYKYellOkQb2uo0k0pbq1dycLnGyOGpGBAxR54sYpQ5CnU3px3TvREkvtI5STnYmhxMhDfkOuFfadJIwWmWLhTQOYILj2dwzj1wljAo4dLLvvB/+oiEwkwmSZVpPcArr2kUSri6KTO1USH3eCcfnUJE5YeoTQEuOZhalHlWE+mSDr2CB2XP2da771rWcsL1z2Z9tDqe4sg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=altera.com; Received: from DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) by PH7PR03MB6861.namprd03.prod.outlook.com (2603:10b6:510:15e::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.71.11; Tue, 26 May 2026 07:40:48 +0000 Received: from DM8PR03MB6230.namprd03.prod.outlook.com ([fe80::abad:9d80:7a13:9542]) by DM8PR03MB6230.namprd03.prod.outlook.com ([fe80::abad:9d80:7a13:9542%4]) with mapi id 15.21.0048.016; Tue, 26 May 2026 07:40:48 +0000 From: Adrian Ng Ho Yin To: Dinh Nguyen , linux-kernel@vger.kernel.org Cc: Adrian Ng Ho Yin Subject: [PATCH 2/2] firmware: stratix10-svc: populate kaddr1 from config status response Date: Tue, 26 May 2026 15:35:13 +0800 Message-ID: <3be4c7727e3895acbef3693e9da35f0a12577fae.1779780223.git.adrian.ho.yin.ng@altera.com> X-Mailer: git-send-email 2.49.GIT In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR03CA0181.namprd03.prod.outlook.com (2603:10b6:a03:2ef::6) To DM8PR03MB6230.namprd03.prod.outlook.com (2603:10b6:8:3c::13) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM8PR03MB6230:EE_|PH7PR03MB6861:EE_ X-MS-Office365-Filtering-Correlation-Id: 845af648-3b47-4e62-a340-08debafa1a10 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|55112099003|11063799006|5023799004|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: BFSf3nAn89+UvUWEE0dAwXug5VmEF+uXsbOSB2SettT9bUVF1KZ0cEKbwzK4r5GEvB2y+15Q8H/R3Rl2OAoXfoBNeAL4JUH+3IkhDJDE4yFMUpn0832NmUqOJgiuE110QV/bmKu6dYwzG7N5Ek4RtyRhRuqxbjqpWGSOTTXE0sbxEM65XcIuy/+RhhCAKB9MGFu8kJGoGFECq9mOuV5ICD5t7NAm9VBY12xJMexyp03RGm0vFzO2PMWGYtF9amq1jQtMzFcHGzEgSQJEX7D0SmsLR+jekWupUX96UCMy+VqOHG2U5Aa+16QZ9KRc5DIdZmRKMlJ/uxylboktbqpq9t1uf+xTV6K2X6+AaMBI9Mtgf+yrLpxROHFmJs+HwbgYFgl6vZLYto81iHPLG6iU8xNV3AW1VIeyMeprQUshT+U9garM3sIbtKbUaYPjXU1xRmHtbz0j3qYLnQSZYNj8K8Y/qT0RB/ncoSdVEr344GtMxd8fMuxoPhjQ5ylAH3mcZa8CMv9+tZOPMPLMV5AEjftTcILCBwYBzHYagX4CZSr2+J/wxjQoGTTmZRNR1ozbgug/kIc8nmOSyqG3pAr0wOJi5fnw0GKrYQx72noemL+YpiXBMqNV4s4ZZIFVGIv1s3NCv4qr1mB8kh7OGO+T5Gr9slZ+YuCwnbOjRHQNEMQJapk5Orh05FVMDJbKU+VY X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM8PR03MB6230.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(55112099003)(11063799006)(5023799004)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rubEhUXe3f4mZZIgxcLsaxC2f+l1YW/PQupuk+Cz1tFoV5PVYca4Kd6B9YHf?= =?us-ascii?Q?gtGpZIkJKD1F/AdmXXy3xWxs0BmBUlBHVj64Z9z7SHdJgV7sR73FxS5d4H0k?= =?us-ascii?Q?/LopUozAwnQq+kwIJDhUoOD/M2x53pduPgvf/JIay7dUGHJ/Ok5oZefNTgIW?= =?us-ascii?Q?MtcpurLGYbA0s5nMbk4l73lUtE6b9UhC/1bQT8oAOApQK6q7X/jxl0EHKZGY?= =?us-ascii?Q?VP/mYq57vkIM89O6sPbWAEPnk0P2Xi7Sq95+qzaD7Kh9wZYhFDavexXnH9M/?= =?us-ascii?Q?4lyT/MB3aePnd9DflWS/wUSw1zt+HFvhrvk586HVGpRxjJeJKXir+K5ptgub?= =?us-ascii?Q?FWNquCS4NW1o7WYa8cEILwGx5HRKEPdP/rko4aDqPUZY4eN94nq9jC9eQDKA?= =?us-ascii?Q?ivhr7HjrnZ3k/Tv7h+xkhif3PJLdoow8xKaDW/7JP0vO90UrYFDcBITlZIPR?= =?us-ascii?Q?sDdckAQZWE3XXYymFuUhtuf52Qkmjl9GikTYOCSxTN/VDsNDPc+N0vfpvy9e?= =?us-ascii?Q?2LaZSKevG+k8nvCZpgdmtA+xvuBC+Ka2YVyYS85VgZeMq5JFkjvRtuq6esEI?= =?us-ascii?Q?VRG9pbyhy43W2AGMg5C7AFCvRggbNaGuriNI2Z05h6Dq63NWwiL/mSIQhmGU?= =?us-ascii?Q?ixxw2UYetpGENesAulLY/maWHxkBpHEq1Ah1stYd0E2LKf5ZDbcV6ySzg4uI?= =?us-ascii?Q?vW85XYgTnjRYTvFsp7E7OpjP0zC2Hg8+2y//JvKOt/us79sWgWtOxt+1ucm8?= =?us-ascii?Q?h7p58QBkuJ+h9CTSnLT7kZpTk6qb+jKKwT6PHnqcKi3mdHMuF2uK14xQj0eQ?= =?us-ascii?Q?SUrowdyjuYndHYX3++m17H4dpX7GdH2iDA4hsFWVBo81dcDOSSRViIJK57cc?= =?us-ascii?Q?RwsHy/ui+X1bseHY1nJs7f9XVE1NQXNFVrFMV8AM4S5V5/7gywwn3vfjHscS?= =?us-ascii?Q?bJ3i8p08FjmuxRRzhCY4BkrKnRHWMuVT9f8WtiUd/Zh/vkGitiJ1CNFSSeU4?= =?us-ascii?Q?BAjP3mKbmYA/6sTo9pn6kj8loM+3rknEl9pEGJWrY+ktn3nQA+K2ASWm77KB?= =?us-ascii?Q?Kp/hMxH/QJ0tXlF9F4IKinZgQVbH+hOPh57P6oCzTxejpmTmkixD6E0Jyrg2?= =?us-ascii?Q?cl1AWYGGEw8HDSNqQGcM4CJMdFstT6oItBJpkMOMIO/PGUROTFd54Fw5e+nG?= =?us-ascii?Q?9/+U5U8nFzoqW4sbFSdbShEVKItSJBd5V1XHKbbYy6MB3CyzSPH1/8V8FtwA?= =?us-ascii?Q?DSnzoi3/YAchUEpW27vPKGYGwtfRqMx8767NLdfpbao5d2jnE/h0PKEu9cyJ?= =?us-ascii?Q?ElRRKID65zy46gZGfrdzwRQQy2gXA8HwdcsBwP9FsJw7mngYkhp9GGVf9ZLj?= =?us-ascii?Q?EUALRoILbCLLlJhsPtoHd+rsaJTu/BxDfwMj3JmByZxM8VyPja3r2JoDysvF?= =?us-ascii?Q?E0N1gH5sJaSF4d/DuLtZ5UWUBlimWksK7OZMZBWg5C2clbEZqOU0sggoLARA?= =?us-ascii?Q?hO+9IhB0u/cXL7E+1pZxhDMVzvtIHSiqTuMzjtwjr0yxS+jD+18jAzdh/fn/?= =?us-ascii?Q?hkjal/iSaXCRniYd/J7MGDb71KH/AyHgSfBnmYe4SHs3OeePKu6reIwdGtrR?= =?us-ascii?Q?F6o40g7uNewwNhAs7x036g/H1YcZ56SY5Fkea29d7QjKK4CELwKW6Zuw3YU6?= =?us-ascii?Q?FIk4EPQRJiWvbsFPJE7tnihC9g18LVNMyNIZZz6lJt0ZT80Z6j6jL7C+Q4jS?= =?us-ascii?Q?uY5NAj9M8QuTiIGmiTOqZ6DPEsF6LjU=3D?= X-OriginatorOrg: altera.com X-MS-Exchange-CrossTenant-Network-Message-Id: 845af648-3b47-4e62-a340-08debafa1a10 X-MS-Exchange-CrossTenant-AuthSource: DM8PR03MB6230.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 07:40:48.1476 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dR50ndA5Rrp/yDYnoIAMTh8PGugZgCV3eLOzKr/s3XyhGeNo3Tl51xJUwNMYG1brLZBdiIMwsp3g60683+hQO2cPdLWDV0x8Sa+pQg6sKY8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR03MB6861 Content-Type: text/plain; charset="utf-8" Set kaddr1 from res.a1 in svc_thread_cmd_config_status() on both the completed and error paths, allowing callers to retrieve firmware-returned status details via the standard kaddr1 interface. Signed-off-by: Adrian Ng Ho Yin --- drivers/firmware/stratix10-svc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/firmware/stratix10-svc.c b/drivers/firmware/stratix10-= svc.c index 32f09478e1f8..8dda11afd6a2 100644 --- a/drivers/firmware/stratix10-svc.c +++ b/drivers/firmware/stratix10-svc.c @@ -426,6 +426,8 @@ static void svc_thread_cmd_config_status(struct stratix= 10_svc_controller *ctrl, cb_data->status =3D BIT(SVC_STATUS_BUSY); } else if (res.a0 =3D=3D INTEL_SIP_SMC_STATUS_OK) { cb_data->status =3D BIT(SVC_STATUS_COMPLETED); + cb_data->a1 =3D res.a1; + cb_data->kaddr1 =3D &cb_data->a1; cb_data->kaddr2 =3D (res.a2) ? svc_pa_to_va(res.a2) : NULL; cb_data->a3 =3D res.a3; --=20 2.49.GIT