From patchwork Mon Apr 7 22:40:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Volodymyr Babchuk X-Patchwork-Id: 14041932 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4BE15C36010 for ; Mon, 7 Apr 2025 22:40:53 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.941216.1340763 (Exim 4.92) (envelope-from ) id 1u1v8v-0007Kz-TW; Mon, 07 Apr 2025 22:40:37 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 941216.1340763; Mon, 07 Apr 2025 22:40:37 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u1v8v-0007KD-Mo; Mon, 07 Apr 2025 22:40:37 +0000 Received: by outflank-mailman (input) for mailman id 941216; Mon, 07 Apr 2025 22:40:37 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1u1v8u-0006OT-Ux for xen-devel@lists.xenproject.org; Mon, 07 Apr 2025 22:40:36 +0000 Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on20605.outbound.protection.outlook.com [2a01:111:f403:2607::605]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 520ed6f4-1401-11f0-9ffb-bf95429c2676; Tue, 08 Apr 2025 00:40:35 +0200 (CEST) Received: from GV1PR03MB10456.eurprd03.prod.outlook.com (2603:10a6:150:16a::21) by PA1PR03MB10914.eurprd03.prod.outlook.com (2603:10a6:102:48a::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Mon, 7 Apr 2025 22:40:29 +0000 Received: from GV1PR03MB10456.eurprd03.prod.outlook.com ([fe80::a41e:5aa8:e298:757e]) by GV1PR03MB10456.eurprd03.prod.outlook.com ([fe80::a41e:5aa8:e298:757e%5]) with mapi id 15.20.8606.033; Mon, 7 Apr 2025 22:40:29 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 520ed6f4-1401-11f0-9ffb-bf95429c2676 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OE7gybsGsogEl0uXSFDarZgloYGlBOdulJlo088AhOE0EIG+faPALcSzbidniWdpO+X46G8R29qtu3CvXh9f5SIqPMGRX3hjOTs7mjU684aeHBxpehx/m0nuSl0v2cIwt8PsEJ6/oTdxaC+nkJYIp2nVE4EFmZg+92v1l/pTskRwD03vwvo7LgZgth9esri2OTX9bHraXaiskwsPo9FetODuXvuLy6UFvxsWnGBQRdZz6WuAT3F0WSToZV2vgJQJtQghhvh+NR3fBJlqyfmZFjOsnk2jSyije5UJREdX1O/GKGF/b1VMDgEx/CeD5H9mfpn7M79oYWMypI//jyj/+g== 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=LjV3Ix0lRqsYcfZ9MZ3oHVWnpUgcHjwvqWZ+xmEudlA=; b=bkIZ4z+u6qbkUz00VEngaWvew8I8uwGlI6MlKxY22vk/4icxIau7K+PBQGWk8oqyI/56fNC0wrMTuYEwlhknQoAV0H+dLldJwaz5ZHomwt0KE797RWgsAbr7dUjIoaS/W7JKbD3C6wARdZhWQsT35igDqrwAyZCN/hmUccUqQDLuMz3LxUZVCJdwLmP4yMniQa2o9pt7uR6M3TmoPBH25rvFW0w4KXHYn5uECiFpyUBg6wDjbyl0LJcz2Ev4rRwm2qsH3ysWHevSPIh0hIMvjDXS3oaK7YaWnRSI9MNSTFJQGO6kA808tMP+/yi+1zSzQ4qi7CgjAv1vtHUnM7ceTw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LjV3Ix0lRqsYcfZ9MZ3oHVWnpUgcHjwvqWZ+xmEudlA=; b=UfTvoMRFLSs3H0jHYdMa2ansjgnE0U7hJn4SKbUOulMF/QUXoQuBMU7eeGMa/Kkv737yHfZPpjhHH4N3VhUauRVpPrcTCPgFdAwZVdRRrZMoHtbF+w9xH8kkFzi6Phm420De6LSjJJRPUUXikhXXL1sebl+dtkI/xyl9nEBY0Np2UY2pNLORbbJgG8le5WU+YpqpGN4n1bp9LcrK4AFGNa1hkpCHwehL3xUG+DoUoe+KfVMVI7S7oyS1Jycz/ghBnrfYF1xRwbYKC0sF+B5dY8EwaY9zSIzy9XYcFbqUlYcT7xMY9KZVNY7Injf83vDXB0bz2TBOd9i3f9sGMjWLTg== From: Volodymyr Babchuk To: "xen-devel@lists.xenproject.org" CC: Volodymyr Babchuk , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk , Julien Grall Subject: [PATCH v8 2/3] xen: arm: enable stack protector feature Thread-Topic: [PATCH v8 2/3] xen: arm: enable stack protector feature Thread-Index: AQHbqA4PPDkWtASJxk+dJciG8QkunA== Date: Mon, 7 Apr 2025 22:40:27 +0000 Message-ID: <20250407224009.2577560-3-volodymyr_babchuk@epam.com> References: <20250407224009.2577560-1-volodymyr_babchuk@epam.com> In-Reply-To: <20250407224009.2577560-1-volodymyr_babchuk@epam.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.48.1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: GV1PR03MB10456:EE_|PA1PR03MB10914:EE_ x-ms-office365-filtering-correlation-id: 6893f7bb-b108-46c3-9480-08dd762532ef x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?q?K6UpvI6hRHc4TDBRIr51QBiAJa?= =?iso-8859-1?q?1HgmXP3//TpWzJi+YJxjTz9G41r6I9Xm0J3biEaNRcjapGNeUT/o8driGpa2?= =?iso-8859-1?q?SPLM3ocWoaWmfqfJIjEXa6PBkDB/5RfP6mqLDMaqYs3kGDb6mLzBUzPoHqI2?= =?iso-8859-1?q?cP7TAkobiGbxLQq0jMH/qD8PtrTGha5SLKKNYIxYbV6/1ygWHW3tRQIgi/p2?= =?iso-8859-1?q?S95ZsfHO7TlFtfgdLqOVlKIsri5unz5+8q4ve2LYG5GgLEklK0XgOZZeDXTd?= =?iso-8859-1?q?znGUQHSrbwL1vknhLzQn47/nkzVZDT1EGnTtLv3MEyDUwHQO/XOy5/yjE7Sa?= =?iso-8859-1?q?6gjCdekmZSh3zy/+48DZBBZGfy7IZV4HUHTtTy2fPpzN7VTMcDowfmqVd/g6?= =?iso-8859-1?q?l8Z25SVvjcDnZGVdLXvlhQve5hQuDK8MwhwnXbq2bBCkRFQ/c7IlGjFgtXSN?= =?iso-8859-1?q?z4pXLeVRB8R5tBV2h+tC7kbUEh2EOmPYu8eEbBkGIXHGSyaPR+9hK/hYhVSh?= =?iso-8859-1?q?P6rFlZIbe1fKFZgq8z/vZ05DRze7I5fXZmQEz7Gfow2z+D6pxlQsnorZr08f?= =?iso-8859-1?q?O4rGkb/aLVMbFFI0FOFw49+0tRxh5hzfIvdGshO2MiTI9e11R/gNsNdFtaKK?= =?iso-8859-1?q?A8FdCZdz3SWW2KFeAEG0ld58xh5IdQykwQxjV8wx3XjH04elbKgthOwY/vLh?= =?iso-8859-1?q?9mhHm1V6hme0atbEGtflvD9WqbOaYvc/Nwb5n8RldZ8nT/DCoJh/zlM06fa1?= =?iso-8859-1?q?NmXwiCpWk3cR7P7W9K13J5F/gEFiCjWp927/E7mDQ6USTaWrvIzxNjI/pz/M?= =?iso-8859-1?q?r14srCbLK6lez5JFlKagKmvtlysKZQNtpMoFcTl6Yqq8d6j77jx0uPoU6UIJ?= =?iso-8859-1?q?qzrdD4FZANVHd71P9JkwPSxZ7+O4u07bDle09YYJsEqU44rPzbWRWv+LSijw?= =?iso-8859-1?q?ikzbDabQXGrEUGvjA7KD7xAKayOLC5kwXWYJTWklYZdhmzvE3+ILj4hqmkQZ?= =?iso-8859-1?q?5SmWnLL+kR670MD3ZIR7oVDsVU3+1A3+dcWImyA/oEbemvKqNxGC43KQU8VA?= =?iso-8859-1?q?uZaGVRprYvRC2iNQUaD+Z/YTDGyObEwN8wv7PH2lzmDYnsyRTQCVUhelXPvG?= =?iso-8859-1?q?nkzCv1vMAdmZSwPLKi+/xf+oAsSC3k+XwBQKrLBZNmlOd/cewM4SSFXqrTfb?= =?iso-8859-1?q?AB8ZJJLigu/ojcRMYpZUKanto65Cf9uZbwL8kYUygXuNqDgBAkoZCHL9BNFu?= =?iso-8859-1?q?BRSNdiMmIcO7OJLT/GQjL/Kmo3fPNU7u5o0Lp7yalTVg0pUj1HCCPN29RZff?= =?iso-8859-1?q?XRzjZ6Aj0MH7pVQd7x9D9YvCyhlnwe1Dvf2AjtH/KO4NPIWkuIqdb1o6QOxt?= =?iso-8859-1?q?Ym12c9iK328jICA6Z/vmozFdIRuRsoSlXqAcejR8Egpi5e98UJayR0cuOtFQ?= =?iso-8859-1?q?tdn611WT588hPPbfZulD7u5NJOSzrxcCRWZaYF2PZLfj7HKXa9CF83U1hn1z?= =?iso-8859-1?q?+n++ie?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV1PR03MB10456.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?0f4GxzvFto9CI5lHs/1dFvh?= =?iso-8859-1?q?l3KDwkpQnIwZVRTAcXWEYwtx1DWDmM8ZkzXo1WUYCTNEVyvS8/fUvFI7DkZA?= =?iso-8859-1?q?4nWt7tH8N8ih6NgVy0zLA5ve7Og16PglTqn3SHHtgW/g/lUpYxEVlVSuD8ME?= =?iso-8859-1?q?I59dOWEjmbMrLXLe/HD/gwAyokaQ0HGk7rx3ai7uYM2GFYXvHT1X8PovIHOW?= =?iso-8859-1?q?ztYRtAe02Pk9vcr613wjASjRneaDfhr4Knkuhn2VdIwrJj4kn8t+Bi/v5AHH?= =?iso-8859-1?q?8C4xriKXsW0mlcZwZ86EJa4gruV6cTy4cnhMFV+UKnAVIgFT/i/VyajvYdQ5?= =?iso-8859-1?q?LIIz0tDRKp7hpQfbF1zvsiX5w79sLhUiVjAIeFTnwz3vg3O2K7d8woZhvXMt?= =?iso-8859-1?q?6UmI3EU2WVAzjL8xm1IPuFpzknsqn0vga50tcFXVK8JKLBMh5LbQpVuesZB9?= =?iso-8859-1?q?7fc9U226ioU9fIKMZ5sFp3lndG9K0qZLYuXlRJU1zK8gg4iY8eZjPv8AYEBa?= =?iso-8859-1?q?zvdjUM5s85fuGUoT5epil/ckuaWiMUx/2B4GQ2x6ukOmEqr3qkAAJ4TiVg1q?= =?iso-8859-1?q?un1FTXKwyeEJ+pdEOo5fT3TbPOu2qO3o9Al6rJokXXZXPiSpT5iDfQ4SZFMU?= =?iso-8859-1?q?/xjwBXM50OAEO9SO6avRIKhdMlKkFiqXrJn+y0szbepHhQrc0h1GtoRequSX?= =?iso-8859-1?q?/1FB4nSj8gi75qxkq9FQAzq3NtR99gmzlA+o69eFp4h1bREaFbLyFsOWpBWU?= =?iso-8859-1?q?6KGKIzoZkYp/xVHSpbFoYoUIlDCHGnizHA5W5omKSDkPVmyhMF5z8qTprz2O?= =?iso-8859-1?q?kNoOZTdpzLL+WbngDYoqtaV3KkMAJF76fi/CCbdf4n9YRI0df+NwIgORyzN5?= =?iso-8859-1?q?TZ6QDXxJ+deyNK6x3SIgpayOMgUw9BY4oe24PISPn7IXu6LviiQX4cFLK0xp?= =?iso-8859-1?q?vVK4CUE2yfbAld4eu7xfMTCFlZ/ZwhJr1eW9CFAPZVk6xaohAQwYKG1KVKfj?= =?iso-8859-1?q?kZdKRgjdedHDbOTdZz+tCRJBeHIuL+4lX5/+Xjj9xBZzU92t7Ix0w9yR+Psa?= =?iso-8859-1?q?8Go1nuxZyRMbWMcsd5vhxqXxMaKemF33O5DxzIImrGtYL2v7M7EyzUgpHkkG?= =?iso-8859-1?q?C/DCo8ecHfFdzNnKr/Tq/uaNn03dkSrGCkL9DM5/genA0SSgVnqRpYstTwE6?= =?iso-8859-1?q?IIhJ4STgrXmZ9nq5TaG0VLKNJeWKgX1rNVdf65u64AbNfNF+6p4rEgn9xI6z?= =?iso-8859-1?q?IDHqfiS7p964/0eHdNSCVX+AkO4Rfo2AIs7wvTs7ph2KHpe2h9Y356mgpEPZ?= =?iso-8859-1?q?o/nGzJgKhQUdSYiaY3sv1QgOogPEdqDJV7lujmvFyDW6qLZ/x1A8vGeYmalC?= =?iso-8859-1?q?27Mnd5NalaAiV37Kf83TasO5/FIIMJ7YmNq9pQeikPD82ocl/xh77Dm9vUk4?= =?iso-8859-1?q?sWgI+0W0Bhr5hoqTSlebjTUWzp2sb8lrQrTCQ42LwY63RB3mgCzlh6jkWADW?= =?iso-8859-1?q?zvuc2Af0couM15TiyLOyuQpHfyM0Hf4Ql5irc7BgYWHQewXLzhmsCKs+/Wll?= =?iso-8859-1?q?wEak2lST8H23KTlldu6kjSStkVEYtEgRCA/B/KDj3UPo9CYooUj6whP3fq8U?= =?iso-8859-1?q?JIObYhZ/Z0E4AD9uty5U9Ry4xWKZeedkSUkWr9w=3D=3D?= MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: GV1PR03MB10456.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6893f7bb-b108-46c3-9480-08dd762532ef X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2025 22:40:28.0205 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: q+r4/tRAhvAUz0jyjKJ5GyK2iQTpSbjXl1Q70rI+G4s+pgF0jh/i3esBiFYd9HG+xznv1g+i8sXWf8M5yGJIF8B7CBVMA8AqJ7OabmvJsgs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR03MB10914 Enable previously added CONFIG_STACK_PROTECTOR feature for ARM platform. Initialize stack protector magic value very early, at the very beginning of start_xen() function. We want to do this early because prior to that boot_stack_chk_guard_setup() call, default stack protector guard value is used. While it is fine for general development and testing, it does not provide highest security level, because potential attacker will know the default value and can alter a payload, so correct stack guard value will be placed in the correct position. Apart from that argument, boot_stack_chk_guard_setup() should be called prior to enabling secondary CPUs to avoid race with them. Signed-off-by: Volodymyr Babchuk Acked-by: Julien Grall --- Changes in v6: - Expanded the commit message - Added Julien's A-b tag Changes in v5: - Call boot_stack_chk_guard_setup() from start_xen() instead of early ASM --- xen/arch/arm/Kconfig | 1 + xen/arch/arm/setup.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig index 565f288331..da8a406f5a 100644 --- a/xen/arch/arm/Kconfig +++ b/xen/arch/arm/Kconfig @@ -15,6 +15,7 @@ config ARM select GENERIC_UART_INIT select HAS_ALTERNATIVE if HAS_VMAP select HAS_DEVICE_TREE + select HAS_STACK_PROTECTOR select HAS_UBSAN config ARCH_DEFCONFIG diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c index bf39d41e9b..07703a15e1 100644 --- a/xen/arch/arm/setup.c +++ b/xen/arch/arm/setup.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -306,6 +307,8 @@ void asmlinkage __init start_xen(unsigned long fdt_paddr) struct domain *d; int rc, i; + boot_stack_chk_guard_setup(); + dcache_line_bytes = read_dcache_line_bytes(); percpu_init_areas();