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=-10.0 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 1EEAEC433E1 for ; Fri, 14 Aug 2020 06:14:42 +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 C4FF720708 for ; Fri, 14 Aug 2020 06:14:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=intel.onmicrosoft.com header.i=@intel.onmicrosoft.com header.b="soJxrPib" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C4FF720708 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass 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.92) (envelope-from ) id 1k6Syq-0000nn-My; Fri, 14 Aug 2020 06:14:20 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1k6Syo-0000ni-Mb for xen-devel@lists.xenproject.org; Fri, 14 Aug 2020 06:14:18 +0000 X-Inumbo-ID: 612054f2-3bf8-46ce-a959-3bb6af74e2c5 Received: from mga01.intel.com (unknown [192.55.52.88]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 612054f2-3bf8-46ce-a959-3bb6af74e2c5; Fri, 14 Aug 2020 06:14:16 +0000 (UTC) IronPort-SDR: pS4JX6Gr0KfzdHsZP68Y/mBie8oAwJtsfMDHQndrOUNtzFV2l21aM/9w8UWGc9NIrTjsuL+b7W MXlIaKn1UkkQ== X-IronPort-AV: E=McAfee;i="6000,8403,9712"; a="172410813" X-IronPort-AV: E=Sophos;i="5.76,311,1592895600"; d="scan'208";a="172410813" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Aug 2020 23:14:15 -0700 IronPort-SDR: a/LGnsfUKSHHy9w3dEQAVEitaTQMHDOLnZOjIgQ33rg4xIHc7Je43OpO9a0l3c0ueChtfGj0xE lOZ/yuyhTRuA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,311,1592895600"; d="scan'208";a="333330748" Received: from orsmsx601-2.jf.intel.com (HELO ORSMSX601.amr.corp.intel.com) ([10.22.229.81]) by FMSMGA003.fm.intel.com with ESMTP; 13 Aug 2020 23:14:14 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 13 Aug 2020 23:14:14 -0700 Received: from orsmsx101.amr.corp.intel.com (10.22.225.128) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 13 Aug 2020 23:14:14 -0700 Received: from ORSEDG002.ED.cps.intel.com (10.7.248.5) by ORSMSX101.amr.corp.intel.com (10.22.225.128) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 13 Aug 2020 23:14:14 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.107) by edgegateway.intel.com (134.134.137.101) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 13 Aug 2020 23:14:04 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LmbxNj1QLL2teKvoRSF1ClLRd9B2PU/QLHmVZBdD3IazX1kIzXQ2B+YegEy5lptHMMD3+jLegSdjAKmnYVHDsji7SxXoEibDhKkRqa88o7brrB1E/HqJ0MQpBP9OINeFjzaIvwfkLMJ9zGRU75q9TCYQVA1g5vXdeB0QFyhlYqugIG+EatZs/Ml07oZj0YZ925FZfIPSggARTgShB/pYywdyBfusc5/hv6kFhWPYPNTMA5CDiHiQrW9wxFkUbWZqbWfJoEx38m5RHebGMQ11IouEg5U8kh4eGBGbb5bCEJpImBthK+vjooL3mt0aUK7ObUcJAC+CdSQ/TjgXAYtVeg== 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=c2xmVoSykrpUOiJeCWGBZ33qmBbsx549BBR3T0WAYUs=; b=n+YcUMgGWtMxnZ+yljEZswXBSXUYMTt0Khhf/hd09JLIqhcZy+ddPSevsEg/H3VT4BWRD0UpCwGfNLyqmOpavxVrvpxboBFPoD100Fr3iBZpXkgBj9Z+wXMsC8y5udrxX0atdRvmkVOtf7KP4o+Ld1cvetQKibrLLA0t0MZW1+bHSqLodoynjSopw7nWQy62RTltoZNCduuLgw66UGFGvIk8C7EhBPnmWY5/mMmzzUqMqYLDCJM1hhweQJDp8U14vD+BfPz2lWzvi7OHlE3owr7QWuIwvhk6i7IKZZAnLn7oMF7bo3Qo9j4RVkWShNQw1SKZXH1cPje6S2WXcoyS7A== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=c2xmVoSykrpUOiJeCWGBZ33qmBbsx549BBR3T0WAYUs=; b=soJxrPibgx9WO92XVKsGZkSKB3Cs0iT531PxEhKqBd2/L88SsWuHbhsKu42+pjCmesB7Kv27Q9p2IKVv7ygWfktzRu9iH/vuHqZwSaDkY6BxfYuzaJAarPEiXOOpi2324ibolDWGr0jhqHZn7vvlgu3w4cvesCqmkAnt9tfJ5ac= Received: from MWHPR11MB1645.namprd11.prod.outlook.com (2603:10b6:301:b::12) by MWHPR1101MB2159.namprd11.prod.outlook.com (2603:10b6:301:53::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.15; Fri, 14 Aug 2020 06:14:03 +0000 Received: from MWHPR11MB1645.namprd11.prod.outlook.com ([fe80::6dfe:feb8:25f1:ac9c]) by MWHPR11MB1645.namprd11.prod.outlook.com ([fe80::6dfe:feb8:25f1:ac9c%7]) with mapi id 15.20.3283.016; Fri, 14 Aug 2020 06:14:03 +0000 From: "Tian, Kevin" To: Paul Durrant , "xen-devel@lists.xenproject.org" CC: Paul Durrant , Jan Beulich , Lukasz Hawrylko , Andrew Cooper , Wei Liu , =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= Subject: RE: [PATCH v4 01/14] x86/iommu: re-arrange arch_iommu to separate common fields... Thread-Topic: [PATCH v4 01/14] x86/iommu: re-arrange arch_iommu to separate common fields... Thread-Index: AQHWamUYOe/ZFbVldUqHCLS4UbPVNak3LkZw Date: Fri, 14 Aug 2020 06:14:03 +0000 Message-ID: References: <20200804134209.8717-1-paul@xen.org> <20200804134209.8717-2-paul@xen.org> In-Reply-To: <20200804134209.8717-2-paul@xen.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: xen.org; dkim=none (message not signed) header.d=none;xen.org; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.201] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 10f26a02-4131-41d3-2d0b-08d840193e1f x-ms-traffictypediagnostic: MWHPR1101MB2159: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1443; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR11MB1645.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(366004)(396003)(376002)(346002)(39860400002)(64756008)(186003)(66446008)(7696005)(66476007)(83380400001)(52536014)(76116006)(66946007)(5660300002)(478600001)(26005)(66556008)(71200400001)(8936002)(33656002)(6506007)(86362001)(54906003)(9686003)(8676002)(110136005)(316002)(4326008)(30864003)(2906002)(55016002)(309714004); DIR:OUT; SFP:1102; x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR11MB1645.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 10f26a02-4131-41d3-2d0b-08d840193e1f X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Aug 2020 06:14:03.1036 (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: WxfFwjj2k0G/nrx3fy9I3IVlqCHifufByhUVMRx8SkgIkxO5HlWlpHfpbM8jENaQ6BmxD9ntlWSZPKYw6ZQY5w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1101MB2159 X-OriginatorOrg: intel.com X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" PiBGcm9tOiBQYXVsIER1cnJhbnQgPHBhdWxAeGVuLm9yZz4NCj4gU2VudDogVHVlc2RheSwgQXVn dXN0IDQsIDIwMjAgOTo0MiBQTQ0KPiANCj4gRnJvbTogUGF1bCBEdXJyYW50IDxwZHVycmFudEBh bWF6b24uY29tPg0KPiANCj4gLi4uIGZyb20gdGhvc2Ugc3BlY2lmaWMgdG8gVlQtZCBvciBBTUQg SU9NTVUsIGFuZCBwdXQgdGhlIGxhdHRlciBpbiBhIHVuaW9uLg0KPiANCj4gVGhlcmUgaXMgbm8g ZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhpcyBwYXRjaCwgYWx0aG91Z2ggdGhlIGluaXRpYWxpemF0 aW9uIG9mDQo+IHRoZSAnbWFwcGVkX3JtcnJzJyBsaXN0IG9jY3VycyBzbGlnaHRseSBsYXRlciBp biBpb21tdV9kb21haW5faW5pdCgpIHNpbmNlDQo+IGl0IGlzIG5vdyBkb25lIChjb3JyZWN0bHkp IGluIFZULWQgc3BlY2lmaWMgY29kZSByYXRoZXIgdGhhbiBpbiBnZW5lcmFsIHg4Ng0KPiBjb2Rl Lg0KPiANCj4gTk9URTogSSBoYXZlIG5vdCBjb21iaW5lZCB0aGUgQU1EIElPTU1VICdyb290X3Rh YmxlJyBhbmQgVlQtZA0KPiAncGdkX21hZGRyJw0KPiAgICAgICBmaWVsZHMgZXZlbiB0aG91Z2gg dGhleSBwZXJmb3JtIGVzc2VudGlhbGx5IHRoZSBzYW1lIGZ1bmN0aW9uLiBUaGUNCj4gICAgICAg Y29uY2VwdCBvZiAncm9vdCB0YWJsZScgaW4gdGhlIFZULWQgY29kZSBpcyBkaWZmZXJlbnQgZnJv bSB0aGF0IGluIHRoZQ0KPiAgICAgICBBTUQgY29kZSBzbyBhdHRlbXB0aW5nIHRvIHVzZSBhIGNv bW1vbiBuYW1lIHdpbGwgcHJvYmFibHkgb25seSBzZXJ2ZQ0KPiAgICAgICB0byBjb25mdXNlIHRo ZSByZWFkZXIuDQoNCiJyb290IHRhYmxlIiBpbiBWVC1kIGlzIGFuIGFyY2hpdGVjdHVyZSBkZWZp bml0aW9uIGluIHNwZWMuIEJ1dCBJIGRpZG4ndA0Kc2VlIHRoZSBzYW1lIHRlcm0gaW4gQU1EIElP TU1VIHNwZWMgKHJldjMuMDApLiBJbnN0ZWFkLCBpdCBtZW50aW9ucw0KSS9PIHBhZ2UgdGFibGVz IGluIG1hbnkgcGxhY2VzLiBJdCBnYXZlIG1lIHRoZSBpbXByZXNzaW9uIHRoYXQgJ3Jvb3QNCnRh YmxlJyBpbiBBTUQgY29kZSBpcyBqdXN0IGEgc29mdHdhcmUgdGVybSwgdGh1cyByZXBsYWNpbmcg aXQgd2l0aCBhDQphIGNvbW1vbiBuYW1lIG1ha2VzIG1vcmUgc2Vuc2UuDQoNCkJ1dCBldmVuIGlm IGl0J3MgcmlnaHQgdGhpbmcgaXQgY291bGQgY29tZSBhcyBhIHNlcGFyYXRlIHBhdGNoLCB0aHVz Og0KDQpSZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+DQoNCj4g DQo+IFNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGR1cnJhbnRAYW1hem9uLmNvbT4NCj4g QWNrZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4gLS0tDQo+IENjOiBM dWthc3ogSGF3cnlsa28gPGx1a2Fzei5oYXdyeWxrb0BsaW51eC5pbnRlbC5jb20+DQo+IENjOiBB bmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPg0KPiBDYzogV2VpIExpdSA8 d2xAeGVuLm9yZz4NCj4gQ2M6ICJSb2dlciBQYXUgTW9ubsOpIiA8cm9nZXIucGF1QGNpdHJpeC5j b20+DQo+IENjOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4NCj4gDQo+IHY0Og0K PiAgLSBGaXggZm9ybWF0IHNwZWNpZmllciBhcyByZXF1ZXN0ZWQgYnkgSmFuDQo+IA0KPiB2MjoN Cj4gIC0gcy9hbWRfaW9tbXUvYW1kDQo+ICAtIERlZmluaXRpb25zIHN0aWxsIGxlZnQgaW5saW5l IGFzIHJlLWFycmFuZ2VtZW50IGludG8gaW1wbGVtZW50YXRpb24NCj4gICAgaGVhZGVycyBpcyBu b24tdHJpdmlhbA0KPiAgLSBBbHNvIHMvdTY0L3VpbnQ2NF90IGFuZCBzL2ludC91bnNpZ25lZCBp bnQNCj4gLS0tDQo+ICB4ZW4vYXJjaC94ODYvdGJvb3QuYyAgICAgICAgICAgICAgICAgICAgICAg IHwgIDQgKy0NCj4gIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9ndWVzdC5jICAg fCAgOCArKy0tDQo+ICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMgICAg IHwgMTQgKysrLS0tDQo+ICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21t dS5jIHwgMzUgKysrKysrKy0tLS0tLS0NCj4gIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9p b21tdS5jICAgICAgICAgfCA1MyArKysrKysrKysrKy0tLS0tLS0tLS0NCj4gIHhlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jICAgICAgICAgfCAgMSAtDQo+ICB4ZW4vaW5jbHVkZS9h c20teDg2L2lvbW11LmggICAgICAgICAgICAgICAgIHwgMjcgKysrKysrKy0tLS0NCj4gIDcgZmls ZXMgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgNjQgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L3Rib290LmMgYi94ZW4vYXJjaC94ODYvdGJvb3QuYw0KPiBp bmRleCAzMjBlMDZmMTI5Li5lNjZiMDk0MGM0IDEwMDY0NA0KPiAtLS0gYS94ZW4vYXJjaC94ODYv dGJvb3QuYw0KPiArKysgYi94ZW4vYXJjaC94ODYvdGJvb3QuYw0KPiBAQCAtMjMwLDggKzIzMCw4 IEBAIHN0YXRpYyB2b2lkIHRib290X2dlbl9kb21haW5faW50ZWdyaXR5KGNvbnN0IHVpbnQ4X3QN Cj4ga2V5W1RCX0tFWV9TSVpFXSwNCj4gICAgICAgICAgew0KPiAgICAgICAgICAgICAgY29uc3Qg c3RydWN0IGRvbWFpbl9pb21tdSAqZGlvID0gZG9tX2lvbW11KGQpOw0KPiANCj4gLSAgICAgICAg ICAgIHVwZGF0ZV9pb21tdV9tYWMoJmN0eCwgZGlvLT5hcmNoLnBnZF9tYWRkciwNCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYWdhd190b19sZXZlbChkaW8tPmFyY2guYWdhdykpOw0K PiArICAgICAgICAgICAgdXBkYXRlX2lvbW11X21hYygmY3R4LCBkaW8tPmFyY2gudnRkLnBnZF9t YWRkciwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdhd190b19sZXZlbChkaW8t PmFyY2gudnRkLmFnYXcpKTsNCj4gICAgICAgICAgfQ0KPiAgICAgIH0NCj4gDQo+IGRpZmYgLS1n aXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfZ3Vlc3QuYw0KPiBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9ndWVzdC5jDQo+IGluZGV4IDAxNGE3MmE1NGIu LjMwYjczNTNjZDYgMTAwNjQ0DQo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9p b21tdV9ndWVzdC5jDQo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9n dWVzdC5jDQo+IEBAIC01MCwxMiArNTAsMTIgQEAgc3RhdGljIHVpbnQxNl90IGd1ZXN0X2JkZihz dHJ1Y3QgZG9tYWluICpkLCB1aW50MTZfdA0KPiBtYWNoaW5lX2JkZikNCj4gDQo+ICBzdGF0aWMg aW5saW5lIHN0cnVjdCBndWVzdF9pb21tdSAqZG9tYWluX2lvbW11KHN0cnVjdCBkb21haW4gKmQp DQo+ICB7DQo+IC0gICAgcmV0dXJuIGRvbV9pb21tdShkKS0+YXJjaC5nX2lvbW11Ow0KPiArICAg IHJldHVybiBkb21faW9tbXUoZCktPmFyY2guYW1kLmdfaW9tbXU7DQo+ICB9DQo+IA0KPiAgc3Rh dGljIGlubGluZSBzdHJ1Y3QgZ3Vlc3RfaW9tbXUgKnZjcHVfaW9tbXUoc3RydWN0IHZjcHUgKnYp DQo+ICB7DQo+IC0gICAgcmV0dXJuIGRvbV9pb21tdSh2LT5kb21haW4pLT5hcmNoLmdfaW9tbXU7 DQo+ICsgICAgcmV0dXJuIGRvbV9pb21tdSh2LT5kb21haW4pLT5hcmNoLmFtZC5nX2lvbW11Ow0K PiAgfQ0KPiANCj4gIHN0YXRpYyB2b2lkIGd1ZXN0X2lvbW11X2VuYWJsZShzdHJ1Y3QgZ3Vlc3Rf aW9tbXUgKmlvbW11KQ0KPiBAQCAtODIzLDcgKzgyMyw3IEBAIGludCBndWVzdF9pb21tdV9pbml0 KHN0cnVjdCBkb21haW4qIGQpDQo+ICAgICAgZ3Vlc3RfaW9tbXVfcmVnX2luaXQoaW9tbXUpOw0K PiAgICAgIGlvbW11LT5tbWlvX2Jhc2UgPSB+MFVMTDsNCj4gICAgICBpb21tdS0+ZG9tYWluID0g ZDsNCj4gLSAgICBoZC0+YXJjaC5nX2lvbW11ID0gaW9tbXU7DQo+ICsgICAgaGQtPmFyY2guYW1k LmdfaW9tbXUgPSBpb21tdTsNCj4gDQo+ICAgICAgdGFza2xldF9pbml0KCZpb21tdS0+Y21kX2J1 ZmZlcl90YXNrbGV0LA0KPiBndWVzdF9pb21tdV9wcm9jZXNzX2NvbW1hbmQsIGQpOw0KPiANCj4g QEAgLTg0NSw1ICs4NDUsNSBAQCB2b2lkIGd1ZXN0X2lvbW11X2Rlc3Ryb3koc3RydWN0IGRvbWFp biAqZCkNCj4gICAgICB0YXNrbGV0X2tpbGwoJmlvbW11LT5jbWRfYnVmZmVyX3Rhc2tsZXQpOw0K PiAgICAgIHhmcmVlKGlvbW11KTsNCj4gDQo+IC0gICAgZG9tX2lvbW11KGQpLT5hcmNoLmdfaW9t bXUgPSBOVUxMOw0KPiArICAgIGRvbV9pb21tdShkKS0+YXJjaC5hbWQuZ19pb21tdSA9IE5VTEw7 DQo+ICB9DQo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVf bWFwLmMNCj4gYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMNCj4gaW5k ZXggOTNlOTZjZDY5Yy4uNDdiNDQ3MmU4YSAxMDA2NDQNCj4gLS0tIGEveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvYW1kL2lvbW11X21hcC5jDQo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FtZC9pb21tdV9tYXAuYw0KPiBAQCAtMTgwLDggKzE4MCw4IEBAIHN0YXRpYyBpbnQgaW9tbXVf cGRlX2Zyb21fZGZuKHN0cnVjdCBkb21haW4gKmQsDQo+IHVuc2lnbmVkIGxvbmcgZGZuLA0KPiAg ICAgIHN0cnVjdCBwYWdlX2luZm8gKnRhYmxlOw0KPiAgICAgIGNvbnN0IHN0cnVjdCBkb21haW5f aW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOw0KPiANCj4gLSAgICB0YWJsZSA9IGhkLT5hcmNoLnJv b3RfdGFibGU7DQo+IC0gICAgbGV2ZWwgPSBoZC0+YXJjaC5wYWdpbmdfbW9kZTsNCj4gKyAgICB0 YWJsZSA9IGhkLT5hcmNoLmFtZC5yb290X3RhYmxlOw0KPiArICAgIGxldmVsID0gaGQtPmFyY2gu YW1kLnBhZ2luZ19tb2RlOw0KPiANCj4gICAgICBCVUdfT04oIHRhYmxlID09IE5VTEwgfHwgbGV2 ZWwgPCAxIHx8IGxldmVsID4gNiApOw0KPiANCj4gQEAgLTMyNSw3ICszMjUsNyBAQCBpbnQgYW1k X2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwNCj4gZGZuX3QgZGZuLA0KPiANCj4g ICAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7DQo+IA0KPiAtICAgIGlmICgg IWhkLT5hcmNoLnJvb3RfdGFibGUgKQ0KPiArICAgIGlmICggIWhkLT5hcmNoLmFtZC5yb290X3Rh YmxlICkNCj4gICAgICB7DQo+ICAgICAgICAgIHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5n X2xvY2spOw0KPiAgICAgICAgICByZXR1cm4gMDsNCj4gQEAgLTQ1MCw3ICs0NTAsNyBAQCBpbnQg X19pbml0IGFtZF9pb21tdV9xdWFyYW50aW5lX2luaXQoc3RydWN0DQo+IGRvbWFpbiAqZCkNCj4g ICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwgPSBhbWRfaW9tbXVfZ2V0X3BhZ2luZ19tb2RlKGVuZF9n Zm4pOw0KPiAgICAgIHN0cnVjdCBhbWRfaW9tbXVfcHRlICp0YWJsZTsNCj4gDQo+IC0gICAgaWYg KCBoZC0+YXJjaC5yb290X3RhYmxlICkNCj4gKyAgICBpZiAoIGhkLT5hcmNoLmFtZC5yb290X3Rh YmxlICkNCj4gICAgICB7DQo+ICAgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOw0KPiAgICAg ICAgICByZXR1cm4gMDsNCj4gQEAgLTQ1OCwxMSArNDU4LDExIEBAIGludCBfX2luaXQgYW1kX2lv bW11X3F1YXJhbnRpbmVfaW5pdChzdHJ1Y3QNCj4gZG9tYWluICpkKQ0KPiANCj4gICAgICBzcGlu X2xvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7DQo+IA0KPiAtICAgIGhkLT5hcmNoLnJvb3Rf dGFibGUgPSBhbGxvY19hbWRfaW9tbXVfcGd0YWJsZSgpOw0KPiAtICAgIGlmICggIWhkLT5hcmNo LnJvb3RfdGFibGUgKQ0KPiArICAgIGhkLT5hcmNoLmFtZC5yb290X3RhYmxlID0gYWxsb2NfYW1k X2lvbW11X3BndGFibGUoKTsNCj4gKyAgICBpZiAoICFoZC0+YXJjaC5hbWQucm9vdF90YWJsZSAp DQo+ICAgICAgICAgIGdvdG8gb3V0Ow0KPiANCj4gLSAgICB0YWJsZSA9IF9fbWFwX2RvbWFpbl9w YWdlKGhkLT5hcmNoLnJvb3RfdGFibGUpOw0KPiArICAgIHRhYmxlID0gX19tYXBfZG9tYWluX3Bh Z2UoaGQtPmFyY2guYW1kLnJvb3RfdGFibGUpOw0KPiAgICAgIHdoaWxlICggbGV2ZWwgKQ0KPiAg ICAgIHsNCj4gICAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGc7DQo+IGRpZmYgLS1naXQgYS94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jDQo+IGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYw0KPiBpbmRleCA1ZjVmNGEyZWFjLi4w OWEwNWY5ZDc1IDEwMDY0NA0KPiAtLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNp X2FtZF9pb21tdS5jDQo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1k X2lvbW11LmMNCj4gQEAgLTkxLDcgKzkxLDggQEAgc3RhdGljIHZvaWQgYW1kX2lvbW11X3NldHVw X2RvbWFpbl9kZXZpY2UoDQo+ICAgICAgdTggYnVzID0gcGRldi0+YnVzOw0KPiAgICAgIGNvbnN0 IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGRvbWFpbik7DQo+IA0KPiAtICAg IEJVR19PTiggIWhkLT5hcmNoLnJvb3RfdGFibGUgfHwgIWhkLT5hcmNoLnBhZ2luZ19tb2RlIHx8 DQo+ICsgICAgQlVHX09OKCAhaGQtPmFyY2guYW1kLnJvb3RfdGFibGUgfHwNCj4gKyAgICAgICAg ICAgICFoZC0+YXJjaC5hbWQucGFnaW5nX21vZGUgfHwNCj4gICAgICAgICAgICAgICFpb21tdS0+ ZGV2X3RhYmxlLmJ1ZmZlciApOw0KPiANCj4gICAgICBpZiAoIGlvbW11X2h3ZG9tX3Bhc3N0aHJv dWdoICYmIGlzX2hhcmR3YXJlX2RvbWFpbihkb21haW4pICkNCj4gQEAgLTExMCw4ICsxMTEsOCBA QCBzdGF0aWMgdm9pZCBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2RldmljZSgNCj4gDQo+ICAgICAg ICAgIC8qIGJpbmQgRFRFIHRvIGRvbWFpbiBwYWdlLXRhYmxlcyAqLw0KPiAgICAgICAgICBhbWRf aW9tbXVfc2V0X3Jvb3RfcGFnZV90YWJsZSgNCj4gLSAgICAgICAgICAgIGR0ZSwgcGFnZV90b19t YWRkcihoZC0+YXJjaC5yb290X3RhYmxlKSwgZG9tYWluLT5kb21haW5faWQsDQo+IC0gICAgICAg ICAgICBoZC0+YXJjaC5wYWdpbmdfbW9kZSwgdmFsaWQpOw0KPiArICAgICAgICAgICAgZHRlLCBw YWdlX3RvX21hZGRyKGhkLT5hcmNoLmFtZC5yb290X3RhYmxlKSwNCj4gKyAgICAgICAgICAgIGRv bWFpbi0+ZG9tYWluX2lkLCBoZC0+YXJjaC5hbWQucGFnaW5nX21vZGUsIHZhbGlkKTsNCj4gDQo+ ICAgICAgICAgIC8qIFVuZG8gd2hhdCBhbWRfaW9tbXVfZGlzYWJsZV9kb21haW5fZGV2aWNlKCkg bWF5IGhhdmUgZG9uZS4NCj4gKi8NCj4gICAgICAgICAgaXZyc19kZXYgPSAmZ2V0X2l2cnNfbWFw cGluZ3MoaW9tbXUtPnNlZylbcmVxX2lkXTsNCj4gQEAgLTEzMSw4ICsxMzIsOCBAQCBzdGF0aWMg dm9pZCBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2RldmljZSgNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICJyb290IHRhYmxlID0gJSMiUFJJeDY0IiwgIg0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgImRvbWFpbiA9ICVkLCBwYWdpbmcgbW9kZSA9ICVkXG4iLA0KPiAgICAgICAgICAgICAg ICAgICAgICAgICAgcmVxX2lkLCBwZGV2LT50eXBlLA0KPiAtICAgICAgICAgICAgICAgICAgICAg ICAgcGFnZV90b19tYWRkcihoZC0+YXJjaC5yb290X3RhYmxlKSwNCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLCBoZC0+YXJjaC5wYWdpbmdfbW9kZSk7DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBwYWdlX3RvX21hZGRyKGhkLT5hcmNoLmFtZC5yb290X3Rh YmxlKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLCBoZC0+ YXJjaC5hbWQucGFnaW5nX21vZGUpOw0KPiAgICAgIH0NCj4gDQo+ICAgICAgc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsNCj4gQEAgLTIwNiwxMCArMjA3LDEwIEBA IHN0YXRpYyBpbnQgaW92X2VuYWJsZV94dCh2b2lkKQ0KPiANCj4gIGludCBhbWRfaW9tbXVfYWxs b2Nfcm9vdChzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCkNCj4gIHsNCj4gLSAgICBpZiAoIHVubGlr ZWx5KCFoZC0+YXJjaC5yb290X3RhYmxlKSApDQo+ICsgICAgaWYgKCB1bmxpa2VseSghaGQtPmFy Y2guYW1kLnJvb3RfdGFibGUpICkNCj4gICAgICB7DQo+IC0gICAgICAgIGhkLT5hcmNoLnJvb3Rf dGFibGUgPSBhbGxvY19hbWRfaW9tbXVfcGd0YWJsZSgpOw0KPiAtICAgICAgICBpZiAoICFoZC0+ YXJjaC5yb290X3RhYmxlICkNCj4gKyAgICAgICAgaGQtPmFyY2guYW1kLnJvb3RfdGFibGUgPSBh bGxvY19hbWRfaW9tbXVfcGd0YWJsZSgpOw0KPiArICAgICAgICBpZiAoICFoZC0+YXJjaC5hbWQu cm9vdF90YWJsZSApDQo+ICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4gICAgICB9DQo+ IA0KPiBAQCAtMjM5LDcgKzI0MCw3IEBAIHN0YXRpYyBpbnQgYW1kX2lvbW11X2RvbWFpbl9pbml0 KHN0cnVjdCBkb21haW4gKmQpDQo+ICAgICAgICogICBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlIHdl IGdpdmUgaXQsIGJ1dCB0aGlzIGlzbid0IGtub3duIHlldCBzbyB1c2UgNA0KPiAgICAgICAqICAg dW5pbGF0ZXJhbGx5Lg0KPiAgICAgICAqLw0KPiAtICAgIGhkLT5hcmNoLnBhZ2luZ19tb2RlID0g YW1kX2lvbW11X2dldF9wYWdpbmdfbW9kZSgNCj4gKyAgICBoZC0+YXJjaC5hbWQucGFnaW5nX21v ZGUgPSBhbWRfaW9tbXVfZ2V0X3BhZ2luZ19tb2RlKA0KPiAgICAgICAgICBpc19odm1fZG9tYWlu KGQpDQo+ICAgICAgICAgID8gMXVsIDw8IChERUZBVUxUX0RPTUFJTl9BRERSRVNTX1dJRFRIIC0g UEFHRV9TSElGVCkNCj4gICAgICAgICAgOiBnZXRfdXBwZXJfbWZuX2JvdW5kKCkgKyAxKTsNCj4g QEAgLTMwNSw3ICszMDYsNyBAQCBzdGF0aWMgdm9pZA0KPiBhbWRfaW9tbXVfZGlzYWJsZV9kb21h aW5fZGV2aWNlKGNvbnN0IHN0cnVjdCBkb21haW4gKmRvbWFpbiwNCj4gICAgICAgICAgQU1EX0lP TU1VX0RFQlVHKCJEaXNhYmxlOiBkZXZpY2UgaWQgPSAlI3gsICINCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICJkb21haW4gPSAlZCwgcGFnaW5nIG1vZGUgPSAlZFxuIiwNCj4gICAgICAgICAg ICAgICAgICAgICAgICAgIHJlcV9pZCwgIGRvbWFpbi0+ZG9tYWluX2lkLA0KPiAtICAgICAgICAg ICAgICAgICAgICAgICAgZG9tX2lvbW11KGRvbWFpbiktPmFyY2gucGFnaW5nX21vZGUpOw0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgZG9tX2lvbW11KGRvbWFpbiktPmFyY2guYW1kLnBhZ2lu Z19tb2RlKTsNCj4gICAgICB9DQo+ICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUt PmxvY2ssIGZsYWdzKTsNCj4gDQo+IEBAIC00MjAsMTAgKzQyMSwxMSBAQCBzdGF0aWMgdm9pZCBk ZWFsbG9jYXRlX2lvbW11X3BhZ2VfdGFibGVzKHN0cnVjdA0KPiBkb21haW4gKmQpDQo+ICAgICAg c3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7DQo+IA0KPiAgICAgIHNwaW5f bG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsNCj4gLSAgICBpZiAoIGhkLT5hcmNoLnJvb3Rf dGFibGUgKQ0KPiArICAgIGlmICggaGQtPmFyY2guYW1kLnJvb3RfdGFibGUgKQ0KPiAgICAgIHsN Cj4gLSAgICAgICAgZGVhbGxvY2F0ZV9uZXh0X3BhZ2VfdGFibGUoaGQtPmFyY2gucm9vdF90YWJs ZSwgaGQtDQo+ID5hcmNoLnBhZ2luZ19tb2RlKTsNCj4gLSAgICAgICAgaGQtPmFyY2gucm9vdF90 YWJsZSA9IE5VTEw7DQo+ICsgICAgICAgIGRlYWxsb2NhdGVfbmV4dF9wYWdlX3RhYmxlKGhkLT5h cmNoLmFtZC5yb290X3RhYmxlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBoZC0+YXJjaC5hbWQucGFnaW5nX21vZGUpOw0KPiArICAgICAgICBoZC0+YXJjaC5hbWQucm9v dF90YWJsZSA9IE5VTEw7DQo+ICAgICAgfQ0KPiAgICAgIHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5t YXBwaW5nX2xvY2spOw0KPiAgfQ0KPiBAQCAtNTk4LDExICs2MDAsMTIgQEAgc3RhdGljIHZvaWQg YW1kX2R1bXBfcDJtX3RhYmxlKHN0cnVjdCBkb21haW4NCj4gKmQpDQo+ICB7DQo+ICAgICAgY29u c3Qgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7DQo+IA0KPiAtICAgIGlm ICggIWhkLT5hcmNoLnJvb3RfdGFibGUgKQ0KPiArICAgIGlmICggIWhkLT5hcmNoLmFtZC5yb290 X3RhYmxlICkNCj4gICAgICAgICAgcmV0dXJuOw0KPiANCj4gLSAgICBwcmludGsoInAybSB0YWJs ZSBoYXMgJWQgbGV2ZWxzXG4iLCBoZC0+YXJjaC5wYWdpbmdfbW9kZSk7DQo+IC0gICAgYW1kX2R1 bXBfcDJtX3RhYmxlX2xldmVsKGhkLT5hcmNoLnJvb3RfdGFibGUsIGhkLQ0KPiA+YXJjaC5wYWdp bmdfbW9kZSwgMCwgMCk7DQo+ICsgICAgcHJpbnRrKCJwMm0gdGFibGUgaGFzICV1IGxldmVsc1xu IiwgaGQtPmFyY2guYW1kLnBhZ2luZ19tb2RlKTsNCj4gKyAgICBhbWRfZHVtcF9wMm1fdGFibGVf bGV2ZWwoaGQtPmFyY2guYW1kLnJvb3RfdGFibGUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGhkLT5hcmNoLmFtZC5wYWdpbmdfbW9kZSwgMCwgMCk7DQo+ICB9DQo+IA0KPiAgc3Rh dGljIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMgX19pbml0Y29uc3RyZWwgX2lvbW11X29wcyA9IHsN Cj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jDQo+IGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMNCj4gaW5kZXggZGVhZWFiMDk1ZC4u OTRlMDQ1NWE0ZCAxMDA2NDQNCj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmMNCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMNCj4gQEAg LTI1NywyMCArMjU3LDIwIEBAIHN0YXRpYyB1NjQgYnVzX3RvX2NvbnRleHRfbWFkZHIoc3RydWN0 DQo+IHZ0ZF9pb21tdSAqaW9tbXUsIHU4IGJ1cykNCj4gIHN0YXRpYyB1NjQgYWRkcl90b19kbWFf cGFnZV9tYWRkcihzdHJ1Y3QgZG9tYWluICpkb21haW4sIHU2NCBhZGRyLCBpbnQNCj4gYWxsb2Mp DQo+ICB7DQo+ICAgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZG9tYWlu KTsNCj4gLSAgICBpbnQgYWRkcl93aWR0aCA9IGFnYXdfdG9fd2lkdGgoaGQtPmFyY2guYWdhdyk7 DQo+ICsgICAgaW50IGFkZHJfd2lkdGggPSBhZ2F3X3RvX3dpZHRoKGhkLT5hcmNoLnZ0ZC5hZ2F3 KTsNCj4gICAgICBzdHJ1Y3QgZG1hX3B0ZSAqcGFyZW50LCAqcHRlID0gTlVMTDsNCj4gLSAgICBp bnQgbGV2ZWwgPSBhZ2F3X3RvX2xldmVsKGhkLT5hcmNoLmFnYXcpOw0KPiArICAgIGludCBsZXZl bCA9IGFnYXdfdG9fbGV2ZWwoaGQtPmFyY2gudnRkLmFnYXcpOw0KPiAgICAgIGludCBvZmZzZXQ7 DQo+ICAgICAgdTY0IHB0ZV9tYWRkciA9IDA7DQo+IA0KPiAgICAgIGFkZHIgJj0gKCgodTY0KTEp IDw8IGFkZHJfd2lkdGgpIC0gMTsNCj4gICAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmhkLT5h cmNoLm1hcHBpbmdfbG9jaykpOw0KPiAtICAgIGlmICggIWhkLT5hcmNoLnBnZF9tYWRkciAmJg0K PiArICAgIGlmICggIWhkLT5hcmNoLnZ0ZC5wZ2RfbWFkZHIgJiYNCj4gICAgICAgICAgICghYWxs b2MgfHwNCj4gLSAgICAgICAgICAoKGhkLT5hcmNoLnBnZF9tYWRkciA9IGFsbG9jX3BndGFibGVf bWFkZHIoMSwgaGQtPm5vZGUpKSA9PSAwKSkgKQ0KPiArICAgICAgICAgICgoaGQtPmFyY2gudnRk LnBnZF9tYWRkciA9IGFsbG9jX3BndGFibGVfbWFkZHIoMSwgaGQtPm5vZGUpKSA9PQ0KPiAwKSkg KQ0KPiAgICAgICAgICBnb3RvIG91dDsNCj4gDQo+IC0gICAgcGFyZW50ID0gKHN0cnVjdCBkbWFf cHRlICopbWFwX3Z0ZF9kb21haW5fcGFnZShoZC0+YXJjaC5wZ2RfbWFkZHIpOw0KPiArICAgIHBh cmVudCA9IChzdHJ1Y3QgZG1hX3B0ZSAqKW1hcF92dGRfZG9tYWluX3BhZ2UoaGQtDQo+ID5hcmNo LnZ0ZC5wZ2RfbWFkZHIpOw0KPiAgICAgIHdoaWxlICggbGV2ZWwgPiAxICkNCj4gICAgICB7DQo+ ICAgICAgICAgIG9mZnNldCA9IGFkZHJlc3NfbGV2ZWxfb2Zmc2V0KGFkZHIsIGxldmVsKTsNCj4g QEAgLTU5Myw3ICs1OTMsNyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpb21tdV9mbHVzaF9p b3RsYihzdHJ1Y3QNCj4gZG9tYWluICpkLCBkZm5fdCBkZm4sDQo+ICAgICAgew0KPiAgICAgICAg ICBpb21tdSA9IGRyaGQtPmlvbW11Ow0KPiANCj4gLSAgICAgICAgaWYgKCAhdGVzdF9iaXQoaW9t bXUtPmluZGV4LCAmaGQtPmFyY2guaW9tbXVfYml0bWFwKSApDQo+ICsgICAgICAgIGlmICggIXRl c3RfYml0KGlvbW11LT5pbmRleCwgJmhkLT5hcmNoLnZ0ZC5pb21tdV9iaXRtYXApICkNCj4gICAg ICAgICAgICAgIGNvbnRpbnVlOw0KPiANCj4gICAgICAgICAgZmx1c2hfZGV2X2lvdGxiID0gISFm aW5kX2F0c19kZXZfZHJoZChpb21tdSk7DQo+IEBAIC0xMjc4LDcgKzEyNzgsMTAgQEAgdm9pZCBf X2luaXQgaW9tbXVfZnJlZShzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQNCj4gKmRyaGQpDQo+IA0KPiAg c3RhdGljIGludCBpbnRlbF9pb21tdV9kb21haW5faW5pdChzdHJ1Y3QgZG9tYWluICpkKQ0KPiAg ew0KPiAtICAgIGRvbV9pb21tdShkKS0+YXJjaC5hZ2F3ID0NCj4gd2lkdGhfdG9fYWdhdyhERUZB VUxUX0RPTUFJTl9BRERSRVNTX1dJRFRIKTsNCj4gKyAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpo ZCA9IGRvbV9pb21tdShkKTsNCj4gKw0KPiArICAgIGhkLT5hcmNoLnZ0ZC5hZ2F3ID0NCj4gd2lk dGhfdG9fYWdhdyhERUZBVUxUX0RPTUFJTl9BRERSRVNTX1dJRFRIKTsNCj4gKyAgICBJTklUX0xJ U1RfSEVBRCgmaGQtPmFyY2gudnRkLm1hcHBlZF9ybXJycyk7DQo+IA0KPiAgICAgIHJldHVybiAw Ow0KPiAgfQ0KPiBAQCAtMTM3NSwxMCArMTM3OCwxMCBAQCBpbnQgZG9tYWluX2NvbnRleHRfbWFw cGluZ19vbmUoDQo+ICAgICAgICAgIHNwaW5fbG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsN Cj4gDQo+ICAgICAgICAgIC8qIEVuc3VyZSB3ZSBoYXZlIHBhZ2V0YWJsZXMgYWxsb2NhdGVkIGRv d24gdG8gbGVhZiBQVEUuICovDQo+IC0gICAgICAgIGlmICggaGQtPmFyY2gucGdkX21hZGRyID09 IDAgKQ0KPiArICAgICAgICBpZiAoIGhkLT5hcmNoLnZ0ZC5wZ2RfbWFkZHIgPT0gMCApDQo+ICAg ICAgICAgIHsNCj4gICAgICAgICAgICAgIGFkZHJfdG9fZG1hX3BhZ2VfbWFkZHIoZG9tYWluLCAw LCAxKTsNCj4gLSAgICAgICAgICAgIGlmICggaGQtPmFyY2gucGdkX21hZGRyID09IDAgKQ0KPiAr ICAgICAgICAgICAgaWYgKCBoZC0+YXJjaC52dGQucGdkX21hZGRyID09IDAgKQ0KPiAgICAgICAg ICAgICAgew0KPiAgICAgICAgICAgICAgbm9tZW06DQo+ICAgICAgICAgICAgICAgICAgc3Bpbl91 bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7DQo+IEBAIC0xMzg5LDcgKzEzOTIsNyBAQCBp bnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoDQo+ICAgICAgICAgIH0NCj4gDQo+ICAgICAg ICAgIC8qIFNraXAgdG9wIGxldmVscyBvZiBwYWdlIHRhYmxlcyBmb3IgMi0gYW5kIDMtbGV2ZWwg RFJIRHMuICovDQo+IC0gICAgICAgIHBnZF9tYWRkciA9IGhkLT5hcmNoLnBnZF9tYWRkcjsNCj4g KyAgICAgICAgcGdkX21hZGRyID0gaGQtPmFyY2gudnRkLnBnZF9tYWRkcjsNCj4gICAgICAgICAg Zm9yICggYWdhdyA9IGxldmVsX3RvX2FnYXcoNCk7DQo+ICAgICAgICAgICAgICAgIGFnYXcgIT0g bGV2ZWxfdG9fYWdhdyhpb21tdS0+bnJfcHRfbGV2ZWxzKTsNCj4gICAgICAgICAgICAgICAgYWdh dy0tICkNCj4gQEAgLTE0NDMsNyArMTQ0Niw3IEBAIGludCBkb21haW5fY29udGV4dF9tYXBwaW5n X29uZSgNCj4gICAgICBpZiAoIHJjID4gMCApDQo+ICAgICAgICAgIHJjID0gMDsNCj4gDQo+IC0g ICAgc2V0X2JpdChpb21tdS0+aW5kZXgsICZoZC0+YXJjaC5pb21tdV9iaXRtYXApOw0KPiArICAg IHNldF9iaXQoaW9tbXUtPmluZGV4LCAmaGQtPmFyY2gudnRkLmlvbW11X2JpdG1hcCk7DQo+IA0K PiAgICAgIHVubWFwX3Z0ZF9kb21haW5fcGFnZShjb250ZXh0X2VudHJpZXMpOw0KPiANCj4gQEAg LTE3MTQsNyArMTcxNyw3IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAoc3RydWN0 IGRvbWFpbg0KPiAqZG9tYWluLCB1OCBkZXZmbiwNCj4gICAgICB7DQo+ICAgICAgICAgIGludCBp b21tdV9kb21pZDsNCj4gDQo+IC0gICAgICAgIGNsZWFyX2JpdChpb21tdS0+aW5kZXgsICZkb21f aW9tbXUoZG9tYWluKS0NCj4gPmFyY2guaW9tbXVfYml0bWFwKTsNCj4gKyAgICAgICAgY2xlYXJf Yml0KGlvbW11LT5pbmRleCwgJmRvbV9pb21tdShkb21haW4pLQ0KPiA+YXJjaC52dGQuaW9tbXVf Yml0bWFwKTsNCj4gDQo+ICAgICAgICAgIGlvbW11X2RvbWlkID0gZG9tYWluX2lvbW11X2RvbWlk KGRvbWFpbiwgaW9tbXUpOw0KPiAgICAgICAgICBpZiAoIGlvbW11X2RvbWlkID09IC0xICkNCj4g QEAgLTE3MzksNyArMTc0Miw3IEBAIHN0YXRpYyB2b2lkIGlvbW11X2RvbWFpbl90ZWFyZG93bihz dHJ1Y3QNCj4gZG9tYWluICpkKQ0KPiAgICAgIGlmICggbGlzdF9lbXB0eSgmYWNwaV9kcmhkX3Vu aXRzKSApDQo+ICAgICAgICAgIHJldHVybjsNCj4gDQo+IC0gICAgbGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlICggbXJtcnIsIHRtcCwgJmhkLT5hcmNoLm1hcHBlZF9ybXJycywgbGlzdCApDQo+ICsg ICAgbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlICggbXJtcnIsIHRtcCwgJmhkLT5hcmNoLnZ0ZC5t YXBwZWRfcm1ycnMsDQo+IGxpc3QgKQ0KPiAgICAgIHsNCj4gICAgICAgICAgbGlzdF9kZWwoJm1y bXJyLT5saXN0KTsNCj4gICAgICAgICAgeGZyZWUobXJtcnIpOw0KPiBAQCAtMTc1MSw4ICsxNzU0 LDkgQEAgc3RhdGljIHZvaWQgaW9tbXVfZG9tYWluX3RlYXJkb3duKHN0cnVjdA0KPiBkb21haW4g KmQpDQo+ICAgICAgICAgIHJldHVybjsNCj4gDQo+ICAgICAgc3Bpbl9sb2NrKCZoZC0+YXJjaC5t YXBwaW5nX2xvY2spOw0KPiAtICAgIGlvbW11X2ZyZWVfcGFnZXRhYmxlKGhkLT5hcmNoLnBnZF9t YWRkciwgYWdhd190b19sZXZlbChoZC0NCj4gPmFyY2guYWdhdykpOw0KPiAtICAgIGhkLT5hcmNo LnBnZF9tYWRkciA9IDA7DQo+ICsgICAgaW9tbXVfZnJlZV9wYWdldGFibGUoaGQtPmFyY2gudnRk LnBnZF9tYWRkciwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBhZ2F3X3RvX2xldmVsKGhk LT5hcmNoLnZ0ZC5hZ2F3KSk7DQo+ICsgICAgaGQtPmFyY2gudnRkLnBnZF9tYWRkciA9IDA7DQo+ ICAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7DQo+ICB9DQo+IA0KPiBA QCAtMTg5Miw3ICsxODk2LDcgQEAgc3RhdGljIHZvaWQgaW9tbXVfc2V0X3BnZChzdHJ1Y3QgZG9t YWluICpkKQ0KPiAgICAgIG1mbl90IHBnZF9tZm47DQo+IA0KPiAgICAgIHBnZF9tZm4gPQ0KPiBw YWdldGFibGVfZ2V0X21mbihwMm1fZ2V0X3BhZ2V0YWJsZShwMm1fZ2V0X2hvc3RwMm0oZCkpKTsN Cj4gLSAgICBkb21faW9tbXUoZCktPmFyY2gucGdkX21hZGRyID0NCj4gKyAgICBkb21faW9tbXUo ZCktPmFyY2gudnRkLnBnZF9tYWRkciA9DQo+ICAgICAgICAgIHBhZ2V0YWJsZV9nZXRfcGFkZHIo cGFnZXRhYmxlX2Zyb21fbWZuKHBnZF9tZm4pKTsNCj4gIH0NCj4gDQo+IEBAIC0xOTEyLDcgKzE5 MTYsNyBAQCBzdGF0aWMgaW50IHJtcnJfaWRlbnRpdHlfbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpk LA0KPiBib29sX3QgbWFwLA0KPiAgICAgICAqIE5vIG5lZWQgdG8gYWNxdWlyZSBoZC0+YXJjaC5t YXBwaW5nX2xvY2s6IEJvdGggaW5zZXJ0aW9uIGFuZCByZW1vdmFsDQo+ICAgICAgICogZ2V0IGRv bmUgd2hpbGUgaG9sZGluZyBwY2lkZXZzX2xvY2suDQo+ICAgICAgICovDQo+IC0gICAgbGlzdF9m b3JfZWFjaF9lbnRyeSggbXJtcnIsICZoZC0+YXJjaC5tYXBwZWRfcm1ycnMsIGxpc3QgKQ0KPiAr ICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoIG1ybXJyLCAmaGQtPmFyY2gudnRkLm1hcHBlZF9ybXJy cywgbGlzdCApDQo+ICAgICAgew0KPiAgICAgICAgICBpZiAoIG1ybXJyLT5iYXNlID09IHJtcnIt PmJhc2VfYWRkcmVzcyAmJg0KPiAgICAgICAgICAgICAgIG1ybXJyLT5lbmQgPT0gcm1yci0+ZW5k X2FkZHJlc3MgKQ0KPiBAQCAtMTk1OSw3ICsxOTYzLDcgQEAgc3RhdGljIGludCBybXJyX2lkZW50 aXR5X21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCwNCj4gYm9vbF90IG1hcCwNCj4gICAgICBtcm1y ci0+YmFzZSA9IHJtcnItPmJhc2VfYWRkcmVzczsNCj4gICAgICBtcm1yci0+ZW5kID0gcm1yci0+ ZW5kX2FkZHJlc3M7DQo+ICAgICAgbXJtcnItPmNvdW50ID0gMTsNCj4gLSAgICBsaXN0X2FkZF90 YWlsKCZtcm1yci0+bGlzdCwgJmhkLT5hcmNoLm1hcHBlZF9ybXJycyk7DQo+ICsgICAgbGlzdF9h ZGRfdGFpbCgmbXJtcnItPmxpc3QsICZoZC0+YXJjaC52dGQubWFwcGVkX3JtcnJzKTsNCj4gDQo+ ICAgICAgcmV0dXJuIDA7DQo+ICB9DQo+IEBAIC0yNjU3LDggKzI2NjEsOSBAQCBzdGF0aWMgdm9p ZCB2dGRfZHVtcF9wMm1fdGFibGUoc3RydWN0IGRvbWFpbiAqZCkNCj4gICAgICAgICAgcmV0dXJu Ow0KPiANCj4gICAgICBoZCA9IGRvbV9pb21tdShkKTsNCj4gLSAgICBwcmludGsoInAybSB0YWJs ZSBoYXMgJWQgbGV2ZWxzXG4iLCBhZ2F3X3RvX2xldmVsKGhkLT5hcmNoLmFnYXcpKTsNCj4gLSAg ICB2dGRfZHVtcF9wMm1fdGFibGVfbGV2ZWwoaGQtPmFyY2gucGdkX21hZGRyLCBhZ2F3X3RvX2xl dmVsKGhkLQ0KPiA+YXJjaC5hZ2F3KSwgMCwgMCk7DQo+ICsgICAgcHJpbnRrKCJwMm0gdGFibGUg aGFzICVkIGxldmVsc1xuIiwgYWdhd190b19sZXZlbChoZC0+YXJjaC52dGQuYWdhdykpOw0KPiAr ICAgIHZ0ZF9kdW1wX3AybV90YWJsZV9sZXZlbChoZC0+YXJjaC52dGQucGdkX21hZGRyLA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2F3X3RvX2xldmVsKGhkLT5hcmNoLnZ0ZC5h Z2F3KSwgMCwgMCk7DQo+ICB9DQo+IA0KPiAgc3RhdGljIGludCBfX2luaXQgaW50ZWxfaW9tbXVf cXVhcmFudGluZV9pbml0KHN0cnVjdCBkb21haW4gKmQpDQo+IEBAIC0yNjY5LDcgKzI2NzQsNyBA QCBzdGF0aWMgaW50IF9faW5pdCBpbnRlbF9pb21tdV9xdWFyYW50aW5lX2luaXQoc3RydWN0DQo+ IGRvbWFpbiAqZCkNCj4gICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwgPSBhZ2F3X3RvX2xldmVsKGFn YXcpOw0KPiAgICAgIGludCByYzsNCj4gDQo+IC0gICAgaWYgKCBoZC0+YXJjaC5wZ2RfbWFkZHIg KQ0KPiArICAgIGlmICggaGQtPmFyY2gudnRkLnBnZF9tYWRkciApDQo+ICAgICAgew0KPiAgICAg ICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsNCj4gICAgICAgICAgcmV0dXJuIDA7DQo+IEBAIC0y Njc3LDExICsyNjgyLDExIEBAIHN0YXRpYyBpbnQgX19pbml0DQo+IGludGVsX2lvbW11X3F1YXJh bnRpbmVfaW5pdChzdHJ1Y3QgZG9tYWluICpkKQ0KPiANCj4gICAgICBzcGluX2xvY2soJmhkLT5h cmNoLm1hcHBpbmdfbG9jayk7DQo+IA0KPiAtICAgIGhkLT5hcmNoLnBnZF9tYWRkciA9IGFsbG9j X3BndGFibGVfbWFkZHIoMSwgaGQtPm5vZGUpOw0KPiAtICAgIGlmICggIWhkLT5hcmNoLnBnZF9t YWRkciApDQo+ICsgICAgaGQtPmFyY2gudnRkLnBnZF9tYWRkciA9IGFsbG9jX3BndGFibGVfbWFk ZHIoMSwgaGQtPm5vZGUpOw0KPiArICAgIGlmICggIWhkLT5hcmNoLnZ0ZC5wZ2RfbWFkZHIgKQ0K PiAgICAgICAgICBnb3RvIG91dDsNCj4gDQo+IC0gICAgcGFyZW50ID0gbWFwX3Z0ZF9kb21haW5f cGFnZShoZC0+YXJjaC5wZ2RfbWFkZHIpOw0KPiArICAgIHBhcmVudCA9IG1hcF92dGRfZG9tYWlu X3BhZ2UoaGQtPmFyY2gudnRkLnBnZF9tYWRkcik7DQo+ICAgICAgd2hpbGUgKCBsZXZlbCApDQo+ ICAgICAgew0KPiAgICAgICAgICB1aW50NjRfdCBtYWRkcjsNCj4gZGlmZiAtLWdpdCBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jDQo+IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gveDg2L2lvbW11LmMNCj4gaW5kZXggM2Q3NjcwZThjNi4uYTEyMTA5YTFkZSAxMDA2NDQNCj4g LS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMNCj4gKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMNCj4gQEAgLTEzOSw3ICsxMzksNiBAQCBpbnQg YXJjaF9pb21tdV9kb21haW5faW5pdChzdHJ1Y3QgZG9tYWluICpkKQ0KPiAgICAgIHN0cnVjdCBk b21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOw0KPiANCj4gICAgICBzcGluX2xvY2tfaW5p dCgmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsNCj4gLSAgICBJTklUX0xJU1RfSEVBRCgmaGQtPmFy Y2gubWFwcGVkX3JtcnJzKTsNCj4gDQo+ICAgICAgcmV0dXJuIDA7DQo+ICB9DQo+IGRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2lvbW11LmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2lv bW11LmgNCj4gaW5kZXggNmM5ZDVlNTYzMi4uOGNlOTdjOTgxZiAxMDA2NDQNCj4gLS0tIGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9pb21tdS5oDQo+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaW9t bXUuaA0KPiBAQCAtNDUsMTYgKzQ1LDIzIEBAIHR5cGVkZWYgdWludDY0X3QgZGFkZHJfdDsNCj4g DQo+ICBzdHJ1Y3QgYXJjaF9pb21tdQ0KPiAgew0KPiAtICAgIHU2NCBwZ2RfbWFkZHI7ICAgICAg ICAgICAgICAgICAvKiBpbyBwYWdlIGRpcmVjdG9yeSBtYWNoaW5lIGFkZHJlc3MgKi8NCj4gLSAg ICBzcGlubG9ja190IG1hcHBpbmdfbG9jazsgICAgICAgICAgICAvKiBpbyBwYWdlIHRhYmxlIGxv Y2sgKi8NCj4gLSAgICBpbnQgYWdhdzsgICAgIC8qIGFkanVzdGVkIGd1ZXN0IGFkZHJlc3Mgd2lk dGgsIDAgaXMgbGV2ZWwgMiAzMC1iaXQgKi8NCj4gLSAgICB1NjQgaW9tbXVfYml0bWFwOyAgICAg ICAgICAgICAgLyogYml0bWFwIG9mIGlvbW11KHMpIHRoYXQgdGhlIGRvbWFpbiB1c2VzDQo+ICov DQo+IC0gICAgc3RydWN0IGxpc3RfaGVhZCBtYXBwZWRfcm1ycnM7DQo+IC0NCj4gLSAgICAvKiBh bWQgaW9tbXUgc3VwcG9ydCAqLw0KPiAtICAgIGludCBwYWdpbmdfbW9kZTsNCj4gLSAgICBzdHJ1 Y3QgcGFnZV9pbmZvICpyb290X3RhYmxlOw0KPiAtICAgIHN0cnVjdCBndWVzdF9pb21tdSAqZ19p b21tdTsNCj4gKyAgICBzcGlubG9ja190IG1hcHBpbmdfbG9jazsgLyogaW8gcGFnZSB0YWJsZSBs b2NrICovDQo+ICsNCj4gKyAgICB1bmlvbiB7DQo+ICsgICAgICAgIC8qIEludGVsIFZULWQgKi8N Cj4gKyAgICAgICAgc3RydWN0IHsNCj4gKyAgICAgICAgICAgIHVpbnQ2NF90IHBnZF9tYWRkcjsg LyogaW8gcGFnZSBkaXJlY3RvcnkgbWFjaGluZSBhZGRyZXNzICovDQo+ICsgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgYWdhdzsgLyogYWRqdXN0ZWQgZ3Vlc3QgYWRkcmVzcyB3aWR0aCwgMCBpcyBs ZXZlbCAyIDMwLWJpdA0KPiAqLw0KPiArICAgICAgICAgICAgdWludDY0X3QgaW9tbXVfYml0bWFw OyAvKiBiaXRtYXAgb2YgaW9tbXUocykgdGhhdCB0aGUgZG9tYWluDQo+IHVzZXMgKi8NCj4gKyAg ICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgbWFwcGVkX3JtcnJzOw0KPiArICAgICAgICB9IHZ0 ZDsNCj4gKyAgICAgICAgLyogQU1EIElPTU1VICovDQo+ICsgICAgICAgIHN0cnVjdCB7DQo+ICsg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGFnaW5nX21vZGU7DQo+ICsgICAgICAgICAgICBzdHJ1 Y3QgcGFnZV9pbmZvICpyb290X3RhYmxlOw0KPiArICAgICAgICAgICAgc3RydWN0IGd1ZXN0X2lv bW11ICpnX2lvbW11Ow0KPiArICAgICAgICB9IGFtZDsNCj4gKyAgICB9Ow0KPiAgfTsNCj4gDQo+ ICBleHRlcm4gc3RydWN0IGlvbW11X29wcyBpb21tdV9vcHM7DQo+IC0tDQo+IDIuMjAuMQ0KDQo=