From nobody Wed Apr 1 22:18:48 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=epam.com); dmarc=pass(p=quarantine dis=none) header.from=epam.com ARC-Seal: i=2; a=rsa-sha256; t=1774971818; cv=pass; d=zohomail.com; s=zohoarc; b=HxMuMBx4UCf4+y9K6BjPV0jl6Qc1m4Rz05zPGrv38zdVRUY3HyE50x8iE+4kjhLlRcJ2X3Ayv7JoXd27Y2U5R/TbUaVcp2PWGXLuE6btK37rxZp6Jf81syOH7U7dTgH/QUPknmT82iKPH1EnkcSLwpTnwFwsfuII5FvYu+Vox8c= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1774971818; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=KhGP5Po/5+j289yQqaXcApoqaMGwV/q/N5BbRPfqwrY=; b=QWP3VNq+iiYUKijaFyLey9H1CIq0sMS9AcNJkb+Hf6nPkYIHbebWLjEgAeJfRprORnY/R6vyPjv5swKoUb6x038BMABaukouQKn+1KIy05Z7cIVL/BfYiqb+zje14a8Xjm1wbnlQS30XKcJJ/Lp1fnHIE3Cg1pEU1bxr5Y7UQfQ= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; arc=pass (i=1 dmarc=pass fromdomain=epam.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 17749718184476.5991255094388634; Tue, 31 Mar 2026 08:43:38 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1269116.1558239 (Exim 4.92) (envelope-from ) id 1w7bFM-00066a-E5; Tue, 31 Mar 2026 15:43:16 +0000 Received: by outflank-mailman (output) from mailman id 1269116.1558239; Tue, 31 Mar 2026 15:43:16 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w7bFM-00066T-BL; Tue, 31 Mar 2026 15:43:16 +0000 Received: by outflank-mailman (input) for mailman id 1269116; Tue, 31 Mar 2026 15:43:15 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w7bFL-00066N-Bb for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 15:43:15 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1w7bFK-00FtVe-Lx for xen-devel@lists.xenproject.org; Tue, 31 Mar 2026 17:43:14 +0200 Received: from [10.42.69.12] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 69cbeb92-5cb7-0a2a0a5109dd-0a2a450cae04-0 for ; Tue, 31 Mar 2026 17:43:14 +0200 Received: from [40.107.162.75] (helo=PA4PR04CU001.outbound.protection.outlook.com) by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.55.2) (envelope-from ) id 69cbeb91-f93d-0a2a450c0019-286ba24b0865-3 for ; Tue, 31 Mar 2026 17:43:14 +0200 Received: from AM4PR03MB11152.eurprd03.prod.outlook.com (2603:10a6:20b:6cc::22) by PAVPR03MB9139.eurprd03.prod.outlook.com (2603:10a6:102:326::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.28; Tue, 31 Mar 2026 15:43:12 +0000 Received: from AM4PR03MB11152.eurprd03.prod.outlook.com ([fe80::bbbf:5b9b:1043:4510]) by AM4PR03MB11152.eurprd03.prod.outlook.com ([fe80::bbbf:5b9b:1043:4510%5]) with mapi id 15.20.9745.027; Tue, 31 Mar 2026 15:43:10 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version 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" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eyVvV+O6BxRgJ0wAmIONJH2Y/t3okqrDee3NFyMHRGaQPICdNCzLdmaPrf7fmsPkIlsTWGDkvgz7EIOAFf/gwk63XNVO+8+W8wJKklc7ZAmCunRmWO0jLZw+PWdUBMeUBshhvctVB8Lfhk7Y55iovI3NVdO3X8D0gtaA/PB8XphpcdQrEKDlmZqlWWRCQfgED0w4F3iIlvgOhR8aAKbGJWOJGVGkblavDpP9Fj+bO5RvgifFeLf4fgMlxgCfITzlFi3aBZW46VGpck7Qg78BhE2qgALQs0ZvlBfPjDe33W654XCXOIKPyyjDoUsY28s4NfV6fsCaXmrOOfx6Qy4gkw== 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=KhGP5Po/5+j289yQqaXcApoqaMGwV/q/N5BbRPfqwrY=; b=tX2XTPo1c3cWHJr+thd0q3girU6U2hlh7MeGi3cPMGXjHhAIam528I5+t2S5raXPGmwij7ZOaj0cSn8hvzRDpVnOZibNslGvu/FxelA9iiikSUtNzIXZtbu3ADggzJUt0i76p89GevJ9VGSb8tByi3TSDT5R8nB4sfyVS44IuAGhlC4UytCZO/nRgvq59BT2t1c/VjUSej3l4q6nMKyM3yH/RwiBleKYDuhd4xcIOTISDlShApM3/h1xfHqrGkddeOjCByCNH8uJ6Ni6tOPCXqNwM/0V9oAU5WjHDTaEbjNtLRQqElTD3rvruWe93+dvyoT7fwQ9+zKTLulxeI1sGA== 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=KhGP5Po/5+j289yQqaXcApoqaMGwV/q/N5BbRPfqwrY=; b=qU8JB7+r7fHiTJqArNdIY+mF/DHSX3gEWnbeEDvP3Nt45FFACThPeBw260tifz0gll1pMpkPUPY9izywJwyKLd+nYmWAlTENtd+aCiz/2nbgX9SiOo/2UssgkY1W4ATqGbR6nLGL9nVcu9xg8BOlfZJ1mhfTsT4dIqC5qdXMX0Vzclfsv9MSp2nTTNVT+TAZxWphn9wncnTMVUKB/22fzq5UXNgb71dNDvVPMCeX5Yuzohnu5P3vB+2yK2MWHvCkoC+Z5lg08p5QwHF1Ibw/r3ESLFUqHUqzkceYGWXjsUwX0m64yXQUbPU2Rs/yN6kwTH7+raGI9LKhTpBmRJMLNw== From: Oleksandr Tyshchenko To: "xen-devel@lists.xenproject.org" CC: Oleksandr Tyshchenko , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk Subject: [PATCH V2] xen/arm: Increase DOM0_FDT_EXTRA_SIZE to support max reserved memory banks Thread-Topic: [PATCH V2] xen/arm: Increase DOM0_FDT_EXTRA_SIZE to support max reserved memory banks Thread-Index: AQHcwSUT7254zXLHwUG/lf9z0n/ajQ== Date: Tue, 31 Mar 2026 15:43:10 +0000 Message-ID: <20260331154309.2921483-1-oleksandr_tyshchenko@epam.com> Accept-Language: en-US, ru-RU Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: 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: AM4PR03MB11152:EE_|PAVPR03MB9139:EE_ x-ms-office365-filtering-correlation-id: f09ee9e6-6e26-40d9-b65e-08de8f3c3670 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|42112799006|1800799024|376014|366016|38070700021|18002099003|56012099003; x-microsoft-antispam-message-info: =?iso-8859-1?Q?NN2+7v4vLpImDkcBTU5yqx806mcGK/LXIySJ3HYEAqamSc7/zmQ780yuy2?= =?iso-8859-1?Q?x+sOXg4LNxANajDUslvh4DczMGXk78FdbF/kqgobAB/4CWkDwNcI/tNS1y?= =?iso-8859-1?Q?uo1Li0rEs0X4FBw5H5F4YmIt7e+SeK9AWV3axwzYYUxWRCVqAoRwliwDzo?= =?iso-8859-1?Q?dgy9FihfRidxzJnjx7csyAwfeBnZSKA9t4liteXCRGvnyAIGi+NLQocY1R?= =?iso-8859-1?Q?ZjAUCOoPxTQoCBeYYbkqgvho+5fgzUxDN1ZNyLZ+TadT6ZUeFZyGOfzfR+?= =?iso-8859-1?Q?DiZydhQIMK8cHQ2eKo5rRD8u9gNVmvSTJ2xlyV0F3wEGUhZHytCEwjdnlx?= =?iso-8859-1?Q?ZgrOBUrplSPEaai49obzzTljw4fQSHuoEJ/e06WtB03v+OJdjQcK8o7cA2?= =?iso-8859-1?Q?f14TUw2QVMvhhgokLselN1omGEW0h6g/fE/jUYVGyDsthPdFOW+a2brA8l?= =?iso-8859-1?Q?T49RRqKs0i4BLA/L2lOO/k/iwYHg6E8sHiRSddvfS75C12htWVq8d5D7Iv?= =?iso-8859-1?Q?3F5UySbhzIYAk3dU435uAJHNaNpjvqRD6dL06mcnbvpdj8QMQB+MADbSna?= =?iso-8859-1?Q?Gk2asNjMVJ+Gznq+irHzA8G9FWEBWwqOHCHst2i9luk2ihIqpo/Ig4B8kk?= =?iso-8859-1?Q?JApg4RqTDNF6Tb/qKFUqjTlZVzA5uPBZs1yFZSVI7QXffY69/XKhS8KRUd?= =?iso-8859-1?Q?uDdkGGFKYk+0xsovMmrcddKOPIUZFpHCPQ/8KziHzUiU6XR5gF/K3O6/Jk?= =?iso-8859-1?Q?ksGuCP7JLUUE48kduc5bO20Yd3IXerp5Jj7eHK1xtlFkfZYl8jKq5HdheF?= =?iso-8859-1?Q?88QAagfmljRcMXG510jFcSTBebha2DRdEolBAksxa0L0dFaWWJfKrFyjtW?= =?iso-8859-1?Q?Ku5Fc86jC8m0DtAgEkW3aVP8u8oVUoQTFplgVxHqsE+gUeaq7aPPP77ep8?= =?iso-8859-1?Q?GWpRJCIRdxtgo5Vu5oD0pv75FRe9sgNyeIKotKpO8RxYSIL085lL36JWAN?= =?iso-8859-1?Q?ygG3+s+aMVHN3iPN8DY0mhijlvvM3432fowwpKOS/XrZPwmDJVQs0NmSTp?= =?iso-8859-1?Q?Ytql1d8PKQAd6MTVOyNmlnyRF1E5qCURqb2SviUSaI2OHkcTTgaRqQzNg0?= =?iso-8859-1?Q?WgXAnvwA=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM4PR03MB11152.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(42112799006)(1800799024)(376014)(366016)(38070700021)(18002099003)(56012099003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?8sTPrIrJBMji9jIhdHQI9cIqxuPKfJhpi/5ep9qetgB2MB/95rLBSa+Drr?= =?iso-8859-1?Q?5GFTmLiaE1ypJ7QQvzFG99lK1EcBwH9xFBVg3eBGhBJKNDHfq4si55DxY+?= =?iso-8859-1?Q?NFvanYkWfrjSWXeTwMZTedjNRGvK9grvyj8oTdyoH8HUGxRNZAZLqgmZGj?= =?iso-8859-1?Q?7eGDhgsp1DYfOhfe+EgG4oyrVUwYXhOg7wGTl2BDJzwO5jP7w+8yETzGAh?= =?iso-8859-1?Q?GX/BnOsdHDhKokgxYWbaZfoKwSXWX1wAf5eaTuHaVNq86DzVZcgHl21xy/?= =?iso-8859-1?Q?dU7NBnGNnyrPG/xkSChNii8EujWLPGhv3YThhhzVlBO6ZTej+CH5Z9fuJd?= =?iso-8859-1?Q?d5QIdUVTUfmPBE2VmEFAA7iFG+fS6hIzqN2HOFfLqJaYSSJy43F8s3xi3O?= =?iso-8859-1?Q?DLCd21F0Hx6rt/vLiz8Gaby3Xw1fm0aC2EFnqqJHIR7ZjWbSF1PDHQW+IE?= =?iso-8859-1?Q?gGu9XuNzCf8PBOa2fHvzFqK8O39dhLCY6Nc1ee22teA2wtkpQp9+q9RNeq?= =?iso-8859-1?Q?o28Jr4MEi6lb3Cd/7g1Y1xUljjRA9q1VKP/B1HLak0LlZg4yRmhwoMNEpJ?= =?iso-8859-1?Q?QRJuZG0rqqBSbh40tTaPl6pmPxTbZ9J5rzSw31Sguh18kI1I7Gw1TJLUv4?= =?iso-8859-1?Q?zxH5yyVapNhf8dA/2NqNZPtI5Rt94Dm5kuhcHkkxiByklRtd/5U5GC/Yuv?= =?iso-8859-1?Q?2b8TBTAyRw4/uVZQ1EU6TkSpKmlNuO/tLcKGNiHtx5i32q3JaYZ92T62uP?= =?iso-8859-1?Q?DVirbnDixGjkWmZUWQMOHtOOpgm/TsER4z+piq1N349LNm5ewXnEaTtROv?= =?iso-8859-1?Q?niaFSOXkXaW/GD5RMc/cwl7euYJNMDj7WSCAgV/SPv0FE0SL6ZEHhtLBjH?= =?iso-8859-1?Q?4RVN28w/7Q3Cf9R58UwXBTThJZ9jIusLec5sJmx66YHnS7YjzQ+KcaH4u2?= =?iso-8859-1?Q?bYYv4ZeK14+hjPi/X/ztF8lGWvUsYnMD58+2xUs8h+OTpuhsxHzIdJI8cY?= =?iso-8859-1?Q?7KIeN58dPoHf9Ikun2WZKcg1hHlFUx4185bIZRuIhqBScZVFCZZ7JDgo7h?= =?iso-8859-1?Q?55tbKAm3iG0DLTb2ecDShj7/efjZedV6qo0BeoVwyuUg5lADqfJIx5kNyx?= =?iso-8859-1?Q?o9putNNoUvDxvR0d0dNUQ9hD/iVUAJK9vrj1ZNtyWH09E6u3P4jv9enDaG?= =?iso-8859-1?Q?H7c7UEeDx23NqEprKRs+PUM3ESklr9pfonp5Vt6avtVfg5EAvhH5k5V3aa?= =?iso-8859-1?Q?iapy6F6qkmag5PEfqv3viyMosAo0pUSSsy0sGu/dqo4yEGrTObrm6pDpL2?= =?iso-8859-1?Q?nbBrpyh4RZ/QL5jILIV+0fezadGm2+MAhgy1w6uB3whOHouLKJgHabRDck?= =?iso-8859-1?Q?G7fy1egOjGZRWcUoNVv1KxU6pB8z2AS8Q0hpg/7mweMulfGsUQ/LD68CZ9?= =?iso-8859-1?Q?6F0LzyQYdJfA/07XIQxKf2fmyjH6Md21pn+J84yamrDwvMzbRRYd6RW7Sd?= =?iso-8859-1?Q?eo0aInIf8mgYR0bq3ZQ6kdvo3QPS2mlr4jP4chI4i8zxBvhr9m+Xz8j4Ku?= =?iso-8859-1?Q?uZMN6CeJpiJmYPb+SFbfenlCKX452ym25Ji/lnSnBQgTO5/5FbIo2lGt5p?= =?iso-8859-1?Q?iiUxaivXb8tb0ngcnMwAMGH8EVuR0gRAPVa3vOevrF1AolZbS29eVvCpxM?= =?iso-8859-1?Q?OmKydNst5PsHl68Hw50P7RZk8ifbs4JxlVkm5FfOQttEo2zQ1bJ5l5v6in?= =?iso-8859-1?Q?LbxBtWJ8xIxyALoMT6Xum9kE6C1CLolmk3dv2bUCK3zdUyIs7SyIRplO64?= =?iso-8859-1?Q?Ypgy8EhJvUGTsZlIL7X7efZjarwsAf/e625fxsZ24nydi7X9E3Di?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM4PR03MB11152.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f09ee9e6-6e26-40d9-b65e-08de8f3c3670 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2026 15:43:10.6719 (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: 50YYkv4DD8u5GGXzbtWI7L/x1ZSEeq/sZ4roJOT/Fq+UdfCyQetFXbj4guXw948vn9ihPCuD66gx4jM+zioRKXP5MRtAf6hpP/88Z49JTNs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR03MB9139 X-purgate-ID: tlsNG-d25034/1774971794-F5AB5734-E207E649/0/0 X-purgate-type: clean X-purgate-size: 3340 X-ZohoMail-DKIM: pass (identity @epam.com) X-ZM-MESSAGEID: 1774971820270158500 Content-Type: text/plain; charset="utf-8" From: Oleksandr Tyshchenko Xen fails to construct the hardware domain's device tree with FDT_ERR_NOSPACE (-3) when the host memory map is highly fragmented (e.g., numerous reserved memory regions) and the host DTB represents RAM compactly (e.g., a single reg pair or just a few). This occurs because DOM0_FDT_EXTRA_SIZE underestimates the space required for an extra /memory node. While the host DTB might represent RAM compactly, make_memory_node() aggregates all reserved regions into a single reg property. With NR_MEM_BANKS (256) and 64-bit address/size cells, this property can grow up to 4KB (256 * 16), easily exceeding the space originally occupied by the host DTB's nodes plus the current padding, thereby overflowing the allocated buffer. Additionally, the SHM regions require space for discrete sub-nodes under /reserved-memory node, as well as an appendage to the main /memory node. Each of the up to NR_SHMEM_BANKS (32) regions triggers the creation of a sub-node with properties (compatible, reg, xen,id, and xen,offset). These runtime-generated sub-nodes require approximately 142 bytes each, while the appendage consumes an additional 16 bytes per region. Fix this by increasing DOM0_FDT_EXTRA_SIZE to account for fragmented reg properties (NR_MEM_BANKS * 16), the discrete SHM sub-nodes, and the SHM appendage to the /memory node (NR_SHMEM_BANKS * (160 + 16)). The SHM overhead is conditionally evaluated to avoid over-allocating memory when CONFIG_STATIC_SHM=3Dn. Signed-off-by: Oleksandr Tyshchenko Reviewed-by: Michal Orzel --- V2: - update commit description - update in-code comment - update macro --- --- xen/arch/arm/domain_build.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 3cd251beed..07f331eac8 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -98,11 +98,21 @@ int __init parse_arch_dom0_param(const char *s, const c= har *e) #endif =20 /* - * Amount of extra space required to dom0's device tree. No new nodes - * are added (yet) but one terminating reserve map entry (16 bytes) is - * added. + * Amount of extra space required to dom0's device tree. This covers + * nodes generated by Xen, which are not directly copied from the host DTB. + * It is calculated as: + * - Space for /hypervisor node (128 bytes). + * - The reserve map terminator (16 bytes). + * - Space for a generated /memory node covering all possible reserved + * memory regions (NR_MEM_BANKS * 16). + * - Space for a generated /reserved-memory node with discrete SHM sub-no= des, + * plus the appendage to the main /memory node (NR_SHMEM_BANKS * (160 += 16) + * bytes). This overhead is dropped when CONFIG_STATIC_SHM is disabled. */ -#define DOM0_FDT_EXTRA_SIZE (128 + sizeof(struct fdt_reserve_entry)) +#define DOM0_FDT_EXTRA_SIZE (128 + sizeof(struct fdt_reserve_entry) + \ + (NR_MEM_BANKS * 16) + \ + (IS_ENABLED(CONFIG_STATIC_SHM) ? \ + (NR_SHMEM_BANKS * (160 + 16)) : 0)) =20 unsigned int __init dom0_max_vcpus(void) { --=20 2.34.1