From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 46429C7618F for ; Fri, 19 Jul 2019 18:41:57 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 0FC3421849 for ; Fri, 19 Jul 2019 18:41:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="13trNeJ8" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0FC3421849 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hoXp7-0006tU-3k; Fri, 19 Jul 2019 18:41:41 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hoXp6-0006tL-6c for xen-devel@lists.xenproject.org; Fri, 19 Jul 2019 18:41:40 +0000 X-Inumbo-ID: d6123f20-aa54-11e9-9e98-63545660d42c Received: from NAM05-BY2-obe.outbound.protection.outlook.com (unknown [40.107.71.52]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id d6123f20-aa54-11e9-9e98-63545660d42c; Fri, 19 Jul 2019 18:41:36 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZUqlZrtzFUma/1UFP6YplQLetk/zRPgp8ZdoUSXGWuF3RHASTZyy3DNTfYp0yn/5xrEqdR341eoiHYXypenpn5xcv0yDRJt4bFpVBWr+eKZox9+kryF3CjnmSiBSnyRHgBF5vX4WkRNMoUaPYXWswDMotwIAgIxuoYr3+O4rpppRaMAM+SKxrUfP7BFLAYrcQ51g0dtglTQB0dJcmNlo9BTSQrCCcNzJd1WwQl3JEIRypWA59xeFRcypHH3mMwtGPvfJ937HQQfAI4vOYNgFeOQnwhE+Y6Z094jFufj5pK4cJblnagk4fZ2VAXjrVftC4HjFhO1eyMp47y1bPXswzg== 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-SenderADCheck; bh=/i65wpnudHgkxdUOiUMcsYse7R8UlcSvFfiVS7h8dTc=; b=H3g7WLDIRyDt/XPd/8Tc66EvPDLVa9YC+iaCnGI962lfPrIiAOZZVNBurpov24EXQK4tcanF80KnWgWYLnPFYsg5dEIs1eI7fbly0mGCtq1wuNYbfrzmNlQ08s2oMuxT9LU1zvjsAUx/CLOqsi7e3zmrLRKuUoz45tM4jtccTeHs3m3qpp4foAsBU3jT/e0iPj9Q1mctwuFA0ZMZGOgry9TDghq2ILp/HKCuSc+mKhn2p+kww5MUNPntOMN8eHQePBY8NLRXhFdZ/d/cRYEnFFgTZbWbil39uku2tysC1yjA8gqqF/nuuJzHinZe5CmjbUSSD3940V/UStmGm1uwZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=amd.com;dmarc=pass action=none header.from=amd.com;dkim=pass header.d=amd.com;arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/i65wpnudHgkxdUOiUMcsYse7R8UlcSvFfiVS7h8dTc=; b=13trNeJ8bsrRWDCY1kYFYkWlFnadwH9gOzp2dBvYslnV/MsGTOptpKTDzT2SlV6/zS+1WsIqeGDY0UNHti8qK6Dl57qj5yP0A4mQ3OHBck3VwbeYdmWbBmV+BTFaF5wJO5dPsX8VOW0cZF55kl1sb2V77ODOOMP86Ajrc1n7Hx4= Received: from DM6PR12MB3515.namprd12.prod.outlook.com (20.179.106.151) by DM6PR12MB3948.namprd12.prod.outlook.com (10.255.174.157) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2073.14; Fri, 19 Jul 2019 18:41:33 +0000 Received: from DM6PR12MB3515.namprd12.prod.outlook.com ([fe80::3576:d8b0:7554:adc]) by DM6PR12MB3515.namprd12.prod.outlook.com ([fe80::3576:d8b0:7554:adc%7]) with mapi id 15.20.2094.013; Fri, 19 Jul 2019 18:41:33 +0000 From: "Woods, Brian" To: Jan Beulich Thread-Topic: [PATCH v3 12/14] AMD/IOMMU: enable x2APIC mode when available Thread-Index: AQHVO/V28qjd4vDB8kKPWy7eOEQWUqbSSz+A Date: Fri, 19 Jul 2019 18:41:33 +0000 Message-ID: <20190719184130.GJ4496@amd.com> References: <6272c301-a905-38cf-dd1a-645f3d703241@suse.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SN6PR05CA0029.namprd05.prod.outlook.com (2603:10b6:805:de::42) To DM6PR12MB3515.namprd12.prod.outlook.com (2603:10b6:5:18a::23) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Brian.Woods@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [165.204.77.1] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b9668110-9e2e-47db-bcfe-08d70c78b8f4 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:DM6PR12MB3948; x-ms-traffictypediagnostic: DM6PR12MB3948: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-forefront-prvs: 01039C93E4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(346002)(376002)(366004)(39860400002)(396003)(136003)(199004)(189003)(486006)(11346002)(26005)(102836004)(386003)(446003)(1076003)(186003)(476003)(54906003)(6506007)(2616005)(6436002)(52116002)(316002)(66066001)(66556008)(6486002)(99286004)(6512007)(76176011)(5660300002)(14444005)(71200400001)(53936002)(256004)(66446008)(4326008)(66476007)(6246003)(66946007)(64756008)(25786009)(229853002)(6916009)(33656002)(68736007)(36756003)(305945005)(81156014)(2906002)(71190400001)(7736002)(3846002)(86362001)(8936002)(478600001)(6116002)(8676002)(81166006)(14454004); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR12MB3948; H:DM6PR12MB3515.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 7lWe+3Hv4JgFyh4qHG5FGe8fSLKWaA8V/w/udMTESqhyBgLHJDY1vX6KzSFo23tI8SpwPJS2nUaG5f1tHVqJvKhkU9rnAUEp40YB6NiDPtq5daIgJTEcLu571/ulIFAv6NR281HoOBYfbgvPFmLou7ijwbFfjL5DV41o9bA4zxj1/mVF2HB9QTYAMOODwqpnWFgXhi16TwJtLNttELqfap51Y2DmV7D8+sS9TiO20/NnNeAaW0TZuaKZC5KQO+G+8tzeeD2/ZYw7u+NgCKuOHkHMNmPY72x0KhCLkCLPPvEn68VEwABSUIpKXt28ZeNtiRkG/zasycR7cwDMRBWftxC9yXYPzydxmH5lUzgBmVo0EkaWWKYYyZYP+2sd3pbW1hJE3fbfBZe0YNPIKOtVbPHi86ziu1elfCXJZfmuAds= Content-ID: <941192F0CC1E0D43B5B224F314653A0A@namprd12.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: b9668110-9e2e-47db-bcfe-08d70c78b8f4 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jul 2019 18:41:33.6239 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: brwoods@amd.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3948 Subject: Re: [Xen-devel] [PATCH v3 12/14] AMD/IOMMU: enable x2APIC mode when available X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: "xen-devel@lists.xenproject.org" , "Woods, Brian" , "Suthikulpanit, Suravee" , Andrew Cooper Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gVHVlLCBKdWwgMTYsIDIwMTkgYXQgMDQ6NDA6MzNQTSArMDAwMCwgSmFuIEJldWxpY2ggd3Jv dGU6Cj4gSW4gb3JkZXIgZm9yIHRoZSBDUFVzIHRvIHVzZSB4MkFQSUMgbW9kZSwgdGhlIElPTU1V KHMpIGZpcnN0IG5lZWQgdG8gYmUKPiBzd2l0Y2hlZCBpbnRvIHN1aXRhYmxlIHN0YXRlLgo+IAo+ IFRoZSBwb3N0LUFQLWJyaW5ndXAgSVJRIGFmZmluaXR5IGFkanVzdG1lbnQgaXMgZG9uZSBhbHNv IGZvciB0aGUgbm9uLQo+IHgyQVBJQyBjYXNlLCBtYXRjaGluZyB3aGF0IFZULWQgZG9lcy4KPiAK PiBTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpBY2tlZC1i eTogQnJpYW4gV29vZHMgPGJyaWFuLndvb2RzQGFtZC5jb20+Cgo+IC0tLQo+IHYzOiBTZXQgR0FF biAoYW5kIG90aGVyIGNvbnRyb2wgcmVnaXN0ZXIgYml0cykgZWFybGllci4gQWxzbyBjbGVhciB0 aGUKPiAgICAgIGJpdHMgZW5hYmxlZCBoZXJlIGluIGFtZF9pb21tdV9pbml0X2NsZWFudXAoKS4g UmUtYmFzZS4gUGFzcyBOVUxMCj4gICAgICBDUFUgbWFzayB0byBzZXRfe3gyYXBpYyxtc2l9X2Fm ZmluaXR5KCkuCj4gdjI6IERyb3AgY3B1X2hhc19jeDE2IGNoZWNrLiBBZGQgY29tbWVudC4KPiAt LS0KPiBUQkQ6IEluc3RlYWQgb2YgdGhlIHN5c3RlbV9zdGF0ZSBjaGVjayBpbiBpb3ZfZW5hYmxl X3h0KCkgdGhlIGZ1bmN0aW9uCj4gICAgICAgY291bGQgYWxzbyB6YXAgaXRzIG93biBob29rIHBv aW50ZXIsIGF0IHdoaWNoIHBvaW50IGl0IGNvdWxkIGFsc28KPiAgICAgICBiZWNvbWUgX19pbml0 LiBUaGlzIHdvdWxkLCBob3dldmVyLCByZXF1aXJlIHRoYXQgZWl0aGVyCj4gICAgICAgcmVzdW1l X3gyYXBpYygpIGJlIGJvdW5kIHRvIGlnbm9yZSBpb21tdV9lbmFibGVfeDJhcGljKCkgZXJyb3Jz Cj4gICAgICAgZm9yZXZlciwgb3IgdGhhdCBpb21tdV9lbmFibGVfeDJhcGljKCkgYmUgc2xpZ2h0 bHkgcmUtYXJyYW5nZWQgdG8KPiAgICAgICBub3QgcmV0dXJuIC1FT1BOT1RTVVBQIHdoZW4gZmlu ZGluZyBhIE5VTEwgaG9vayBkdXJpbmcgcmVzdW1lLgo+IAo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMKPiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9hbWQvaW9tbXVfaW5pdC5jCj4gQEAgLTgzNCw2ICs4MzQsMzAgQEAgc3RhdGljIGJvb2xfdCBf X2luaXQgc2V0X2lvbW11X2ludGVycnVwdAo+ICAgICAgIHJldHVybiAxOwo+ICAgfQo+ICAgCj4g K2ludCBpb3ZfYWRqdXN0X2lycV9hZmZpbml0aWVzKHZvaWQpCj4gK3sKPiArICAgIGNvbnN0IHN0 cnVjdCBhbWRfaW9tbXUgKmlvbW11Owo+ICsKPiArICAgIGlmICggIWlvbW11X2VuYWJsZWQgKQo+ ICsgICAgICAgIHJldHVybiAwOwo+ICsKPiArICAgIGZvcl9lYWNoX2FtZF9pb21tdSAoIGlvbW11 ICkKPiArICAgIHsKPiArICAgICAgICBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MgPSBpcnFfdG9fZGVz Yyhpb21tdS0+bXNpLmlycSk7Cj4gKyAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKPiArCj4g KyAgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmRlc2MtPmxvY2ssIGZsYWdzKTsKPiArICAgICAg ICBpZiAoIGlvbW11LT5jdHJsLmludF9jYXBfeHRfZW4gKQo+ICsgICAgICAgICAgICBzZXRfeDJh cGljX2FmZmluaXR5KGRlc2MsIE5VTEwpOwo+ICsgICAgICAgIGVsc2UKPiArICAgICAgICAgICAg c2V0X21zaV9hZmZpbml0eShkZXNjLCBOVUxMKTsKPiArICAgICAgICBzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZkZXNjLT5sb2NrLCBmbGFncyk7Cj4gKyAgICB9Cj4gKwo+ICsgICAgcmV0dXJuIDA7 Cj4gK30KPiArX19pbml0Y2FsbChpb3ZfYWRqdXN0X2lycV9hZmZpbml0aWVzKTsKPiArCj4gICAv Kgo+ICAgICogRmFtaWx5MTVoIE1vZGVsIDEwaC0xZmggZXJyYXR1bSA3NDYgKElPTU1VIExvZ2dp bmcgTWF5IFN0YWxsIFRyYW5zbGF0aW9ucykKPiAgICAqIFdvcmthcm91bmQ6Cj4gQEAgLTEwNDcs NyArMTA3MSw3IEBAIHN0YXRpYyB2b2lkICogX19pbml0IGFsbG9jYXRlX3Bwcl9sb2coc3QKPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfUFBSX0xPR19ERUZBVUxUX0VO VFJJRVMsICJQUFIgTG9nIik7Cj4gICB9Cj4gICAKPiAtc3RhdGljIGludCBfX2luaXQgYW1kX2lv bW11X2luaXRfb25lKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQo+ICtzdGF0aWMgaW50IF9faW5p dCBhbWRfaW9tbXVfaW5pdF9vbmUoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsIGJvb2wgaW50cikK PiAgIHsKPiAgICAgICBpZiAoIGFsbG9jYXRlX2NtZF9idWZmZXIoaW9tbXUpID09IE5VTEwgKQo+ ICAgICAgICAgICBnb3RvIGVycm9yX291dDsKPiBAQCAtMTA1OCw3ICsxMDgyLDcgQEAgc3RhdGlj IGludCBfX2luaXQgYW1kX2lvbW11X2luaXRfb25lKHN0cgo+ICAgICAgIGlmICggaW9tbXUtPmZl YXR1cmVzLmZsZHMucHByX3N1cCAmJiAhYWxsb2NhdGVfcHByX2xvZyhpb21tdSkgKQo+ICAgICAg ICAgICBnb3RvIGVycm9yX291dDsKPiAgIAo+IC0gICAgaWYgKCAhc2V0X2lvbW11X2ludGVycnVw dF9oYW5kbGVyKGlvbW11KSApCj4gKyAgICBpZiAoIGludHIgJiYgIXNldF9pb21tdV9pbnRlcnJ1 cHRfaGFuZGxlcihpb21tdSkgKQo+ICAgICAgICAgICBnb3RvIGVycm9yX291dDsKPiAgIAo+ICAg ICAgIC8qIFRvIG1ha2Ugc3VyZSB0aGF0IGRldmljZV90YWJsZS5idWZmZXIgaGFzIGJlZW4gc3Vj Y2Vzc2Z1bGx5IGFsbG9jYXRlZCAqLwo+IEBAIC0xMDg3LDggKzExMTEsMTYgQEAgc3RhdGljIHZv aWQgX19pbml0IGFtZF9pb21tdV9pbml0X2NsZWFudQo+ICAgICAgIGxpc3RfZm9yX2VhY2hfZW50 cnlfc2FmZSAoIGlvbW11LCBuZXh0LCAmYW1kX2lvbW11X2hlYWQsIGxpc3QgKQo+ICAgICAgIHsK PiAgICAgICAgICAgbGlzdF9kZWwoJmlvbW11LT5saXN0KTsKPiArCj4gKyAgICAgICAgaW9tbXUt PmN0cmwuZ2FfZW4gPSAwOwo+ICsgICAgICAgIGlvbW11LT5jdHJsLnh0X2VuID0gMDsKPiArICAg ICAgICBpb21tdS0+Y3RybC5pbnRfY2FwX3h0X2VuID0gMDsKPiArCj4gICAgICAgICAgIGlmICgg aW9tbXUtPmVuYWJsZWQgKQo+ICAgICAgICAgICAgICAgZGlzYWJsZV9pb21tdShpb21tdSk7Cj4g KyAgICAgICAgZWxzZSBpZiAoIGlvbW11LT5tbWlvX2Jhc2UgKQo+ICsgICAgICAgICAgICB3cml0 ZXEoaW9tbXUtPmN0cmwucmF3LAo+ICsgICAgICAgICAgICAgICAgICAgaW9tbXUtPm1taW9fYmFz ZSArIElPTU1VX0NPTlRST0xfTU1JT19PRkZTRVQpOwo+ICAgCj4gICAgICAgICAgIGRlYWxsb2Nh dGVfcmluZ19idWZmZXIoJmlvbW11LT5jbWRfYnVmZmVyKTsKPiAgICAgICAgICAgZGVhbGxvY2F0 ZV9yaW5nX2J1ZmZlcigmaW9tbXUtPmV2ZW50X2xvZyk7Cj4gQEAgLTEyOTAsNyArMTMyMiw3IEBA IHN0YXRpYyBpbnQgX19pbml0IGFtZF9pb21tdV9wcmVwYXJlX29uZSgKPiAgICAgICByZXR1cm4g MDsKPiAgIH0KPiAgIAo+IC1pbnQgX19pbml0IGFtZF9pb21tdV9pbml0KHZvaWQpCj4gK2ludCBf X2luaXQgYW1kX2lvbW11X3ByZXBhcmUoYm9vbCB4dCkKPiAgIHsKPiAgICAgICBzdHJ1Y3QgYW1k X2lvbW11ICppb21tdTsKPiAgICAgICBpbnQgcmMgPSAtRU5PREVWOwo+IEBAIC0xMzA1LDkgKzEz MzcsMTQgQEAgaW50IF9faW5pdCBhbWRfaW9tbXVfaW5pdCh2b2lkKQo+ICAgICAgIGlmICggdW5s aWtlbHkoYWNwaV9nYmxfRkFEVC5ib290X2ZsYWdzICYgQUNQSV9GQURUX05PX01TSSkgKQo+ICAg ICAgICAgICBnb3RvIGVycm9yX291dDsKPiAgIAo+ICsgICAgLyogSGF2ZSB3ZSBiZWVuIGhlcmUg YmVmb3JlPyAqLwo+ICsgICAgaWYgKCBpdmhkX3R5cGUgKQo+ICsgICAgICAgIHJldHVybiAwOwo+ ICsKPiAgICAgICByYyA9IGFtZF9pb21tdV9nZXRfc3VwcG9ydGVkX2l2aGRfdHlwZSgpOwo+ICAg ICAgIGlmICggcmMgPCAwICkKPiAgICAgICAgICAgZ290byBlcnJvcl9vdXQ7Cj4gKyAgICBCVUdf T04oIXJjKTsKPiAgICAgICBpdmhkX3R5cGUgPSByYzsKPiAgIAo+ICAgICAgIHJjID0gYW1kX2lv bW11X2dldF9pdnJzX2Rldl9lbnRyaWVzKCk7Cj4gQEAgLTEzMjMsOSArMTM2MCwzNyBAQCBpbnQg X19pbml0IGFtZF9pb21tdV9pbml0KHZvaWQpCj4gICAgICAgICAgIHJjID0gYW1kX2lvbW11X3By ZXBhcmVfb25lKGlvbW11KTsKPiAgICAgICAgICAgaWYgKCByYyApCj4gICAgICAgICAgICAgICBn b3RvIGVycm9yX291dDsKPiArCj4gKyAgICAgICAgcmMgPSAtRU5PREVWOwo+ICsgICAgICAgIGlm ICggeHQgJiYgKCFpb21tdS0+ZmVhdHVyZXMuZmxkcy5nYV9zdXAgfHwgIWlvbW11LT5mZWF0dXJl cy5mbGRzLnh0X3N1cCkgKQo+ICsgICAgICAgICAgICBnb3RvIGVycm9yX291dDsKPiArICAgIH0K PiArCj4gKyAgICBmb3JfZWFjaF9hbWRfaW9tbXUgKCBpb21tdSApCj4gKyAgICB7Cj4gKyAgICAg ICAgLyogTkI6IFRoZXJlJ3Mgbm8gbmVlZCB0byBhY3R1YWxseSB3cml0ZSB0aGVzZSBvdXQgcmln aHQgaGVyZS4gKi8KPiArICAgICAgICBpb21tdS0+Y3RybC5nYV9lbiB8PSB4dDsKPiArICAgICAg ICBpb21tdS0+Y3RybC54dF9lbiA9IHh0Owo+ICsgICAgICAgIGlvbW11LT5jdHJsLmludF9jYXBf eHRfZW4gPSB4dDsKPiAgICAgICB9Cj4gICAKPiAgICAgICByYyA9IGFtZF9pb21tdV91cGRhdGVf aXZyc19tYXBwaW5nX2FjcGkoKTsKPiArCj4gKyBlcnJvcl9vdXQ6Cj4gKyAgICBpZiAoIHJjICkK PiArICAgIHsKPiArICAgICAgICBhbWRfaW9tbXVfaW5pdF9jbGVhbnVwKCk7Cj4gKyAgICAgICAg aXZoZF90eXBlID0gMDsKPiArICAgIH0KPiArCj4gKyAgICByZXR1cm4gcmM7Cj4gK30KPiArCj4g K2ludCBfX2luaXQgYW1kX2lvbW11X2luaXQoYm9vbCB4dCkKPiArewo+ICsgICAgc3RydWN0IGFt ZF9pb21tdSAqaW9tbXU7Cj4gKyAgICBpbnQgcmMgPSBhbWRfaW9tbXVfcHJlcGFyZSh4dCk7Cj4g Kwo+ICAgICAgIGlmICggcmMgKQo+ICAgICAgICAgICBnb3RvIGVycm9yX291dDsKPiAgIAo+IEBA IC0xMzUxLDcgKzE0MTYsMTIgQEAgaW50IF9faW5pdCBhbWRfaW9tbXVfaW5pdCh2b2lkKQo+ICAg ICAgIC8qIHBlciBpb21tdSBpbml0aWFsaXphdGlvbiAgKi8KPiAgICAgICBmb3JfZWFjaF9hbWRf aW9tbXUgKCBpb21tdSApCj4gICAgICAgewo+IC0gICAgICAgIHJjID0gYW1kX2lvbW11X2luaXRf b25lKGlvbW11KTsKPiArICAgICAgICAvKgo+ICsgICAgICAgICAqIFNldHRpbmcgdXAgb2YgdGhl IElPTU1VIGludGVycnVwdHMgY2Fubm90IG9jY3VyIHlldCBhdCB0aGUgKHZlcnkKPiArICAgICAg ICAgKiBlYXJseSkgdGltZSB3ZSBnZXQgaGVyZSB3aGVuIGVuYWJsaW5nIHgyQVBJQyBtb2RlLiBT dXBwcmVzcyBpdAo+ICsgICAgICAgICAqIGhlcmUsIGFuZCBkbyBpdCBleHBsaWNpdGx5IGluIGFt ZF9pb21tdV9pbml0X2ludGVycnVwdCgpLgo+ICsgICAgICAgICAqLwo+ICsgICAgICAgIHJjID0g YW1kX2lvbW11X2luaXRfb25lKGlvbW11LCAheHQpOwo+ICAgICAgICAgICBpZiAoIHJjICkKPiAg ICAgICAgICAgICAgIGdvdG8gZXJyb3Jfb3V0Owo+ICAgICAgIH0KPiBAQCAtMTM2Myw2ICsxNDMz LDQwIEBAIGVycm9yX291dDoKPiAgICAgICByZXR1cm4gcmM7Cj4gICB9Cj4gICAKPiAraW50IF9f aW5pdCBhbWRfaW9tbXVfaW5pdF9pbnRlcnJ1cHQodm9pZCkKPiArewo+ICsgICAgc3RydWN0IGFt ZF9pb21tdSAqaW9tbXU7Cj4gKyAgICBpbnQgcmMgPSAwOwo+ICsKPiArICAgIGZvcl9lYWNoX2Ft ZF9pb21tdSAoIGlvbW11ICkKPiArICAgIHsKPiArICAgICAgICBzdHJ1Y3QgaXJxX2Rlc2MgKmRl c2M7Cj4gKwo+ICsgICAgICAgIGlmICggIXNldF9pb21tdV9pbnRlcnJ1cHRfaGFuZGxlcihpb21t dSkgKQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgcmMgPSAtRUlPOwo+ICsgICAgICAgICAg ICBicmVhazsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIGRlc2MgPSBpcnFfdG9fZGVzYyhp b21tdS0+bXNpLmlycSk7Cj4gKwo+ICsgICAgICAgIHNwaW5fbG9jaygmZGVzYy0+bG9jayk7Cj4g KyAgICAgICAgQVNTRVJUKGlvbW11LT5jdHJsLmludF9jYXBfeHRfZW4pOwo+ICsgICAgICAgIHNl dF94MmFwaWNfYWZmaW5pdHkoZGVzYywgJmNwdV9vbmxpbmVfbWFwKTsKPiArICAgICAgICBzcGlu X3VubG9jaygmZGVzYy0+bG9jayk7Cj4gKwo+ICsgICAgICAgIHNldF9pb21tdV9ldmVudF9sb2df Y29udHJvbChpb21tdSwgSU9NTVVfQ09OVFJPTF9FTkFCTEVEKTsKPiArCj4gKyAgICAgICAgaWYg KCBpb21tdS0+ZmVhdHVyZXMuZmxkcy5wcHJfc3VwICkKPiArICAgICAgICAgICAgc2V0X2lvbW11 X3Bwcl9sb2dfY29udHJvbChpb21tdSwgSU9NTVVfQ09OVFJPTF9FTkFCTEVEKTsKPiArICAgIH0K PiArCj4gKyAgICBpZiAoIHJjICkKPiArICAgICAgICBhbWRfaW9tbXVfaW5pdF9jbGVhbnVwKCk7 Cj4gKwo+ICsgICAgcmV0dXJuIHJjOwo+ICt9Cj4gKwo+ICAgc3RhdGljIHZvaWQgaW52YWxpZGF0 ZV9hbGxfZG9tYWluX3BhZ2VzKHZvaWQpCj4gICB7Cj4gICAgICAgc3RydWN0IGRvbWFpbiAqZDsK PiAtLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW50ci5jCj4gKysrIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2ludHIuYwo+IEBAIC03OTEsNiArNzkx LDM1IEBAIHZvaWQgKl9faW5pdCBhbWRfaW9tbXVfYWxsb2NfaW50cmVtYXBfdGEKPiAgICAgICBy ZXR1cm4gdGI7Cj4gICB9Cj4gICAKPiArYm9vbCBfX2luaXQgaW92X3N1cHBvcnRzX3h0KHZvaWQp Cj4gK3sKPiArICAgIHVuc2lnbmVkIGludCBhcGljOwo+ICsKPiArICAgIGlmICggIWlvbW11X2Vu YWJsZSB8fCAhaW9tbXVfaW50cmVtYXAgKQo+ICsgICAgICAgIHJldHVybiBmYWxzZTsKPiArCj4g KyAgICBpZiAoIGFtZF9pb21tdV9wcmVwYXJlKHRydWUpICkKPiArICAgICAgICByZXR1cm4gZmFs c2U7Cj4gKwo+ICsgICAgZm9yICggYXBpYyA9IDA7IGFwaWMgPCBucl9pb2FwaWNzOyBhcGljKysg KQo+ICsgICAgewo+ICsgICAgICAgIHVuc2lnbmVkIGludCBpZHggPSBpb2FwaWNfaWRfdG9faW5k ZXgoSU9fQVBJQ19JRChhcGljKSk7Cj4gKwo+ICsgICAgICAgIGlmICggaWR4ID09IE1BWF9JT19B UElDUyApCj4gKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKPiArCj4gKyAgICAgICAgaWYgKCAh ZmluZF9pb21tdV9mb3JfZGV2aWNlKGlvYXBpY19zYmRmW2lkeF0uc2VnLAo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpb2FwaWNfc2JkZltpZHhdLmJkZikgKQo+ICsgICAg ICAgIHsKPiArICAgICAgICAgICAgQU1EX0lPTU1VX0RFQlVHKCJObyBJT01NVSBmb3IgSU8tQVBJ QyAlI3ggKElEICV4KVxuIiwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwaWMsIElP X0FQSUNfSUQoYXBpYykpOwo+ICsgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cj4gKyAgICAgICAg fQo+ICsgICAgfQo+ICsKPiArICAgIHJldHVybiB0cnVlOwo+ICt9Cj4gKwo+ICAgaW50IF9faW5p dCBhbWRfc2V0dXBfaHBldF9tc2koc3RydWN0IG1zaV9kZXNjICptc2lfZGVzYykKPiAgIHsKPiAg ICAgICBzcGlubG9ja190ICpsb2NrOwo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Ft ZC9wY2lfYW1kX2lvbW11LmMKPiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNp X2FtZF9pb21tdS5jCj4gQEAgLTE3MCw3ICsxNzAsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBpb3Zf ZGV0ZWN0KHZvaWQpCj4gICAgICAgaWYgKCAhaW9tbXVfZW5hYmxlICYmICFpb21tdV9pbnRyZW1h cCApCj4gICAgICAgICAgIHJldHVybiAwOwo+ICAgCj4gLSAgICBpZiAoIGFtZF9pb21tdV9pbml0 KCkgIT0gMCApCj4gKyAgICBlbHNlIGlmICggKGluaXRfZG9uZSA/IGFtZF9pb21tdV9pbml0X2lu dGVycnVwdCgpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICA6IGFtZF9pb21tdV9pbml0KGZh bHNlKSkgIT0gMCApCj4gICAgICAgewo+ICAgICAgICAgICBwcmludGsoIkFNRC1WaTogRXJyb3Ig aW5pdGlhbGl6YXRpb25cbiIpOwo+ICAgICAgICAgICByZXR1cm4gLUVOT0RFVjsKPiBAQCAtMTgz LDYgKzE4NCwyNSBAQCBzdGF0aWMgaW50IF9faW5pdCBpb3ZfZGV0ZWN0KHZvaWQpCj4gICAgICAg cmV0dXJuIHNjYW5fcGNpX2RldmljZXMoKTsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgaW50IGlvdl9l bmFibGVfeHQodm9pZCkKPiArewo+ICsgICAgaW50IHJjOwo+ICsKPiArICAgIGlmICggc3lzdGVt X3N0YXRlID49IFNZU19TVEFURV9hY3RpdmUgKQo+ICsgICAgICAgIHJldHVybiAwOwo+ICsKPiAr ICAgIGlmICggKHJjID0gYW1kX2lvbW11X2luaXQodHJ1ZSkpICE9IDAgKQo+ICsgICAgewo+ICsg ICAgICAgIHByaW50aygiQU1ELVZpOiBFcnJvciAlZCBpbml0aWFsaXppbmcgZm9yIHgyQVBJQyBt b2RlXG4iLCByYyk7Cj4gKyAgICAgICAgLyogLUVOWElPIGhhcyBzcGVjaWFsIG1lYW5pbmcgdG8g dGhlIGNhbGxlciAtIGNvbnZlcnQgaXQuICovCj4gKyAgICAgICAgcmV0dXJuIHJjICE9IC1FTlhJ TyA/IHJjIDogLUVOT0RBVEE7Cj4gKyAgICB9Cj4gKwo+ICsgICAgaW5pdF9kb25lID0gdHJ1ZTsK PiArCj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICsKPiAgIGludCBhbWRfaW9tbXVfYWxsb2Nfcm9v dChzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCkKPiAgIHsKPiAgICAgICBpZiAoIHVubGlrZWx5KCFo ZC0+YXJjaC5yb290X3RhYmxlKSApCj4gQEAgLTU1OSwxMSArNTc5LDEzIEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgaW9tbXVfb3BzIF9faW5pdGNvbnMKPiAgICAgICAuZnJlZV9wYWdlX3RhYmxlID0g ZGVhbGxvY2F0ZV9wYWdlX3RhYmxlLAo+ICAgICAgIC5yZWFzc2lnbl9kZXZpY2UgPSByZWFzc2ln bl9kZXZpY2UsCj4gICAgICAgLmdldF9kZXZpY2VfZ3JvdXBfaWQgPSBhbWRfaW9tbXVfZ3JvdXBf aWQsCj4gKyAgICAuZW5hYmxlX3gyYXBpYyA9IGlvdl9lbmFibGVfeHQsCj4gICAgICAgLnVwZGF0 ZV9pcmVfZnJvbV9hcGljID0gYW1kX2lvbW11X2lvYXBpY191cGRhdGVfaXJlLAo+ICAgICAgIC51 cGRhdGVfaXJlX2Zyb21fbXNpID0gYW1kX2lvbW11X21zaV9tc2dfdXBkYXRlX2lyZSwKPiAgICAg ICAucmVhZF9hcGljX2Zyb21faXJlID0gYW1kX2lvbW11X3JlYWRfaW9hcGljX2Zyb21faXJlLAo+ ICAgICAgIC5yZWFkX21zaV9mcm9tX2lyZSA9IGFtZF9pb21tdV9yZWFkX21zaV9mcm9tX2lyZSwK PiAgICAgICAuc2V0dXBfaHBldF9tc2kgPSBhbWRfc2V0dXBfaHBldF9tc2ksCj4gKyAgICAuYWRq dXN0X2lycV9hZmZpbml0aWVzID0gaW92X2FkanVzdF9pcnFfYWZmaW5pdGllcywKPiAgICAgICAu c3VzcGVuZCA9IGFtZF9pb21tdV9zdXNwZW5kLAo+ICAgICAgIC5yZXN1bWUgPSBhbWRfaW9tbXVf cmVzdW1lLAo+ICAgICAgIC5zaGFyZV9wMm0gPSBhbWRfaW9tbXVfc2hhcmVfcDJtLAo+IEBAIC01 NzQsNCArNTk2LDUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMgX19pbml0Y29ucwo+ ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBpb21tdV9pbml0X29wcyBfX2luaXRjb25zdHJlbCBfaW9t bXVfaW5pdF9vcHMgPSB7Cj4gICAgICAgLm9wcyA9ICZfaW9tbXVfb3BzLAo+ICAgICAgIC5zZXR1 cCA9IGlvdl9kZXRlY3QsCj4gKyAgICAuc3VwcG9ydHNfeDJhcGljID0gaW92X3N1cHBvcnRzX3h0 LAo+ICAgfTsKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlvbW11LXBy b3RvLmgKPiArKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlvbW11LXByb3Rv LmgKPiBAQCAtNDgsOCArNDgsMTEgQEAgaW50IGFtZF9pb21tdV9kZXRlY3RfYWNwaSh2b2lkKTsK PiAgIHZvaWQgZ2V0X2lvbW11X2ZlYXR1cmVzKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KTsKPiAg IAo+ICAgLyogYW1kLWlvbW11LWluaXQgZnVuY3Rpb25zICovCj4gLWludCBhbWRfaW9tbXVfaW5p dCh2b2lkKTsKPiAraW50IGFtZF9pb21tdV9wcmVwYXJlKGJvb2wgeHQpOwo+ICtpbnQgYW1kX2lv bW11X2luaXQoYm9vbCB4dCk7Cj4gK2ludCBhbWRfaW9tbXVfaW5pdF9pbnRlcnJ1cHQodm9pZCk7 Cj4gICBpbnQgYW1kX2lvbW11X3VwZGF0ZV9pdnJzX21hcHBpbmdfYWNwaSh2b2lkKTsKPiAraW50 IGlvdl9hZGp1c3RfaXJxX2FmZmluaXRpZXModm9pZCk7Cj4gICAKPiAgIC8qIG1hcHBpbmcgZnVu Y3Rpb25zICovCj4gICBpbnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV9tYXBfcGFnZShzdHJ1Y3Qg ZG9tYWluICpkLCBkZm5fdCBkZm4sCj4gQEAgLTk2LDYgKzk5LDcgQEAgdm9pZCBhbWRfaW9tbXVf Zmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3QgYQo+ICAgc3RydWN0IGFtZF9pb21tdSAqZmluZF9pb21t dV9mb3JfZGV2aWNlKGludCBzZWcsIGludCBiZGYpOwo+ICAgCj4gICAvKiBpbnRlcnJ1cHQgcmVt YXBwaW5nICovCj4gK2Jvb2wgaW92X3N1cHBvcnRzX3h0KHZvaWQpOwo+ICAgaW50IGFtZF9pb21t dV9zZXR1cF9pb2FwaWNfcmVtYXBwaW5nKHZvaWQpOwo+ICAgdm9pZCAqYW1kX2lvbW11X2FsbG9j X2ludHJlbWFwX3RhYmxlKAo+ICAgICAgIGNvbnN0IHN0cnVjdCBhbWRfaW9tbXUgKiwgdW5zaWdu ZWQgbG9uZyAqKik7Cj4gCgotLSAKQnJpYW4gV29vZHMKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h bi9saXN0aW5mby94ZW4tZGV2ZWw=