From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 08/10] drm/i915: Defer enabling rc6 til after we submit the first batch/context Date: Mon, 11 Jul 2016 17:14:22 +0300 Message-ID: <8760sctg75.fsf@intel.com> References: <1468055535-19740-1-git-send-email-chris@chris-wilson.co.uk> <1468055535-19740-9-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 126A96E10D for ; Mon, 11 Jul 2016 14:14:59 +0000 (UTC) In-Reply-To: <1468055535-19740-9-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gU29tZSBo YXJkd2FyZSByZXF1aXJlcyBhIHZhbGlkIHJlbmRlciBjb250ZXh0IGJlZm9yZSBpdCBjYW4gaW5p dGlhdGUKPiByYzYgcG93ZXIgZ2F0aW5nIG9mIHRoZSBHUFU7IHRoZSBkZWZhdWx0IHN0YXRlIG9m IHRoZSBHUFUgaXMgbm90Cj4gc3VmZmljaWVudCBhbmQgbWF5IGxlYWQgdG8gdW5kZWZpbmVkIGJl aGF2aW91ci4gVGhlIGZpcnN0IGV4ZWN1dGlvbiBvZgo+IGFueSBiYXRjaCB3aWxsIGxvYWQgdGhl ICJnb2xkZW4gcmVuZGVyIHN0YXRlIiwgYXQgd2hpY2ggcG9pbnQgaXQgaXMgc2FmZQo+IHRvIGVu YWJsZSByYzYuIEFzIHdlIGRvIG5vdCBmb3JjaWJseSBsb2FkIHRoZSBrZXJuZWwgY29udGV4dCBh dCByZXN1bWUsCj4gd2UgaGF2ZSB0byBob29rIGludG8gdGhlIGJhdGNoIHN1Ym1pc3Npb24gdG8g YmUgc3VyZSB0aGF0IHRoZSByZW5kZXIKPiBzdGF0ZSBpcyBzZXR1cCBiZWZvcmUgZW5hYmxpbmcg cmM2Lgo+Cj4gSG93ZXZlciwgc2luY2Ugd2UgZG9uJ3QgZW5hYmxlIHBvd2Vyc2F2aW5nIHVudGls IHRoYXQgZmlyc3QgYmF0Y2gsIHdlCj4gcXVldWVkIGEgZGVsYXllZCB0YXNrIGluIG9yZGVyIHRv IGd1YXJhbnRlZSB0aGF0IHRoZSBiYXRjaCBpcyBpbmRlZWQKPiBzdWJtaXR0ZWQuCj4KPiB2Mjog UmVhcnJhbmdlIGludGVsX2Rpc2FibGVfZ3RfcG93ZXJzYXZlKCkgdG8gbWF0Y2guCj4gdjM6IEFw cGx5IHVzZXIgc3BlY2lmaWVkIGN1cl9mcmVxIChvciBpZGxlX2ZyZXEgaWYgbm90IHNldCkuCj4g djQ6IEdpdmUgaW4sIGFuZCBzdXBwbHkgYSBkZWxheWVkIHdvcmsgdG8gYXV0b2VuYWJsZSByYzYK PiB2NTogTWlrYSBzdWdnZXN0ZWQgYSBjb3VwbGUgb2YgYmV0dGVyIG5hbWVzIGZvciBkZWxheWVk X3Jlc3VtZV93b3JrCj4KPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlz LXdpbHNvbi5jby51az4KPiBDYzogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBpbnRlbC5j b20+Cj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICB8ICAgNyArLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgIDIgKy0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgIHwgICAxICsKPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oICAgICB8ICAgMiArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMg ICAgICB8IDEyMiArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYyAgfCAgIDIgKy0KPiAgNyBmaWxlcyBjaGFuZ2Vk LCA4OSBpbnNlcnRpb25zKCspLCA0OSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuYwo+IGluZGV4IGI5YTgxMTc1MGNhOC4uZmYzMzQyYjc4YTc0IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jCj4gQEAgLTEzNDMsNyArMTM0Myw3IEBAIHZvaWQgaTkxNV9kcml2ZXJfdW5s b2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAlpOTE1X2Rlc3Ryb3lfZXJyb3Jfc3RhdGUo ZGV2KTsKPiAgCj4gIAkvKiBGbHVzaCBhbnkgb3V0c3RhbmRpbmcgdW5waW5fd29yay4gKi8KPiAt CWZsdXNoX3dvcmtxdWV1ZShkZXZfcHJpdi0+d3EpOwo+ICsJZHJhaW5fd29ya3F1ZXVlKGRldl9w cml2LT53cSk7Cj4KCkZvciB0aGlzIHRvIG1ha2Ugc2Vuc2UsIHNob3VsZCB3ZSBhbHNvIHVzZSB0 aGUgZGV2IHByaXYgd29ya3F1ZXVlCmZvciB0aGUgZ3QgYXV0b2VuYWJsaW5nPwoKLU1pa2EKCgo+ ICAJaW50ZWxfZ3VjX2ZpbmkoZGV2KTsKPiAgCWk5MTVfZ2VtX2ZpbmkoZGV2KTsKPiBAQCAtMTY1 Miw2ICsxNjUyLDcgQEAgc3RhdGljIGludCBpOTE1X2RybV9yZXN1bWUoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiAgCj4gIAlpbnRlbF9vcHJlZ2lvbl9ub3RpZnlfYWRhcHRlcihkZXZfcHJpdiwg UENJX0QwKTsKPiAgCj4gKwlpbnRlbF9hdXRvZW5hYmxlX2d0X3Bvd2Vyc2F2ZShkZXZfcHJpdik7 Cj4gIAlkcm1fa21zX2hlbHBlcl9wb2xsX2VuYWJsZShkZXYpOwo+ICAKPiAgCWVuYWJsZV9ycG1f d2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKPiBAQCAtMTgzNSw4ICsxODM2LDcgQEAgaW50IGk5 MTVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJICogcHJldmlv dXMgY29uY2VybnMgdGhhdCBpdCBkb2Vzbid0IHJlc3BvbmQgd2VsbCB0byBzb21lIGZvcm1zCj4g IAkgKiBvZiByZS1pbml0IGFmdGVyIHJlc2V0Lgo+ICAJICovCj4gLQlpZiAoSU5URUxfSU5GTyhk ZXYpLT5nZW4gPiA1KQo+IC0JCWludGVsX2VuYWJsZV9ndF9wb3dlcnNhdmUoZGV2X3ByaXYpOwo+ ICsJaW50ZWxfYXV0b2VuYWJsZV9ndF9wb3dlcnNhdmUoZGV2X3ByaXYpOwo+ICAKPiAgCXJldHVy biAwOwo+ICAKPiBAQCAtMjQ1OSw3ICsyNDU5LDYgQEAgc3RhdGljIGludCBpbnRlbF9ydW50aW1l X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpCj4gIAkgKiB3ZSBjYW4gZG8gaXMgdG8gaG9w ZSB0aGF0IHRoaW5ncyB3aWxsIHN0aWxsIHdvcmsgKGFuZCBkaXNhYmxlIFJQTSkuCj4gIAkgKi8K PiAgCWk5MTVfZ2VtX2luaXRfc3dpenpsaW5nKGRldik7Cj4gLQlnZW42X3VwZGF0ZV9yaW5nX2Zy ZXEoZGV2X3ByaXYpOwo+ICAKPiAgCWludGVsX3J1bnRpbWVfcG1fZW5hYmxlX2ludGVycnVwdHMo ZGV2X3ByaXYpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBiYjU5YmM2Mzdm N2IuLjhkNzRkYjA5NjE4OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0xMTg4 LDcgKzExODgsNyBAQCBzdHJ1Y3QgaW50ZWxfZ2VuNl9wb3dlcl9tZ210IHsKPiAgCWJvb2wgY2xp ZW50X2Jvb3N0Owo+ICAKPiAgCWJvb2wgZW5hYmxlZDsKPiAtCXN0cnVjdCBkZWxheWVkX3dvcmsg ZGVsYXllZF9yZXN1bWVfd29yazsKPiArCXN0cnVjdCBkZWxheWVkX3dvcmsgYXV0b2VuYWJsZV93 b3JrOwo+ICAJdW5zaWduZWQgYm9vc3RzOwo+ICAKPiAgCXN0cnVjdCBpbnRlbF9ycHNfY2xpZW50 IHNlbWFwaG9yZXMsIG1taW9mbGlwczsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCBh ZGVjYTBlYzRjZmIuLjZmMjIyN2IyNDcxMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ IEBAIC0yODQyLDYgKzI4NDIsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9tYXJrX2J1c3koY29u c3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJaW50ZWxfcnVudGltZV9wbV9n ZXRfbm9yZXN1bWUoZGV2X3ByaXYpOwo+ICAJZGV2X3ByaXYtPmd0LmF3YWtlID0gdHJ1ZTsKPiAg Cj4gKwlpbnRlbF9lbmFibGVfZ3RfcG93ZXJzYXZlKGRldl9wcml2KTsKPiAgCWk5MTVfdXBkYXRl X2dmeF92YWwoZGV2X3ByaXYpOwo+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNikKPiAg CQlnZW42X3Jwc19idXN5KGRldl9wcml2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4gaW5kZXggYmUzYjJjYWIyNjQwLi45MmNkMGE3MGY4YzggMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTE1NDU2LDcgKzE1NDU2LDYgQEAgdm9pZCBpbnRl bF9tb2Rlc2V0X2luaXRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCWRldl9wcml2LT5h dG9taWNfY2RjbGtfZnJlcSA9IGRldl9wcml2LT5jZGNsa19mcmVxOwo+ICAKPiAgCWludGVsX2lu aXRfY2xvY2tfZ2F0aW5nKGRldik7Cj4gLQlpbnRlbF9lbmFibGVfZ3RfcG93ZXJzYXZlKGRldl9w cml2KTsKPiAgfQo+ICAKPiAgLyoKPiBAQCAtMTYyNTIsNiArMTYyNTEsNyBAQCB2b2lkIGludGVs X21vZGVzZXRfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gIAo+ICsJaW50ZWxf c3VzcGVuZF9ndF9wb3dlcnNhdmUoZGV2X3ByaXYpOwo+ICAJaW50ZWxfZGlzYWJsZV9ndF9wb3dl cnNhdmUoZGV2X3ByaXYpOwo+ICAKPiAgCS8qCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBp bmRleCA1NWFlYWYwNDE3NDkuLmM2OGRkNjE2NmM1MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gQEAgLTE2OTcsNyArMTY5Nyw5IEBAIHZvaWQgaW50ZWxfZ3B1X2lwc19pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIHZvaWQgaW50ZWxfZ3B1X2lwc190 ZWFyZG93bih2b2lkKTsKPiAgdm9pZCBpbnRlbF9pbml0X2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2b2lkIGludGVsX2NsZWFudXBfZ3RfcG93ZXJz YXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gK3ZvaWQgaW50ZWxfc2Fu aXRpemVfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4g IHZvaWQgaW50ZWxfZW5hYmxlX2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwo+ICt2b2lkIGludGVsX2F1dG9lbmFibGVfZ3RfcG93ZXJzYXZlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIHZvaWQgaW50ZWxfZGlzYWJsZV9ndF9wb3dl cnNhdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgdm9pZCBpbnRlbF9z dXNwZW5kX2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ ICB2b2lkIGludGVsX3Jlc2V0X2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IGFhYjFlMGI1ZDJlYi4u YzZiYTkyMzQyNWNlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bt LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTY1NDksMTMg KzY1NDksNiBAQCB2b2lkIGludGVsX2NsZWFudXBfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7 Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGdlbjZfc3VzcGVuZF9ycHMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+IC17Cj4gLQlmbHVzaF9kZWxheWVkX3dvcmsoJmRldl9wcml2 LT5ycHMuZGVsYXllZF9yZXN1bWVfd29yayk7Cj4gLQo+IC0JZ2VuNl9kaXNhYmxlX3Jwc19pbnRl cnJ1cHRzKGRldl9wcml2KTsKPiAtfQo+IC0KPiAgLyoqCj4gICAqIGludGVsX3N1c3BlbmRfZ3Rf cG93ZXJzYXZlIC0gc3VzcGVuZCBQTSB3b3JrIGFuZCBoZWxwZXIgdGhyZWFkcwo+ICAgKiBAZGV2 X3ByaXY6IGk5MTUgZGV2aWNlCj4gQEAgLTY1NjksNTAgKzY1NjIsNjUgQEAgdm9pZCBpbnRlbF9z dXNwZW5kX2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g IAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDYpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWdlbjZf c3VzcGVuZF9ycHMoZGV2X3ByaXYpOwo+ICsJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZkZXZf cHJpdi0+cnBzLmF1dG9lbmFibGVfd29yayk7Cj4gKwo+ICsJZ2VuNl9kaXNhYmxlX3Jwc19pbnRl cnJ1cHRzKGRldl9wcml2KTsKPiAgCj4gIAkvKiBGb3JjZSBHUFUgdG8gbWluIGZyZXEgZHVyaW5n IHN1c3BlbmQgKi8KPiAgCWdlbjZfcnBzX2lkbGUoZGV2X3ByaXYpOwo+ICB9Cj4gIAo+ICt2b2lk IGludGVsX3Nhbml0aXplX2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gK3sKPiArCWRldl9wcml2LT5ycHMuZW5hYmxlZCA9IHRydWU7IC8qIGZvcmNlIGRp c2FibGluZyAqLwo+ICsJaW50ZWxfZGlzYWJsZV9ndF9wb3dlcnNhdmUoZGV2X3ByaXYpOwo+ICsK PiArCWdlbjZfcmVzZXRfcnBzX2ludGVycnVwdHMoZGV2X3ByaXYpOwo+ICt9Cj4gKwo+ICB2b2lk IGludGVsX2Rpc2FibGVfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgewo+IC0JaWYgKElTX0lST05MQUtFX00oZGV2X3ByaXYpKSB7Cj4gLQkJaXJvbmxh a2VfZGlzYWJsZV9kcnBzKGRldl9wcml2KTsKPiAtCX0gZWxzZSBpZiAoSU5URUxfSU5GTyhkZXZf cHJpdiktPmdlbiA+PSA2KSB7Cj4gLQkJaW50ZWxfc3VzcGVuZF9ndF9wb3dlcnNhdmUoZGV2X3By aXYpOwo+ICsJaWYgKCFSRUFEX09OQ0UoZGV2X3ByaXYtPnJwcy5lbmFibGVkKSkKPiArCQlyZXR1 cm47Cj4gIAo+IC0JCW11dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gLQkJaWYg KElOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPj0gOSkgewo+IC0JCQlnZW45X2Rpc2FibGVfcmM2 KGRldl9wcml2KTsKPiAtCQkJZ2VuOV9kaXNhYmxlX3JwcyhkZXZfcHJpdik7Cj4gLQkJfSBlbHNl IGlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiAtCQkJY2hlcnJ5dmlld19kaXNhYmxlX3Jw cyhkZXZfcHJpdik7Cj4gLQkJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikpCj4gLQkJ CXZhbGxleXZpZXdfZGlzYWJsZV9ycHMoZGV2X3ByaXYpOwo+IC0JCWVsc2UKPiAtCQkJZ2VuNl9k aXNhYmxlX3JwcyhkZXZfcHJpdik7Cj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xv Y2spOwo+ICAKPiAtCQlkZXZfcHJpdi0+cnBzLmVuYWJsZWQgPSBmYWxzZTsKPiAtCQltdXRleF91 bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSA5KSB7Cj4gKwkJZ2VuOV9kaXNhYmxlX3JjNihkZXZfcHJpdik7Cj4gKwkJZ2VuOV9kaXNh YmxlX3JwcyhkZXZfcHJpdik7Cj4gKwl9IGVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYp KSB7Cj4gKwkJY2hlcnJ5dmlld19kaXNhYmxlX3JwcyhkZXZfcHJpdik7Cj4gKwl9IGVsc2UgaWYg KElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpKSB7Cj4gKwkJdmFsbGV5dmlld19kaXNhYmxlX3Jwcyhk ZXZfcHJpdik7Cj4gKwl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNikgewo+ICsJ CWdlbjZfZGlzYWJsZV9ycHMoZGV2X3ByaXYpOwo+ICsJfSAgZWxzZSBpZiAoSVNfSVJPTkxBS0Vf TShkZXZfcHJpdikpIHsKPiArCQlpcm9ubGFrZV9kaXNhYmxlX2RycHMoZGV2X3ByaXYpOwo+ICAJ fQo+ICsKPiArCWRldl9wcml2LT5ycHMuZW5hYmxlZCA9IGZhbHNlOwo+ICsJbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpbnRlbF9n ZW42X3Bvd2Vyc2F2ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiArdm9pZCBpbnRl bF9lbmFibGVfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiAtCQljb250YWlu ZXJfb2Yod29yaywgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsCj4gLQkJCSAgICAgcnBzLmRlbGF5 ZWRfcmVzdW1lX3dvcmsud29yayk7Cj4gKwkvKiBXZSBzaG91bGRuJ3QgYmUgZGlzYWJsaW5nIGFz IHdlIHN1Ym1pdCwgc28gdGhpcyBzaG91bGQgYmUgbGVzcwo+ICsJICogcmFjeSB0aGFuIGl0IGFw cGVhcnMhCj4gKwkgKi8KPiArCWlmIChSRUFEX09OQ0UoZGV2X3ByaXYtPnJwcy5lbmFibGVkKSkK PiArCQlyZXR1cm47Cj4gIAo+IC0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsK PiArCS8qIFBvd2Vyc2F2aW5nIGlzIGNvbnRyb2xsZWQgYnkgdGhlIGhvc3Qgd2hlbiBpbnNpZGUg YSBWTSAqLwo+ICsJaWYgKGludGVsX3ZncHVfYWN0aXZlKGRldl9wcml2KSkKPiArCQlyZXR1cm47 Cj4gIAo+IC0JZ2VuNl9yZXNldF9ycHNfaW50ZXJydXB0cyhkZXZfcHJpdik7Cj4gKwltdXRleF9s b2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICAKPiAgCWlmIChJU19DSEVSUllWSUVXKGRl dl9wcml2KSkgewo+ICAJCWNoZXJyeXZpZXdfZW5hYmxlX3JwcyhkZXZfcHJpdik7Cj4gIAl9IGVs c2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpKSB7Cj4gIAkJdmFsbGV5dmlld19lbmFibGVf cnBzKGRldl9wcml2KTsKPiAtCX0gZWxzZSBpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+ PSA5KSB7Cj4gKwl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewo+ICAJCWdl bjlfZW5hYmxlX3JjNihkZXZfcHJpdik7Cj4gIAkJZ2VuOV9lbmFibGVfcnBzKGRldl9wcml2KTsK PiAgCQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQo+ IEBAIC02NjIwLDkgKzY2MjgsMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxfZ2VuNl9wb3dlcnNhdmVf d29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gIAl9IGVsc2UgaWYgKElTX0JST0FEV0VM TChkZXZfcHJpdikpIHsKPiAgCQlnZW44X2VuYWJsZV9ycHMoZGV2X3ByaXYpOwo+ICAJCV9fZ2Vu Nl91cGRhdGVfcmluZ19mcmVxKGRldl9wcml2KTsKPiAtCX0gZWxzZSB7Cj4gKwl9IGVsc2UgaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gNikgewo+ICAJCWdlbjZfZW5hYmxlX3JwcyhkZXZfcHJp dik7Cj4gIAkJX19nZW42X3VwZGF0ZV9yaW5nX2ZyZXEoZGV2X3ByaXYpOwo+ICsJfSBlbHNlIGlm IChJU19JUk9OTEFLRV9NKGRldl9wcml2KSkgewo+ICsJCWlyb25sYWtlX2VuYWJsZV9kcnBzKGRl dl9wcml2KTsKPiArCQlpbnRlbF9pbml0X2Vtb24oZGV2X3ByaXYpOwo+ICAJfQo+ICAKPiAgCVdB Uk5fT04oZGV2X3ByaXYtPnJwcy5tYXhfZnJlcSA8IGRldl9wcml2LT5ycHMubWluX2ZyZXEpOwo+ IEBAIC02NjMyLDE4ICs2NjQzLDQ1IEBAIHN0YXRpYyB2b2lkIGludGVsX2dlbjZfcG93ZXJzYXZl X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICAJV0FSTl9PTihkZXZfcHJpdi0+cnBz LmVmZmljaWVudF9mcmVxID4gZGV2X3ByaXYtPnJwcy5tYXhfZnJlcSk7Cj4gIAo+ICAJZGV2X3By aXYtPnJwcy5lbmFibGVkID0gdHJ1ZTsKPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5o d19sb2NrKTsKPiArfQo+ICAKPiAtCWdlbjZfZW5hYmxlX3Jwc19pbnRlcnJ1cHRzKGRldl9wcml2 KTsKPiArc3RhdGljIHZvaWQgX19pbnRlbF9hdXRvZW5hYmxlX2d0X3Bvd2Vyc2F2ZShzdHJ1Y3Qg d29ya19zdHJ1Y3QgKndvcmspCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9Cj4gKwkJY29udGFpbmVyX29mKHdvcmssIHR5cGVvZigqZGV2X3ByaXYpLCBycHMuYXV0 b2VuYWJsZV93b3JrLndvcmspOwo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmNzOwo+ICsJ c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7Cj4gIAo+IC0JbXV0ZXhfdW5sb2NrKCZk ZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICsJaWYgKFJFQURfT05DRShkZXZfcHJpdi0+cnBzLmVu YWJsZWQpKQo+ICsJCXJldHVybjsKPiArCj4gKwlyY3MgPSAmZGV2X3ByaXYtPmVuZ2luZVtSQ1Nd Owo+ICsJaWYgKHJjcy0+bGFzdF9jb250ZXh0KQo+ICsJCXJldHVybjsKPiArCj4gKwlpZiAoIXJj cy0+aW5pdF9jb250ZXh0KQo+ICsJCXJldHVybjsKPiArCj4gKwlpbnRlbF9ydW50aW1lX3BtX2dl dChkZXZfcHJpdik7Cj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7 Cj4gIAo+ICsJcmVxID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhyY3MsIGRldl9wcml2LT5rZXJu ZWxfY29udGV4dCk7Cj4gKwlpZiAoSVNfRVJSKHJlcSkpCj4gKwkJZ290byB1bmxvY2s7Cj4gKwo+ ICsJaWYgKCFpOTE1LmVuYWJsZV9leGVjbGlzdHMgJiYgaTkxNV9zd2l0Y2hfY29udGV4dChyZXEp ID09IDApCj4gKwkJcmNzLT5pbml0X2NvbnRleHQocmVxKTsKPiArCWk5MTVfYWRkX3JlcXVlc3Rf bm9fZmx1c2gocmVxKTsKPiArCj4gK3VubG9jazoKPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ICAJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwo+ ICB9Cj4gIAo+IC12b2lkIGludGVsX2VuYWJsZV9ndF9wb3dlcnNhdmUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+ICt2b2lkIGludGVsX2F1dG9lbmFibGVfZ3RfcG93ZXJzYXZl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgewo+IC0JLyogUG93ZXJzYXZp bmcgaXMgY29udHJvbGxlZCBieSB0aGUgaG9zdCB3aGVuIGluc2lkZSBhIFZNICovCj4gLQlpZiAo aW50ZWxfdmdwdV9hY3RpdmUoZGV2X3ByaXYpKQo+ICsJaWYgKFJFQURfT05DRShkZXZfcHJpdi0+ cnBzLmVuYWJsZWQpKQo+ICAJCXJldHVybjsKPiAgCj4gIAlpZiAoSVNfSVJPTkxBS0VfTShkZXZf cHJpdikpIHsKPiBAQCAtNjY2NCw4ICs2NzAyLDggQEAgdm9pZCBpbnRlbF9lbmFibGVfZ3RfcG93 ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQkgKiBwYXRocywg c28gdGhlIF9ub3Jlc3VtZSB2ZXJzaW9uIGlzIGVub3VnaCAoYW5kIGluIGNhc2Ugb2YKPiAgCQkg KiBydW50aW1lIHJlc3VtZSBpdCdzIG5lY2Vzc2FyeSkuCj4gIAkJICovCj4gLQkJaWYgKHNjaGVk dWxlX2RlbGF5ZWRfd29yaygmZGV2X3ByaXYtPnJwcy5kZWxheWVkX3Jlc3VtZV93b3JrLAo+IC0J CQkJCSAgIHJvdW5kX2ppZmZpZXNfdXBfcmVsYXRpdmUoSFopKSkKPiArCQlpZiAoc2NoZWR1bGVf ZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+cnBzLmF1dG9lbmFibGVfd29yaywKPiArCQkJCQkgIHJv dW5kX2ppZmZpZXNfdXBfcmVsYXRpdmUoSFopKSkKPiAgCQkJaW50ZWxfcnVudGltZV9wbV9nZXRf bm9yZXN1bWUoZGV2X3ByaXYpOwo+ICAJfQo+ICB9Cj4gQEAgLTY2NzUsNyArNjcxMyw3IEBAIHZv aWQgaW50ZWxfcmVzZXRfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuIDwgNikKPiAgCQlyZXR1cm47 Cj4gIAo+IC0JZ2VuNl9zdXNwZW5kX3JwcyhkZXZfcHJpdik7Cj4gKwlnZW42X2Rpc2FibGVfcnBz X2ludGVycnVwdHMoZGV2X3ByaXYpOwo+ICAJZGV2X3ByaXYtPnJwcy5lbmFibGVkID0gZmFsc2U7 Cj4gIH0KPiAgCj4gQEAgLTc3ODUsOCArNzgyMyw4IEBAIHZvaWQgaW50ZWxfcG1fc2V0dXAoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKPiAgCW11dGV4X2luaXQoJmRldl9wcml2LT5ycHMuaHdfbG9j ayk7Cj4gIAlzcGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPnJwcy5jbGllbnRfbG9jayk7Cj4gIAo+ IC0JSU5JVF9ERUxBWUVEX1dPUksoJmRldl9wcml2LT5ycHMuZGVsYXllZF9yZXN1bWVfd29yaywK PiAtCQkJICBpbnRlbF9nZW42X3Bvd2Vyc2F2ZV93b3JrKTsKPiArCUlOSVRfREVMQVlFRF9XT1JL KCZkZXZfcHJpdi0+cnBzLmF1dG9lbmFibGVfd29yaywKPiArCQkJICBfX2ludGVsX2F1dG9lbmFi bGVfZ3RfcG93ZXJzYXZlKTsKPiAgCUlOSVRfTElTVF9IRUFEKCZkZXZfcHJpdi0+cnBzLmNsaWVu dHMpOwo+ICAJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5ycHMuc2VtYXBob3Jlcy5saW5rKTsK PiAgCUlOSVRfTElTVF9IRUFEKCZkZXZfcHJpdi0+cnBzLm1taW9mbGlwcy5saW5rKTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+IGluZGV4IGZmODBhODFiMWE4NC4uZWViNGNiY2Ux OWZmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPiBAQCAtNDM1LDcgKzQz NSw3IEBAIHZvaWQgaW50ZWxfdW5jb3JlX3Nhbml0aXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiAgCWk5MTUuZW5hYmxlX3JjNiA9IHNhbml0aXplX3JjNl9vcHRpb24oZGV2 X3ByaXYsIGk5MTUuZW5hYmxlX3JjNik7Cj4gIAo+ICAJLyogQklPUyBvZnRlbiBsZWF2ZXMgUkM2 IGVuYWJsZWQsIGJ1dCBkaXNhYmxlIGl0IGZvciBodyBpbml0ICovCj4gLQlpbnRlbF9kaXNhYmxl X2d0X3Bvd2Vyc2F2ZShkZXZfcHJpdik7Cj4gKwlpbnRlbF9zYW5pdGl6ZV9ndF9wb3dlcnNhdmUo ZGV2X3ByaXYpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBfX2ludGVsX3VuY29yZV9mb3JjZXdh a2VfZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtLSAKPiAyLjguMQpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK