[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 5/5] xen/arm: Rewrite arm_smccc_*() to return by value
- To: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
- From: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
- Date: Sat, 5 Sep 2026 08:29:35 +0000
- Accept-language: en-GB, en-US
- Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=citrix.com smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
- Arc-message-signature: i=2; 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=65NLJw5aZZ3lvys9uj52mrYTJnMsAcXdZ85K453K9hE=; b=XCIyMwUAFuslSbFiEvrTV69vqxj1+HKpwB1TMuyisDok41Pl1rnSlTBAiWPJnfavUrGA3ptKXBER+wwc/Wij73JPk5eXlbJs0TJXVSQJk69O1HIFSLbdKtU1OTDCZMuqEFzq70+jYW7qytN4n381tOSDNiDLq9cbHaLKOTU/CBJfI7VVNgAmntZM8neW2fRbgF/66aBpA3XGOyXtU5gOwh76sGdwBKsS5v8+uOaWA2DujUR9KxXHI0kLD672ENcWEF0pzOBGHOe6yjSYYbsFI7bsNWXYEW0UAq4Me2LO0Ql7izUkab7+VgaV4C1CHvC52xAOgZ58jHFdMABcCZnbTA==
- 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=65NLJw5aZZ3lvys9uj52mrYTJnMsAcXdZ85K453K9hE=; b=gRKFqYc5QcHo+g9QCKePp5CLx33RGqq608jY93SEnahbCpiNKDGraBRK5VT+Yc68vrgbjUYC7iPKzBv5JtGVBBPXjuSLoQX9ptDTowfZC8XAFOGU/0BhZ1OnP6MUdF2SLoDuxzRekvrde1UVpGhDMoMLLB79ZnxrY51SAZKx3nhOMSo5ApQHPzl9eeUqVPoRa4wsKLaWwihTIAO+L7WNIYeG9swlGgkz6TFr7BiofqtFETy8GGwcGi5zSicOMgdlJXrmyj5AvPh+cCRPCDzizWeaUMaSyh8HfjKZb4V8hdRc0O2WJxp2/I5ICcOg6LwPq3MrvOM2pOCZPXSGg4Qx9A==
- Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=Adpk4JDD3GyIvGPFwyI3IT0UQocRD1sX2iOL8M+7qul/bciZHc9lKSoTHrGi5gbpPNkj8xuvRRQe9fPLk6m4vuViYeBf5trUKLYUprFLjprP4Zo/QV2dMfPDwFFvyicVBlipNIlPGQoi6eRLZHLE4zXnqw1pCh0MVyii7zSTztTAp4C2CBtxidJvXNNcTyf1+32wHfoN/NRKOVhYHYtyD8B18vvyCuWZpDYdI3lSy6Fn8oNQ0mKqCNPGLoZjF/UrYM0nSi1CU+T7mSoTNyME02eTgw2ECAFPe0NOVjGhIyioDocIfujiXyjsycCissRlVbfpdvdn2zJo/Pvn2ydVcQ==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KkqmtKHxe5OeVY+ZZthKZoAljRwf6Xal7LWN0Q4LhNOr1oTnUNCq7EspVe8P0Iqh31pA0NbfEd4xnnw4qeEYxYUL8j6PRn90lim9/Cv4NJS5GM9A9R7ZJoaySsNPvILDAqSf5PEiZcNzQKFT7bitSGj81xy7KqbX+uSxJpeKqDgCsaWjk/J/FW82kla9kEio6Tyik878nKGZluOPV6+LcuxH5pv+JCaJnwXJIAKgtscZmC0O9lHuibsIrrmzcbM9W0QRKp0r2+V1jbeDzuBTlHV0lVYWFbXqYjoq1RPX7MVBMNvqTRYNmkT+ZHy1lSaDingQHL3nUJZc8z8KPw7HrA==
- Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=arm.com header.i="@arm.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=selector1 header.d=arm.com header.i="@arm.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
- Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
- Cc: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Jan Setje-Eilers <Jan.SetjeEilers@xxxxxxxxxx>
- Delivery-date: Sat, 05 Sep 2026 08:30:32 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
- Nodisclaimer: true
- Thread-index: AQHdPF5PySaNy6Ey5EKldcmUqkyt+ba+VLAAgABmmwCAAO1IAA==
- Thread-topic: [PATCH v2 5/5] xen/arm: Rewrite arm_smccc_*() to return by value
Hi Andrew,
> On 4 Sep 2026, at 20:20, Andrew Cooper <andrew.cooper3@xxxxxxxxxx> wrote:
>
> On 04/09/2026 1:13 pm, Bertrand Marquis wrote:
>> Hi Andrew,
>>
>>> On 4 Sep 2026, at 13:12, Andrew Cooper <andrew.cooper3@xxxxxxxxxx> wrote:
>>>
>>> diff --git a/xen/arch/arm/include/asm/smccc.h
>>> b/xen/arch/arm/include/asm/smccc.h
>>> index 4ed2a40ed0ac..2d0f2db0b256 100644
>>> --- a/xen/arch/arm/include/asm/smccc.h
>>> +++ b/xen/arch/arm/include/asm/smccc.h
>>> @@ -181,21 +174,20 @@ struct arm_smccc_res {
>>> * makes it stick.
>>> */
>>> #define arm_smccc_1_1_smc(...) \
>> The comment would need fixing on top of this as current
>> one still describes the optional @res argument while now
>> we only take a0 to a7 as arguments and return the structure
>> instead.
>
> Are you happy with this delta?
>
> diff --git a/xen/arch/arm/include/asm/smccc.h
> b/xen/arch/arm/include/asm/smccc.h
> index 2d0f2db0b256..c7763acd7f7d 100644
> --- a/xen/arch/arm/include/asm/smccc.h
> +++ b/xen/arch/arm/include/asm/smccc.h
> @@ -159,15 +159,14 @@ struct arm_smccc_res {
> * arm_smccc_1_1_smc() - make an SMCCC v1.1 compliant SMC call
> *
> * This is a variadic macro taking one to eight source arguments, and
> - * an optional return structure.
> + * returns four values.
> *
> * @a0-a7: arguments passed in registers 0 to 7
> * @res: result values from registers 0 to 3
> *
> * This macro is used to make SMC calls following SMC Calling
> Convention v1.1.
> * The content of the supplied param are copied to registers 0 to 7 prior
> - * to the SMC instruction. The return values are updated with the content
> - * from register 0 to 3 on return from the SMC instruction if not NULL.
> + * to the SMC instruction.
> *
> * We have an output list that is not necessarily used, and GCC feels
> * entitled to optimise the whole sequence away. "volatile" is what
>
> The overall comment now reads:
>
> /*
> * arm_smccc_1_1_smc() - make an SMCCC v1.1 compliant SMC call
> *
> * This is a variadic macro taking one to eight source arguments, and
> * returns four values.
> *
> * @a0-a7: arguments passed in registers 0 to 7
> * @res: result values from registers 0 to 3
> *
> * This macro is used to make SMC calls following SMC Calling Convention
> v1.1.
> * The content of the supplied param are copied to registers 0 to 7 prior
> * to the SMC instruction.
> *
> * We have an output list that is not necessarily used, and GCC feels
> * entitled to optimise the whole sequence away. "volatile" is what
> * makes it stick.
> */
Looks good to me.
With that:
Reviewed-by: Bertrand Marquis <bertrand.marquis@xxxxxxx>
Cheers
Bertrand
>
> ~Andrew
|