From nobody Fri Oct 23 16:19:49 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=1792753805; cv=pass; d=zohomail.com; s=zohoarc; b=Igu9mpbBApiupMYiPyLIQ805/LucdRlzgRLOzRXfwr8uoe47vwuYAOaWpod1zutARqgb4QZAIq5Fz0wJgjUbUQejDEVLBeQe9U3Ua5FPhIomiEarWs2CJENsx+EKIta8GOE/+yFAOnnprmyBkrc7u+2Zwf4j4I5ThQtSFDh42dk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1792753805; 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=7x1wOfUxu+7NF8wJ9lY1NYo9Inzl+n5Rp4VMchpDEsY=; b=Z9dTbGhiY2yRGskWyT9WuymeXTOvAQowJgNJfrdjvOmu2UFg0xRvvwQcE8c/jOzhuBf5wIqEq5tmpxzsZ5itMvDoWuara4hVHsL6Q3IiVWy+m4WmKgp9qrvTjHXK0m7f7KtmuTsTRL6WIlrsyqPoZbgpDGEJRttOCBa9jPflK8U= 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 1792753805726566.9948088404343; Fri, 23 Oct 2026 04:10:05 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1459143.1671212 (Exim 4.92) (envelope-from ) id 1xKD9Z-0006GV-V4; Fri, 23 Oct 2026 11:09:41 +0000 Received: by outflank-mailman (output) from mailman id 1459143.1671212; Fri, 23 Oct 2026 11:09:41 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xKD9Z-0006GO-RY; Fri, 23 Oct 2026 11:09:41 +0000 Received: by outflank-mailman (input) for mailman id 1459143; Fri, 23 Oct 2026 11:09:41 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) id 1xKD9Y-0006GI-OA for xen-devel@lists.xenproject.org; Fri, 23 Oct 2026 11:09:41 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xKD9Y-00CRBX-4p for xen-devel@lists.xenproject.org; Fri, 23 Oct 2026 13:09:40 +0200 Received: from [10.42.69.12] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6adb4073-2eae-0a2a0a5409dd-0a2a450cb4a4-4 for ; Fri, 23 Oct 2026 13:09:40 +0200 Received: from [52.101.66.135] (helo=DUZPR83CU001.outbound.protection.outlook.com) by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6adb4073-f479-0a2a450c0019-346542873e44-3 for ; Fri, 23 Oct 2026 13:09:40 +0200 Received: from AM0PR03MB6050.eurprd03.prod.outlook.com (2603:10a6:208:15d::10) by DU4PR03MB11142.eurprd03.prod.outlook.com (2603:10a6:10:5f2::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.15; Fri, 23 Oct 2026 11:09:35 +0000 Received: from AM0PR03MB6050.eurprd03.prod.outlook.com ([fe80::657b:d5bb:c261:f9d]) by AM0PR03MB6050.eurprd03.prod.outlook.com ([fe80::657b:d5bb:c261:f9d%4]) with mapi id 15.21.0522.017; Fri, 23 Oct 2026 11:09:34 +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=APyohjcKqvvADs9DGVC4QdDf6m8ImmZFG/yUqb1kU521IAkDCna6W75mP5Wi9sqIwp8aQiekFf4qcQIDC6ytEcF1kq+Z8CnNfWDOYSbel4E+SXJ5KlZ94STdgyiWppOw4mtnPBN/dPv9cRGwEWH5vDUat4y5lMOmUCZU8B+mR/+OxC03+vc/zzC+52V1b2Mt85l48oHcjHu/cNavr4w6BcSwlFeb5540H9z76xRQ09Z4nGkiQVUx+p13QcD375vyu+bhcdZtHORq3sjn/SN2f2qfXms1nOYC4cJ0Pv+asjO2vTZ1SzBin1Ka4vY2ov3zgReD1z5kuOVulyunIoqhRQ== 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=7x1wOfUxu+7NF8wJ9lY1NYo9Inzl+n5Rp4VMchpDEsY=; b=NsFKtVBJj0RImqEJiIzospBAwLhDi50ZfgeAkoiLR8zkZie9+Duy6+Iy+ZAGFrGUq4e3Ywmbh6qE4YzJstwCM2XZQ3UW8aDlOVzkVs4UPT9EmIzOeQdkyB1AgGJBwMLY1Y91t+oAV6Oj+OB+TXMzFpU0hInZ+BiSM354Du9ZTcwv8NZHUHhodEpegT//NSuize343RZiMGVJj5w9o1CtTyYeDvZsa/i1tzwT8x9Fm0uorpxeeAIFUwUgE4CbxyyPMHDRv/3TqliVPtA9sMrSkUk6g0AicRf9NzwzlGpbS8TCGwArAIs/oQSf5CrP3Rx7uq2A7Hke7RhO5kSRJWRmaw== 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=7x1wOfUxu+7NF8wJ9lY1NYo9Inzl+n5Rp4VMchpDEsY=; b=ApcVoBL9ve6gl5wHzF94u8Pe3J5mxa6lu+XjYKr9m4tk7Mx9ZMQXXxrMSf2TigxTRKcJOGFnvOmTAV3fLKD9ulMgIXcjgc3zNFD70mjD6JWGQuj6bxqFtg5e8i6UYzA0pbFBU0GHjailevD6l9P1zcdTirTGsNtBRqPGSvX/TR9GP072EbUHXSuMOMdkZvDK7QrnOEikV0Q2qGm+dLTvhSPOl/9ZLDCim836/wAg0fLZ4zRlhtX5WYesZ1gXv1QTn5Ju/4mxHvgkOis41pm2s5XMrSZQFKviurl2zS5Dxri9VtcVd/J9YA/Ccf1UFMT8q3eZhSh4dH2Ncz3oyPNmMg== From: Sergiy Kibrik To: "xen-devel@lists.xenproject.org" CC: Sergiy Kibrik , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Volodymyr Babchuk , "Daniel P. Smith" , Alejandro Vallejo , Andrew Cooper , Jan Beulich Subject: [PATCH v5] common: dom0less-bindings: introduce XSM labels Thread-Topic: [PATCH v5] common: dom0less-bindings: introduce XSM labels Thread-Index: AQHdYt78vs0mWAZx8Uyiwl8OuJrbTw== Date: Fri, 23 Oct 2026 11:09:34 +0000 Message-ID: <20261023110933.2325318-1-Sergiy_Kibrik@epam.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM0PR03MB6050:EE_|DU4PR03MB11142:EE_ x-ms-office365-filtering-correlation-id: c5a75acf-6475-4a86-ceb9-08df30f61eb6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|23010399003|376014|366016|1800799024|261021121427099003|6133799003|18002099003|10067099003|261021135927099003|11063799006|261009223027099003|261022105027099003|56012099006|261022075727099003|38070700021; x-microsoft-antispam-message-info: ljx4nsfRYorwNECGY8BJgzurZ6IYnOrlliSkct3i/cfGxjOUVMQDSY7ZIXx5nnw9/4qpGGxSsRBpvCoEtX6u6aFl/W52/Te1PFCAW0Jub1onRWRQ8XgkunyLb+mzv+QCh3uoHmrk4HhLMfyrsmFT1e6bsy4ECdzDQZj7uNl+tGtXvfZuoa2KoxTBIK+jgPBkCjCS4cyNUg9N9cFtly4NXFGHLDnwHF0WLix4q+Ku6cElbnub6sDXGVJ4kP0qbxnyJTfT4W+pjQwdZ+EiV9OdHBfzlGiFwJwYhf82ke3TU1Zk0Rm7HMY2uT1JsqPACAiuHplErYATdTI3qAyvHZPx1Alt/wlwBWd97OmPddmFdrEv6ZflSObEhywVjlmGOMQ+CdaqLAwLIrqTfjUXst6GSMrBLADWJVYzatVx8jl7kcWVITep2p9C67L6ASW7oMjDDDcGgXLMe9xbExLZXL10sKGqKM62bXStys50v/DRp85c3YFCxy7Lg6dXRLGnvkuc1fwhaba/1XdBA5UHcq+nOgpAWbgHH2/Ux5fippbzPpoGmcjDvi9+ZAxvMsbhLi4O39sdOqpNYJVQ/M6GJtoXZUuHSmgHXW6iQkXq2hrjgatMh85/POpqM0j/FG2SarC0Hg1Gn2DmPHbbicI0PBpiipbnHZASRdsEte3VtYGKJTbMqWgQnsjaFdH1HYUrRD0jY9WXzA2OFwKSZgB3nuHDeevbtr3AiDfJckfAoxOiFdM= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR03MB6050.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(376014)(366016)(1800799024)(261021121427099003)(6133799003)(18002099003)(10067099003)(261021135927099003)(11063799006)(261009223027099003)(261022105027099003)(56012099006)(261022075727099003)(38070700021);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QXVWSTd5Rm1rOW45UTRyZ21WemJoaHlZR1pNUWs1aUt3djRaUGRNUWFFcWZI?= =?utf-8?B?UjNRYUMvMVFZVEZiL096OXZVUWt2encybEt2L3J3MWZaeXhodVhPQWlqenFI?= =?utf-8?B?WHB2cWx4ME81Y3B4L21OLyt5V1NySGlqdjZqT2VqNndSTC9JK3pEb3ZHYmhK?= =?utf-8?B?S3c5RWFscTNwa3FXcFdwbWJWUjQwZWxUS3V4NkFNejJqTGdEOVF0ajV1Y2V6?= =?utf-8?B?dnRHQktxWDdyM3IzWW5weFBDYytjR2QxcUNJMzZKUXZRS3E3UGNmS1VDK0dl?= =?utf-8?B?TDRUTnFNWnNMOUtYQlRQeU51NHBpWEI3Q21pOXV3emJTUWh1Z1AwM1ZJWVdt?= =?utf-8?B?b3BrOERUOFJ6M3EyamZiNmpYdjFBcEFONHRkL2dMYWZnNTltdGZ5ckV5NWJT?= =?utf-8?B?Mk1wQjRUWEhaSDY3cGxqck9PSkZyK0NwcGlGYVV5YkttSmNHY3RlOUpQMXlS?= =?utf-8?B?b2JnZjlaaDRycTFORVhuczBNNWNQdTluNTFnODQwK0p6QzdKM2lMTk5vckY2?= =?utf-8?B?eVVmL3Bjei9RL21LMklqTVQ2SEZYQU1lUllFMmZzK1Z3Q1pJMWVueUtkMEdh?= =?utf-8?B?dmlHVS9iVXB2TGFUQTN2RFlTcDlKTi8vS2JGTVVEc1d2QnB0MlRtODBUQzVx?= =?utf-8?B?a3AyaGxXSm5hR1ZtRmdIZzFTdmZMamcwOVFMM1duTGtOeG05RkpyVnFUNXAw?= =?utf-8?B?K2RuVmppamZjc044aTRBNTNtV25FaDY5eFVQV1RpQnJiOTVLOVVTYWhXbmVN?= =?utf-8?B?NWdJaWNkQ3p6Rzk0UXBnazRrWnNzUXZlNWZDOTZGMXY0bGFKMmc4MFhMK3JU?= =?utf-8?B?VnRmOVJuWkJybWpuVDA2bEl0dkRORXhmTkk2ZGxJYkN6NUN4Sm12TWFkaG5t?= =?utf-8?B?K1NwOStEU0xGakJLdE9YZWZIZkwwWEV0VG9nWW1tV1U5dit0TVhVR1VtV3Jn?= =?utf-8?B?MERmMU9URGtwZUVtUzlxYXlNOUk5VUgzb2EyZDkxc2MzSm1PSEk1RGdlSlVZ?= =?utf-8?B?T1o1L3pUWkUyeFdvMkxKeHIzMEliREFjQ2dwaUw0QVVzRjhWUlNTRHRoalZp?= =?utf-8?B?dVYrOG5iTnlUTkNrcXdjM05uakQwR3p1VDJ4MFg0VVQ5WkJkeXhTRVhFcXdz?= =?utf-8?B?cTlpRXhqekJBTE9DRC8zZ00vVElGZ1EwQXE3R3FyOEhaQStKSXdCRnA0UXhB?= =?utf-8?B?KytCZ0xZY1czV3pmSjNhZGh1RFVjTG9iaTc0K0ZDV1M0aExaSTJ3SlJ1andq?= =?utf-8?B?MnYwaytMYy94a3BlLzBxc3lXSmxEN3k1S0RhOXJVaHhsdi9Xa29sRGF3REpY?= =?utf-8?B?SWFiWjluZi9lTWpYYzdSbzhlUmlRWFg3UFE5TzVRUUg4alExcFdQQXEzOWpw?= =?utf-8?B?WUl5SnUwRzYxWFEwNlo5aEE1SlM4MERjNit0WWljaWc4VnIxQjMvdVhjMFA0?= =?utf-8?B?bDZFRFhERmFPSzl5cXI3TWduR1NyQUhIaGVzNHFzTkp4eE9xNUV3NXVYZDkz?= =?utf-8?B?RUlDdkFXcUN2aGZMY0dEdWpwNlBmdUJSK2FzMk9jU252c3oxb1pkSnVEYTVn?= =?utf-8?B?bHNYa3VjYnlTUEt3T2V5Y00wWjVqbDNaem5icjFVM254SjhBUEtHRmN0c3FJ?= =?utf-8?B?WnhoOHFPc2kwQ3NzbGVNdGhTcGsyYjkvWG9yWTdGN0ZJWjRWbVZrR1JYb1Rp?= =?utf-8?B?Q24wbC9Qa1F6RE1xUUl3M2poSVlEVmZSWGtPQ3cxdGluYmhlMEpRT0JBZVc0?= =?utf-8?B?VU5FQVVVSEYvY3NvY2wxVS9TbTJhOTZaclZWVjJ5ZUhtaGhuSVJpZjFWVjNa?= =?utf-8?B?dEVQNzRIa1I5ZytWVy9SNDlNK29rSllsVlRacW9DanlpTys3SVlRUDV2M2tj?= =?utf-8?B?akJqMzk0RXBzaXhWSDJKOUNHdVlnKzBrcVplVEdZZUNzT3RnUXhrYjliaXU5?= =?utf-8?B?ZmYzNGFzU1JxMUtRQW5GT1BIVFY3UkttQUJPekJIV3lmV016MjhuaDhlYVFv?= =?utf-8?B?WUFZNXF2YldlMmNrc2E2Y2JwOHNwU3JlODYzU2F0NlBEUmhlc0NaZnBJdS9O?= =?utf-8?B?c2wzT1dIVU9KRmlKQjZaNGdtYnBpZVM1dGdacG1OU0Fmdk1UdDVlZGlnZ0xO?= =?utf-8?B?elJWazhBd1hXM254VHl4OVYyUXByYzRRM0piRU1GQkVpOXhBbWZoT0Z2bWFy?= =?utf-8?B?aEM0ellTNExmSHpUTk9JMkFaR3N3S2gxRXhRWU9icWRkazgyRld3b2ZjZTgr?= =?utf-8?B?SndiT3lWc3JEcHBaMHhhUnkyZExqdWJQVUQyUlRvMXZLMzhCTDN6ZW5OMzhX?= =?utf-8?B?bFIxOEVsMCtZSEpSaExZSHNxbGlDYm5xR3ZBY09nQUVodFBhZXFzYnliYkJi?= =?utf-8?Q?4W4+mzuuYlef2Szc=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB6050.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c5a75acf-6475-4a86-ceb9-08df30f61eb6 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Oct 2026 11:09:34.5145 (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: kn4TyVZLuk6MbNT1LraWB6/RbFh8mi4ALFSo9NehbO63bgVDOOrbgEJ+zcv2GgyFlxFE2LCZr8NZwXiYcB1bZw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR03MB11142 X-purgate-ID: tlsNG-d25034/1792753780-5113AA5B-A5F387CF/10/78276251493 X-purgate-type: spam X-purgate-size: 8064 X-ZohoMail-DKIM: pass (identity @epam.com) X-ZM-MESSAGEID: 1792753807115158500 Add "seclabel" property to be able to specify security label for a domain when XSM Flask is enabled, similar to xl configuration files. Currently guest domain can't be created by Xen in dom0less configuration wh= en Flask is enabled, as domain is assigned "system_u:system_r:unlabeled_t" lab= el by default, which Flask denies to create according to current policy. Because code from outside of flask can't directly execute its internal API a new XSM hook lookup_sid() introduced as part of XSM API exposed to rest of Xen. Signed-off-by: Sergiy Kibrik Reviewed-by: Alejandro Vallejo Reviewed-by: Michal Orzel --- CC: Daniel P. Smith CC: Andrew Cooper CC: Jan Beulich --- changes in v5: - print error code in panic message - return -EOPNOTSUPP instead of -EPERM in xsm_lookup_sid() stub function - address other review comments & add tags changes in v4: - introduce XSM hook `lookup_sid` - at SID lookup return error if security server not initialized - document panic if DTS property is used and FLASK disabled - per Michal's request panic if FLASK disabled is left unchanged --- docs/misc/arm/device-tree/booting.txt | 8 ++++++++ xen/common/device-tree/dom0less-bindings.c | 12 ++++++++++++ xen/include/xsm/dummy.h | 8 ++++++++ xen/include/xsm/hooks.h | 2 ++ xen/xsm/flask/hooks.c | 8 ++++++++ 5 files changed, 38 insertions(+) diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-t= ree/booting.txt index 1dfdff0e4f..7edce9642e 100644 --- a/docs/misc/arm/device-tree/booting.txt +++ b/docs/misc/arm/device-tree/booting.txt @@ -348,6 +348,12 @@ with the following properties: not passed. This configuration requires static allocation (xen,static-= mem) and direct mapping (direct-map). =20 +- seclabel + + A string property specifying an XSM security label to this domain. Dom= ains + will be classified "unlabeled" if this property is not specified. + Note: boot will fail if this property is present but FLASK is disabled. + Under the "xen,domain" compatible node, one or more sub-nodes are present for the DomU kernel and ramdisk. =20 @@ -425,6 +431,7 @@ chosen { memory =3D <0 131072>; cpus =3D <2>; vpl011; + seclabel =3D "system_u:system_r:domU_t"; =20 vcpu0 { compatible =3D "xen,vcpu"; @@ -456,6 +463,7 @@ chosen { #size-cells =3D <0x1>; memory =3D <0 65536>; cpus =3D <1>; + seclabel =3D "system_u:system_r:domU_t"; =20 module@0x4c000000 { compatible =3D "multiboot,kernel", "multiboot,module"; diff --git a/xen/common/device-tree/dom0less-bindings.c b/xen/common/device= -tree/dom0less-bindings.c index 41d72d0d58..2d061e5ba6 100644 --- a/xen/common/device-tree/dom0less-bindings.c +++ b/xen/common/device-tree/dom0less-bindings.c @@ -11,6 +11,8 @@ #include #include =20 +#include + int __init parse_dom0less_node(struct dt_device_node *node, struct boot_domain *bd) { @@ -21,6 +23,7 @@ int __init parse_dom0less_node(struct dt_device_node *nod= e, bool has_dtb =3D false; bool iommu =3D false; const char *dom0less_iommu =3D NULL; + const char *xsmlabel; =20 if ( !dt_device_is_compatible(node, "xen,domain") ) return -ENOENT; @@ -141,5 +144,14 @@ int __init parse_dom0less_node(struct dt_device_node *= node, panic("'llc-colors' found, but LLC coloring is disabled\n"); #endif =20 + if ( !dt_property_read_string(node, "seclabel", &xsmlabel) ) + { + int rc =3D xsm_lookup_sid(XSM_HOOK, xsmlabel, strlen(xsmlabel), + &d_cfg->ssidref); + if ( rc ) + panic("Invalid security context for domain: %s (%d)\n", + xsmlabel, rc); + } + return arch_parse_dom0less_node(node, bd); } diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h index 6331859afa..7a05d2078c 100644 --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -823,4 +823,12 @@ static XSM_INLINE int xsm_domain_resource_map( return xsm_default_action(action, current->domain, d); } =20 +static XSM_INLINE int xsm_lookup_sid( + XSM_DEFAULT_ARG const char *ctx, uint32_t len, uint32_t *sid) +{ + XSM_ASSERT_ACTION(XSM_HOOK); + /* dummy policy has no security contexts */ + return -EOPNOTSUPP; +} + #endif /* __XEN_XSM_DUMMY_H__ */ diff --git a/xen/include/xsm/hooks.h b/xen/include/xsm/hooks.h index a331f5f0e5..3c1bef3053 100644 --- a/xen/include/xsm/hooks.h +++ b/xen/include/xsm/hooks.h @@ -169,6 +169,8 @@ XSM_HOOK(int, argo_register_any_source, const struct do= main *) XSM_HOOK(int, argo_send, const struct domain *, const struct domain *) #endif =20 +XSM_HOOK(int, lookup_sid, const char *, uint32_t, uint32_t *) + #undef XSM_HOOK0 #undef XSM_HOOK1 #undef XSM_HOOK2 diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c index d65ba0aeae..741969c064 100644 --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1949,6 +1949,14 @@ static int cf_check flask_get_domain_state(struct do= main *d) return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__GET_DOMAIN_STATE= ); } =20 +static int flask_lookup_sid(const char *ctx, uint32_t ctx_len, uint32_t *s= id) +{ + if ( !ss_initialized ) + return -EAGAIN; + + return security_context_to_sid(ctx, ctx_len, sid); +} + static const struct xsm_ops __initconst_cf_clobber flask_ops =3D { .set_system_active =3D flask_set_system_active, .security_domaininfo =3D flask_security_domaininfo, --=20 2.43.0