Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp8636233rwb; Thu, 24 Nov 2022 02:11:02 -0800 (PST) X-Google-Smtp-Source: AA0mqf4skSqWH1vLnz4zvW3yzv8HLl25S4DFXVrpozV8BPb7EtblVvt4oYxzNfoIaEmUsBQgOQXg X-Received: by 2002:a17:902:8c8e:b0:179:f6ed:2ca8 with SMTP id t14-20020a1709028c8e00b00179f6ed2ca8mr13675893plo.14.1669284661815; Thu, 24 Nov 2022 02:11:01 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1669284661; cv=pass; d=google.com; s=arc-20160816; b=0/mzChjhEEbpi+8fF8KmpGuFMmkLaGRhYzuwQdnKgqNk4EYW1i/Nmz3wxNLbCazJR+ Ufw2B5kPVnOSP2iMovscsXzDUdZnBHYjuYyEEpWFqJSf1TMzEuymD2SSoQbEJoeHCC6B YGIfsUan6wEunXzOZalbQt2WJ0ZAlitbCXlkx3iDMnpuZW7wVuN0TjRXwa6syK+YrvDu YmM/YxrRLj+rGxKiiNoHmfJBhqJ6QKpdN5pl36TvC7LhfKxZFFQIh5fX1XjmTEaAD0gl 7thW3zNgzTlLGNmGyk8cCIf8kAR1m3ZPhrmqwosz/o4vGDOgQ+lJ9W2c65VDNWBDPMuL i2fA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature; bh=DaG61x5sm8/cvzqhRANRW8qPkTIz4/AujwUpRtWvjdM=; b=nKHY5gmiQjOgCb5/hnxuzXtUYdqyJJUQcAmGzwXQVOBxyog+wm1mKFYo2CuupcSfF7 q/ZiJyilKXo1VZRNqAyWvyql102IC586kEWCYk5028RGiKEdHyIGfjEzwcwh76lF/Fim FR/94DYW2lCje4+JhsETHU1w+bSYWsxlj/kDHEtn44FVoHvBzJ8SxXkzhcuUcbMawF1W pHJo9PunNkmI8vF4gbwrnC7P/tMl980EPZvzKeSg8Er5+aiD1YF2vngor0PHFuw8mIDm TotNLRueeGx9QrWt4OUUgsQGE8eWCNvjIWHq2gx04P8yLlMnYb61r/to3I1caPapAEWO AV9A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=kggr0vKO; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y25-20020a631819000000b00476c25c2d68si927463pgl.116.2022.11.24.02.10.49; Thu, 24 Nov 2022 02:11:01 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=kggr0vKO; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230130AbiKXJGg (ORCPT + 87 others); Thu, 24 Nov 2022 04:06:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39668 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230137AbiKXJGN (ORCPT ); Thu, 24 Nov 2022 04:06:13 -0500 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C8BED115D25; Thu, 24 Nov 2022 01:06:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669280772; x=1700816772; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=DaG61x5sm8/cvzqhRANRW8qPkTIz4/AujwUpRtWvjdM=; b=kggr0vKOxIv9AkxH+hLLIz4lLYM+dKktEL47u8rCIau4ScQadT3m3CBj LmTfbTX9M+8FB8osSpID7NFooa6u8rCg0MmPxpv35+4uif4iJm7FH7gYy SnEmEabzSqjtcGS55wZSLDUXrTsBFqs6znIz7Kr87HtUxF/4AJzX3E5pD 3CP6V7V2mFwZ5ydBxUNEQYx2nmErc1jWWEzfbNQ0H3C5zWsXpWFy2pS7f K2hkEmEesYXmw25Qx8VsMqBziu3eF8eK28xH0undyNMb8SpwGOnmSnXsO n3s6vK4cjOT2YpTU18HbiYpYZKoUVd5sRRqF13UHOJeKasO/49W9kDDm2 w==; X-IronPort-AV: E=McAfee;i="6500,9779,10540"; a="316078279" X-IronPort-AV: E=Sophos;i="5.96,190,1665471600"; d="scan'208";a="316078279" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Nov 2022 01:06:12 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10540"; a="731074487" X-IronPort-AV: E=Sophos;i="5.96,190,1665471600"; d="scan'208";a="731074487" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by FMSMGA003.fm.intel.com with ESMTP; 24 Nov 2022 01:06:11 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Thu, 24 Nov 2022 01:06:11 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Thu, 24 Nov 2022 01:06:11 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.104) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Thu, 24 Nov 2022 01:06:11 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S608AU2V/sojKTmp9SsGy0srTs243HqhjanovVigcNDB0eAnH3tuwxpdOoYeCuCLuO/oJNORM1XZ/JPg7nhbu6qxDCdGX7xxN8NGKSFdk4CMijNL02MgkZc/ADc9hjirTUYel8feJ++EZEF+Yhx3gc7rKHA+uYHhJDPGG0V99htaRtxyBQT3pKAU7AkeJ8NP6MjgUF6SKrSUNumZS6r9zEDmUhyEteZ+pg7izTds6klvMR2731bDzZYj6+s4PBMw4cwE63eTG44RR914XgND29rYDv/Cx1WyezUJjQsw6yuZT2ODLMYlqkTLsb/LCqcZLaEGXGUl5Wa8vCHDwKge9Q== 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=DaG61x5sm8/cvzqhRANRW8qPkTIz4/AujwUpRtWvjdM=; b=M+UcizG4Vqc+aAZuk67f1mrwkpsPVssytV7Ohxh3HouNcwAQKKF2VA8rcWMCgxfRkW2gocDbREVo7BFBlAtL3W5xDhcPPbhftDbhiC8MQ+aJbvQdG+QZl2XDwBfqEFJOztXrvwZ7Mrd+affUEQgj1QBD+7AY1rPHDLGsil78rzMyXhEDit/r6ECJyPG/L+mHRRZA//MAm05nsNvmNETjGCzKUb18ot10EgolI2ACkWh5TJ9idj24UyOKVT9IGHD4Mw2E171SbNXF5jBslRe8e5WtYOddcTPm1cc+R4Lh2Cjvb7NT5GAbkNZH3Z++roQoH9zhqB8ORRnXZSHdTmWhVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BL1PR11MB5978.namprd11.prod.outlook.com (2603:10b6:208:385::18) by BL1PR11MB5334.namprd11.prod.outlook.com (2603:10b6:208:312::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.19; Thu, 24 Nov 2022 09:06:05 +0000 Received: from BL1PR11MB5978.namprd11.prod.outlook.com ([fe80::2fb7:be18:a20d:9b6e]) by BL1PR11MB5978.namprd11.prod.outlook.com ([fe80::2fb7:be18:a20d:9b6e%8]) with mapi id 15.20.5834.015; Thu, 24 Nov 2022 09:06:05 +0000 From: "Huang, Kai" To: "Williams, Dan J" , "kvm@vger.kernel.org" , "linux-kernel@vger.kernel.org" CC: "Hansen, Dave" , "Luck, Tony" , "bagasdotme@gmail.com" , "ak@linux.intel.com" , "Wysocki, Rafael J" , "kirill.shutemov@linux.intel.com" , "Christopherson,, Sean" , "Chatre, Reinette" , "pbonzini@redhat.com" , "linux-mm@kvack.org" , "Yamahata, Isaku" , "peterz@infradead.org" , "Shahar, Sagi" , "imammedo@redhat.com" , "Gao, Chao" , "Brown, Len" , "sathyanarayanan.kuppuswamy@linux.intel.com" , "Huang, Ying" Subject: Re: [PATCH v7 10/20] x86/virt/tdx: Use all system memory when initializing TDX module as TDX memory Thread-Topic: [PATCH v7 10/20] x86/virt/tdx: Use all system memory when initializing TDX module as TDX memory Thread-Index: AQHY/T3KCI/2IUKL7kSgXbHXnV3Az65NU9CAgAB5pwA= Date: Thu, 24 Nov 2022 09:06:04 +0000 Message-ID: <8e8f72ad5d7a3d09be32bee54e4ebb9c280610a2.camel@intel.com> References: <9b545148275b14a8c7edef1157f8ec44dc8116ee.1668988357.git.kai.huang@intel.com> <637ecded7b0f9_160eb329418@dwillia2-xfh.jf.intel.com.notmuch> In-Reply-To: <637ecded7b0f9_160eb329418@dwillia2-xfh.jf.intel.com.notmuch> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4 (3.44.4-2.fc36) authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BL1PR11MB5978:EE_|BL1PR11MB5334:EE_ x-ms-office365-filtering-correlation-id: 190e4a00-8fe5-4229-d29a-08dacdfb1df7 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: fY+INOaqZZ0SSDho3Q30mjtJUGAxgY9lF1cazlUh6XWh1AdS4X6NDmEBCqHV3R4nVTRAFLtVneo7HQvj1+te6eG+GMOfNDxlmU3lfc3JFOvOOjS8qE+wUvEepL5frhW8HFiYBqz/pYNWQ3tJGGXbOBzb4ngKHpskMVHM11kUXUlJBKf/9lPHrv1ttoKrjt0V3rPxC1ZiU7Z/u3/OPGynj544fPQw1e3Q/bjUC7jLXwa0ZeBfYQjn/0TGdWbSm2Ctsf6yqp5+U3bsUw3ABrAqEAdnbmkjs8W35ZAUuImZ+KgRLcuqyLkkT0iQzX9oedz/E+lUZ2naNHc+TMse8XExYBjMe6vhRm9pJ6DAPGSQ921v7QXHXUkJyrUkefTWkL4NRUJ1auU1vIX0IW0T6ojKZMlUk2+1Q8VJDf6uCxhxcFKy1Nxb49j1uKkfDiRq8Zy13/w5RrfXLWIgU/0ZzAJUMZ3mEHm+6r+jXaaQB6IVT/q+FNgU1aIxfjlEmt3vgCBqFqivKPbTBG0r/4lH+ykcagavesW+7httkHtNycIimwSf56AZ3FHrD5jgcm4pDCsLp4nxP/thjMu5OhC3HPY28Kvs5psowauHYyOVXOJXcbBSXCpINvPoB6sRb4TtAiPQ/AO1e/d3By+1lOISRx43iwNaEKUr8+YrgV0kV176MnLmw6746lrMntD8bdK/w+t/Ks/I2riJLES1UGpcsk+r4A== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5978.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(366004)(346002)(39860400002)(376002)(396003)(451199015)(86362001)(82960400001)(38100700002)(38070700005)(41300700001)(4326008)(8676002)(76116006)(64756008)(66476007)(91956017)(66556008)(66946007)(66446008)(110136005)(54906003)(316002)(7416002)(5660300002)(8936002)(2906002)(6486002)(4001150100001)(83380400001)(122000001)(71200400001)(6506007)(478600001)(2616005)(186003)(26005)(6512007)(36756003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cjM0QitDRThTdDFjd1doS2c5Q3loYmtSaytWOVRaNUZ2amdsODhCZnl3bWlB?= =?utf-8?B?a3E3Ymk1OHMyRFNtN1dZVnd3V2JJRVU5ajR6SW1PZWxRaFh5bjFGaTZ0Wi84?= =?utf-8?B?eWhLcFlMZ0QxMldhVmZtZk9yT3VtVHV3TVlzVGZickFQYUYyZnZwVjR1Wkti?= =?utf-8?B?M0RCTDVVY29QV2lSaXNLRnhMSWlVeVVJbWhYeVM1VWlBNXdyeVlSRXFwamNL?= =?utf-8?B?RWZMWHgweW9TNmlOL2ZzVDk4bzBvcUJFdVZkUllvZ0NqbUpHcDNhVDJMdGZJ?= =?utf-8?B?R3AyWjFYRkVnYzlmQUpORFJkTDBwaHNES2prWTNqWUJHcnRhblZpa2FkY2Zh?= =?utf-8?B?azA2eUt3ZlFyZDFSaEw2bnVmbkFXa050bGVQcWRublN1YlprR3Vmd3g0ODVM?= =?utf-8?B?bERneVgrUkJoVFVtQnMyVEg2WDN1UjQ1bitMUUtqWXlVR3VIVG9FR25lVE8z?= =?utf-8?B?N0s1cGNhL1RzN0hXR1RRODByU2tqcHZMY3ZTSnJsandHRGNRYUk4NlZkYUlK?= =?utf-8?B?c0lJdVoxczFTMmhnd2lKT2NkeDJ6czFJVFVycGp1d0UyQWZRclczRjNkaXNn?= =?utf-8?B?ck5mVlhaOHNGQUdtVENhcnZ6QmIxRHJPeHFkWHc5N2tBaGRSak9pZ1Jjd2cy?= =?utf-8?B?UDNoMEEvZlFVclVWV05LaGxaeVJJU3ZSUGVGdDMwRXNMcUlvcnpNeGJzeUNu?= =?utf-8?B?c2dYTmdoTm1wZzVtYXl0NWJLZWVTWS9CVWVpQTZBdjArUDBXd1F1Rk9LRlJX?= =?utf-8?B?dXBGRmtNVUU1SnFlZWs3WlFPUnFNczArMEJDK0VreUlXNTJZY21rV2dMOFdn?= =?utf-8?B?ZDRRNFdqSmdwU2hVSXZ1bGRGeDdKVlpsU0F0ZzlLby8vL0JMOFlDb1NFdW5J?= =?utf-8?B?cS8rQU0weUJFU1RLb0pGQVdMQmhCZVQ0RCtmaUFxZmxYQWxicnFIcTNoL3gr?= =?utf-8?B?MXZuNjg5dEg0NnVSOE9hMko0WW9zR3V2bktYMkt0bDhPcUovV1dIRmpmWkl1?= =?utf-8?B?c0xxSFByVGdLcWtyME1HMFVkUHFOaFlMb3huTUJOREZwVWpBMGk3YXVSVWJ6?= =?utf-8?B?MTFlK3VRaDBhK0hjOFc4TW5OSTRraloyaGs0cGtlc0tYMGdrWnN4U3dTS1ZQ?= =?utf-8?B?TjZIaTdJaU5OUGY2TWpMUkdSTXVDS3I0cVZTQ3hCSXNhS3cvZzREZGxIaW13?= =?utf-8?B?YllIMzJkNGNOR1NOU2xYVlR2cXZDZTF4V2NiWkxvZ1M2N05iZFJYU2txMTA5?= =?utf-8?B?RGl6bk9zRDdhSktKT2g3Q0dadENNTkU0N1Y1VHZWcjA0V09PVFJmRHBEWkg5?= =?utf-8?B?bzRNUmY4YjM3U21rYW50VUwrU0JYVmFDRHcxSUxrc002WEZ0YzljQlpRU2d5?= =?utf-8?B?MmNjNk80T1g1cjJicHdLTkhRYVBERVBVWFdqV3dhVExZNVJ3UVdJK21QTmgv?= =?utf-8?B?TXN4THhCTVlrcXpkcFkxamlVUHk3KzlsVTNOaCtpOFB6NkpXRDB4RHhjZGl5?= =?utf-8?B?RUZ2WEwxZWJsT3FGOGcrUi9sU0NHalVLVkg4R0FUakRCQ1p5eHpKZm90RzUx?= =?utf-8?B?WC9jeWlRUE56ZW13WW1oM1NQc1R0ZjZUTDQ4UGRCbXozVy81RFo3RGpTNlhl?= =?utf-8?B?a2J3c2dtdy81K3JkOFRWdWR4SUcwMXJvb2x4TTF2UzhZQWtueEQyU0V3R1hT?= =?utf-8?B?ZkxPbVkrSlpMTGtJS1NMdVBlR3RMQ29ZTVVrbnlmank0d25KekRaNDlXeFdw?= =?utf-8?B?aVNlUm1Cc2J5cmFzc05obVYrZkk1Wm8zTDA3QmlySTVFOU5HOUh5RjF0dVFK?= =?utf-8?B?M0p3Wk96UlpUVmlpWktCZXZiaVpEVDFmZlR2WTIxS0k0ZkNmWWQ5MkxLTXNx?= =?utf-8?B?K1hqakxCbjVpM1VYU1V4OXJidkUzMi9lZTY3V0NUOWRoek9xeWVTOEJ5Zi9i?= =?utf-8?B?YVNXTkx6b1NONWlhMDdySkllSzk0RFpndHdJWi96Sk5vb0k5bmpKQ0lQUDZ5?= =?utf-8?B?NzY1eUN6Sk96aTc2N2ZOcWFaS291Z2ZOcWl2VmpJOVhmUnJpQ3h5R045R3dz?= =?utf-8?B?Zktlbjh6UkJ0VjBhZ2I5TWo4TDRpcHBKTnJ6TU1TK25IcDhxMzg4aFlxTzFq?= =?utf-8?B?VmdiUXlpdjJBeEFzM1RwTWVUSWFwRE5FdWo4NSsra2xqWnZKN2FucHdpMU9I?= =?utf-8?B?Mnc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5978.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 190e4a00-8fe5-4229-d29a-08dacdfb1df7 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2022 09:06:04.8987 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: i1E+D7L4ksAQ3dJffqwXT4YmWLwcQnoYdt9i/Pemcio7Mn+F08bPokw+xjLS/6Lni3cMedeiLPU0oSFxkbM96Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB5334 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gV2VkLCAyMDIyLTExLTIzIGF0IDE3OjUwIC0wODAwLCBEYW4gV2lsbGlhbXMgd3JvdGU6DQo+ ID4gwqAgDQo+ID4gQEAgLTk2OCw2ICs5NjksMTUgQEAgaW50IGFyY2hfYWRkX21lbW9yeShpbnQg bmlkLCB1NjQgc3RhcnQsIHU2NCBzaXplLA0KPiA+IMKgwqAJdW5zaWduZWQgbG9uZyBzdGFydF9w Zm4gPSBzdGFydCA+PiBQQUdFX1NISUZUOw0KPiA+IMKgwqAJdW5zaWduZWQgbG9uZyBucl9wYWdl cyA9IHNpemUgPj4gUEFHRV9TSElGVDsNCj4gPiDCoCANCj4gPiArCS8qDQo+ID4gKwkgKiBGb3Ig bm93IGlmIFREWCBpcyBlbmFibGVkLCBhbGwgcGFnZXMgaW4gdGhlIHBhZ2UgYWxsb2NhdG9yDQo+ ID4gKwkgKiBtdXN0IGJlIFREWCBtZW1vcnksIHdoaWNoIGlzIGEgZml4ZWQgc2V0IG9mIG1lbW9y eSByZWdpb25zDQo+ID4gKwkgKiB0aGF0IGFyZSBwYXNzZWQgdG8gdGhlIFREWCBtb2R1bGUuwqAg UmVqZWN0IHRoZSBuZXcgcmVnaW9uDQo+ID4gKwkgKiBpZiBpdCBpcyBub3QgVERYIG1lbW9yeSB0 byBndWFyYW50ZWUgYWJvdmUgaXMgdHJ1ZS4NCj4gPiArCSAqLw0KPiA+ICsJaWYgKCF0ZHhfY2Nf bWVtb3J5X2NvbXBhdGlibGUoc3RhcnRfcGZuLCBzdGFydF9wZm4gKyBucl9wYWdlcykpDQo+ID4g KwkJcmV0dXJuIC1FSU5WQUw7DQo+IA0KPiBhcmNoX2FkZF9tZW1vcnkoKSBkb2VzIG5vdCBhZGQg bWVtb3J5IHRvIHRoZSBwYWdlIGFsbG9jYXRvci7CoCBGb3INCj4gZXhhbXBsZSwgbWVtcmVtYXBf cGFnZXMoKSB1c2VzIGFyY2hfYWRkX21lbW9yeSgpIGFuZCBleHBsaWNpdGx5IGRvZXMgbm90DQo+ IHJlbGVhc2UgdGhlIG1lbW9yeSB0byB0aGUgcGFnZSBhbGxvY2F0b3IuwqANCg0KSW5kZWVkLiAg U29ycnkgSSBtaXNzZWQgdGhpcy4NCg0KPiBUaGlzIGNoZWNrIGJlbG9uZ3MgaW4NCj4gYWRkX21l bW9yeV9yZXNvdXJjZSgpIHRvIHByZXZlbnQgbmV3IG1lbW9yeSB0aGF0IHZpb2xhdGVzIFREWCBm cm9tIGJlaW5nDQo+IG9ubGluZWQuwqANCg0KVGhpcyB3b3VsZCByZXF1aXJlIGFkZGluZyBhbm90 aGVyICdhcmNoX2NjX21lbW9yeV9jb21wYXRpYmxlKCknIHRvIHRoZSBjb21tb24NCmFkZF9tZW1v cnlfcmVzb3VyY2UoKSAoSSBhY3R1YWxseSBsb25nIHRpbWUgYWdvIGhhZCBzdWNoIHBhdGNoIHRv IHdvcmsgd2l0aCB0aGUNCm1lbXJlbWFwX3BhZ2VzKCkgeW91IG1lbnRpb25lZCBhYm92ZSkuDQoN CkhvdyBhYm91dCBhZGRpbmcgYSBtZW1vcnlfbm90aWZpZXIgdG8gdGhlIFREWCBjb2RlLCBhbmQg cmVqZWN0IG9ubGluZSBvZiBURFgNCmluY29tcGF0aWJsZSBtZW1vcnkgKHNvbWV0aGluZyBsaWtl IGJlbG93KT8gIFRoZSBiZW5lZml0IGlzIHRoaXMgaXMgVERYIGNvZGUNCnNlbGYgY29udGFpbmVk IGFuZCB3b24ndCBwb2xsdXRlIHRoZSBjb21tb24gbW0gY29kZToNCg0KK3N0YXRpYyBpbnQgdGR4 X21lbW9yeV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLA0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYWN0aW9uLCB2b2lkICp2KQ0KK3sNCisg ICAgICAgc3RydWN0IG1lbW9yeV9ub3RpZnkgKm1uID0gdjsNCisNCisgICAgICAgaWYgKGFjdGlv biAhPSBNRU1fR09JTkdfT05MSU5FKQ0KKyAgICAgICAgICAgICAgIHJldHVybiBOT1RJRllfT0s7 DQorDQorICAgICAgIC8qDQorICAgICAgICAqIE5vdCBhbGwgbWVtb3J5IGlzIGNvbXBhdGlibGUg d2l0aCBURFguICBSZWplY3QNCisgICAgICAgICogb25saW5lIG9mIGFueSBpbmNvbXBhdGlibGUg bWVtb3J5Lg0KKyAgICAgICAgKi8NCisgICAgICAgcmV0dXJuIHRkeF9jY19tZW1vcnlfY29tcGF0 aWJsZShtbi0+c3RhcnRfcGZuLA0KKyAgICAgICAgICAgICAgICAgICAgICAgbW4tPnN0YXJ0X3Bm biArIG1uLT5ucl9wYWdlcykgPyBOT1RJRllfT0sgOiBOT1RJRllfQkFEOw0KK30NCisNCitzdGF0 aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHRkeF9tZW1vcnlfbmIgPSB7DQorICAgICAgIC5ub3Rp Zmllcl9jYWxsID0gdGR4X21lbW9yeV9ub3RpZmllciwNCit9Ow0KDQo+IEhvcGVmdWxseSB0aGVy ZSBpcyBhbHNvIGFuIG9wdGlvbiB0byBkaXNhYmxlIFREWCBmcm9tIHRoZQ0KPiBrZXJuZWwgYm9v dCBjb21tYW5kIGxpbmUgdG8gcmVjb3ZlciBtZW1vcnktaG90cGx1ZyB3aXRob3V0IG5lZWRpbmcg dG8NCj4gYm9vdCBpbnRvIHRoZSBCSU9TIHRvIHRvZ2dsZSBURFguDQoNCkkgYW0gZmluZS4NCg0K SGkgRGF2ZSwgaXMgaXQgT0sgdG8gaW5jbHVkZSBzdWNoIGNvbW1hbmQgbGluZSB0byB0aGlzIGlu aXRpYWwgVERYIHN1Ym1pc3Npb24/DQoNCg==