From patchwork Fri Dec 3 10:56:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 12654833 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 12C70C433F5 for ; Fri, 3 Dec 2021 10:57:01 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.237341.411644 (Exim 4.92) (envelope-from ) id 1mt6F5-0007t1-JR; Fri, 03 Dec 2021 10:56:39 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 237341.411644; Fri, 03 Dec 2021 10:56:39 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mt6F5-0007su-G8; Fri, 03 Dec 2021 10:56:39 +0000 Received: by outflank-mailman (input) for mailman id 237341; Fri, 03 Dec 2021 10:56:39 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mt6F4-0007sk-UW for xen-devel@lists.xenproject.org; Fri, 03 Dec 2021 10:56:39 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id b0033287-5427-11ec-976b-d102b41d0961; Fri, 03 Dec 2021 11:56:37 +0100 (CET) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-he1eur02lp2051.outbound.protection.outlook.com [104.47.5.51]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-13-w61jVg3JMDK7ZefYJVqMhw-1; Fri, 03 Dec 2021 11:56:36 +0100 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR0402MB3391.eurprd04.prod.outlook.com (2603:10a6:803:3::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Fri, 3 Dec 2021 10:56:35 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.028; Fri, 3 Dec 2021 10:56:34 +0000 Received: from [10.156.60.236] (37.24.206.209) by AM6P193CA0132.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:85::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.17 via Frontend Transport; Fri, 3 Dec 2021 10:56:33 +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: b0033287-5427-11ec-976b-d102b41d0961 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1638528997; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QD9We1Cx5H7zmR7/ANXcnQ1Rln6q7zD3LKt1U64J4VU=; b=awNekeR3AE3BFT+EhaUWUD/0Iy/eaxKqbkla6/7tlbblbe2MEzbrBiBtWujaD3/8uuxGL8 Lm9fso7KVP5sINjmJml5rROYDWwbLSkDVAdbRR4P5Hvwv9VzNyzWVd8T1dhjAPoqcH91bm H6Y5ux4vIQp75ag7GW5GLslRDgxJBPQ= X-MC-Unique: w61jVg3JMDK7ZefYJVqMhw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Cypgf/yfxOH2eOVbElMvsTcMbRRiENLi2VQLrmaLcdUxYgpjxiHM78q3O838shZfCPo1gEkKkHkNAkIuvtYqM1YLooA8B1x9+mLxzFHLZpCSMPs3IbfyDtnXhwq1zOfy9wIhvSepPJhE5i7NvLKBcPxOavBXH+htj2v5j5m1upPJgT0L24M2Nwqi8PKqF9AkU9fvX37Xfu+s4trfAjw4JB4YcJkxHh2aJgpSRIZeDChh1eKIjfdMDaidwBeCLyvVQ7r90DgFfsdiY4Cso19vgANNPFpXuqewylr/cApQB16lgkxs080Agx14pv2v8GQYPdVC5Es1uldkZUuVGbg/Gg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=QD9We1Cx5H7zmR7/ANXcnQ1Rln6q7zD3LKt1U64J4VU=; b=BOJhsg9LDei6THoSrvTUPkyaWYf04eapTH6s0WyRQyMx3AEFGbFbEhVyoEuUzOJXQ9CQCtYBvrHcDZaoZQjoVxu1R9ZKLVMX+FQcoodb7g0IkGz8xyCPEfoiWfzTaN+YtN1Hhq0ykgj0eQsth3fYXPPXwb7X5gq+Spbjzuz0m2R4okZleGvSQHmVR97aHlylJc1L9tizMw7x0MPdvFLG6Om54FwMmhXNMXOIgX5zfgRx8KwBEAuX8V03IBYIKuvt8ATcTQZnLuSqK6ws0y0QZcfIbSPCYU4wk/oxxFzjkde1KBdZrwJgNTx6/C92U6WYlGKxWAoMzlkkjvbGEDdzjw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <8b369fc8-8f9e-c350-95de-790d47fd9aae@suse.com> Date: Fri, 3 Dec 2021 11:56:32 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 Subject: [PATCH 1/3] EFI: move efi-boot.h inclusion point Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Ian Jackson , Julien Grall , Stefano Stabellini , Wei Liu References: <46de3a57-76d0-1538-ec3b-79290d1bfb70@suse.com> In-Reply-To: <46de3a57-76d0-1538-ec3b-79290d1bfb70@suse.com> X-ClientProxiedBy: AM6P193CA0132.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:85::37) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0e6c7a3d-642a-4a54-f908-08d9b64b9284 X-MS-TrafficTypeDiagnostic: VI1PR0402MB3391: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:949; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6ZIsJhoj2chQ+jrQgpTPKQPD5tod0g7pz9mCDVRBT+rf2Pl57+We61xQpfO8ZXOvlhoxTy8fKbVxNiHXLqZ12iZUZlSYKzox5g1eLSZGW0ZQJidtjBlkL/DwS+yzByv39w4DrdrXBdLhtWgYGAyFZbM5Us/j6xrLb9UZkaxLZFCwSZLxLkgrPc47RsmrAHUXv3OR5kKlZhuZyPoLCpyiim2cpFvg1LbzKcoeYbrOXvZvZGFjIWQsFNsiSQ5uWFb/sBL0T2TojIvH8nSXceBN6Y6904oFV99Y3De0d0K4hq941NVffAWUBcK3MDZDai7URwenjrH+dDPwiwzAwV37Grc5tZo3qGWutEl7z7G59FH7Eq4Yv6uDDrPi3OANjIt0vFEpml+OhwvJ1tGP8C/zIZ8jmDTAqzmhkp1ZLWyfPCVyJD+Ygzn+XV5y3pRwY0rs4BUEK+41RQAm0/fqZkHgZ/WUcV5lIJGOipyfUoL0GNjT11u4ki50jVJefBRaEofBr3qEZO5Loek9wruwxxFldRxdXxPSGgaDEQwjbMjbQNfHyWgR5TXJ0GxpBiXeuc8NRwx8wq9sh7W7yA05tkSfR7bYyBbPr8NYgR3S/WoPpZHXwxZDgOHKqpjrNJXucictf9Rp96sYqOJS5BXx0K2PgQOBdJ83xOzref61nWq9UpPX330ZVB/hMYRgshO0nPNfCXR2qo1p8WqpyPOvIMpxbnnNPBvPPaYwKYsDucmw0JKCEZXZjOmQhjdX6ReJ+wFr X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(4326008)(186003)(2906002)(54906003)(66476007)(5660300002)(66556008)(31696002)(2616005)(16576012)(6486002)(508600001)(66946007)(36756003)(86362001)(8936002)(316002)(26005)(956004)(8676002)(38100700002)(31686004)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?K7Yv/F4D8btCdWdl07dUPtLjqlHe?= =?utf-8?q?9PZZq91PwvKmRAlAFamXqpNbCd/Xb+4l3NH3EAXp70cesfALqRetvpVz0xE3+Tc8a?= =?utf-8?q?cqJ5Vkxl7ZCvmI0uYeyjcyGoF0cD9Q70eo9UMTzwTz8N30wWW+UFI425koZRN0du3?= =?utf-8?q?Wk+4DKeiUj5z7LQAzWaTA8ufNKEypLz98lz//rkZN/b243xuETlis9Nuyh49rpBPq?= =?utf-8?q?xgRWQwpY8WHIdVEf/vPOnom6WBvSnW58lLbuKOkX9l7BnELd1p0EzBgcPW/+JAtlX?= =?utf-8?q?Ne9jseAKePJfXtwe4FdVhuFaENkDqwzslqZNQY+L9r4e0gXsTySQodzINSz9sHTwd?= =?utf-8?q?bTlh6+cX03TeoCgZJ84/oEsgRE0EqGygcPAvQf4h0uWMVSIWb+0mlu24S/fZWJaHD?= =?utf-8?q?X/vmTCuJe0l4IofkrR9LbFSj4wl+JKqZQxwCPIKJTrn5vS0K9qdAideDqgjZ3wKJo?= =?utf-8?q?sVdZ3UMapUqE9nUXpyM99AahgysLFbRy52c7X68EJeHZu8NruyHds3SQzAksOFE6I?= =?utf-8?q?RAf8sZwPmRUGmrZ6Pw/dY+Cf0WJrQENm3ysd5uNFavMuFLSg1PwMA/cpiCEFWt6Qv?= =?utf-8?q?W+x/ZS3J5+qQVRf1ZzVkFaosrYeS5ThYKaMbNlcjSnsFYDhRdey7xA7ofCoNNtynh?= =?utf-8?q?e+zbUFPVg7YY27tN6N/vZ2ds09I1H+8JK89tAadHnKmbxf22iHJfDvXOgp3+3NJdZ?= =?utf-8?q?uosqmHO03lRlEcGngy49SaHezz1fTRpfb4okvaVNEn5d1JUHb44Xa+alLaW2A7h9A?= =?utf-8?q?N2QjZL/kg22DP0jW+vwuzGDNm9N2nIKAibfDy3CnvIuFvZSEJCgB2duf35s6A9j6Z?= =?utf-8?q?RzmTmbWCETHQlTJW8pvIFZ0Pj9/XvfE4nI06SZx8Pp3T6lxNBYBurqVtT7tTVRq6H?= =?utf-8?q?hGg11GuFbnUFgSheHOL6TQbV+8dk4FIE3yj5IcTkOJUkbJI0WZSD1/9VFTGHDLkh7?= =?utf-8?q?YIgFmY2jsAql3G5b1dXDpUffnmUvIWEy3TlpJaYm8hDWalgLvHyiA7C1R0PN33LlP?= =?utf-8?q?AJdI6CjD3F5qfHqlQTf07pvVfWCwviB6We1SD9w2XglYzpYY+Bq9mqVD68ehZ127q?= =?utf-8?q?Q2LKfQPYKjfQBJpYQMFS9zHB4r3hTxeaDjnphCzkvlihg6eFAp6pueaaqpupda+By?= =?utf-8?q?5kgjFQY+loQGY5T1vj1eZBWaqSkYpmpAU/r/mu+vJNIj3VBz0oURtFwc9MnlR+qRF?= =?utf-8?q?lTpW19GCgssPqDg03jIoclGLVfJ0PPLJ8I6EFNKTJhlbzUf601sAHlW3QQhFhfjGy?= =?utf-8?q?aX6AzpuLPTPeyNpNtc6hjy4QKujKjzBysv60r3vsMspLQsqAZ4dSH59gNrV+iz83m?= =?utf-8?q?Hfroz9zkMH0TGhA6WOoV9UV856Cltwi0FU2TDl3hliWhRI1zxMPiLD2Phc1fzzDK5?= =?utf-8?q?Ao99rmjnEcfgT62nf1cehGVvRYl4AryDa3tCrL0VnkUgSFBkwd814HMTSgUqTpgY6?= =?utf-8?q?oUUIN+w4kXmvqiPG1FKyxSv6dVtn+XSHq3ZslDpIKmywzKQMWa5AM5wZrquongQYo?= =?utf-8?q?L346JFQcrBgt5t80LHc1VvLK107nkXNRvI00+Li4WpVAhZa0gkH2hbU=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0e6c7a3d-642a-4a54-f908-08d9b64b9284 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2021 10:56:34.8135 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 5UneFSaI4BqUH1QBy9++ApcIU1pxPAQ7JfZ48vU7fZPBpZSF+6un+UgSQvrypJ2WBPM18FrvGR/MBvAQP72VOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3391 When it was introduced, it was imo placed way too high up, making it necessary to forward-declare way too many static functions. Move it down together with - the efi_check_dt_boot() stub, which afaict was deliberately placed immediately ahead of the #include, - blexit(), because of its use of the efi_arch_blexit() hook. Move up get_value() and set_color() to before the inclusion so their forward declarations can also be zapped. Signed-off-by: Jan Beulich Acked-by: Andrew Cooper Reviewed-by: Luca Fancellu --- a/xen/common/efi/boot.c +++ b/xen/common/efi/boot.c @@ -111,25 +111,10 @@ struct file { }; }; -static CHAR16 *FormatDec(UINT64 Val, CHAR16 *Buffer); -static CHAR16 *FormatHex(UINT64 Val, UINTN Width, CHAR16 *Buffer); -static void DisplayUint(UINT64 Val, INTN Width); -static CHAR16 *wstrcpy(CHAR16 *d, const CHAR16 *s); -static void PrintErrMesg(const CHAR16 *mesg, EFI_STATUS ErrCode); -static char *get_value(const struct file *cfg, const char *section, - const char *item); -static char *split_string(char *s); -static CHAR16 *s2w(union string *str); -static char *w2s(const union string *str); -static EFI_FILE_HANDLE get_parent_handle(EFI_LOADED_IMAGE *loaded_image, - CHAR16 **leaf); static bool read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name, struct file *file, const char *options); static bool read_section(const EFI_LOADED_IMAGE *image, const CHAR16 *name, struct file *file, const char *options); -static size_t wstrlen(const CHAR16 * s); -static int set_color(u32 mask, int bpp, u8 *pos, u8 *sz); -static bool match_guid(const EFI_GUID *guid1, const EFI_GUID *guid2); static void efi_init(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable); static void efi_console_set_mode(void); @@ -168,19 +153,6 @@ static void __init PrintErr(const CHAR16 StdErr->OutputString(StdErr, (CHAR16 *)s ); } -#ifndef CONFIG_HAS_DEVICE_TREE -static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image) -{ - return 0; -} -#endif - -/* - * Include architecture specific implementation here, which references the - * static globals defined above. - */ -#include "efi-boot.h" - static CHAR16 *__init FormatDec(UINT64 Val, CHAR16 *Buffer) { if ( Val >= 10 ) @@ -291,30 +263,6 @@ static bool __init match_guid(const EFI_ !memcmp(guid1->Data4, guid2->Data4, sizeof(guid1->Data4)); } -void __init noreturn blexit(const CHAR16 *str) -{ - if ( str ) - PrintStr(str); - PrintStr(newline); - - if ( !efi_bs ) - efi_arch_halt(); - - if ( cfg.need_to_free ) - efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size)); - if ( kernel.need_to_free ) - efi_bs->FreePages(kernel.addr, PFN_UP(kernel.size)); - if ( ramdisk.need_to_free ) - efi_bs->FreePages(ramdisk.addr, PFN_UP(ramdisk.size)); - if ( xsm.need_to_free ) - efi_bs->FreePages(xsm.addr, PFN_UP(xsm.size)); - - efi_arch_blexit(); - - efi_bs->Exit(efi_ih, EFI_SUCCESS, 0, NULL); - unreachable(); /* not reached */ -} - /* generic routine for printing error messages */ static void __init PrintErrMesg(const CHAR16 *mesg, EFI_STATUS ErrCode) { @@ -542,6 +490,7 @@ static CHAR16 *__init point_tail(CHAR16 break; } } + /* * Truncate string at first space, and return pointer * to remainder of string, if any/ NULL returned if @@ -559,6 +508,95 @@ static char * __init split_string(char * return NULL; } +static char *__init get_value(const struct file *cfg, const char *section, + const char *item) +{ + char *ptr = cfg->str, *end = ptr + cfg->size; + size_t slen = section ? strlen(section) : 0, ilen = strlen(item); + bool match = !slen; + + for ( ; ptr < end; ++ptr ) + { + switch ( *ptr ) + { + case 0: + continue; + case '[': + if ( !slen ) + break; + if ( match ) + return NULL; + match = strncmp(++ptr, section, slen) == 0 && ptr[slen] == ']'; + break; + default: + if ( match && strncmp(ptr, item, ilen) == 0 && ptr[ilen] == '=' ) + { + ptr += ilen + 1; + /* strip off any leading spaces */ + while ( *ptr && isspace(*ptr) ) + ptr++; + return ptr; + } + break; + } + ptr += strlen(ptr); + } + return NULL; +} + +static int __init __maybe_unused set_color(uint32_t mask, int bpp, + uint8_t *pos, uint8_t *sz) +{ + if ( bpp < 0 ) + return bpp; + if ( !mask ) + return -EINVAL; + for ( *pos = 0; !(mask & 1); ++*pos ) + mask >>= 1; + for ( *sz = 0; mask & 1; ++*sz) + mask >>= 1; + if ( mask ) + return -EINVAL; + return max(*pos + *sz, bpp); +} + +#ifndef CONFIG_HAS_DEVICE_TREE +static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image) +{ + return 0; +} +#endif + +/* + * Include architecture specific implementation here, which references the + * static globals defined above. + */ +#include "efi-boot.h" + +void __init noreturn blexit(const CHAR16 *str) +{ + if ( str ) + PrintStr(str); + PrintStr(newline); + + if ( !efi_bs ) + efi_arch_halt(); + + if ( cfg.need_to_free ) + efi_bs->FreePages(cfg.addr, PFN_UP(cfg.size)); + if ( kernel.need_to_free ) + efi_bs->FreePages(kernel.addr, PFN_UP(kernel.size)); + if ( ramdisk.need_to_free ) + efi_bs->FreePages(ramdisk.addr, PFN_UP(ramdisk.size)); + if ( xsm.need_to_free ) + efi_bs->FreePages(xsm.addr, PFN_UP(xsm.size)); + + efi_arch_blexit(); + + efi_bs->Exit(efi_ih, EFI_SUCCESS, 0, NULL); + unreachable(); /* not reached */ +} + static void __init handle_file_info(const CHAR16 *name, const struct file *file, const char *options) { @@ -685,42 +723,6 @@ static void __init pre_parse(const struc " last line will be ignored.\r\n"); } -static char *__init get_value(const struct file *cfg, const char *section, - const char *item) -{ - char *ptr = cfg->str, *end = ptr + cfg->size; - size_t slen = section ? strlen(section) : 0, ilen = strlen(item); - bool match = !slen; - - for ( ; ptr < end; ++ptr ) - { - switch ( *ptr ) - { - case 0: - continue; - case '[': - if ( !slen ) - break; - if ( match ) - return NULL; - match = strncmp(++ptr, section, slen) == 0 && ptr[slen] == ']'; - break; - default: - if ( match && strncmp(ptr, item, ilen) == 0 && ptr[ilen] == '=' ) - { - ptr += ilen + 1; - /* strip off any leading spaces */ - while ( *ptr && isspace(*ptr) ) - ptr++; - return ptr; - } - break; - } - ptr += strlen(ptr); - } - return NULL; -} - static void __init efi_init(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable) { efi_ih = ImageHandle; @@ -1114,21 +1116,6 @@ static void __init efi_exit_boot(EFI_HAN efi_fw_vendor = (void *)efi_fw_vendor + DIRECTMAP_VIRT_START; } -static int __init __maybe_unused set_color(u32 mask, int bpp, u8 *pos, u8 *sz) -{ - if ( bpp < 0 ) - return bpp; - if ( !mask ) - return -EINVAL; - for ( *pos = 0; !(mask & 1); ++*pos ) - mask >>= 1; - for ( *sz = 0; mask & 1; ++*sz) - mask >>= 1; - if ( mask ) - return -EINVAL; - return max(*pos + *sz, bpp); -} - void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable) { From patchwork Fri Dec 3 10:57:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 12654835 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 73BDDC433F5 for ; Fri, 3 Dec 2021 10:57:50 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.237348.411654 (Exim 4.92) (envelope-from ) id 1mt6G4-0000Iv-0m; Fri, 03 Dec 2021 10:57:40 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 237348.411654; Fri, 03 Dec 2021 10:57:39 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mt6G3-0000Io-U8; Fri, 03 Dec 2021 10:57:39 +0000 Received: by outflank-mailman (input) for mailman id 237348; Fri, 03 Dec 2021 10:57:39 +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 1mt6G3-0007qi-2R for xen-devel@lists.xenproject.org; Fri, 03 Dec 2021 10:57:39 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id d426d624-5427-11ec-b1df-f38ee3fbfdf7; Fri, 03 Dec 2021 11:57:38 +0100 (CET) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04lp2053.outbound.protection.outlook.com [104.47.13.53]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-12-6c8DX1yBOnSyOEKqLJyx5g-1; Fri, 03 Dec 2021 11:57:37 +0100 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR0402MB3391.eurprd04.prod.outlook.com (2603:10a6:803:3::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Fri, 3 Dec 2021 10:57:35 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.028; Fri, 3 Dec 2021 10:57:35 +0000 Received: from [10.156.60.236] (37.24.206.209) by AM6P194CA0036.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:90::49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16 via Frontend Transport; Fri, 3 Dec 2021 10:57:34 +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: d426d624-5427-11ec-b1df-f38ee3fbfdf7 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1638529058; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fdGuHEod0PjyKKkct1qPtti9jY5e6u+ZzA9caApkWi8=; b=Z7G5Q5JsfHV/zMl8MDGFEW+Ecxz6N9zg5h/oZafMyMMCpabZ1HGNhc9FjPu4rlxmDJETeE kC7B+OmiKNrvhJr7g9OUSwlEDyjAVBLpwN121/hb6FpECcXh8AAtsFiBs0RIPPBPCZ07JI OHa5x2cg52fCqbpktNZ4QIMMU4Fmi74= X-MC-Unique: 6c8DX1yBOnSyOEKqLJyx5g-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Faz+QAnarOJ23z3QiRZ0Ukp2/WXg2JosfCFtbTds/j4RFBoux53KnycfiUoO0KJgZRR3eB7uACJKmqPE7PmZ05THwWIwACmyLOdhFAfoZQnm/Vwsv7HEEVoi28Ugz4uR2nwYL7IOkxRT9y6If8ksPokf/bPvQp1A40vPy26BWOatgIqatVtdpFOFN/E8C9RtgdjCiz6Bs4+YPinRfrCS6l9fJ9rusPrzWsIW3w1PcQT8T6BGlKj/lDRNB4J26q2kEC76WXW7zm9/SIRxPw56v1KLXJDn/p7nj0CCrixZTKBf3KqDUwquSICr4wA3YhPA9Zj+UEbmMYEvTGvBrd/Wxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=fdGuHEod0PjyKKkct1qPtti9jY5e6u+ZzA9caApkWi8=; b=QT8a0ONwjD4LQY9PLihw+c1qdZNpKF3agrxWhql/n1dCX7zuStk2Vf0cojAsYS1JJL4f4Qw0gFrj+gfJITD5W/tbqxDqR/xPIXiXl32e61oX5T4ABpmis8TC1tulIHb5R42VVQFxSsdObzkh9m9FlyDbngmK7Dl1DdPUglo6v2t9Que9/r8L5u6HkJmqD2mQmhTpX0eSGqvIvp/woGhOasUR+KsJM3zaci5/efybKU84rkrwtdAPVKTQefKCrpNzjHBnp4elpJ5cmwXW47cmWqZc78d1d0uDKyA1QIJvvSzV/LfqT8e8+vkZheA8YaLR0yZu+1E2isoEilijYTWRAw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Fri, 3 Dec 2021 11:57:33 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 Subject: [PATCH 2/3] EFI: constify EFI_LOADED_IMAGE * function parameters Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Ian Jackson , Julien Grall , Stefano Stabellini , Wei Liu References: <46de3a57-76d0-1538-ec3b-79290d1bfb70@suse.com> In-Reply-To: <46de3a57-76d0-1538-ec3b-79290d1bfb70@suse.com> X-ClientProxiedBy: AM6P194CA0036.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:90::49) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 17e26e88-f964-4342-5fae-08d9b64bb6ab X-MS-TrafficTypeDiagnostic: VI1PR0402MB3391: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OXkmzpEvH/38LjDuUPlQH6oqk02ybulncz2RhBHrMr3aJoHMjiZ167gid06vg9BThol6i5xWJKqStbUoC48kf8s3RfthZNsBHQpkf3XvuSqq4fXqrqk5Gx654lcxr9fS6UkDp7t8TzvJg8RlYetyiHtppgj0UFkH8XnGSZQpwPnwFQxsJ4T9KcIApvxSiyzqJuFvVSdnNk9VU8rHnLSQg8btSXexluqx747cRolI5Gy6CNsEe0hGhoLV9fWcKerQY10pL6oaPkwnzTmfnTcUCyNC69DO1JCb8KXDUoe2oCBbzMvBDbwE1n/9NjNT1RRIN6JEqsRvsV4+wUOB/OSCUgFWx9HoF47cWqUEthQovU6L0wB5s/MMwROKoPbWXLWe+do6kDtlMVs4+KzKCJLZLUbEATTXb+RX7/ga+de/jsGuKJIUYdq8hffKFzbLdGA2duBEtIPRPrUVzLuXgPeLTsfSBvebEjW8bFrMzzqNPwa3OIFtZWmiTpyDVtInREaGubo0kR8dOMOSorI+aDnd/hNg3Uy10moeb6XaC5pBFWZvG3FOT3KQgFV9L8RB9Gj4JyC7J0yxqi2nYz5VkxtJfvR0uZGHKKH4hXCpkvG1Sac6hcVCVIV4tcuY4wQne6o921G8W+FTG+4QGvDzJOG4rZqQtWaMYnAGOxqDkS5YHtWdiVgbOsEhKJQWTRx+qkm13gdtHfO/Ry4AcDquTGBLHn9C3LxTgu4G16MoLkEgwJxHzTV8Jw+j8CrGVSsJ3F8o X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(4326008)(186003)(2906002)(54906003)(66476007)(5660300002)(66556008)(31696002)(2616005)(16576012)(6486002)(508600001)(66946007)(36756003)(86362001)(8936002)(316002)(26005)(956004)(8676002)(38100700002)(31686004)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?fTouyR6bDirBT3yEOkTLh9iNU2uA?= =?utf-8?q?/0+7kXjnWEP865RuPGhp1cw+dpuxXKbW2ocx2haYf7MGZwPGuBx0yNn1Ds+l03vNb?= =?utf-8?q?RLrfZzNEjp2OiIMykmMq4apX0KEjE1ljMrzlZ3DAKFIGWw7UR3v2pizPCXFgA+7Mz?= =?utf-8?q?6muB3cmJGmDPXRo91cJbiRXqekPu/JzVbrUWh4tWQI98EewloEfK+7CJ0GcCwXJpi?= =?utf-8?q?jmfogMNJ1E6ZapV/UU/BzzczhzJDHe+ZpddzjdaBlbO9cHnH3008fV1tSUtZIiIKn?= =?utf-8?q?yZfrr9j1EVjRDKQQqY7IuQGfCTHNi1BbWELJGl9O/FB7zhRJkpt3TcFBxf4tC7ugW?= =?utf-8?q?BnTov3dfFThn29RKqxsiX3PwGAn99wY4AmfntoftG6bf51YBADHNXXwbF83U/9trl?= =?utf-8?q?J1L6CbRlB9hNQ1aL5xkml0i3Az4clSgGXL2ESJlmVhsdqkxRujX99wQgjmotqFUZB?= =?utf-8?q?xh2C4sO7+7bMnsewphzoJ7wnQOjf/ExCGGQB4xksJezlesDUuJGMj65rePvctZYDh?= =?utf-8?q?ZcyjG4vgylCBdGwK0laZFGVgMmsmPKZw6TOma6/qwxRnw42ZW8YgCH0oCePoL1ErO?= =?utf-8?q?kynkH3CH2sgpGMVoftW5x+GamiRfADMAoJ2+suVC9XxK/cifPrawhxf7xocMjCeje?= =?utf-8?q?Dw0fqT8eEHpjqXigQEEyCXJ4MnktZC/AkeITE9WPnXzTQALyi/JHnaRFkuYHJUIko?= =?utf-8?q?J0BgaUxGMtE7l/aJVZ8OdLeY1UR6+kZMMkoU5PxivVCPN3235KPh3WXijkP3qlkUR?= =?utf-8?q?5O+XT2IjH4LnbeHULCtkfGk2hQsWr2dOatjeHr1IfmfCcOp5N1BkPxP5SFTmygZjO?= =?utf-8?q?o2PtECeU6UzVyv6lGIWJPTliWlBPZFDqjOuWNZYANn7HTPNXaVkp07+HSbBg/4j9l?= =?utf-8?q?oL0kLKNv647Yt/QIo1ToHcpL/vc3sIwsSo4xYW8etwcmzBAtXzgojJH6Aj9rCdjFY?= =?utf-8?q?TePr62W6VmW7WD9NvKcHbrVWsUHAub8sArwiZnQjxXrFJ7CTuHq7/YnS03JdbncSz?= =?utf-8?q?fn/KdpBYy9B3TN3yD237s+UEwaC4N8epGpwNEv9UiDHatMsZ9r54unWCO4jLyiFuZ?= =?utf-8?q?6H6LvA6bV2sWDcfkIhdC1utFuIp35td7y1t2Cukp5mF1FBRonOApD81YL2ZMGM628?= =?utf-8?q?eUzhfYttKApU47MtNGAWhZDUkhN8uDs8OYflGmOlBWZR+mW0q5rh3A7GsLyVskm8M?= =?utf-8?q?Ozw+tYaxRE3Vtw1wxvv4T/kYwI/Ivk3t4VNg6bDMHfK1rqyGcux35aXG52/HMWGQw?= =?utf-8?q?mtgPMf1+iivagJb/TcTUU89YbEKRcsAtah51SLLIe5Y8ue+vhDscUkFz72FaBCUG8?= =?utf-8?q?m66EQrAdeqTDe5gXjSDHoku5qeykSWj/rz4KL430XVxCcm2fNNZAKynm+Tw/lddSI?= =?utf-8?q?1r/nXJWjq8wp9xMciba69toOujvOvJ32/N0yxYyW3ZiQBYerviJ/O8Tu0/8frUPvv?= =?utf-8?q?bz2YS4poEKAEXaKCXT9WwAZEIz3ejgDG2m8Lmxe38ZzUW5TrDXNklG/YE/IxpwS/l?= =?utf-8?q?X8To5tez2hHeB9cY0e+3qKSb9qd/EU++S6VoTw5qxq2Fox21JrfGRn4=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 17e26e88-f964-4342-5fae-08d9b64bb6ab X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2021 10:57:35.4412 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: WXBHDNu5nYwmIaNTo+1bKc5jXuRa4r0ZoKyyH04vfubo3CPb+vKKko1PqnmhDExA230rQzmTpYrHUdrJkg4oiA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3391 Instead of altering Arm's forward declarations, drop them. Like elsewhere we should limit such to cases where the first use lives ahead of the definition. Signed-off-by: Jan Beulich Reviewed-by: Luca Fancellu Acked-by: Julien Grall --- a/xen/arch/arm/efi/efi-boot.h +++ b/xen/arch/arm/efi/efi-boot.h @@ -44,20 +44,6 @@ void __flush_dcache_area(const void *vad static int get_module_file_index(const char *name, unsigned int name_len); static void PrintMessage(const CHAR16 *s); -static int allocate_module_file(EFI_LOADED_IMAGE *loaded_image, - EFI_FILE_HANDLE *dir_handle, - const char *name, - unsigned int name_len); -static int handle_module_node(EFI_LOADED_IMAGE *loaded_image, - EFI_FILE_HANDLE *dir_handle, - int module_node_offset, - int reg_addr_cells, - int reg_size_cells, - bool is_domu_module); -static int handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image, - EFI_FILE_HANDLE *dir_handle, - int domain_node); -static int efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image); #define DEVICE_TREE_GUID \ {0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0}} @@ -650,7 +636,7 @@ static void __init PrintMessage(const CH * This function allocates a binary and keeps track of its name, it returns the * index of the file in the modules array or a negative number on error. */ -static int __init allocate_module_file(EFI_LOADED_IMAGE *loaded_image, +static int __init allocate_module_file(const EFI_LOADED_IMAGE *loaded_image, EFI_FILE_HANDLE *dir_handle, const char *name, unsigned int name_len) @@ -713,7 +699,7 @@ static int __init allocate_module_file(E * for the reg property into the module DT node. * Returns 1 if module is multiboot,module, 0 if not, < 0 on error */ -static int __init handle_module_node(EFI_LOADED_IMAGE *loaded_image, +static int __init handle_module_node(const EFI_LOADED_IMAGE *loaded_image, EFI_FILE_HANDLE *dir_handle, int module_node_offset, int reg_addr_cells, @@ -814,7 +800,7 @@ static int __init handle_module_node(EFI * in the DT. * Returns number of multiboot,module found or negative number on error. */ -static int __init handle_dom0less_domain_node(EFI_LOADED_IMAGE *loaded_image, +static int __init handle_dom0less_domain_node(const EFI_LOADED_IMAGE *loaded_image, EFI_FILE_HANDLE *dir_handle, int domain_node) { @@ -862,7 +848,7 @@ static int __init handle_dom0less_domain * dom0 and domU guests to be loaded. * Returns the number of multiboot modules found or a negative number for error. */ -static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image) +static int __init efi_check_dt_boot(const EFI_LOADED_IMAGE *loaded_image) { int chosen, node, addr_len, size_len; unsigned int i = 0, modules_found = 0; @@ -942,7 +928,7 @@ static void __init efi_arch_halt(void) stop_cpu(); } -static void __init efi_arch_load_addr_check(EFI_LOADED_IMAGE *loaded_image) +static void __init efi_arch_load_addr_check(const EFI_LOADED_IMAGE *loaded_image) { if ( (unsigned long)loaded_image->ImageBase & ((1 << 12) - 1) ) blexit(L"Xen must be loaded at a 4 KByte boundary."); --- a/xen/arch/x86/efi/efi-boot.h +++ b/xen/arch/x86/efi/efi-boot.h @@ -709,7 +709,7 @@ static void __init efi_arch_halt(void) halt(); } -static void __init efi_arch_load_addr_check(EFI_LOADED_IMAGE *loaded_image) +static void __init efi_arch_load_addr_check(const EFI_LOADED_IMAGE *loaded_image) { xen_phys_start = (UINTN)loaded_image->ImageBase; if ( (xen_phys_start + loaded_image->ImageSize - 1) >> 32 ) --- a/xen/common/efi/boot.c +++ b/xen/common/efi/boot.c @@ -389,7 +389,7 @@ static unsigned int __init get_argv(unsi return argc; } -static EFI_FILE_HANDLE __init get_parent_handle(EFI_LOADED_IMAGE *loaded_image, +static EFI_FILE_HANDLE __init get_parent_handle(const EFI_LOADED_IMAGE *loaded_image, CHAR16 **leaf) { static EFI_GUID __initdata fs_protocol = SIMPLE_FILE_SYSTEM_PROTOCOL; @@ -561,7 +561,7 @@ static int __init __maybe_unused set_col } #ifndef CONFIG_HAS_DEVICE_TREE -static int __init efi_check_dt_boot(EFI_LOADED_IMAGE *loaded_image) +static int __init efi_check_dt_boot(const EFI_LOADED_IMAGE *loaded_image) { return 0; } From patchwork Fri Dec 3 10:58:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 12654837 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 EB60AC433F5 for ; Fri, 3 Dec 2021 10:58:38 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.237352.411666 (Exim 4.92) (envelope-from ) id 1mt6Gn-0000ts-Ab; Fri, 03 Dec 2021 10:58:25 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 237352.411666; Fri, 03 Dec 2021 10:58:25 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mt6Gn-0000tl-7W; Fri, 03 Dec 2021 10:58:25 +0000 Received: by outflank-mailman (input) for mailman id 237352; Fri, 03 Dec 2021 10:58:24 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mt6Gm-0000nF-2H for xen-devel@lists.xenproject.org; Fri, 03 Dec 2021 10:58:24 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id eede6215-5427-11ec-976b-d102b41d0961; Fri, 03 Dec 2021 11:58:23 +0100 (CET) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04lp2057.outbound.protection.outlook.com [104.47.13.57]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-7-N0ogYuKWOOScXHG18jhiKw-1; Fri, 03 Dec 2021 11:58:21 +0100 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR0402MB3391.eurprd04.prod.outlook.com (2603:10a6:803:3::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Fri, 3 Dec 2021 10:58:20 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::5951:a489:1cf0:19fe%5]) with mapi id 15.20.4734.028; Fri, 3 Dec 2021 10:58:20 +0000 Received: from [10.156.60.236] (37.24.206.209) by AM6P194CA0033.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:90::46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.17 via Frontend Transport; Fri, 3 Dec 2021 10:58:19 +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: eede6215-5427-11ec-976b-d102b41d0961 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1638529102; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lyHpDq+f1Yn1Y+Nw40SlcTxVr78qVUTB+hT/e8DkD7A=; b=R81Az5JckaS5zU8uTGusKqQ2f1inQJvajCIT2ioQ6Bc061zEPHzAU2aZedR8difqr04KkC qpYCQc4E43AfKyf8GbfFB3A8lokx1FsI0u2PaAwqYE7u/+yoJcseRDZFMnHpkEHg9eszAG kJ1kI8/Qs3wnTeyjUPFQDB2H6XgvjTM= X-MC-Unique: N0ogYuKWOOScXHG18jhiKw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z4cMBeRZRMNoZ/Nip+eSIwLTXwb/K69kihURpo+cxoh/+tpeOdcOPSouardHbSIvYbOuTkkiCmwRUGNwpP+K1XgUPghP8175/RPXnjlDkI8PQnTurYFw3NG/QNPgOLJHcGdBbCy8fJsS5fSQpYLmJjpmh0b8dcfQWIF4gHOPfrPJGCT0SKZHSyes4/Wq+AcQGm5sH/Ls/JmznqtXXfza1+rvbl33ndVluGTOK8fCZXRRTseUdTbaEFOfAzJpNMg+iqR0DpZuKOB77q5cMnx84hqIeMVT6KlyRaNkowCZB8GuuowZgjkhBEz84rAEEuU2P6KzHDflD1IEEfXeufRpyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=lyHpDq+f1Yn1Y+Nw40SlcTxVr78qVUTB+hT/e8DkD7A=; b=WqG6OZAd/jLKfirDmd/v21p9vssEy+5msy/81qCn7XJuxPVThdlTViMWs3SVwEiSuFrKqQnMlpeEoazB1H7RlkwqSJqlVJX8MS9QDIVPUVnCuR8CtawpVerbmsQ+itRkPc4U9O0ZhjIwOSLF6yMeIvXxxSZoR9ub+8YMl3m9CYqDoWeDIXMTl/TTqn8gncwLxlrJJ//xzJEhM3xwtsp5rLsJ4OBzThTNnuc7BbWo4Y7aAup18xnoEgZxlTwTpEf8NOCrJwCKsWm2mUPsrfn/kaksj+oH7v83COXP8eK/xaWYzXhgAdynIVyKjK2lm2rI7NOcVT7+i7s7/9HXU6R44Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: Date: Fri, 3 Dec 2021 11:58:18 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 Subject: [PATCH 3/3] EFI: drop copy-in from QueryVariableInfo()'s OUT-only variable bouncing Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Ian Jackson , Julien Grall , Stefano Stabellini , Wei Liu , =?utf-8?q?Roger_Pau_Monn=C3=A9?= References: <46de3a57-76d0-1538-ec3b-79290d1bfb70@suse.com> In-Reply-To: <46de3a57-76d0-1538-ec3b-79290d1bfb70@suse.com> X-ClientProxiedBy: AM6P194CA0033.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:90::46) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f987c2f7-a0a0-4f3a-5914-08d9b64bd180 X-MS-TrafficTypeDiagnostic: VI1PR0402MB3391: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4U2wHwhL+ZtWppXaUosfUeeoLsrCidE862UBvFYyEmRikUh6808eDT6sKRtRokZUfw5y/D3XZMrEAU6Rz+V0teLnwMD8acoVR+HwP8bm/NBYeMwF8aOAah/FVQexziPz/Vp5jEV+L1KMCLE3QQbTAct3dp9fxksSWIZiJx1YlcnzWniH6V7FTae9h/zIZ0VJLW7vC+eruRU0+/uXqM167GXbj+6UecqvVi14HK7ATM8VUtdj2l2gVQvhOBngPfPdMFh7UExOlmM+drUUibu1VAEJTw5BWUMNQnIt90Q9bkr79xKybeQsG0/eZTawqswY7GSFrvWc2tE7lmJj35I9Q7xQViRRg8GULleED3dJFyVbqZAZrcw7j1+rydDkteT4gVwSjN+t07Ydzpq29Ucv6mYWepwfQ2cIA3tViNtNPUWLmBy87pv54Rv9mP94j4/UM8uyV2CD60SlSKhSDhpTBZ0Nn2iXvvrW3yza+cXSgSRCeUkJaFoiGNWtZNRs23Pehp6/8xq9mNdDH/52J18FCG2d1i17tFVp3CVTGPVTV3Yi2h1KFNCbpWIpaD+SxKY/WuoqZGOQjMVKuWOy74SCUy3Eu/8cY2JS1tyqW4WK2oF4YfBUJL9akEmxm9BYMFkAdq4qTCb92CDByPTnby0o6iQNFsrq7UGde9R7QIFukaD5aJ7/8sg7i1zV+8s5O9gsXpjjXaRKemONrAA+DgGmwljko+FBt8Crun2H8Llw6Hc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6916009)(4326008)(186003)(2906002)(54906003)(66476007)(5660300002)(66556008)(31696002)(2616005)(16576012)(6486002)(508600001)(66946007)(36756003)(86362001)(8936002)(316002)(26005)(956004)(8676002)(38100700002)(31686004)(83380400001)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?V8fx3GOOxIf89mL9Om0GT6Gw7PbH?= =?utf-8?q?DoeFUZB34vPUjfTAcJSOrROSQ1Lq2OM2WrJ+pyY/2xv1bQeMuFmHIl/UtFKW5y75b?= =?utf-8?q?tjwWLISgfb4bUVkGb083bhWI4AYD3uNMDQLFZ9HdEe1eg4sgvUqIqF+WC8zUwFmrx?= =?utf-8?q?5sa0wtAWK5C1tngiuiTjtIDbGjFIF/AMxfHMFFUT+vbFVf4CnRmiJCsLWmtux+16y?= =?utf-8?q?asqHS3yh5nt5BCxkaBikRsFpH/u8lqHw6J5YLz8ZemBcSclbREEJPxDamJ/N/M651?= =?utf-8?q?zjTpO8f+ZZHylpX9WgjSeiylsvzbaomP7I5NZ0dF8T9KLlz/Q+tS864IFYJWv7AOn?= =?utf-8?q?Sn/C7eRUcnuAZM+DLM3TukQ+KeweSPTpOJmQTRAJwah0/UrJandll7Y2Jbz3QllFU?= =?utf-8?q?O/jB0hwRQgJTE7JLA0ZnMwPA9KAcJtnogd1sT4PmWnIhYXAzz3zL7HnkCG+ZrHobS?= =?utf-8?q?UZpRP0+IQ4+0k3HTcWtI6Od9ZwNElN54Z0vh21BU7HPLRvzAwFiN1X+MwdeUART/y?= =?utf-8?q?9daUJ+TRZfB2DGhXdEpR+cVfB9nEY8oVrI3ci0hpUaJwxzHU4IOKmGbK/THeRYKMt?= =?utf-8?q?sySCvfXRZ/77IRVpme/MhJo5WWEorGplToNp9Qgc3WNAHJsC+BNW+bdc1gwfQ7TPm?= =?utf-8?q?8SJfmE+eT5Ge6M2bxYAlBhf+a21/NpVtdsIql/JUT9+FOAnnh0R9fEUr7IlI36SWn?= =?utf-8?q?G8GLl4Zy9X2qgudLgsTm3e9ZRTseWfjkX9F/9X50Vwzyo6FYZ0gWImJ7WO2xBlp16?= =?utf-8?q?EeHKNsx4KF9mvA3CpWL5lBRm2zpa8VT8SexCZ8XdeIZhKjwpk0z2Cw5u1bL1HnQel?= =?utf-8?q?JGTltzln69akVHbp79PgW0sqr0Iog6DxZKClAyzM0f+vVD2gdNRSKmBGIKUnARRkY?= =?utf-8?q?7OOLrGgCMPkyghXUNzZX4eXuRjNTj0Yox5mdOx+u8qblQd8SWpZuOn+ug2GKsXu2g?= =?utf-8?q?Exo4zCjlyAoIwBeBh6xSqR81PgM40hC1TRMD4B8mPCz+ovhDn823ik6xUFrhKwRkY?= =?utf-8?q?GXYf7J4ApAnXG+R4xd4u58mR76lJ+53f3vKVlNr4Pyfp0+VV0Ebk9jzrLJe4EiBd9?= =?utf-8?q?X06yfyyUcvuOQ0akdgaBl2eDNbggyAKQG0Bh+BrvyMCD8r7F/nAe5KjbseWHsksjh?= =?utf-8?q?XKCpV0TSuvXCHdt5K6x+rLsjkwHw7GprJD4oIU1r73T8lPZUAGGhRd1i6FkUvmN4t?= =?utf-8?q?fzDGRrc/05XZsxAivfyXtTtYECm2Hiwap8lqzkLB/04Nm7qAhIoTuEuUHpojQom2M?= =?utf-8?q?4XUSo/siXBY80vuQH1ceJap1S8g633aT2orakh7ifetaaeD7esPkvif0Up1MR2xI9?= =?utf-8?q?xJRCh7wY3b8qxZad4sKllXNJd5TchCQkPh0JH/BdgaYgfHSu5oQ0QzmABecLJrEJg?= =?utf-8?q?GXYyjOEmfh8n5AChuk4zC2XVpo8Eo7JnHWnt/VLjOHQKJvmO1ZOJEVe06AETda8jq?= =?utf-8?q?6p2joHfzUZucBPsE0z5w4mtvucBd35RP9DdTzwIFaoLUzzd5cLuA1YTv6X+bg4Kkn?= =?utf-8?q?t7xA1hiAPN2k3a4qvfSZz0bDoprFQgGDhle8/M2ueqxh2sPZCpxLrcc=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: f987c2f7-a0a0-4f3a-5914-08d9b64bd180 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2021 10:58:20.4886 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: B8A1AYkIZEJtRPlwzGhfNzju25hkPMVVSF5+JHf5mZbeWZvjR6/g5DBt8EojKcH93xHMNExOpzu/j3NuGaYijA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3391 While be12fcca8b78 ("efi: fix alignment of function parameters in compat mode") intentionally bounced them both ways to avoid any functional change so close to the release of 4.16, the bouncing-in shouldn't really be needed. In exchange the local variables need to gain initializers to avoid copying back prior stack contents. Signed-off-by: Jan Beulich Reviewed-by: Luca Fancellu --- a/xen/common/efi/runtime.c +++ b/xen/common/efi/runtime.c @@ -608,7 +608,15 @@ int efi_runtime_call(struct xenpf_efi_ru case XEN_EFI_query_variable_info: { - uint64_t max_store_size, remain_store_size, max_size; + /* + * Put OUT variables on the stack to make them 8 byte aligned when + * called from the compat handler, as their placement in + * compat_pf_efi_runtime_call will make them 4 byte aligned instead + * and compilers may validly complain. This is done regardless of + * whether called from the compat handler or not, as it's not worth + * the extra logic to differentiate. + */ + uint64_t max_store_size = 0, remain_store_size = 0, max_size = 0; if ( op->misc & ~XEN_EFI_VARINFO_BOOT_SNAPSHOT ) return -EINVAL; @@ -642,21 +650,6 @@ int efi_runtime_call(struct xenpf_efi_ru if ( !efi_enabled(EFI_RS) || (efi_rs->Hdr.Revision >> 16) < 2 ) return -EOPNOTSUPP; - /* - * Bounce the variables onto the stack to make them 8 byte aligned when - * called from the compat handler, as their placement in - * compat_pf_efi_runtime_call will make them 4 byte aligned instead and - * and compilers may validly complain. - * - * Note that while the function parameters are OUT only, copy the - * values here anyway just in case. This is done regardless of whether - * called from the compat handler or not, as it's not worth the extra - * logic to differentiate. - */ - max_store_size = op->u.query_variable_info.max_store_size; - remain_store_size = op->u.query_variable_info.remain_store_size; - max_size = op->u.query_variable_info.max_size; - state = efi_rs_enter(); if ( !state.cr3 ) return -EOPNOTSUPP;