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=-9.8 required=3.0 tests=BAYES_00, 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 D9038C47425 for ; Mon, 5 Oct 2020 18:40:02 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 A02AC20853 for ; Mon, 5 Oct 2020 18:40:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A02AC20853 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DFB5389C54; Mon, 5 Oct 2020 18:40:01 +0000 (UTC) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id C5D6989C54 for ; Mon, 5 Oct 2020 18:40:00 +0000 (UTC) IronPort-SDR: bk9wWmlCX6WFdG3ImFN0NUnDn7JDMO6RRJIX2DF6D/ZyodK53H6RtogvHmQPjJQQQWPR0HQCtL BtJg+1wnktcQ== X-IronPort-AV: E=McAfee;i="6000,8403,9765"; a="227968324" X-IronPort-AV: E=Sophos;i="5.77,340,1596524400"; d="scan'208";a="227968324" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga105.jf.intel.com with ESMTP; 05 Oct 2020 11:39:51 -0700 IronPort-SDR: YktUlTQPJZNdn2ke5H8xziLqafeVTU2T8Pp+1eDV32CS9CKBf90Nl0cgHjIjauJ/cNMZTsg0es JAwPa/suzAyQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,340,1596524400"; d="scan'208";a="516230306" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga006.fm.intel.com with ESMTP; 05 Oct 2020 09:20:37 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 5 Oct 2020 09:17:00 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 5 Oct 2020 09:17:00 -0700 Received: from orsmsx611.amr.corp.intel.com ([10.22.229.24]) by ORSMSX611.amr.corp.intel.com ([10.22.229.24]) with mapi id 15.01.1713.004; Mon, 5 Oct 2020 09:17:00 -0700 From: "Ruhl, Michael J" To: =?utf-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , "dri-devel@lists.freedesktop.org" , "ray.huang@amd.com" , "airlied@gmail.com" , "daniel@ffwll.ch" Subject: RE: [PATCH 8/8] drm/ttm: nuke caching placement flags Thread-Topic: [PATCH 8/8] drm/ttm: nuke caching placement flags Thread-Index: AQHWl+YKqnlub82KzkS01PmhWaxe7KmJMh1Q Date: Mon, 5 Oct 2020 16:17:00 +0000 Message-ID: <1146906eb78744b2a67ac7f72d707051@intel.com> References: <20201001112817.20967-1-christian.koenig@amd.com> <20201001112817.20967-8-christian.koenig@amd.com> In-Reply-To: <20201001112817.20967-8-christian.koenig@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 x-originating-ip: [10.1.200.100] MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Pi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+RnJvbTogZHJpLWRldmVsIDxkcmktZGV2ZWwt Ym91bmNlc0BsaXN0cy5mcmVlZGVza3RvcC5vcmc+IE9uIEJlaGFsZiBPZg0KPkNocmlzdGlhbiBL w7ZuaWcNCj5TZW50OiBUaHVyc2RheSwgT2N0b2JlciAxLCAyMDIwIDc6MjggQU0NCj5UbzogZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgcmF5Lmh1YW5nQGFtZC5jb207DQo+YWlybGll ZEBnbWFpbC5jb207IGRhbmllbEBmZndsbC5jaA0KPlN1YmplY3Q6IFtQQVRDSCA4LzhdIGRybS90 dG06IG51a2UgY2FjaGluZyBwbGFjZW1lbnQgZmxhZ3MNCj4NCj5DaGFuZ2luZyB0aGUgY2FjaGlu ZyBvbiB0aGUgZmx5IG5ldmVyIHJlYWxseSB3b3JrZWQNCj5mbGF3bGVzc2x5Lg0KPg0KPlNvIHN0 b3AgdGhpcyBjb21wbGV0ZWx5IGFuZCBqdXN0IGxldCBkcml2ZXJzIHNwZWNpZmljIHRoZQ0KPmRl c2lyZWQgY2FjaGluZyBpbiB0aGUgdHQgb3IgYnVzIG9iamVjdC4NCj4NCj5TaWduZWQtb2ZmLWJ5 OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+DQo+LS0tDQo+IGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyB8IDIwICsrKy0tLS0tLS0N Cj4gZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jICAgIHwgMTIgKystLS0t DQo+IGRyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMgICAgICB8ICA3ICstLS0N Cj4gZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jICAgICAgIHwgMzYgKysrKyst LS0tLS0tLS0tLS0NCj4gZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmMgICAgICAgICAg IHwgMTAgKystLS0NCj4gZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMgICAgICAgICAgICAg IHwgIDIgKy0NCj4gZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMgICAgIHwg NDYgKysrKystLS0tLS0tLS0tLS0tLS0tLQ0KPiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl90dG0uYyAgICAgICAgfCAxOCArKy0tLS0tLS0NCj4gZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f YWdwX2JhY2tlbmQuYyAgICAgIHwgIDIgKy0NCj4gZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8u YyAgICAgICAgICAgICAgIHwgNDQgKystLS0tLS0tLS0tLS0tLS0tLS0tDQo+IGRyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX2JvX3V0aWwuYyAgICAgICAgICB8IDEwICsrLS0tDQo+IGRyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX3R0LmMgICAgICAgICAgICAgICB8IDI5IC0tLS0tLS0tLS0tLS0tDQo+IGRy aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3R0bV9idWZmZXIuYyB8IDMwICsrKysrKystLS0t LS0tDQo+IGluY2x1ZGUvZHJtL3R0bS90dG1fcGxhY2VtZW50LmggICAgICAgICAgICB8IDE0IC0t LS0tLS0NCj4gaW5jbHVkZS9kcm0vdHRtL3R0bV90dC5oICAgICAgICAgICAgICAgICAgIHwgMTUg LS0tLS0tLQ0KPiAxNSBmaWxlcyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspLCAyMzQgZGVsZXRp b25zKC0pDQo+DQo+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9vYmplY3QuYw0KPmIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5j DQo+aW5kZXggODBiYzcxNzdjZDQ1Li45NjRmOTUxMmRkNmUgMTAwNjQ0DQo+LS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jDQo+KysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jDQo+QEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lk IGFtZGdwdV9ib19wbGFjZW1lbnRfZnJvbV9kb21haW4oc3RydWN0DQo+YW1kZ3B1X2JvICphYm8s IHUzMiBkb21haW4pDQo+IAkJcGxhY2VzW2NdLmZwZm4gPSAwOw0KPiAJCXBsYWNlc1tjXS5scGZu ID0gMDsNCj4gCQlwbGFjZXNbY10ubWVtX3R5cGUgPSBUVE1fUExfVlJBTTsNCj4tCQlwbGFjZXNb Y10uZmxhZ3MgPSBUVE1fUExfRkxBR19XQyB8DQo+VFRNX1BMX0ZMQUdfVU5DQUNIRUQ7DQo+KwkJ cGxhY2VzW2NdLmZsYWdzID0gMDsNCj4NCj4gCQlpZiAoZmxhZ3MgJiBBTURHUFVfR0VNX0NSRUFU RV9DUFVfQUNDRVNTX1JFUVVJUkVEKQ0KPiAJCQlwbGFjZXNbY10ubHBmbiA9IHZpc2libGVfcGZu Ow0KPkBAIC0xNTQsMTEgKzE1NCw2IEBAIHZvaWQgYW1kZ3B1X2JvX3BsYWNlbWVudF9mcm9tX2Rv bWFpbihzdHJ1Y3QNCj5hbWRncHVfYm8gKmFibywgdTMyIGRvbWFpbikNCj4gCQlwbGFjZXNbY10u bHBmbiA9IDA7DQo+IAkJcGxhY2VzW2NdLm1lbV90eXBlID0gVFRNX1BMX1RUOw0KPiAJCXBsYWNl c1tjXS5mbGFncyA9IDA7DQo+LQkJaWYgKGZsYWdzICYgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0dU VF9VU1dDKQ0KPi0JCQlwbGFjZXNbY10uZmxhZ3MgfD0gVFRNX1BMX0ZMQUdfV0MgfA0KPi0JCQkJ VFRNX1BMX0ZMQUdfVU5DQUNIRUQ7DQo+LQkJZWxzZQ0KPi0JCQlwbGFjZXNbY10uZmxhZ3MgfD0g VFRNX1BMX0ZMQUdfQ0FDSEVEOw0KPiAJCWMrKzsNCj4gCX0NCj4NCj5AQCAtMTY3LDExICsxNjIs NiBAQCB2b2lkIGFtZGdwdV9ib19wbGFjZW1lbnRfZnJvbV9kb21haW4oc3RydWN0DQo+YW1kZ3B1 X2JvICphYm8sIHUzMiBkb21haW4pDQo+IAkJcGxhY2VzW2NdLmxwZm4gPSAwOw0KPiAJCXBsYWNl c1tjXS5tZW1fdHlwZSA9IFRUTV9QTF9TWVNURU07DQo+IAkJcGxhY2VzW2NdLmZsYWdzID0gMDsN Cj4tCQlpZiAoZmxhZ3MgJiBBTURHUFVfR0VNX0NSRUFURV9DUFVfR1RUX1VTV0MpDQo+LQkJCXBs YWNlc1tjXS5mbGFncyB8PSBUVE1fUExfRkxBR19XQyB8DQo+LQkJCQlUVE1fUExfRkxBR19VTkNB Q0hFRDsNCj4tCQllbHNlDQo+LQkJCXBsYWNlc1tjXS5mbGFncyB8PSBUVE1fUExfRkxBR19DQUNI RUQ7DQo+IAkJYysrOw0KPiAJfQ0KPg0KPkBAIC0xNzksNyArMTY5LDcgQEAgdm9pZCBhbWRncHVf Ym9fcGxhY2VtZW50X2Zyb21fZG9tYWluKHN0cnVjdA0KPmFtZGdwdV9ibyAqYWJvLCB1MzIgZG9t YWluKQ0KPiAJCXBsYWNlc1tjXS5mcGZuID0gMDsNCj4gCQlwbGFjZXNbY10ubHBmbiA9IDA7DQo+ IAkJcGxhY2VzW2NdLm1lbV90eXBlID0gQU1ER1BVX1BMX0dEUzsNCj4tCQlwbGFjZXNbY10uZmxh Z3MgPSBUVE1fUExfRkxBR19VTkNBQ0hFRDsNCj4rCQlwbGFjZXNbY10uZmxhZ3MgPSAwOw0KPiAJ CWMrKzsNCj4gCX0NCj4NCj5AQCAtMTg3LDcgKzE3Nyw3IEBAIHZvaWQgYW1kZ3B1X2JvX3BsYWNl bWVudF9mcm9tX2RvbWFpbihzdHJ1Y3QNCj5hbWRncHVfYm8gKmFibywgdTMyIGRvbWFpbikNCj4g CQlwbGFjZXNbY10uZnBmbiA9IDA7DQo+IAkJcGxhY2VzW2NdLmxwZm4gPSAwOw0KPiAJCXBsYWNl c1tjXS5tZW1fdHlwZSA9IEFNREdQVV9QTF9HV1M7DQo+LQkJcGxhY2VzW2NdLmZsYWdzID0gVFRN X1BMX0ZMQUdfVU5DQUNIRUQ7DQo+KwkJcGxhY2VzW2NdLmZsYWdzID0gMDsNCj4gCQljKys7DQo+ IAl9DQo+DQo+QEAgLTE5NSw3ICsxODUsNyBAQCB2b2lkIGFtZGdwdV9ib19wbGFjZW1lbnRfZnJv bV9kb21haW4oc3RydWN0DQo+YW1kZ3B1X2JvICphYm8sIHUzMiBkb21haW4pDQo+IAkJcGxhY2Vz W2NdLmZwZm4gPSAwOw0KPiAJCXBsYWNlc1tjXS5scGZuID0gMDsNCj4gCQlwbGFjZXNbY10ubWVt X3R5cGUgPSBBTURHUFVfUExfT0E7DQo+LQkJcGxhY2VzW2NdLmZsYWdzID0gVFRNX1BMX0ZMQUdf VU5DQUNIRUQ7DQo+KwkJcGxhY2VzW2NdLmZsYWdzID0gMDsNCj4gCQljKys7DQo+IAl9DQo+DQo+ QEAgLTIwMyw3ICsxOTMsNyBAQCB2b2lkIGFtZGdwdV9ib19wbGFjZW1lbnRfZnJvbV9kb21haW4o c3RydWN0DQo+YW1kZ3B1X2JvICphYm8sIHUzMiBkb21haW4pDQo+IAkJcGxhY2VzW2NdLmZwZm4g PSAwOw0KPiAJCXBsYWNlc1tjXS5scGZuID0gMDsNCj4gCQlwbGFjZXNbY10ubWVtX3R5cGUgPSBU VE1fUExfU1lTVEVNOw0KPi0JCXBsYWNlc1tjXS5mbGFncyA9IFRUTV9QTF9NQVNLX0NBQ0hJTkc7 DQo+KwkJcGxhY2VzW2NdLmZsYWdzID0gMDsNCj4gCQljKys7DQo+IAl9DQo+DQo+ZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYw0KPmIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jDQo+aW5kZXggNWI1NmE2NjA2M2ZkLi44Y2Rl YzU4YjkxMDYgMTAwNjQ0DQo+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3R0bS5jDQo+KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jDQo+ QEAgLTkyLDcgKzkyLDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2V2aWN0X2ZsYWdzKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdA0KPipibywNCj4gCQkuZnBmbiA9IDAsDQo+IAkJLmxwZm4gPSAwLA0K PiAJCS5tZW1fdHlwZSA9IFRUTV9QTF9TWVNURU0sDQo+LQkJLmZsYWdzID0gVFRNX1BMX01BU0tf Q0FDSElORw0KPisJCS5mbGFncyA9IDANCj4gCX07DQo+DQo+IAkvKiBEb24ndCBoYW5kbGUgc2Nh dHRlciBnYXRoZXIgQk9zICovDQo+QEAgLTUzOCwxOSArNTM4LDEzIEBAIHN0YXRpYyBpbnQgYW1k Z3B1X21vdmVfdnJhbV9yYW0oc3RydWN0DQo+dHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBib29sIGV2 aWN0LA0KPiAJcGxhY2VtZW50cy5mcGZuID0gMDsNCj4gCXBsYWNlbWVudHMubHBmbiA9IDA7DQo+ IAlwbGFjZW1lbnRzLm1lbV90eXBlID0gVFRNX1BMX1RUOw0KPi0JcGxhY2VtZW50cy5mbGFncyA9 IFRUTV9QTF9NQVNLX0NBQ0hJTkc7DQo+KwlwbGFjZW1lbnRzLmZsYWdzID0gMDsNCj4gCXIgPSB0 dG1fYm9fbWVtX3NwYWNlKGJvLCAmcGxhY2VtZW50LCAmdG1wX21lbSwgY3R4KTsNCj4gCWlmICh1 bmxpa2VseShyKSkgew0KPiAJCXByX2VycigiRmFpbGVkIHRvIGZpbmQgR1RUIHNwYWNlIGZvciBi bGl0IGZyb20gVlJBTVxuIik7DQo+IAkJcmV0dXJuIHI7DQo+IAl9DQo+DQo+LQkvKiBzZXQgY2Fj aGluZyBmbGFncyAqLw0KPi0JciA9IHR0bV90dF9zZXRfcGxhY2VtZW50X2NhY2hpbmcoYm8tPnR0 bSwgdG1wX21lbS5wbGFjZW1lbnQpOw0KPi0JaWYgKHVubGlrZWx5KHIpKSB7DQo+LQkJZ290byBv dXRfY2xlYW51cDsNCj4tCX0NCj4tDQo+IAlyID0gdHRtX3R0X3BvcHVsYXRlKGJvLT5iZGV2LCBi by0+dHRtLCBjdHgpOw0KPiAJaWYgKHVubGlrZWx5KHIpKQ0KPiAJCWdvdG8gb3V0X2NsZWFudXA7 DQo+QEAgLTU5OSw3ICs1OTMsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9tb3ZlX3JhbV92cmFtKHN0 cnVjdA0KPnR0bV9idWZmZXJfb2JqZWN0ICpibywgYm9vbCBldmljdCwNCj4gCXBsYWNlbWVudHMu ZnBmbiA9IDA7DQo+IAlwbGFjZW1lbnRzLmxwZm4gPSAwOw0KPiAJcGxhY2VtZW50cy5tZW1fdHlw ZSA9IFRUTV9QTF9UVDsNCj4tCXBsYWNlbWVudHMuZmxhZ3MgPSBUVE1fUExfTUFTS19DQUNISU5H Ow0KPisJcGxhY2VtZW50cy5mbGFncyA9IDA7DQo+IAlyID0gdHRtX2JvX21lbV9zcGFjZShibywg JnBsYWNlbWVudCwgJnRtcF9tZW0sIGN0eCk7DQo+IAlpZiAodW5saWtlbHkocikpIHsNCj4gCQlw cl9lcnIoIkZhaWxlZCB0byBmaW5kIEdUVCBzcGFjZSBmb3IgYmxpdCB0byBWUkFNXG4iKTsNCj5k aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYw0KPmIvZHJp dmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYw0KPmluZGV4IDc5MTUxYjFjMTU3Yy4u YjljMGVhNzIwZWZkIDEwMDY0NA0KPi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1f aGVscGVyLmMNCj4rKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jDQo+ QEAgLTE0NywxNSArMTQ3LDEyIEBAIHN0YXRpYyB2b2lkIGRybV9nZW1fdnJhbV9wbGFjZW1lbnQo c3RydWN0DQo+ZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvLA0KPg0KPiAJaWYgKHBsX2ZsYWcgJiBE Uk1fR0VNX1ZSQU1fUExfRkxBR19WUkFNKSB7DQo+IAkJZ2JvLT5wbGFjZW1lbnRzW2NdLm1lbV90 eXBlID0gVFRNX1BMX1ZSQU07DQo+LQkJZ2JvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPSBUVE1f UExfRkxBR19XQyB8DQo+LQkJCQkJICAgICBUVE1fUExfRkxBR19VTkNBQ0hFRCB8DQo+LQkJCQkJ ICAgICBpbnZhcmlhbnRfZmxhZ3M7DQo+KwkJZ2JvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPSBp bnZhcmlhbnRfZmxhZ3M7DQo+IAl9DQo+DQo+IAlpZiAocGxfZmxhZyAmIERSTV9HRU1fVlJBTV9Q TF9GTEFHX1NZU1RFTSB8fCAhYykgew0KPiAJCWdiby0+cGxhY2VtZW50c1tjXS5tZW1fdHlwZSA9 IFRUTV9QTF9TWVNURU07DQo+LQkJZ2JvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPSBUVE1fUExf TUFTS19DQUNISU5HIHwNCj4tCQkJCQkgICAgIGludmFyaWFudF9mbGFnczsNCj4rCQlnYm8tPnBs YWNlbWVudHNbYysrXS5mbGFncyA9IGludmFyaWFudF9mbGFnczsNCj4gCX0NCj4NCj4gCWdiby0+ cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQgPSBjOw0KPmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMNCj5iL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfYm8uYw0KPmluZGV4IDhlZDMwZjQ3MWVjNy4uYjM3ZGZkMTJjN2I5IDEwMDY0NA0KPi0tLSBh L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uYw0KPisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uYw0KPkBAIC0zNDMsMzcgKzM0MywyMyBAQCBub3V2ZWF1 X2JvX25ldyhzdHJ1Y3Qgbm91dmVhdV9jbGkgKmNsaSwgdTY0IHNpemUsDQo+aW50IGFsaWduLA0K PiB9DQo+DQo+IHN0YXRpYyB2b2lkDQo+LXNldF9wbGFjZW1lbnRfbGlzdChzdHJ1Y3Qgbm91dmVh dV9kcm0gKmRybSwgc3RydWN0IHR0bV9wbGFjZSAqcGwsDQo+dW5zaWduZWQgKm4sDQo+LQkJICAg dWludDMyX3QgZG9tYWluLCB1aW50MzJfdCBmbGFncykNCj4rc2V0X3BsYWNlbWVudF9saXN0KHN0 cnVjdCB0dG1fcGxhY2UgKnBsLCB1bnNpZ25lZCAqbiwgdWludDMyX3QgZG9tYWluKQ0KPiB7DQo+ IAkqbiA9IDA7DQo+DQo+IAlpZiAoZG9tYWluICYgTk9VVkVBVV9HRU1fRE9NQUlOX1ZSQU0pIHsN Cj4tCQlzdHJ1Y3QgbnZpZl9tbXUgKm1tdSA9ICZkcm0tPmNsaWVudC5tbXU7DQo+LQkJY29uc3Qg dTggdHlwZSA9IG1tdS0+dHlwZVtkcm0tPnR0bS50eXBlX3ZyYW1dLnR5cGU7DQo+LQ0KPiAJCXBs WypuXS5tZW1fdHlwZSA9IFRUTV9QTF9WUkFNOw0KPi0JCXBsWypuXS5mbGFncyA9IGZsYWdzICYg flRUTV9QTF9GTEFHX0NBQ0hFRDsNCj4tDQo+LQkJLyogU29tZSBCQVJzIGRvIG5vdCBzdXBwb3J0 IGJlaW5nIGlvcmVtYXBwZWQgV0MgKi8NCj4tCQlpZiAoZHJtLT5jbGllbnQuZGV2aWNlLmluZm8u ZmFtaWx5ID49DQo+TlZfREVWSUNFX0lORk9fVjBfVEVTTEEgJiYNCj4tCQkgICAgdHlwZSAmIE5W SUZfTUVNX1VOQ0FDSEVEKQ0KPi0JCQlwbFsqbl0uZmxhZ3MgJj0gflRUTV9QTF9GTEFHX1dDOw0K Pi0NCj4rCQlwbFsqbl0uZmxhZ3MgPSAwOw0KPiAJCSgqbikrKzsNCj4gCX0NCj4gCWlmIChkb21h aW4gJiBOT1VWRUFVX0dFTV9ET01BSU5fR0FSVCkgew0KPiAJCXBsWypuXS5tZW1fdHlwZSA9IFRU TV9QTF9UVDsNCj4tCQlwbFsqbl0uZmxhZ3MgPSBmbGFnczsNCj4tDQo+LQkJaWYgKGRybS0+YWdw LmJyaWRnZSkNCj4tCQkJcGxbKm5dLmZsYWdzICY9IH5UVE1fUExfRkxBR19DQUNIRUQ7DQo+LQ0K PisJCXBsWypuXS5mbGFncyA9IDA7DQo+IAkJKCpuKSsrOw0KPiAJfQ0KPiAJaWYgKGRvbWFpbiAm IE5PVVZFQVVfR0VNX0RPTUFJTl9DUFUpIHsNCj4gCQlwbFsqbl0ubWVtX3R5cGUgPSBUVE1fUExf U1lTVEVNOw0KPi0JCXBsWygqbikrK10uZmxhZ3MgPSBmbGFnczsNCj4rCQlwbFsoKm4pKytdLmZs YWdzID0gMDsNCj4gCX0NCj4gfQ0KPg0KPkBAIC00MTUsMTggKzQwMSwxNCBAQCB2b2lkDQo+IG5v dXZlYXVfYm9fcGxhY2VtZW50X3NldChzdHJ1Y3Qgbm91dmVhdV9ibyAqbnZibywgdWludDMyX3Qg ZG9tYWluLA0KPiAJCQkgdWludDMyX3QgYnVzeSkNCj4gew0KPi0Jc3RydWN0IG5vdXZlYXVfZHJt ICpkcm0gPSBub3V2ZWF1X2JkZXYobnZiby0+Ym8uYmRldik7DQo+IAlzdHJ1Y3QgdHRtX3BsYWNl bWVudCAqcGwgPSAmbnZiby0+cGxhY2VtZW50Ow0KPi0JdWludDMyX3QgZmxhZ3MgPSBudmJvLT5m b3JjZV9jb2hlcmVudCA/IFRUTV9QTF9GTEFHX1VOQ0FDSEVEIDoNCj4tCQkJCQkJVFRNX1BMX01B U0tfQ0FDSElORzsNCj4NCj4gCXBsLT5wbGFjZW1lbnQgPSBudmJvLT5wbGFjZW1lbnRzOw0KPi0J c2V0X3BsYWNlbWVudF9saXN0KGRybSwgbnZiby0+cGxhY2VtZW50cywgJnBsLT5udW1fcGxhY2Vt ZW50LA0KPi0JCQkgICBkb21haW4sIGZsYWdzKTsNCj4rCXNldF9wbGFjZW1lbnRfbGlzdChudmJv LT5wbGFjZW1lbnRzLCAmcGwtPm51bV9wbGFjZW1lbnQsDQo+ZG9tYWluKTsNCj4NCj4gCXBsLT5i dXN5X3BsYWNlbWVudCA9IG52Ym8tPmJ1c3lfcGxhY2VtZW50czsNCj4tCXNldF9wbGFjZW1lbnRf bGlzdChkcm0sIG52Ym8tPmJ1c3lfcGxhY2VtZW50cywgJnBsLQ0KPj5udW1fYnVzeV9wbGFjZW1l bnQsDQo+LQkJCSAgIGRvbWFpbiB8IGJ1c3ksIGZsYWdzKTsNCj4rCXNldF9wbGFjZW1lbnRfbGlz dChudmJvLT5idXN5X3BsYWNlbWVudHMsICZwbC0NCj4+bnVtX2J1c3lfcGxhY2VtZW50LA0KPisJ CQkgICBkb21haW4gfCBidXN5KTsNCj4NCj4gCXNldF9wbGFjZW1lbnRfcmFuZ2UobnZibywgZG9t YWluKTsNCj4gfQ0KPkBAIC04ODgsNyArODcwLDcgQEAgbm91dmVhdV9ib19tb3ZlX2ZsaXBkKHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdA0KPipibywgYm9vbCBldmljdCwNCj4gCQkuZnBmbiA9IDAs DQo+IAkJLmxwZm4gPSAwLA0KPiAJCS5tZW1fdHlwZSA9IFRUTV9QTF9UVCwNCj4tCQkuZmxhZ3Mg PSBUVE1fUExfTUFTS19DQUNISU5HDQo+KwkJLmZsYWdzID0gMA0KPiAJfTsNCj4gCXN0cnVjdCB0 dG1fcGxhY2VtZW50IHBsYWNlbWVudDsNCj4gCXN0cnVjdCB0dG1fcmVzb3VyY2UgdG1wX3JlZzsN Cj5AQCAtOTMwLDcgKzkxMiw3IEBAIG5vdXZlYXVfYm9fbW92ZV9mbGlwcyhzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QNCj4qYm8sIGJvb2wgZXZpY3QsDQo+IAkJLmZwZm4gPSAwLA0KPiAJCS5scGZu ID0gMCwNCj4gCQkubWVtX3R5cGUgPSBUVE1fUExfVFQsDQo+LQkJLmZsYWdzID0gVFRNX1BMX01B U0tfQ0FDSElORw0KPisJCS5mbGFncyA9IDANCj4gCX07DQo+IAlzdHJ1Y3QgdHRtX3BsYWNlbWVu dCBwbGFjZW1lbnQ7DQo+IAlzdHJ1Y3QgdHRtX3Jlc291cmNlIHRtcF9yZWc7DQo+ZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX29iamVjdC5jDQo+Yi9kcml2ZXJzL2dwdS9kcm0v cXhsL3F4bF9vYmplY3QuYw0KPmluZGV4IGM4YjY3ZTdhM2YwMi4uNWJhOGFhYzAwZjVjIDEwMDY0 NA0KPi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX29iamVjdC5jDQo+KysrIGIvZHJpdmVy cy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmMNCj5AQCAtNjQsMjEgKzY0LDIxIEBAIHZvaWQgcXhs X3R0bV9wbGFjZW1lbnRfZnJvbV9kb21haW4oc3RydWN0IHF4bF9ibw0KPipxYm8sIHUzMiBkb21h aW4pDQo+IAlxYm8tPnBsYWNlbWVudC5idXN5X3BsYWNlbWVudCA9IHFiby0+cGxhY2VtZW50czsN Cj4gCWlmIChkb21haW4gPT0gUVhMX0dFTV9ET01BSU5fVlJBTSkgew0KPiAJCXFiby0+cGxhY2Vt ZW50c1tjXS5tZW1fdHlwZSA9IFRUTV9QTF9WUkFNOw0KPi0JCXFiby0+cGxhY2VtZW50c1tjKytd LmZsYWdzID0gVFRNX1BMX0ZMQUdfQ0FDSEVEIHwgcGZsYWc7DQo+KwkJcWJvLT5wbGFjZW1lbnRz W2MrK10uZmxhZ3MgPSBwZmxhZzsNCj4gCX0NCj4gCWlmIChkb21haW4gPT0gUVhMX0dFTV9ET01B SU5fU1VSRkFDRSkgew0KPiAJCXFiby0+cGxhY2VtZW50c1tjXS5tZW1fdHlwZSA9IFRUTV9QTF9Q UklWOw0KPi0JCXFiby0+cGxhY2VtZW50c1tjKytdLmZsYWdzID0gVFRNX1BMX0ZMQUdfQ0FDSEVE IHwgcGZsYWc7DQo+KwkJcWJvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPSBwZmxhZzsNCj4gCQlx Ym8tPnBsYWNlbWVudHNbY10ubWVtX3R5cGUgPSBUVE1fUExfVlJBTTsNCj4tCQlxYm8tPnBsYWNl bWVudHNbYysrXS5mbGFncyA9IFRUTV9QTF9GTEFHX0NBQ0hFRCB8IHBmbGFnOw0KPisJCXFiby0+ cGxhY2VtZW50c1tjKytdLmZsYWdzID0gcGZsYWc7DQo+IAl9DQo+IAlpZiAoZG9tYWluID09IFFY TF9HRU1fRE9NQUlOX0NQVSkgew0KPiAJCXFiby0+cGxhY2VtZW50c1tjXS5tZW1fdHlwZSA9IFRU TV9QTF9TWVNURU07DQo+LQkJcWJvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPSBUVE1fUExfTUFT S19DQUNISU5HIHwNCj5wZmxhZzsNCj4rCQlxYm8tPnBsYWNlbWVudHNbYysrXS5mbGFncyA9IHBm bGFnOw0KPiAJfQ0KPiAJaWYgKCFjKSB7DQo+IAkJcWJvLT5wbGFjZW1lbnRzW2NdLm1lbV90eXBl ID0gVFRNX1BMX1NZU1RFTTsNCj4tCQlxYm8tPnBsYWNlbWVudHNbYysrXS5mbGFncyA9IFRUTV9Q TF9NQVNLX0NBQ0hJTkc7DQo+KwkJcWJvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPSAwOw0KPiAJ fQ0KPiAJcWJvLT5wbGFjZW1lbnQubnVtX3BsYWNlbWVudCA9IGM7DQo+IAlxYm8tPnBsYWNlbWVu dC5udW1fYnVzeV9wbGFjZW1lbnQgPSBjOw0KPmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cXhsL3F4bF90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3R0bS5jDQo+aW5kZXggZTc5 ZDRkZjk5NzkwLi5kNTM1ZTgzNmJlNzIgMTAwNjQ0DQo+LS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4 bC9xeGxfdHRtLmMNCj4rKysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF90dG0uYw0KPkBAIC01 Niw3ICs1Niw3IEBAIHN0YXRpYyB2b2lkIHF4bF9ldmljdF9mbGFncyhzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvLA0KPiAJCS5mcGZuID0gMCwNCj4gCQkubHBmbiA9IDAsDQo+IAkJLm1lbV90 eXBlID0gVFRNX1BMX1NZU1RFTSwNCj4tCQkuZmxhZ3MgPSBUVE1fUExfTUFTS19DQUNISU5HDQo+ KwkJLmZsYWdzID0gMA0KPiAJfTsNCj4NCj4gCWlmICghcXhsX3R0bV9ib19pc19xeGxfYm8oYm8p KSB7DQo+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5j DQo+Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYw0KPmluZGV4IDhjMjg1 ZWIxMThmOS4uYTBiMmM0NTQxYTJhIDEwMDY0NA0KPi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX29iamVjdC5jDQo+KysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f b2JqZWN0LmMNCj5AQCAtMTEzLDU3ICsxMTMsMjkgQEAgdm9pZCByYWRlb25fdHRtX3BsYWNlbWVu dF9mcm9tX2RvbWFpbihzdHJ1Y3QNCj5yYWRlb25fYm8gKnJibywgdTMyIGRvbWFpbikNCj4gCQkJ cmJvLT5wbGFjZW1lbnRzW2NdLmZwZm4gPQ0KPiAJCQkJcmJvLT5yZGV2LT5tYy52aXNpYmxlX3Zy YW1fc2l6ZSA+Pg0KPlBBR0VfU0hJRlQ7DQo+IAkJCXJiby0+cGxhY2VtZW50c1tjXS5tZW1fdHlw ZSA9IFRUTV9QTF9WUkFNOw0KPi0JCQlyYm8tPnBsYWNlbWVudHNbYysrXS5mbGFncyA9IFRUTV9Q TF9GTEFHX1dDIHwNCj4tCQkJCQkJICAgICBUVE1fUExfRkxBR19VTkNBQ0hFRDsNCj4rCQkJcmJv LT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPSAwOw0KPiAJCX0NCj4NCj4gCQlyYm8tPnBsYWNlbWVu dHNbY10uZnBmbiA9IDA7DQo+IAkJcmJvLT5wbGFjZW1lbnRzW2NdLm1lbV90eXBlID0gVFRNX1BM X1ZSQU07DQo+LQkJcmJvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPSBUVE1fUExfRkxBR19XQyB8 DQo+LQkJCQkJICAgICBUVE1fUExfRkxBR19VTkNBQ0hFRDsNCj4rCQlyYm8tPnBsYWNlbWVudHNb YysrXS5mbGFncyA9IDA7DQo+IAl9DQo+DQo+IAlpZiAoZG9tYWluICYgUkFERU9OX0dFTV9ET01B SU5fR1RUKSB7DQo+LQkJaWYgKHJiby0+ZmxhZ3MgJiBSQURFT05fR0VNX0dUVF9VQykgew0KPi0J CQlyYm8tPnBsYWNlbWVudHNbY10uZnBmbiA9IDA7DQo+LQkJCXJiby0+cGxhY2VtZW50c1tjXS5t ZW1fdHlwZSA9IFRUTV9QTF9UVDsNCj4tCQkJcmJvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPQ0K PlRUTV9QTF9GTEFHX1VOQ0FDSEVEOw0KPi0NCj4tCQl9IGVsc2UgaWYgKChyYm8tPmZsYWdzICYg UkFERU9OX0dFTV9HVFRfV0MpIHx8DQo+LQkJCSAgIChyYm8tPnJkZXYtPmZsYWdzICYgUkFERU9O X0lTX0FHUCkpIHsNCj4tCQkJcmJvLT5wbGFjZW1lbnRzW2NdLmZwZm4gPSAwOw0KPi0JCQlyYm8t PnBsYWNlbWVudHNbY10ubWVtX3R5cGUgPSBUVE1fUExfVFQ7DQo+LQkJCXJiby0+cGxhY2VtZW50 c1tjKytdLmZsYWdzID0gVFRNX1BMX0ZMQUdfV0MgfA0KPi0JCQkJVFRNX1BMX0ZMQUdfVU5DQUNI RUQ7DQo+LQkJfSBlbHNlIHsNCj4tCQkJcmJvLT5wbGFjZW1lbnRzW2NdLmZwZm4gPSAwOw0KPi0J CQlyYm8tPnBsYWNlbWVudHNbY10ubWVtX3R5cGUgPSBUVE1fUExfVFQ7DQo+LQkJCXJiby0+cGxh Y2VtZW50c1tjKytdLmZsYWdzID0NCj5UVE1fUExfRkxBR19DQUNIRUQ7DQo+LQkJfQ0KPisJCXJi by0+cGxhY2VtZW50c1tjXS5mcGZuID0gMDsNCj4rCQlyYm8tPnBsYWNlbWVudHNbY10ubWVtX3R5 cGUgPSBUVE1fUExfVFQ7DQo+KwkJcmJvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPSAwOw0KPiAJ fQ0KPg0KPiAJaWYgKGRvbWFpbiAmIFJBREVPTl9HRU1fRE9NQUlOX0NQVSkgew0KPi0JCWlmIChy Ym8tPmZsYWdzICYgUkFERU9OX0dFTV9HVFRfVUMpIHsNCj4tCQkJcmJvLT5wbGFjZW1lbnRzW2Nd LmZwZm4gPSAwOw0KPi0JCQlyYm8tPnBsYWNlbWVudHNbY10ubWVtX3R5cGUgPSBUVE1fUExfU1lT VEVNOw0KPi0JCQlyYm8tPnBsYWNlbWVudHNbYysrXS5mbGFncyA9DQo+VFRNX1BMX0ZMQUdfVU5D QUNIRUQ7DQo+LQ0KPi0JCX0gZWxzZSBpZiAoKHJiby0+ZmxhZ3MgJiBSQURFT05fR0VNX0dUVF9X QykgfHwNCj4tCQkgICAgcmJvLT5yZGV2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApIHsNCj4tCQkJ cmJvLT5wbGFjZW1lbnRzW2NdLmZwZm4gPSAwOw0KPi0JCQlyYm8tPnBsYWNlbWVudHNbY10ubWVt X3R5cGUgPSBUVE1fUExfU1lTVEVNOw0KPi0JCQlyYm8tPnBsYWNlbWVudHNbYysrXS5mbGFncyA9 IFRUTV9QTF9GTEFHX1dDIHwNCj4tCQkJCVRUTV9QTF9GTEFHX1VOQ0FDSEVEOw0KPi0JCX0gZWxz ZSB7DQo+LQkJCXJiby0+cGxhY2VtZW50c1tjXS5mcGZuID0gMDsNCj4tCQkJcmJvLT5wbGFjZW1l bnRzW2NdLm1lbV90eXBlID0gVFRNX1BMX1NZU1RFTTsNCj4tCQkJcmJvLT5wbGFjZW1lbnRzW2Mr K10uZmxhZ3MgPQ0KPlRUTV9QTF9GTEFHX0NBQ0hFRDsNCj4tCQl9DQo+KwkJcmJvLT5wbGFjZW1l bnRzW2NdLmZwZm4gPSAwOw0KPisJCXJiby0+cGxhY2VtZW50c1tjXS5tZW1fdHlwZSA9IFRUTV9Q TF9TWVNURU07DQo+KwkJcmJvLT5wbGFjZW1lbnRzW2MrK10uZmxhZ3MgPSAwOw0KPiAJfQ0KPiAJ aWYgKCFjKSB7DQo+IAkJcmJvLT5wbGFjZW1lbnRzW2NdLmZwZm4gPSAwOw0KPiAJCXJiby0+cGxh Y2VtZW50c1tjXS5tZW1fdHlwZSA9IFRUTV9QTF9TWVNURU07DQo+LQkJcmJvLT5wbGFjZW1lbnRz W2MrK10uZmxhZ3MgPSBUVE1fUExfTUFTS19DQUNISU5HOw0KPisJCXJiby0+cGxhY2VtZW50c1tj KytdLmZsYWdzID0gMDsNCj4gCX0NCj4NCj4gCXJiby0+cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQg PSBjOw0KPmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYw0K PmIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMNCj5pbmRleCA5YjUzYTFkODA2 MzIuLmQ2ZjQyZmJjODFmNCAxMDA2NDQNCj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl90dG0uYw0KPisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jDQo+ QEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIHZvaWQgcmFkZW9uX2V2aWN0X2ZsYWdzKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdA0KPipibywNCj4gCQkuZnBmbiA9IDAsDQo+IAkJLmxwZm4gPSAwLA0K PiAJCS5tZW1fdHlwZSA9IFRUTV9QTF9TWVNURU0sDQo+LQkJLmZsYWdzID0gVFRNX1BMX01BU0tf Q0FDSElORw0KPisJCS5mbGFncyA9IDANCj4gCX07DQo+DQo+IAlzdHJ1Y3QgcmFkZW9uX2JvICpy Ym87DQo+QEAgLTIyNSwxNyArMjI1LDEyIEBAIHN0YXRpYyBpbnQgcmFkZW9uX21vdmVfdnJhbV9y YW0oc3RydWN0DQo+dHRtX2J1ZmZlcl9vYmplY3QgKmJvLA0KPiAJcGxhY2VtZW50cy5mcGZuID0g MDsNCj4gCXBsYWNlbWVudHMubHBmbiA9IDA7DQo+IAlwbGFjZW1lbnRzLm1lbV90eXBlID0gVFRN X1BMX1RUOw0KPi0JcGxhY2VtZW50cy5mbGFncyA9IFRUTV9QTF9NQVNLX0NBQ0hJTkc7DQo+Kwlw bGFjZW1lbnRzLmZsYWdzID0gMDsNCj4gCXIgPSB0dG1fYm9fbWVtX3NwYWNlKGJvLCAmcGxhY2Vt ZW50LCAmdG1wX21lbSwgY3R4KTsNCj4gCWlmICh1bmxpa2VseShyKSkgew0KPiAJCXJldHVybiBy Ow0KPiAJfQ0KPg0KPi0JciA9IHR0bV90dF9zZXRfcGxhY2VtZW50X2NhY2hpbmcoYm8tPnR0bSwg dG1wX21lbS5wbGFjZW1lbnQpOw0KPi0JaWYgKHVubGlrZWx5KHIpKSB7DQo+LQkJZ290byBvdXRf Y2xlYW51cDsNCj4tCX0NCj4tDQo+IAlyID0gdHRtX3R0X3BvcHVsYXRlKGJvLT5iZGV2LCBiby0+ dHRtLCBjdHgpOw0KPiAJaWYgKHVubGlrZWx5KHIpKSB7DQo+IAkJZ290byBvdXRfY2xlYW51cDsN Cj5AQCAtMjc1LDcgKzI3MCw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX21vdmVfcmFtX3ZyYW0oc3Ry dWN0DQo+dHRtX2J1ZmZlcl9vYmplY3QgKmJvLA0KPiAJcGxhY2VtZW50cy5mcGZuID0gMDsNCj4g CXBsYWNlbWVudHMubHBmbiA9IDA7DQo+IAlwbGFjZW1lbnRzLm1lbV90eXBlID0gVFRNX1BMX1RU Ow0KPi0JcGxhY2VtZW50cy5mbGFncyA9IFRUTV9QTF9NQVNLX0NBQ0hJTkc7DQo+KwlwbGFjZW1l bnRzLmZsYWdzID0gMDsNCj4gCXIgPSB0dG1fYm9fbWVtX3NwYWNlKGJvLCAmcGxhY2VtZW50LCAm dG1wX21lbSwgY3R4KTsNCj4gCWlmICh1bmxpa2VseShyKSkgew0KPiAJCXJldHVybiByOw0KPkBA IC0zODksMTIgKzM4NCw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX3R0bV9pb19tZW1fcmVzZXJ2ZShz dHJ1Y3QNCj50dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3Jlc28NCj4gCQkgKiBBbHBo YTogdXNlIGJ1cy5hZGRyIHRvIGhvbGQgdGhlIGlvcmVtYXAoKSByZXR1cm4sDQo+IAkJICogc28g d2UgY2FuIG1vZGlmeSBidXMuYmFzZSBiZWxvdy4NCj4gCQkgKi8NCj4tCQlpZiAobWVtLT5wbGFj ZW1lbnQgJiBUVE1fUExfRkxBR19XQykNCj4tCQkJbWVtLT5idXMuYWRkciA9DQo+LQkJCQlpb3Jl bWFwX3djKG1lbS0+YnVzLm9mZnNldCwgYnVzX3NpemUpOw0KPi0JCWVsc2UNCj4tCQkJbWVtLT5i dXMuYWRkciA9DQo+LQkJCQlpb3JlbWFwKG1lbS0+YnVzLm9mZnNldCwgYnVzX3NpemUpOw0KPisJ CW1lbS0+YnVzLmFkZHIgPSBpb3JlbWFwX3djKG1lbS0+YnVzLm9mZnNldCwgYnVzX3NpemUpOw0K DQpXaHkgY2FuIHlvdSBlbGltaW5hdGUgdGhlIGlvcmVtYXAoKSBoZXJlPw0KDQpkb2VzIHRoaXMg bmVlZCB0byBiZToNCg0KaWYgbWVtLT5idXMuY2FjaGluZyBpbnN0ZWFkPw0KDQoNCj4gCQlpZiAo IW1lbS0+YnVzLmFkZHIpDQo+IAkJCXJldHVybiAtRU5PTUVNOw0KPg0KPmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9hZ3BfYmFja2VuZC5jDQo+Yi9kcml2ZXJzL2dwdS9kcm0v dHRtL3R0bV9hZ3BfYmFja2VuZC5jDQo+aW5kZXggYTcyMzA2MmQzN2U3Li40Zjc2YzkyODcxNTkg MTAwNjQ0DQo+LS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYWdwX2JhY2tlbmQuYw0KPisr KyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2FncF9iYWNrZW5kLmMNCj5AQCAtNTQsNyArNTQs NyBAQCBpbnQgdHRtX2FncF9iaW5kKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0DQo+dHRtX3Jl c291cmNlICpib19tZW0pDQo+IAlzdHJ1Y3QgcGFnZSAqZHVtbXlfcmVhZF9wYWdlID0gdHRtX2Jv X2dsb2IuZHVtbXlfcmVhZF9wYWdlOw0KPiAJc3RydWN0IGRybV9tbV9ub2RlICpub2RlID0gYm9f bWVtLT5tbV9ub2RlOw0KPiAJc3RydWN0IGFncF9tZW1vcnkgKm1lbTsNCj4tCWludCByZXQsIGNh Y2hlZCA9IChib19tZW0tPnBsYWNlbWVudCAmIFRUTV9QTF9GTEFHX0NBQ0hFRCk7DQo+KwlpbnQg cmV0LCBjYWNoZWQgPSB0dG0tPmNhY2hpbmcgPT0gdHRtX2NhY2hlZDsNCj4gCXVuc2lnbmVkIGk7 DQo+DQo+IAlpZiAoYWdwX2JlLT5tZW0pDQo+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jDQo+aW5kZXggZTExZThl YWE2NjAyLi4yZmU0Y2JlZmRlMjggMTAwNjQ0DQo+LS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90 dG1fYm8uYw0KPisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMNCj5AQCAtMjUyLDEw ICsyNTIsNiBAQCBzdGF0aWMgaW50IHR0bV9ib19oYW5kbGVfbW92ZV9tZW0oc3RydWN0DQo+dHRt X2J1ZmZlcl9vYmplY3QgKmJvLA0KPiAJCWlmIChyZXQpDQo+IAkJCWdvdG8gb3V0X2VycjsNCj4N Cj4tCQlyZXQgPSB0dG1fdHRfc2V0X3BsYWNlbWVudF9jYWNoaW5nKGJvLT50dG0sIG1lbS0NCj4+ cGxhY2VtZW50KTsNCj4tCQlpZiAocmV0KQ0KPi0JCQlnb3RvIG91dF9lcnI7DQo+LQ0KPiAJCWlm IChtZW0tPm1lbV90eXBlICE9IFRUTV9QTF9TWVNURU0pIHsNCj4gCQkJcmV0ID0gdHRtX3R0X3Bv cHVsYXRlKGJkZXYsIGJvLT50dG0sIGN0eCk7DQo+IAkJCWlmIChyZXQpDQo+QEAgLTg1NCwyOSAr ODUwLDYgQEAgc3RhdGljIGludCB0dG1fYm9fbWVtX2ZvcmNlX3NwYWNlKHN0cnVjdA0KPnR0bV9i dWZmZXJfb2JqZWN0ICpibywNCj4gCXJldHVybiB0dG1fYm9fYWRkX21vdmVfZmVuY2UoYm8sIG1h biwgbWVtLCBjdHgtPm5vX3dhaXRfZ3B1KTsNCj4gfQ0KPg0KPi1zdGF0aWMgdWludDMyX3QgdHRt X2JvX3NlbGVjdF9jYWNoaW5nKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLA0KPi0J CQkJICAgICAgdWludDMyX3QgY3VyX3BsYWNlbWVudCwNCj4tCQkJCSAgICAgIHVpbnQzMl90IHBy b3Bvc2VkX3BsYWNlbWVudCkNCj4tew0KPi0JdWludDMyX3QgY2FjaGluZyA9IHByb3Bvc2VkX3Bs YWNlbWVudCAmIFRUTV9QTF9NQVNLX0NBQ0hJTkc7DQo+LQl1aW50MzJfdCByZXN1bHQgPSBwcm9w b3NlZF9wbGFjZW1lbnQgJiB+VFRNX1BMX01BU0tfQ0FDSElORzsNCj4tDQo+LQkvKioNCj4tCSAq IEtlZXAgY3VycmVudCBjYWNoaW5nIGlmIHBvc3NpYmxlLg0KPi0JICovDQo+LQ0KPi0JaWYgKChj dXJfcGxhY2VtZW50ICYgY2FjaGluZykgIT0gMCkNCj4tCQlyZXN1bHQgfD0gKGN1cl9wbGFjZW1l bnQgJiBjYWNoaW5nKTsNCj4tCWVsc2UgaWYgKChUVE1fUExfRkxBR19DQUNIRUQgJiBjYWNoaW5n KSAhPSAwKQ0KPi0JCXJlc3VsdCB8PSBUVE1fUExfRkxBR19DQUNIRUQ7DQo+LQllbHNlIGlmICgo VFRNX1BMX0ZMQUdfV0MgJiBjYWNoaW5nKSAhPSAwKQ0KPi0JCXJlc3VsdCB8PSBUVE1fUExfRkxB R19XQzsNCj4tCWVsc2UgaWYgKChUVE1fUExfRkxBR19VTkNBQ0hFRCAmIGNhY2hpbmcpICE9IDAp DQo+LQkJcmVzdWx0IHw9IFRUTV9QTF9GTEFHX1VOQ0FDSEVEOw0KPi0NCj4tCXJldHVybiByZXN1 bHQ7DQo+LX0NCj4tDQo+IC8qKg0KPiAgKiB0dG1fYm9fbWVtX3BsYWNlbWVudCAtIGNoZWNrIGlm IHBsYWNlbWVudCBpcyBjb21wYXRpYmxlDQo+ICAqIEBibzogQk8gdG8gZmluZCBtZW1vcnkgZm9y DQo+QEAgLTg5NSwxOCArODY4LDEzIEBAIHN0YXRpYyBpbnQgdHRtX2JvX21lbV9wbGFjZW1lbnQo c3RydWN0DQo+dHRtX2J1ZmZlcl9vYmplY3QgKmJvLA0KPiB7DQo+IAlzdHJ1Y3QgdHRtX2JvX2Rl dmljZSAqYmRldiA9IGJvLT5iZGV2Ow0KPiAJc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICpt YW47DQo+LQl1aW50MzJfdCBjdXJfZmxhZ3MgPSAwOw0KPg0KPiAJbWFuID0gdHRtX21hbmFnZXJf dHlwZShiZGV2LCBwbGFjZS0+bWVtX3R5cGUpOw0KPiAJaWYgKCFtYW4gfHwgIXR0bV9yZXNvdXJj ZV9tYW5hZ2VyX3VzZWQobWFuKSkNCj4gCQlyZXR1cm4gLUVCVVNZOw0KPg0KPi0JY3VyX2ZsYWdz ID0gdHRtX2JvX3NlbGVjdF9jYWNoaW5nKG1hbiwgYm8tPm1lbS5wbGFjZW1lbnQsDQo+LQkJCQkJ ICBwbGFjZS0+ZmxhZ3MpOw0KPi0JY3VyX2ZsYWdzIHw9IHBsYWNlLT5mbGFncyAmIH5UVE1fUExf TUFTS19DQUNISU5HOw0KPi0NCj4gCW1lbS0+bWVtX3R5cGUgPSBwbGFjZS0+bWVtX3R5cGU7DQo+ LQltZW0tPnBsYWNlbWVudCA9IGN1cl9mbGFnczsNCj4rCW1lbS0+cGxhY2VtZW50ID0gcGxhY2Ut PmZsYWdzOw0KPg0KPiAJc3Bpbl9sb2NrKCZ0dG1fYm9fZ2xvYi5scnVfbG9jayk7DQo+IAl0dG1f Ym9fZGVsX2Zyb21fbHJ1KGJvKTsNCj5AQCAtMTAzOSw4ICsxMDA3LDcgQEAgc3RhdGljIGJvb2wg dHRtX2JvX3BsYWNlc19jb21wYXQoY29uc3Qgc3RydWN0DQo+dHRtX3BsYWNlICpwbGFjZXMsDQo+ IAkJCWNvbnRpbnVlOw0KPg0KPiAJCSpuZXdfZmxhZ3MgPSBoZWFwLT5mbGFnczsNCj4tCQlpZiAo KCpuZXdfZmxhZ3MgJiBtZW0tPnBsYWNlbWVudCAmDQo+VFRNX1BMX01BU0tfQ0FDSElORykgJiYN Cj4tCQkgICAgKG1lbS0+bWVtX3R5cGUgPT0gaGVhcC0+bWVtX3R5cGUpICYmDQo+KwkJaWYgKCht ZW0tPm1lbV90eXBlID09IGhlYXAtPm1lbV90eXBlKSAmJg0KPiAJCSAgICAoISgqbmV3X2ZsYWdz ICYgVFRNX1BMX0ZMQUdfQ09OVElHVU9VUykgfHwNCj4gCQkgICAgIChtZW0tPnBsYWNlbWVudCAm IFRUTV9QTF9GTEFHX0NPTlRJR1VPVVMpKSkNCj4gCQkJcmV0dXJuIHRydWU7DQo+QEAgLTEwOTQs OSArMTA2MSw2IEBAIGludCB0dG1fYm9fdmFsaWRhdGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywNCj4gCQlyZXQgPSB0dG1fYm9fbW92ZV9idWZmZXIoYm8sIHBsYWNlbWVudCwgY3R4KTsN Cj4gCQlpZiAocmV0KQ0KPiAJCQlyZXR1cm4gcmV0Ow0KPi0JfSBlbHNlIHsNCj4tCQliby0+bWVt LnBsYWNlbWVudCAmPSBUVE1fUExfTUFTS19DQUNISU5HOw0KPi0JCWJvLT5tZW0ucGxhY2VtZW50 IHw9IG5ld19mbGFncyAmDQo+flRUTV9QTF9NQVNLX0NBQ0hJTkc7DQo+IAl9DQo+IAkvKg0KPiAJ ICogV2UgbWlnaHQgbmVlZCB0byBhZGQgYSBUVE0uDQo+QEAgLTExNjQsNyArMTEyOCw3IEBAIGlu dCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2JvX2RldmljZQ0KPipiZGV2LA0KPiAJ Ym8tPm1lbS5idXMub2Zmc2V0ID0gMDsNCj4gCWJvLT5tZW0uYnVzLmFkZHIgPSBOVUxMOw0KPiAJ Ym8tPm1vdmluZyA9IE5VTEw7DQo+LQliby0+bWVtLnBsYWNlbWVudCA9IFRUTV9QTF9GTEFHX0NB Q0hFRDsNCj4rCWJvLT5tZW0ucGxhY2VtZW50ID0gMDsNCj4gCWJvLT5hY2Nfc2l6ZSA9IGFjY19z aXplOw0KPiAJYm8tPnBpbl9jb3VudCA9IDA7DQo+IAliby0+c2cgPSBzZzsNCj5AQCAtMTUxMiw3 ICsxNDc2LDcgQEAgaW50IHR0bV9ib19zd2Fwb3V0KHN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9i LA0KPnN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQ0KPg0KPiAJCWV2aWN0X21lbSA9IGJv LT5tZW07DQo+IAkJZXZpY3RfbWVtLm1tX25vZGUgPSBOVUxMOw0KPi0JCWV2aWN0X21lbS5wbGFj ZW1lbnQgPSBUVE1fUExfTUFTS19DQUNISU5HOw0KPisJCWV2aWN0X21lbS5wbGFjZW1lbnQgPSAw Ow0KPiAJCWV2aWN0X21lbS5tZW1fdHlwZSA9IFRUTV9QTF9TWVNURU07DQo+DQo+IAkJcmV0ID0g dHRtX2JvX2hhbmRsZV9tb3ZlX21lbShibywgJmV2aWN0X21lbSwgdHJ1ZSwNCj4mY3R4KTsNCj5k aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jDQo+Yi9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMNCj5pbmRleCAwNTQyMDk3ZGM0MTkuLmJhN2FiNWVk ODVkMCAxMDA2NDQNCj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMNCj4r KysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMNCj5AQCAtNzIsMTAgKzcyLDYg QEAgaW50IHR0bV9ib19tb3ZlX3R0bShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLA0KPiAJ CW9sZF9tZW0tPm1lbV90eXBlID0gVFRNX1BMX1NZU1RFTTsNCj4gCX0NCj4NCj4tCXJldCA9IHR0 bV90dF9zZXRfcGxhY2VtZW50X2NhY2hpbmcodHRtLCBuZXdfbWVtLT5wbGFjZW1lbnQpOw0KPi0J aWYgKHVubGlrZWx5KHJldCAhPSAwKSkNCj4tCQlyZXR1cm4gcmV0Ow0KPi0NCj4gCWlmIChuZXdf bWVtLT5tZW1fdHlwZSAhPSBUVE1fUExfU1lTVEVNKSB7DQo+DQo+IAkJcmV0ID0gdHRtX3R0X3Bv cHVsYXRlKGJvLT5iZGV2LCB0dG0sIGN0eCk7DQo+QEAgLTEzNSw3ICsxMzEsNyBAQCBzdGF0aWMg aW50IHR0bV9yZXNvdXJjZV9pb3JlbWFwKHN0cnVjdCB0dG1fYm9fZGV2aWNlDQo+KmJkZXYsDQo+ IAl9IGVsc2Ugew0KPiAJCXNpemVfdCBidXNfc2l6ZSA9IChzaXplX3QpbWVtLT5udW1fcGFnZXMg PDwgUEFHRV9TSElGVDsNCj4NCj4tCQlpZiAobWVtLT5wbGFjZW1lbnQgJiBUVE1fUExfRkxBR19X QykNCj4rCQlpZiAobWVtLT5idXMuY2FjaGluZyA9PSB0dG1fd3JpdGVfY29tYmluZWQpDQo+IAkJ CWFkZHIgPSBpb3JlbWFwX3djKG1lbS0+YnVzLm9mZnNldCwgYnVzX3NpemUpOw0KPiAJCWVsc2UN Cj4gCQkJYWRkciA9IGlvcmVtYXAobWVtLT5idXMub2Zmc2V0LCBidXNfc2l6ZSk7DQo+QEAgLTQy Nyw3ICs0MjMsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19pb3JlbWFwKHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdA0KPipibywNCj4gCQltYXAtPnZpcnR1YWwgPSAodm9pZCAqKSgoKHU4ICopYm8tPm1l bS5idXMuYWRkcikgKyBvZmZzZXQpOw0KPiAJfSBlbHNlIHsNCj4gCQltYXAtPmJvX2ttYXBfdHlw ZSA9IHR0bV9ib19tYXBfaW9tYXA7DQo+LQkJaWYgKG1lbS0+cGxhY2VtZW50ICYgVFRNX1BMX0ZM QUdfV0MpDQo+KwkJaWYgKG1lbS0+YnVzLmNhY2hpbmcgPT0gdHRtX3dyaXRlX2NvbWJpbmVkKQ0K PiAJCQltYXAtPnZpcnR1YWwgPSBpb3JlbWFwX3djKGJvLT5tZW0uYnVzLm9mZnNldCArDQo+b2Zm c2V0LA0KPiAJCQkJCQkgIHNpemUpOw0KPiAJCWVsc2UNCj5AQCAtNDU3LDcgKzQ1Myw3IEBAIHN0 YXRpYyBpbnQgdHRtX2JvX2ttYXBfdHRtKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdA0KPipibywN Cj4gCWlmIChyZXQpDQo+IAkJcmV0dXJuIHJldDsNCj4NCj4tCWlmIChudW1fcGFnZXMgPT0gMSAm JiAobWVtLT5wbGFjZW1lbnQgJg0KPlRUTV9QTF9GTEFHX0NBQ0hFRCkpIHsNCj4rCWlmIChudW1f cGFnZXMgPT0gMSAmJiB0dG0tPmNhY2hpbmcgPT0gdHRtX2NhY2hlZCkgew0KPiAJCS8qDQo+IAkJ ICogV2UncmUgbWFwcGluZyBhIHNpbmdsZSBwYWdlLCBhbmQgdGhlIGRlc2lyZWQNCj4gCQkgKiBw YWdlIHByb3RlY3Rpb24gaXMgY29uc2lzdGVudCB3aXRoIHRoZSBiby4NCj5kaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0 LmMNCj5pbmRleCBhNDY1ZjUxZGYwMjcuLjNlNWRkNjI3MWQ0YyAxMDA2NDQNCj4tLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jDQo+KysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f dHQuYw0KPkBAIC0xMTQsMzUgKzExNCw2IEBAIHN0YXRpYyBpbnQgdHRtX3NnX3R0X2FsbG9jX3Bh Z2VfZGlyZWN0b3J5KHN0cnVjdA0KPnR0bV9kbWFfdHQgKnR0bSkNCj4gCXJldHVybiAwOw0KPiB9 DQo+DQo+LXN0YXRpYyBpbnQgdHRtX3R0X3NldF9jYWNoaW5nKHN0cnVjdCB0dG1fdHQgKnR0bSwg ZW51bSB0dG1fY2FjaGluZyBjYWNoaW5nKQ0KPi17DQo+LQlpZiAodHRtLT5jYWNoaW5nID09IGNh Y2hpbmcpDQo+LQkJcmV0dXJuIDA7DQo+LQ0KPi0JLyogQ2FuJ3QgY2hhbmdlIHRoZSBjYWNoaW5n IHN0YXRlIGFmdGVyIFRUIGlzIHBvcHVsYXRlZCAqLw0KPi0JaWYgKFdBUk5fT05fT05DRSh0dG1f dHRfaXNfcG9wdWxhdGVkKHR0bSkpKQ0KPi0JCXJldHVybiAtRUlOVkFMOw0KPi0NCj4tCXR0bS0+ Y2FjaGluZyA9IGNhY2hpbmc7DQo+LQ0KPi0JcmV0dXJuIDA7DQo+LX0NCj4tDQo+LWludCB0dG1f dHRfc2V0X3BsYWNlbWVudF9jYWNoaW5nKHN0cnVjdCB0dG1fdHQgKnR0bSwgdWludDMyX3QgcGxh Y2VtZW50KQ0KPi17DQo+LQllbnVtIHR0bV9jYWNoaW5nIHN0YXRlOw0KPi0NCj4tCWlmIChwbGFj ZW1lbnQgJiBUVE1fUExfRkxBR19XQykNCj4tCQlzdGF0ZSA9IHR0bV93cml0ZV9jb21iaW5lZDsN Cj4tCWVsc2UgaWYgKHBsYWNlbWVudCAmIFRUTV9QTF9GTEFHX1VOQ0FDSEVEKQ0KPi0JCXN0YXRl ID0gdHRtX3VuY2FjaGVkOw0KPi0JZWxzZQ0KPi0JCXN0YXRlID0gdHRtX2NhY2hlZDsNCj4tDQo+ LQlyZXR1cm4gdHRtX3R0X3NldF9jYWNoaW5nKHR0bSwgc3RhdGUpOw0KPi19DQo+LUVYUE9SVF9T WU1CT0wodHRtX3R0X3NldF9wbGFjZW1lbnRfY2FjaGluZyk7DQo+LQ0KPiB2b2lkIHR0bV90dF9k ZXN0cm95X2NvbW1vbihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV90dA0K Pip0dG0pDQo+IHsNCj4gCXR0bV90dF91bnBvcHVsYXRlKGJkZXYsIHR0bSk7DQo+ZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3R0bV9idWZmZXIuYw0KPmIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jDQo+aW5kZXggMmE3YjVmOTY0Nzc2 Li45NzVkMDZjMmUzNWUgMTAwNjQ0DQo+LS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfdHRtX2J1ZmZlci5jDQo+KysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRt X2J1ZmZlci5jDQo+QEAgLTM0LDI4ICszNCwyOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHR0bV9w bGFjZSB2cmFtX3BsYWNlbWVudF9mbGFncyA9IHsNCj4gCS5mcGZuID0gMCwNCj4gCS5scGZuID0g MCwNCj4gCS5tZW1fdHlwZSA9IFRUTV9QTF9WUkFNLA0KPi0JLmZsYWdzID0gVFRNX1BMX0ZMQUdf Q0FDSEVEDQo+KwkuZmxhZ3MgPSAwDQo+IH07DQo+DQo+IHN0YXRpYyBjb25zdCBzdHJ1Y3QgdHRt X3BsYWNlIHN5c19wbGFjZW1lbnRfZmxhZ3MgPSB7DQo+IAkuZnBmbiA9IDAsDQo+IAkubHBmbiA9 IDAsDQo+IAkubWVtX3R5cGUgPSBUVE1fUExfU1lTVEVNLA0KPi0JLmZsYWdzID0gVFRNX1BMX0ZM QUdfQ0FDSEVEDQo+KwkuZmxhZ3MgPSAwDQo+IH07DQo+DQo+IHN0YXRpYyBjb25zdCBzdHJ1Y3Qg dHRtX3BsYWNlIGdtcl9wbGFjZW1lbnRfZmxhZ3MgPSB7DQo+IAkuZnBmbiA9IDAsDQo+IAkubHBm biA9IDAsDQo+IAkubWVtX3R5cGUgPSBWTVdfUExfR01SLA0KPi0JLmZsYWdzID0gVFRNX1BMX0ZM QUdfQ0FDSEVEDQo+KwkuZmxhZ3MgPSAwDQo+IH07DQo+DQo+IHN0YXRpYyBjb25zdCBzdHJ1Y3Qg dHRtX3BsYWNlIG1vYl9wbGFjZW1lbnRfZmxhZ3MgPSB7DQo+IAkuZnBmbiA9IDAsDQo+IAkubHBm biA9IDAsDQo+IAkubWVtX3R5cGUgPSBWTVdfUExfTU9CLA0KPi0JLmZsYWdzID0gVFRNX1BMX0ZM QUdfQ0FDSEVEDQo+KwkuZmxhZ3MgPSAwDQo+IH07DQo+DQo+IHN0cnVjdCB0dG1fcGxhY2VtZW50 IHZtd192cmFtX3BsYWNlbWVudCA9IHsNCj5AQCAtNzAsMTIgKzcwLDEyIEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgdHRtX3BsYWNlDQo+dnJhbV9nbXJfcGxhY2VtZW50X2ZsYWdzW10gPSB7DQo+IAkJ LmZwZm4gPSAwLA0KPiAJCS5scGZuID0gMCwNCj4gCQkubWVtX3R5cGUgPSBUVE1fUExfVlJBTSwN Cj4tCQkuZmxhZ3MgPSBUVE1fUExfRkxBR19DQUNIRUQNCj4rCQkuZmxhZ3MgPSAwDQo+IAl9LCB7 DQo+IAkJLmZwZm4gPSAwLA0KPiAJCS5scGZuID0gMCwNCj4gCQkubWVtX3R5cGUgPSBWTVdfUExf R01SLA0KPi0JCS5mbGFncyA9IFRUTV9QTF9GTEFHX0NBQ0hFRA0KPisJCS5mbGFncyA9IDANCj4g CX0NCj4gfTsNCj4NCj5AQCAtODQsMTIgKzg0LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdHRt X3BsYWNlDQo+Z21yX3ZyYW1fcGxhY2VtZW50X2ZsYWdzW10gPSB7DQo+IAkJLmZwZm4gPSAwLA0K PiAJCS5scGZuID0gMCwNCj4gCQkubWVtX3R5cGUgPSBWTVdfUExfR01SLA0KPi0JCS5mbGFncyA9 IFRUTV9QTF9GTEFHX0NBQ0hFRA0KPisJCS5mbGFncyA9IDANCj4gCX0sIHsNCj4gCQkuZnBmbiA9 IDAsDQo+IAkJLmxwZm4gPSAwLA0KPiAJCS5tZW1fdHlwZSA9IFRUTV9QTF9WUkFNLA0KPi0JCS5m bGFncyA9IFRUTV9QTF9GTEFHX0NBQ0hFRA0KPisJCS5mbGFncyA9IDANCj4gCX0NCj4gfTsNCj4N Cj5AQCAtMTE5LDIyICsxMTksMjIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UNCj5l dmljdGFibGVfcGxhY2VtZW50X2ZsYWdzW10gPSB7DQo+IAkJLmZwZm4gPSAwLA0KPiAJCS5scGZu ID0gMCwNCj4gCQkubWVtX3R5cGUgPSBUVE1fUExfU1lTVEVNLA0KPi0JCS5mbGFncyA9IFRUTV9Q TF9GTEFHX0NBQ0hFRA0KPisJCS5mbGFncyA9IDANCj4gCX0sIHsNCj4gCQkuZnBmbiA9IDAsDQo+ IAkJLmxwZm4gPSAwLA0KPiAJCS5tZW1fdHlwZSA9IFRUTV9QTF9WUkFNLA0KPi0JCS5mbGFncyA9 IFRUTV9QTF9GTEFHX0NBQ0hFRA0KPisJCS5mbGFncyA9IDANCj4gCX0sIHsNCj4gCQkuZnBmbiA9 IDAsDQo+IAkJLmxwZm4gPSAwLA0KPiAJCS5tZW1fdHlwZSA9IFZNV19QTF9HTVIsDQo+LQkJLmZs YWdzID0gVFRNX1BMX0ZMQUdfQ0FDSEVEDQo+KwkJLmZsYWdzID0gMA0KPiAJfSwgew0KPiAJCS5m cGZuID0gMCwNCj4gCQkubHBmbiA9IDAsDQo+IAkJLm1lbV90eXBlID0gVk1XX1BMX01PQiwNCj4t CQkuZmxhZ3MgPSBUVE1fUExfRkxBR19DQUNIRUQNCj4rCQkuZmxhZ3MgPSAwDQo+IAl9DQo+IH07 DQo+DQo+QEAgLTE0MywxNyArMTQzLDE3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNl DQo+bm9uZml4ZWRfcGxhY2VtZW50X2ZsYWdzW10gPSB7DQo+IAkJLmZwZm4gPSAwLA0KPiAJCS5s cGZuID0gMCwNCj4gCQkubWVtX3R5cGUgPSBUVE1fUExfU1lTVEVNLA0KPi0JCS5mbGFncyA9IFRU TV9QTF9GTEFHX0NBQ0hFRA0KPisJCS5mbGFncyA9IDANCj4gCX0sIHsNCj4gCQkuZnBmbiA9IDAs DQo+IAkJLmxwZm4gPSAwLA0KPiAJCS5tZW1fdHlwZSA9IFZNV19QTF9HTVIsDQo+LQkJLmZsYWdz ID0gVFRNX1BMX0ZMQUdfQ0FDSEVEDQo+KwkJLmZsYWdzID0gMA0KPiAJfSwgew0KPiAJCS5mcGZu ID0gMCwNCj4gCQkubHBmbiA9IDAsDQo+IAkJLm1lbV90eXBlID0gVk1XX1BMX01PQiwNCj4tCQku ZmxhZ3MgPSBUVE1fUExfRkxBR19DQUNIRUQNCj4rCQkuZmxhZ3MgPSAwDQo+IAl9DQo+IH07DQo+ DQo+ZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fcGxhY2VtZW50LmgNCj5iL2luY2x1 ZGUvZHJtL3R0bS90dG1fcGxhY2VtZW50LmgNCj5pbmRleCA1MGU3MmRmNDhiOGQuLmFhNmJhNGQw Y2Y3OCAxMDA2NDQNCj4tLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX3BsYWNlbWVudC5oDQo+Kysr IGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9wbGFjZW1lbnQuaA0KPkBAIC00MywyNyArNDMsMTMgQEAN Cj4gI2RlZmluZSBUVE1fUExfUFJJViAgICAgICAgICAgICAzDQo+DQo+IC8qDQo+LSAqIE90aGVy IGZsYWdzIHRoYXQgYWZmZWN0cyBkYXRhIHBsYWNlbWVudC4NCj4tICogVFRNX1BMX0ZMQUdfQ0FD SEVEIGluZGljYXRlcyBjYWNoZS1jb2hlcmVudCBtYXBwaW5ncw0KPi0gKiBpZiBhdmFpbGFibGUu DQo+LSAqIFRUTV9QTF9GTEFHX1NIQVJFRCBtZWFucyB0aGF0IGFub3RoZXIgYXBwbGljYXRpb24g bWF5DQo+LSAqIHJlZmVyZW5jZSB0aGUgYnVmZmVyLg0KPi0gKiBUVE1fUExfRkxBR19OT19FVklD VCBtZWFucyB0aGF0IHRoZSBidWZmZXIgbWF5IG5ldmVyDQo+LSAqIGJlIGV2aWN0ZWQgdG8gbWFr ZSByb29tIGZvciBvdGhlciBidWZmZXJzLg0KPiAgKiBUVE1fUExfRkxBR19UT1BET1dOIHJlcXVl c3RzIHRvIGJlIHBsYWNlZCBmcm9tIHRoZQ0KPiAgKiB0b3Agb2YgdGhlIG1lbW9yeSBhcmVhLCBp bnN0ZWFkIG9mIHRoZSBib3R0b20uDQo+ICAqLw0KPg0KPi0jZGVmaW5lIFRUTV9QTF9GTEFHX0NB Q0hFRCAgICAgICgxIDw8IDE2KQ0KPi0jZGVmaW5lIFRUTV9QTF9GTEFHX1VOQ0FDSEVEICAgICgx IDw8IDE3KQ0KPi0jZGVmaW5lIFRUTV9QTF9GTEFHX1dDICAgICAgICAgICgxIDw8IDE4KQ0KPiAj ZGVmaW5lIFRUTV9QTF9GTEFHX0NPTlRJR1VPVVMgICgxIDw8IDE5KQ0KPiAjZGVmaW5lIFRUTV9Q TF9GTEFHX1RPUERPV04gICAgICgxIDw8IDIyKQ0KDQpEbyB0aGVzZSBiaXQgc2hpZnRzIG1lYW4g YW55dGhpbmcgYW55bW9yZT8NCg0KVGhpcyBzZXJpZXMgaXMgYSBuaWNlIGNsZWFudXAuICBGb3Ig bWUgaXQgbWFrZXMgdGhlIGNhY2hpbmcgbWVjaGFuaXNtIGEgbG90IG1vcmUgY2xlYXIuDQoNCklm IHRoZSByZW1vdmFsIG9mIHRoZSBpb3JlbWFwKCkgKGNvbW1lbnQgYWJvdmUpIGlzIG9rLDoNCg0K UmV2aWV3ZWQtYnk6IE1pY2hhZWwgSi4gUnVobCA8bWljaGFlbC5qLnJ1aGxAaW50ZWwuY29tPg0K DQptDQoNCj4tI2RlZmluZSBUVE1fUExfTUFTS19DQUNISU5HICAgICAoVFRNX1BMX0ZMQUdfQ0FD SEVEIHwgXA0KPi0JCQkJIFRUTV9QTF9GTEFHX1VOQ0FDSEVEIHwgXA0KPi0JCQkJIFRUTV9QTF9G TEFHX1dDKQ0KPi0NCj4gLyoqDQo+ICAqIHN0cnVjdCB0dG1fcGxhY2UNCj4gICoNCj5kaWZmIC0t Z2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV90dC5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV90dC5o DQo+aW5kZXggYzM5YzcyMmQ1MTg0Li5lMDQyZGVjNWU2YzEgMTAwNjQ0DQo+LS0tIGEvaW5jbHVk ZS9kcm0vdHRtL3R0bV90dC5oDQo+KysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV90dC5oDQo+QEAg LTE2NCwyMSArMTY0LDYgQEAgdm9pZCB0dG1fdHRfZGVzdHJveV9jb21tb24oc3RydWN0IHR0bV9i b19kZXZpY2UNCj4qYmRldiwgc3RydWN0IHR0bV90dCAqdHRtKTsNCj4gICogU3dhcCBpbiBhIHBy ZXZpb3VzbHkgc3dhcCBvdXQgdHRtX3R0Lg0KPiAgKi8NCj4gaW50IHR0bV90dF9zd2FwaW4oc3Ry dWN0IHR0bV90dCAqdHRtKTsNCj4tDQo+LS8qKg0KPi0gKiB0dG1fdHRfc2V0X3BsYWNlbWVudF9j YWNoaW5nOg0KPi0gKg0KPi0gKiBAdHRtIEEgc3RydWN0IHR0bV90dCB0aGUgYmFja2luZyBwYWdl cyBvZiB3aGljaCB3aWxsIGNoYW5nZSBjYWNoaW5nIHBvbGljeS4NCj4tICogQHBsYWNlbWVudDog RmxhZyBpbmRpY2F0aW5nIHRoZSBkZXNpcmVkIGNhY2hpbmcgcG9saWN5Lg0KPi0gKg0KPi0gKiBU aGlzIGZ1bmN0aW9uIHdpbGwgY2hhbmdlIGNhY2hpbmcgcG9saWN5IG9mIGFueSBkZWZhdWx0IGtl cm5lbCBtYXBwaW5ncyBvZg0KPi0gKiB0aGUgcGFnZXMgYmFja2luZyBAdHRtLiBJZiBjaGFuZ2lu ZyBmcm9tIGNhY2hlZCB0byB1bmNhY2hlZCBvcg0KPi0gKiB3cml0ZS1jb21iaW5lZCwNCj4tICog YWxsIENQVSBjYWNoZXMgd2lsbCBmaXJzdCBiZSBmbHVzaGVkIHRvIG1ha2Ugc3VyZSB0aGUgZGF0 YSBvZiB0aGUgcGFnZXMNCj4tICogaGl0IFJBTS4gVGhpcyBmdW5jdGlvbiBtYXkgYmUgdmVyeSBj b3N0bHkgYXMgaXQgaW52b2x2ZXMgZ2xvYmFsIFRMQg0KPi0gKiBhbmQgY2FjaGUgZmx1c2hlcyBh bmQgcG90ZW50aWFsIHBhZ2Ugc3BsaXR0aW5nIC8gY29tYmluaW5nLg0KPi0gKi8NCj4taW50IHR0 bV90dF9zZXRfcGxhY2VtZW50X2NhY2hpbmcoc3RydWN0IHR0bV90dCAqdHRtLCB1aW50MzJfdCBw bGFjZW1lbnQpOw0KPiBpbnQgdHRtX3R0X3N3YXBvdXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSk7DQo+DQo+IC8qKg0KPi0tDQo+Mi4xNy4xDQo+DQo+X19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj5kcmktZGV2ZWwg bWFpbGluZyBsaXN0DQo+ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsDQpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK