From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 8/8] drm/i915: Enum forcewake domains and domain identifiers Date: Tue, 09 Dec 2014 15:32:05 +0200 Message-ID: <874mt5hru2.fsf@intel.com> References: <1418063262-32256-8-git-send-email-mika.kuoppala@intel.com> <1418125588-20072-1-git-send-email-mika.kuoppala@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 873697289A for ; Tue, 9 Dec 2014 05:31:47 -0800 (PST) In-Reply-To: <1418125588-20072-1-git-send-email-mika.kuoppala@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Mika Kuoppala , intel-gfx@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAwOSBEZWMgMjAxNCwgTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5p bnRlbC5jb20+IHdyb3RlOgo+IE1ha2UgdGhlIGRvbWFpbnMgYW5kIGRvbWFpbiBpZGVudGlmaWVy cyBlbnVtcy4gVG8gZW1waGFzaXplCj4gdGhlIGRpZmZlcmVuY2UgaW4gb3JkZXIgdG8gYXZvaWQg bWlzdGFrZXMuCj4KPiBTdWdnZXN0ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJA ZmZ3bGwuY2g+Cj4gU2lnbmVkLW9mZi1ieTogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBp bnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgIHwg NDEgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3VuY29yZS5jIHwgNDUgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygt KQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggMGQ0NzM5Ny4uNWM2YzM3MiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC01MzMsMTEgKzUzMywyOCBAQCBzdHJ1Y3Qg ZHJtX2k5MTVfZGlzcGxheV9mdW5jcyB7Cj4gIAl2b2lkICgqZW5hYmxlX2JhY2tsaWdodCkoc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiAgfTsKPiAgCj4gK2VudW0gZndfZG9t YWluX2lkIHsKCkRvZXMgYW55b25lIGVsc2UgdGhpbmsgb2YgImZpcm13YXJlIiBmaXJzdCB3aGVu IHNlZWluZyAiZnciLCBhbmQKImZvcmNld2FrZSIgb25seSBhZnRlciBhIG1vbWVudD8KCkphbmku CgoKPiArCUZXX0RPTUFJTl9JRF9SRU5ERVIgPSAwLAo+ICsJRldfRE9NQUlOX0lEX0JMSVRURVIs Cj4gKwlGV19ET01BSU5fSURfTUVESUEsCj4gKwo+ICsJRldfRE9NQUlOX0lEX0NPVU5UCj4gK307 Cj4gKwo+ICtlbnVtIGZ3X2RvbWFpbnMgewo+ICsJRk9SQ0VXQUtFX1JFTkRFUiA9ICgxIDw8IEZX X0RPTUFJTl9JRF9SRU5ERVIpLAo+ICsJRk9SQ0VXQUtFX0JMSVRURVIgPSAoMSA8PCBGV19ET01B SU5fSURfQkxJVFRFUiksCj4gKwlGT1JDRVdBS0VfTUVESUEJPSAoMSA8PCBGV19ET01BSU5fSURf TUVESUEpLAo+ICsJRk9SQ0VXQUtFX0FMTCA9IChGT1JDRVdBS0VfUkVOREVSIHwKPiArCQkJIEZP UkNFV0FLRV9CTElUVEVSIHwKPiArCQkJIEZPUkNFV0FLRV9NRURJQSkKPiArfTsKPiArCj4gIHN0 cnVjdCBpbnRlbF91bmNvcmVfZnVuY3Mgewo+ICAJdm9pZCAoKmZvcmNlX3dha2VfZ2V0KShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJCQkJCQlpbnQgZndfZW5naW5lKTsK PiArCQkJCQkJCWVudW0gZndfZG9tYWlucyBkb21haW5zKTsKPiAgCXZvaWQgKCpmb3JjZV93YWtl X3B1dCkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCQkJCQkJaW50IGZ3 X2VuZ2luZSk7Cj4gKwkJCQkJCQllbnVtIGZ3X2RvbWFpbnMgZG9tYWlucyk7Cj4gIAo+ICAJdWlu dDhfdCAgKCptbWlvX3JlYWRiKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIG9m Zl90IG9mZnNldCwgYm9vbCB0cmFjZSk7Cj4gIAl1aW50MTZfdCAoKm1taW9fcmVhZHcpKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgb2ZmX3Qgb2Zmc2V0LCBib29sIHRyYWNlKTsK PiBAQCAtNTU0LDI1ICs1NzEsMTcgQEAgc3RydWN0IGludGVsX3VuY29yZV9mdW5jcyB7Cj4gIAkJ CQl1aW50NjRfdCB2YWwsIGJvb2wgdHJhY2UpOwo+ICB9Owo+ICAKPiAtZW51bSB7Cj4gLQlGV19E T01BSU5fSURfUkVOREVSID0gMCwKPiAtCUZXX0RPTUFJTl9JRF9CTElUVEVSLAo+IC0JRldfRE9N QUlOX0lEX01FRElBLAo+IC0KPiAtCUZXX0RPTUFJTl9JRF9DT1VOVAo+IC19Owo+IC0KPiAgc3Ry dWN0IGludGVsX3VuY29yZSB7Cj4gIAlzcGlubG9ja190IGxvY2s7IC8qKiBsb2NrIGlzIGFsc28g dGFrZW4gaW4gaXJxIGNvbnRleHRzLiAqLwo+ICAKPiAgCXN0cnVjdCBpbnRlbF91bmNvcmVfZnVu Y3MgZnVuY3M7Cj4gIAo+ICAJdW5zaWduZWQgZmlmb19jb3VudDsKPiAtCXVuc2lnbmVkIGZ3X2Rv bWFpbnM7Cj4gKwllbnVtIGZ3X2RvbWFpbnMgZndfZG9tYWluczsKPiAgCj4gIAlzdHJ1Y3QgaW50 ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gewo+ICAJCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1Owo+IC0JCWludCBpZDsKPiArCQllbnVtIGZ3X2RvbWFpbl9pZCBpZDsKPiAgCQl1bnNp Z25lZCB3YWtlX2NvdW50Owo+ICAJCXN0cnVjdCB0aW1lcl9saXN0IHRpbWVyOwo+ICAJCXUzMiBy ZWdfc2V0Owo+IEBAIC01ODIsMTIgKzU5MSw2IEBAIHN0cnVjdCBpbnRlbF91bmNvcmUgewo+ICAJ CXUzMiByZWdfcG9zdDsKPiAgCQl1MzIgdmFsX3Jlc2V0Owo+ICAJfSBmd19kb21haW5bRldfRE9N QUlOX0lEX0NPVU5UXTsKPiAtI2RlZmluZSBGT1JDRVdBS0VfUkVOREVSCSgxIDw8IEZXX0RPTUFJ Tl9JRF9SRU5ERVIpCj4gLSNkZWZpbmUgRk9SQ0VXQUtFX0JMSVRURVIJKDEgPDwgRldfRE9NQUlO X0lEX0JMSVRURVIpCj4gLSNkZWZpbmUgRk9SQ0VXQUtFX01FRElBCQkoMSA8PCBGV19ET01BSU5f SURfTUVESUEpCj4gLSNkZWZpbmUgRk9SQ0VXQUtFX0FMTAkJKEZPUkNFV0FLRV9SRU5ERVIgfCBc Cj4gLQkJCQkgRk9SQ0VXQUtFX0JMSVRURVIgfCBcCj4gLQkJCQkgRk9SQ0VXQUtFX01FRElBKQo+ ICB9Owo+ICAKPiAgLyogSXRlcmF0ZSBvdmVyIGluaXRpYWxpc2VkIGZ3IGRvbWFpbnMgKi8KPiBA QCAtMjQ0OSw3ICsyNDUyLDcgQEAgZXh0ZXJuIHZvaWQgaW50ZWxfdW5jb3JlX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldik7Cj4gIGV4dGVybiB2b2lkIGludGVsX3VuY29yZV9jaGVja19lcnJv cnMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIGV4dGVybiB2b2lkIGludGVsX3VuY29yZV9m aW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICBleHRlcm4gdm9pZCBpbnRlbF91bmNvcmVf Zm9yY2V3YWtlX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgcmVzdG9yZSk7Cj4g LWNvbnN0IGNoYXIgKmludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluX3RvX3N0cihjb25zdCBp bnQgZG9tYWluX2lkKTsKPiArY29uc3QgY2hhciAqaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21h aW5fdG9fc3RyKGNvbnN0IGVudW0gZndfZG9tYWluX2lkIGlkKTsKPiAgdm9pZCBpbnRlbF91bmNv cmVfZm9yY2V3YWtlX2dldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJ CQl1bnNpZ25lZCBmd19kb21haW5zKTsKPiAgdm9pZCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1 dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfdW5jb3JlLmMKPiBpbmRleCA1MDliOWM5Li5lODAyNDg2IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfdW5jb3JlLmMKPiBAQCAtNDksNyArNDksNyBAQCBzdGF0aWMgY29uc3QgY2hhciAq IGNvbnN0IGZvcmNld2FrZV9kb21haW5fbmFtZXNbXSA9IHsKPiAgfTsKPiAgCj4gIGNvbnN0IGNo YXIgKgo+IC1pbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbl90b19zdHIoY29uc3QgaW50IGlk KQo+ICtpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbl90b19zdHIoY29uc3QgZW51bSBmd19k b21haW5faWQgaWQpCj4gIHsKPiAgCUJVSUxEX0JVR19PTigoc2l6ZW9mKGZvcmNld2FrZV9kb21h aW5fbmFtZXMpL3NpemVvZihjb25zdCBjaGFyICopKSAhPQo+ICAJCSAgICAgRldfRE9NQUlOX0lE X0NPVU5UKTsKPiBAQCAtMTIyLDEwICsxMjIsMTAgQEAgZndfZG9tYWluX3Bvc3RpbmdfcmVhZChj b25zdCBzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gKmQpCj4gIH0KPiAgCj4g IHN0YXRpYyB2b2lkCj4gLWZ3X2RvbWFpbnNfZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgaW50IGZ3X2RvbWFpbnMpCj4gK2Z3X2RvbWFpbnNfZ2V0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBmd19kb21haW5zIGZ3X2RvbWFpbnMpCj4gIHsKPiAg CXN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZDsKPiAtCWludCBpZDsKPiAr CWVudW0gZndfZG9tYWluX2lkIGlkOwo+ICAKPiAgCWZvcl9lYWNoX2Z3X2RvbWFpbl9tYXNrKGQs IGZ3X2RvbWFpbnMsIGRldl9wcml2LCBpZCkgewo+ICAJCWZ3X2RvbWFpbl93YWl0X2Fja19jbGVh cihkKTsKPiBAQCAtMTM2LDEwICsxMzYsMTAgQEAgZndfZG9tYWluc19nZXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgZndfZG9tYWlucykKPiAgfQo+ICAKPiAgc3RhdGlj IHZvaWQKPiAtZndfZG9tYWluc19wdXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCBpbnQgZndfZG9tYWlucykKPiArZndfZG9tYWluc19wdXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBlbnVtIGZ3X2RvbWFpbnMgZndfZG9tYWlucykKPiAgewo+ICAJc3RydWN0 IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluICpkOwo+IC0JaW50IGlkOwo+ICsJZW51bSBm d19kb21haW5faWQgaWQ7Cj4gIAo+ICAJZm9yX2VhY2hfZndfZG9tYWluX21hc2soZCwgZndfZG9t YWlucywgZGV2X3ByaXYsIGlkKQo+ICAJCWZ3X2RvbWFpbl9wdXQoZCk7Cj4gQEAgLTE0OSw3ICsx NDksNyBAQCBzdGF0aWMgdm9pZAo+ICBmd19kb21haW5zX3Bvc3RpbmdfcmVhZChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF91bmNvcmVfZm9y Y2V3YWtlX2RvbWFpbiAqZDsKPiAtCWludCBpZDsKPiArCWVudW0gZndfZG9tYWluX2lkIGlkOwo+ ICAKPiAgCS8qIE5vIG5lZWQgdG8gZG8gZm9yIGFsbCwganVzdCBkbyBmb3IgZmlyc3QgZm91bmQg Ki8KPiAgCWZvcl9lYWNoX2Z3X2RvbWFpbihkLCBkZXZfcHJpdiwgaWQpIHsKPiBAQCAtMTU5LDEw ICsxNTksMTAgQEAgZndfZG9tYWluc19wb3N0aW5nX3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZAo+IC1md19kb21haW5zX3Jlc2V0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgY29uc3QgdW5zaWduZWQgZndfZG9t YWlucykKPiArZndfZG9tYWluc19yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIGVudW0gZndfZG9tYWlucyBmd19kb21haW5zKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfdW5j b3JlX2ZvcmNld2FrZV9kb21haW4gKmQ7Cj4gLQlpbnQgaWQ7Cj4gKwllbnVtIGZ3X2RvbWFpbl9p ZCBpZDsKPiAgCj4gIAlmb3JfZWFjaF9md19kb21haW5fbWFzayhkLCBmd19kb21haW5zLCBkZXZf cHJpdiwgaWQpCj4gIAkJZndfZG9tYWluX3Jlc2V0KGQpOwo+IEBAIC0xODEsNyArMTgxLDcgQEAg c3RhdGljIHZvaWQgX19nZW42X2d0X3dhaXRfZm9yX3RocmVhZF9jMChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGZ3X2RvbWFpbnNfZ2V0 X3dpdGhfdGhyZWFkX3N0YXR1cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g LQkJCQkJICAgICAgaW50IGZ3X2RvbWFpbnMpCj4gKwkJCQkJICAgICAgZW51bSBmd19kb21haW5z IGZ3X2RvbWFpbnMpCj4gIHsKPiAgCWZ3X2RvbWFpbnNfZ2V0KGRldl9wcml2LCBmd19kb21haW5z KTsKPiAgCj4gQEAgLTE5OSw3ICsxOTksNyBAQCBzdGF0aWMgdm9pZCBnZW42X2d0X2NoZWNrX2Zp Zm9kYmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB9Cj4gIAo+ICBzdGF0 aWMgdm9pZCBmd19kb21haW5zX3B1dF93aXRoX2ZpZm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+IC0JCQkJICAgICBpbnQgZndfZG9tYWlucykKPiArCQkJCSAgICAgZW51bSBm d19kb21haW5zIGZ3X2RvbWFpbnMpCj4gIHsKPiAgCWZ3X2RvbWFpbnNfcHV0KGRldl9wcml2LCBm d19kb21haW5zKTsKPiAgCWdlbjZfZ3RfY2hlY2tfZmlmb2RiZyhkZXZfcHJpdik7Cj4gQEAgLTI1 MSw5ICsyNTEsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfdW5jb3JlX2Z3X3JlbGVhc2VfdGltZXIo dW5zaWduZWQgbG9uZyBhcmcpCj4gIHZvaWQgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9yZXNldChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBib29sIHJlc3RvcmUpCj4gIHsKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQl1bnNpZ25lZCBs b25nIGlycWZsYWdzLCBmdyA9IDA7Cj4gKwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwo+ICAJc3Ry dWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluICpkb21haW47Cj4gLQlpbnQgaWQ7Cj4g KwllbnVtIGZ3X2RvbWFpbl9pZCBpZDsKPiArCWVudW0gZndfZG9tYWlucyBmdyA9IDA7Cj4gIAo+ ICAJLyogSG9sZCB1bmNvcmUubG9jayBhY3Jvc3MgcmVzZXQgdG8gcHJldmVudCBhbnkgcmVnaXN0 ZXIgYWNjZXNzCj4gIAkgKiB3aXRoIGZvcmNld2FrZSBub3Qgc2V0IGNvcnJlY3RseQo+IEBAIC0z MjksMTEgKzMzMCwxMSBAQCB2b2lkIGludGVsX3VuY29yZV9zYW5pdGl6ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ICAgKiBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dCgpIGF0IHRoZSBlbmQg b2YgdGhlIHNlcXVlbmNlLgo+ICAgKi8KPiAgdm9pZCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dl dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJCQl1bnNpZ25lZCBmd19k b21haW5zKQo+ICsJCQkJZW51bSBmd19kb21haW5zIGZ3X2RvbWFpbnMpCj4gIHsKPiAgCXVuc2ln bmVkIGxvbmcgaXJxZmxhZ3M7Cj4gIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21h aW4gKmRvbWFpbjsKPiAtCWludCBpZDsKPiArCWVudW0gZndfZG9tYWluX2lkIGlkOwo+ICAKPiAg CWlmICghZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX2dldCkKPiAgCQlyZXR1cm47 Cj4gQEAgLTM1OCwxMSArMzU5LDExIEBAIHZvaWQgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgKiBzZWUgaW50ZWxfdW5jb3Jl X2ZvcmNld2FrZV9nZXQoKQo+ICAgKi8KPiAgdm9pZCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1 dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJCQl1bnNpZ25lZCBmd19k b21haW5zKQo+ICsJCQkJZW51bSBmd19kb21haW5zIGZ3X2RvbWFpbnMpCj4gIHsKPiAgCXVuc2ln bmVkIGxvbmcgaXJxZmxhZ3M7Cj4gIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21h aW4gKmRvbWFpbjsKPiAtCWludCBpZDsKPiArCWVudW0gZndfZG9tYWluX2lkIGlkOwo+ICAKPiAg CWlmICghZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX3B1dCkKPiAgCQlyZXR1cm47 Cj4gQEAgLTM4Niw3ICszODcsNyBAQCB2b2lkIGludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgdm9pZCBhc3NlcnRfZm9yY2V3YWtl c19pbmFjdGl2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCXN0 cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZG9tYWluOwo+IC0JaW50IGlkOwo+ ICsJZW51bSBmd19kb21haW5faWQgaWQ7Cj4gIAo+ICAJaWYgKCFkZXZfcHJpdi0+dW5jb3JlLmZ1 bmNzLmZvcmNlX3dha2VfZ2V0KQo+ICAJCXJldHVybjsKPiBAQCAtNTU5LDEwICs1NjAsMTAgQEAg X19nZW4yX3JlYWQoNjQpCj4gIAlyZXR1cm4gdmFsCj4gIAo+ICBzdGF0aWMgaW5saW5lIHZvaWQg X19mb3JjZV93YWtlX2dldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJ CQkgICAgdW5zaWduZWQgZndfZG9tYWlucykKPiArCQkJCSAgICBlbnVtIGZ3X2RvbWFpbnMgZndf ZG9tYWlucykKPiAgewo+ICAJc3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluICpk b21haW47Cj4gLQlpbnQgaWQ7Cj4gKwllbnVtIGZ3X2RvbWFpbl9pZCBpZDsKPiAgCj4gIAlpZiAo V0FSTl9PTighZndfZG9tYWlucykpCj4gIAkJcmV0dXJuOwo+IEBAIC02MjYsNyArNjI3LDcgQEAg Y2h2X3JlYWQjI3goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBvZmZfdCByZWcs IGJvb2wgdHJhY2UpIHsgXAo+ICAjZGVmaW5lIF9fZ2VuOV9yZWFkKHgpIFwKPiAgc3RhdGljIHUj I3ggXAo+ICBnZW45X3JlYWQjI3goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBv ZmZfdCByZWcsIGJvb2wgdHJhY2UpIHsgXAo+IC0JdW5zaWduZWQgZndfZW5naW5lOyBcCj4gKwll bnVtIGZ3X2RvbWFpbnMgZndfZW5naW5lOyBcCj4gIAlHRU42X1JFQURfSEVBREVSKHgpOyBcCj4g IAlpZiAoIVNLTF9ORUVEU19GT1JDRV9XQUtFKChkZXZfcHJpdiksIChyZWcpKSkJXAo+ICAJCWZ3 X2VuZ2luZSA9IDA7IFwKPiBAQCAtODI2LDcgKzgyNyw3IEBAIHN0YXRpYyBib29sIGlzX2dlbjlf c2hhZG93ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcmVnKQo+ICBz dGF0aWMgdm9pZCBcCj4gIGdlbjlfd3JpdGUjI3goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCBvZmZfdCByZWcsIHUjI3ggdmFsLCBcCj4gIAkJYm9vbCB0cmFjZSkgeyBcCj4gLQl1 bnNpZ25lZCBmd19lbmdpbmU7IFwKPiArCWVudW0gZndfZG9tYWlucyBmd19lbmdpbmU7IFwKPiAg CUdFTjZfV1JJVEVfSEVBREVSOyBcCj4gIAlpZiAoIVNLTF9ORUVEU19GT1JDRV9XQUtFKChkZXZf cHJpdiksIChyZWcpKSB8fAlcCj4gIAkgICAgaXNfZ2VuOV9zaGFkb3dlZChkZXZfcHJpdiwgcmVn KSkgXAo+IEBAIC04OTIsNyArODkzLDcgQEAgZG8geyBcCj4gIAo+ICAKPiAgc3RhdGljIHZvaWQg ZndfZG9tYWluX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCQkg ICB1MzIgZG9tYWluX2lkLCB1MzIgcmVnX3NldCwgdTMyIHJlZ19hY2spCj4gKwkJCSAgIGVudW0g ZndfZG9tYWluX2lkIGRvbWFpbl9pZCwgdTMyIHJlZ19zZXQsIHUzMiByZWdfYWNrKQo+ICB7Cj4g IAlzdHJ1Y3QgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9kb21haW4gKmQ7Cj4gIAo+IC0tIAo+IDEu OS4xCj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=