From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: Re: [PATCH v5 3/3] drm/i915: Make PSR registers relative to transcoders Date: Fri, 14 Jun 2019 21:27:18 -0700 Message-ID: References: <20190420205529.20624-1-jose.souza@intel.com> <20190420205529.20624-3-jose.souza@intel.com> Reply-To: dhinakaran.pandiyan@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id D64BD89151 for ; Sat, 15 Jun 2019 04:27:22 +0000 (UTC) In-Reply-To: <20190420205529.20624-3-jose.souza@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?ISO-8859-1?Q?Jos=E9?= Roberto de Souza , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CiJkcm0vaTkxNS9wc3IiIGluIHRoZSBzdWJqZWN0LgoKT24gU2F0LCAyMDE5LTA0LTIwIGF0IDEz OjU1IC0wNzAwLCBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIHdyb3RlOgo+IFBTUiByZWdpc3RlcnMg YXJlIGEgbWVzcywgc29tZSBoYXZlIHRoZSBmdWxsIGFkZHJlc3Mgd2hpbGUgb3RoZXJzIGp1c3QK PiBoYXZlIHRoZSBhZGRpdGlvbmFsIG9mZnNldCBmcm9tIHBzcl9tbWlvX2Jhc2UuCj4gCj4gRm9y IEJEVysgcHNyX21taW9fYmFzZSBpcyBub3RoaW5nIG1vcmUgdGhhbiBUUkFOU0NPREVSX0VEUF9P RkZTRVQgKwo+IDB4ODAwIGFuZCB1c2luZyBpdCBtYWtlcyBtb3JlIGRpZmZpY3VsdCBmb3IgcGVv cGxlIHdpdGggYW4gUFNSCj4gcmVnaXN0ZXIgYWRkcmVzcyBvciBQU1IgcmVnaXN0ZXIgbmFtZSBm cm9tIGZyb20gQlNwZWMgYXMgaTkxNSBhbHNvCj4gZG9uJ3QgbWF0Y2ggdGhlIEJTcGVjIG5hbWVz Lgo+IEZvciBIU1cgcHNyX21taW9fYmFzZSBpcyBfRERJX0JVRl9DVExfQSArIDB4ODAwIGFuZCBQ U1IgcmVnaXN0ZXJzIGFyZQo+IG9ubHkgYXZhaWxhYmxlIGluIERESUEuCj4gCj4gT3RoZXIgcmVh c29uIHRvIG1ha2UgcmVsYXRpdmUgdG8gdHJhbnNjb2RlciBpcyB0aGF0IHNpbmNlIEJEVyBldmVy eQo+IHRyYW5zY29kZXIgaGF2ZSBQU1IgcmVnaXN0ZXJzLCBzbyBpbiB0aGVvcnkgaXQgc2hvdWxk IGJlIHBvc3NpYmxlIHRvCj4gaGF2ZSBQU1IgZW5hYmxlZCBpbiBhIG5vbi1lRFAgdHJhbnNjb2Rl ci4KPiAKPiBTbyBmb3IgQkRXKyB3ZSBjYW4gdXNlIF9UUkFOUzIoKSB0byBnZXQgdGhlIHJlZ2lz dGVyIG9mZnNldCBvZiBhbnkKPiBQU1IgcmVnaXN0ZXIgaW4gYW55IHRyYW5zY29kZXIgd2hpbGUg Zm9yIEhTVyB3ZSBoYXZlIF9IU1dfUFNSX0FESgo+IHRoYXQgd2lsbCBjYWxjdWxhdGUgdGhlIHJl Z2lzdGVyIG9mZnNldCBmb3IgdGhlIHNpbmdsZSBQU1IgaW5zdGFuY2UsCj4gbm90aW5nIHRoYXQg d2UgYXJlIGFscmVhZHkgZ3VhcmRlZCBhYm91dCB0cnlpbmcgdG8gZW5hYmxlIFBTUiBpbiBvdGhl cgo+IHBvcnQgdGhhbiBERElBIG9uIEhTVyBieSB0aGUgJ2lmIChkaWdfcG9ydC0+YmFzZS5wb3J0 ICE9IFBPUlRfQSknIGluCj4gaW50ZWxfcHNyX2NvbXB1dGVfY29uZmlnKCksIHRoaXMgY2hlY2sg c2hvdWxkIG9ubHkgYmUgdmFsaWQgZm9yIEhTVwo+IGFuZCB3aWxsIGJlIGNoYW5nZWQgaW4gZnV0 dXJlLgo+IFBTUjIgcmVnaXN0ZXJzIGFuZCBQU1JfRVZFTlQgd2FzIGFkZGVkIGFmdGVyIEhhc3dl bGwgc28gdGhhdCBpcyB3aHkKPiBfUFNSX0FESigpIGlzIG5vdCB1c2VkIGluIHNvbWUgbWFjcm9z Lgo+IAo+IFRoZSBvbmx5IHJlZ2lzdGVycyB0aGF0IGNhbiBub3QgYmUgcmVsYXRpdmUgdG8gdHJh bnNjb2RlciBhcmUKPiBQU1JfSU1SIGFuZCBQU1JfSUlSIHRoYXQgYXJlIG5vdCByZWxhdGl2ZSB0 byBhbnl0aGluZywgc28ga2VlcGluZyBpdAo+IGhhcmRjb2RlZC4KPiAKPiBBbHNvIHJlbW92aW5n IEJEV19FRFBfUFNSX0JBU0UgZnJvbSBHVlQgYmVjYXVzZSBpdCBpcyBub3QgdXNlZCBhcyBpdAo+ IGlzIHRoZSBvbmx5IFBTUiByZWdpc3RlciB0aGF0IEdWVCBoYXZlLgo+IAo+IHY1Ogo+IC0gTWFj cm9zIGNoYW5nZWQgdG8gYmUgbW9yZSBleHBsaWNpdCBhYm91dCBIU1cgKERoaW5ha2FyYW4pCj4g LSBTcXVhc2hlZCB3aXRoIHRoZSBwYXRjaCB0aGF0IGFkZGVkIHRoZSB0cmFuIHBhcmFtZXRlciB0 byB0aGUKPiBtYWNyb3MgKERoaW5ha2FyYW4pCj4gCj4gQ2M6IERoaW5ha2FyYW4gUGFuZGl5YW4g PGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPgo+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJp Z28udml2aUBpbnRlbC5jb20+Cj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5p bnRlbC5jb20+Cj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+Cj4gQ2M6IFpoaSBXYW5nIDx6aGkuYS53YW5nQGludGVsLmNvbT4KPiBTaWduZWQtb2Zm LWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KPiAtLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2hhbmRsZXJzLmMgfCAgMSAtCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIHwgMTggKysrKystLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgIHwgIDMgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaCAgICAgfCA1NyArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyAgICB8IDU1ICsrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0KPiAgNSBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA1MSBkZWxldGlv bnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2hhbmRsZXJz LmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9oYW5kbGVycy5jCj4gaW5kZXggMThmMDFl ZWIyNTEwLi43NDllM2U0MjA0ZjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3Z0L2hhbmRsZXJzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvaGFuZGxlcnMu Ywo+IEBAIC0yNzc2LDcgKzI3NzYsNiBAQCBzdGF0aWMgaW50IGluaXRfYnJvYWR3ZWxsX21taW9f aW5mbyhzdHJ1Y3QgaW50ZWxfZ3Z0Cj4gKmd2dCkKPiAgCU1NSU9fRChDSElDS0VOX1BJUEVTTF8x KFBJUEVfQyksIERfQkRXX1BMVVMpOwo+ICAKPiAgCU1NSU9fRChXTV9NSVNDLCBEX0JEVyk7Cj4g LQlNTUlPX0QoX01NSU8oQkRXX0VEUF9QU1JfQkFTRSksIERfQkRXKTsKQ2hhbmdlIHRoaXMgdG8g X1NSRF9DVExfRURQIHRvIGtlZXAgdGhlIGNoYW5nZSBub24tZnVuY3Rpb25hbD8gQW55IGNhc2Us IHdlJ2xsCm5lZWQgYW4gYWNrIHRvIG1vZGlmeSB0aGlzLgoKPiAgCU1NSU9fRChfTU1JTygweDY2 YzAwKSwgRF9CRFdfUExVUyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGlu ZGV4IDU4MjNmZmIxNzgyMS4uMmEwZjU4NzFlOWE4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMKPiBAQCAtMjQ3MCw3ICsyNDcwLDcgQEAgcHNyX3NvdXJjZV9zdGF0dXMoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IHN0cnVjdCBzZXFfZmlsZSAqbSkKPiAg CQkJIkJVRl9PTiIsCj4gIAkJCSJUR19PTiIKPiAgCQl9Owo+IC0JCXZhbCA9IEk5MTVfUkVBRChF RFBfUFNSMl9TVEFUVVMpOwo+ICsJCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSMl9TVEFUVVMoZGV2 X3ByaXYtPnBzci50cmFuc2NvZGVyKSk7Cj4gIAkJc3RhdHVzX3ZhbCA9ICh2YWwgJiBFRFBfUFNS Ml9TVEFUVVNfU1RBVEVfTUFTSykgPj4KPiAgCQkJICAgICAgRURQX1BTUjJfU1RBVFVTX1NUQVRF X1NISUZUOwo+ICAJCWlmIChzdGF0dXNfdmFsIDwgQVJSQVlfU0laRShsaXZlX3N0YXR1cykpCj4g QEAgLTI0ODYsNyArMjQ4Niw3IEBAIHBzcl9zb3VyY2Vfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCj4gIAkJCSJTUkRPRkZBQ0si LAo+ICAJCQkiU1JERU5UX09OIiwKPiAgCQl9Owo+IC0JCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNS X1NUQVRVUyk7Cj4gKwkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1JfU1RBVFVTKGRldl9wcml2LT5w c3IudHJhbnNjb2RlcikpOwo+ICAJCXN0YXR1c192YWwgPSAodmFsICYgRURQX1BTUl9TVEFUVVNf U1RBVEVfTUFTSykgPj4KPiAgCQkJICAgICAgRURQX1BTUl9TVEFUVVNfU1RBVEVfU0hJRlQ7Cj4g IAkJaWYgKHN0YXR1c192YWwgPCBBUlJBWV9TSVpFKGxpdmVfc3RhdHVzKSkKPiBAQCAtMjUyOSwx MCArMjUyOSwxMCBAQCBzdGF0aWMgaW50IGk5MTVfZWRwX3Bzcl9zdGF0dXMoc3RydWN0IHNlcV9m aWxlICptLAo+IHZvaWQgKmRhdGEpCj4gIAkJZ290byB1bmxvY2s7Cj4gIAo+ICAJaWYgKHBzci0+ cHNyMl9lbmFibGVkKSB7Cj4gLQkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1IyX0NUTCk7Cj4gKwkJ dmFsID0gSTkxNV9SRUFEKEVEUF9QU1IyX0NUTChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpKTsK PiAgCQllbmFibGVkID0gdmFsICYgRURQX1BTUjJfRU5BQkxFOwo+ICAJfSBlbHNlIHsKPiAtCQl2 YWwgPSBJOTE1X1JFQUQoRURQX1BTUl9DVEwpOwo+ICsJCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNS X0NUTChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpKTsKPiAgCQllbmFibGVkID0gdmFsICYgRURQ X1BTUl9FTkFCTEU7Cj4gIAl9Cj4gIAlzZXFfcHJpbnRmKG0sICJTb3VyY2UgUFNSIGN0bDogJXMg WzB4JTA4eF1cbiIsCj4gQEAgLTI1NDUsNyArMjU0NSw4IEBAIHN0YXRpYyBpbnQgaTkxNV9lZHBf cHNyX3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQKPiAqZGF0YSkKPiAgCSAqIFNLTCsg UGVyZiBjb3VudGVyIGlzIHJlc2V0IHRvIDAgZXZlcnl0aW1lIERDIHN0YXRlIGlzIGVudGVyZWQK PiAgCSAqLwo+ICAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZf cHJpdikpIHsKPiAtCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUl9QRVJGX0NOVCkgJiBFRFBfUFNS X1BFUkZfQ05UX01BU0s7Cj4gKwkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1JfUEVSRl9DTlQoZGV2 X3ByaXYtPnBzci50cmFuc2NvZGVyKSk7Cj4gKwkJdmFsICY9IEVEUF9QU1JfUEVSRl9DTlRfTUFT SzsKPiAgCQlzZXFfcHJpbnRmKG0sICJQZXJmb3JtYW5jZSBjb3VudGVyOiAldVxuIiwgdmFsKTsK PiAgCX0KPiAgCj4gQEAgLTI1NjMsOCArMjU2NCwxMSBAQCBzdGF0aWMgaW50IGk5MTVfZWRwX3Bz cl9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkCj4gKmRhdGEpCj4gIAkJICogUmVhZGlu ZyBhbGwgMyByZWdpc3RlcnMgYmVmb3JlIGhhbmQgdG8gbWluaW1pemUgY3Jvc3NpbmcgYQo+ICAJ CSAqIGZyYW1lIGJvdW5kYXJ5IGJldHdlZW4gcmVnaXN0ZXIgcmVhZHMKPiAgCQkgKi8KPiAtCQlm b3IgKGZyYW1lID0gMDsgZnJhbWUgPCBQU1IyX1NVX1NUQVRVU19GUkFNRVM7IGZyYW1lICs9IDMp Cj4gLQkJCXN1X2ZyYW1lc192YWxbZnJhbWUgLyAzXSA9Cj4gSTkxNV9SRUFEKFBTUjJfU1VfU1RB VFVTKGZyYW1lKSk7Cj4gKwkJZm9yIChmcmFtZSA9IDA7IGZyYW1lIDwgUFNSMl9TVV9TVEFUVVNf RlJBTUVTOyBmcmFtZSArPSAzKSB7Cj4gKwkJCXZhbCA9IEk5MTVfUkVBRChQU1IyX1NVX1NUQVRV UyhkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIsCj4gKwkJCQkJCSAgICAgICBmcmFtZSkpOwo+ICsJ CQlzdV9mcmFtZXNfdmFsW2ZyYW1lIC8gM10gPSB2YWw7Cj4gKwkJfQo+ICAKPiAgCQlzZXFfcHV0 cyhtLCAiRnJhbWU6XHRQU1IyIFNVIGJsb2NrczpcbiIpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiBpbmRleCBkYzc0ZDMzYzIwYWEuLjg5ZjI0MDFlODBhNCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+IEBAIC01MDgsNiArNTA4LDcgQEAgc3RydWN0IGk5MTVfcHNyIHsKPiAg CWJvb2wgZW5hYmxlZDsKPiAgCXN0cnVjdCBpbnRlbF9kcCAqZHA7Cj4gIAllbnVtIHBpcGUgcGlw ZTsKPiArCWVudW0gdHJhbnNjb2RlciB0cmFuc2NvZGVyOwo+ICAJYm9vbCBhY3RpdmU7Cj4gIAlz dHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKPiAgCXVuc2lnbmVkIGJ1c3lfZnJvbnRidWZmZXJfYml0 czsKPiBAQCAtMTUzNCw4ICsxNTM1LDYgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ICAJ LyogTU1JTyBiYXNlIGFkZHJlc3MgZm9yIE1JUEkgcmVncyAqLwo+ICAJdTMyIG1pcGlfbW1pb19i YXNlOwo+ICAKPiAtCXUzMiBwc3JfbW1pb19iYXNlOwo+IC0KPiAgCXUzMiBwcHNfbW1pb19iYXNl Owo+ICAKPiAgCXdhaXRfcXVldWVfaGVhZF90IGdtYnVzX3dhaXRfcXVldWU7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCj4gaW5kZXggMzExNjM0MTU0NzlkLi41NzJhOWY2NjFkNjAgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtNDIxMiwxMCArNDIxMiwxOSBAQCBlbnVtIHsKPiAg I2RlZmluZSBQSVBFU1JDKHRyYW5zKQkJX01NSU9fVFJBTlMyKHRyYW5zLCBfUElQRUFTUkMpCj4g ICNkZWZpbmUgUElQRV9NVUxUKHRyYW5zKQlfTU1JT19UUkFOUzIodHJhbnMsIF9QSVBFX01VTFRf QSkKPiAgCj4gLS8qIEhTVysgZURQIFBTUiByZWdpc3RlcnMgKi8KPiAtI2RlZmluZSBIU1dfRURQ X1BTUl9CQVNFCTB4NjQ4MDAKPiAtI2RlZmluZSBCRFdfRURQX1BTUl9CQVNFCTB4NmY4MDAKPiAt I2RlZmluZSBFRFBfUFNSX0NUTAkJCQlfTU1JTyhkZXZfcHJpdi0+cHNyX21taW9fYmFzZSArCj4g MCkKPiArLyoKPiArICogSFNXKyBlRFAgUFNSIHJlZ2lzdGVycwo+ICsgKgo+ICsgKiBIU1cgUFNS IHJlZ2lzdGVycyBhcmUgcmVsYXRpdmUgdG8gRERJQShfRERJX0JVRl9DVExfQSArIDB4ODAwKSB3 aXRoIGp1c3QKPiBvbmUKPiArICogaW5zdGFuY2Ugb2YgaXQKPiArICovCj4gKyNkZWZpbmUgX0hT V19FRFBfUFNSX0JBU0UJCQkweDY0ODAwCj4gKyNkZWZpbmUgX1NSRF9DVExfQQkJCQkweDYwODAw CQkKCgkJCQkJCQkvKiBCRFcrICovCj4gKyNkZWZpbmUgX1NSRF9DVExfRURQCQkJCTB4NkY4MDAK PiArI2RlZmluZSBfSFNXX1BTUl9BREoocmVnKQkJCSgocmVnKSAtIF9TUkRfQ1RMX0EgKwo+IF9I U1dfRURQX1BTUl9CQVNFKQo+ICsjZGVmaW5lIF9QU1JfQURKKHRyYW4sIHJlZykJCQkoSVNfSEFT V0VMTChkZXZfcHJpdikgPwo+IF9IU1dfUFNSX0FESihyZWcpIDogX1RSQU5TMih0cmFuLCByZWcp KQo+ICsjZGVmaW5lIF9NTUlPX1BTUl9BREoodHJhbiwgcmVnKQkJX01NSU8oX1BTUl9BREoodHJh biwgcmVnKSkKbml0OiBXZSBjYW4gc2tpcCB0aGlzIG1hY3JvCgo+ICsjZGVmaW5lIEVEUF9QU1Jf Q1RMKHRyYW4pCQkJX01NSU9fUFNSX0FESih0cmFuLCBfU1JEX0NUTF9BKQojZGVmaW5lIEVEUF9Q U1JfQ1RMKHRyYW4pCQkJX01NSU8oX1BTUl9BREoodHJhbiwgX1NSRF9DVExfQSkpCgpJdCBkb2Vz bid0IGRvIG11Y2ggb3RoZXIgdGhhbiBhZGRpbmcgYW5vdGhlciBsYXllci4KCj4gICNkZWZpbmUg ICBFRFBfUFNSX0VOQUJMRQkJCSgxIDw8IDMxKQo+ICAjZGVmaW5lICAgQkRXX1BTUl9TSU5HTEVf RlJBTUUJCQkoMSA8PCAzMCkKPiAgI2RlZmluZSAgIEVEUF9QU1JfUkVTVE9SRV9QU1JfQUNUSVZF X0NUWF9NQVNLCSgxIDw8IDI5KSAvKiBTVyBjYW4ndAo+IG1vZGlmeSAqLwo+IEBAIC00MjUyLDE2 ICs0MjYxLDIyIEBAIGVudW0gewo+ICAjZGVmaW5lICAgRURQX1BTUl9UUkFOU0NPREVSX0FfU0hJ RlQJCTgKPiAgI2RlZmluZSAgIEVEUF9QU1JfVFJBTlNDT0RFUl9FRFBfU0hJRlQJCTAKPiAgCj4g LSNkZWZpbmUgRURQX1BTUl9BVVhfQ1RMCQkJCV9NTUlPKGRldl9wcml2LQo+ID5wc3JfbW1pb19i YXNlICsgMHgxMCkKPiArI2RlZmluZSBfU1JEX0FVWF9DVExfQQkJCQkweDYwODEwCj4gKyNkZWZp bmUgX1NSRF9BVVhfQ1RMX0VEUAkJCTB4NkY4MTAKPiArI2RlZmluZSBFRFBfUFNSX0FVWF9DVEwo dHJhbikJCQlfTU1JT19QU1JfQURKKHRyYW4sCj4gX1NSRF9BVVhfQ1RMX0EpCj4gICNkZWZpbmUg ICBFRFBfUFNSX0FVWF9DVExfVElNRV9PVVRfTUFTSwkJKDMgPDwgMjYpCj4gICNkZWZpbmUgICBF RFBfUFNSX0FVWF9DVExfTUVTU0FHRV9TSVpFX01BU0sJKDB4MWYgPDwgMjApCj4gICNkZWZpbmUg ICBFRFBfUFNSX0FVWF9DVExfUFJFQ0hBUkdFXzJVU19NQVNLCSgweGYgPDwgMTYpCj4gICNkZWZp bmUgICBFRFBfUFNSX0FVWF9DVExfRVJST1JfSU5URVJSVVBUCSgxIDw8IDExKQo+ICAjZGVmaW5l ICAgRURQX1BTUl9BVVhfQ1RMX0JJVF9DTE9DS18yWF9NQVNLCSgweDdmZikKPiAgCj4gLSNkZWZp bmUgRURQX1BTUl9BVVhfREFUQShpKQkJCV9NTUlPKGRldl9wcml2LT5wc3JfbW1pb19iYXNlICsK PiAweDE0ICsgKGkpICogNCkgLyogNSByZWdpc3RlcnMgKi8KPiArI2RlZmluZSBfU1JEX0FVWF9E QVRBX0EJCQkJMHg2MDgxNAo+ICsjZGVmaW5lIF9TUkRfQVVYX0RBVEFfRURQCQkJMHg2RjgxNAo+ ICsjZGVmaW5lIEVEUF9QU1JfQVVYX0RBVEEodHJhbiwgaSkJCV9NTUlPKF9QU1JfQURKKHRyYW4s Cj4gX1NSRF9BVVhfREFUQV9BKSArIChpKSArIDQpIC8qIDUgcmVnaXN0ZXJzICovCj4gIAo+IC0j ZGVmaW5lIEVEUF9QU1JfU1RBVFVTCQkJCV9NTUlPKGRldl9wcml2LQo+ID5wc3JfbW1pb19iYXNl ICsgMHg0MCkKPiArI2RlZmluZSBfU1JEX1NUQVRVU19BCQkJCTB4NjA4NDAKPiArI2RlZmluZSBf U1JEX1NUQVRVU19FRFAJCQkJMHg2Rjg0MApUaGUgZG9jdW1lbnRhdGlvbiByZWNvbW1lbmRzIHVz aW5nIGxvd2VyIGNhc2UgaGV4IG51bWJlcnMuCgo+ICsjZGVmaW5lIEVEUF9QU1JfU1RBVFVTKHRy YW4pCQkJX01NSU9fUFNSX0FESih0cmFuLAo+IF9TUkRfU1RBVFVTX0EpCj4gICNkZWZpbmUgICBF RFBfUFNSX1NUQVRVU19TVEFURV9NQVNLCQkoNyA8PCAyOSkKPiAgI2RlZmluZSAgIEVEUF9QU1Jf U1RBVFVTX1NUQVRFX1NISUZUCQkyOQo+ICAjZGVmaW5lICAgRURQX1BTUl9TVEFUVVNfU1RBVEVf SURMRQkJKDAgPDwgMjkpCj4gQEAgLTQyODYsMTAgKzQzMDEsMTUgQEAgZW51bSB7Cj4gICNkZWZp bmUgICBFRFBfUFNSX1NUQVRVU19TRU5ESU5HX1RQMQkJKDEgPDwgNCkKPiAgI2RlZmluZSAgIEVE UF9QU1JfU1RBVFVTX0lETEVfTUFTSwkJMHhmCj4gIAo+IC0jZGVmaW5lIEVEUF9QU1JfUEVSRl9D TlQJCV9NTUlPKGRldl9wcml2LT5wc3JfbW1pb19iYXNlICsgMHg0NCkKPiArI2RlZmluZSBfU1JE X1BFUkZfQ05UX0EJCQkweDYwODQ0Cj4gKyNkZWZpbmUgX1NSRF9QRVJGX0NOVF9FRFAJCTB4NkY4 NDQKPiArI2RlZmluZSBFRFBfUFNSX1BFUkZfQ05UKHRyYW4pCQlfTU1JT19QU1JfQURKKHRyYW4s Cj4gX1NSRF9QRVJGX0NOVF9BKQo+ICAjZGVmaW5lICAgRURQX1BTUl9QRVJGX0NOVF9NQVNLCQkw eGZmZmZmZgo+ICAKPiAtI2RlZmluZSBFRFBfUFNSX0RFQlVHCQkJCV9NTUlPKGRldl9wcml2LQo+ ID5wc3JfbW1pb19iYXNlICsgMHg2MCkgLyogUFNSX01BU0sgb24gU0tMKyAqLwo+ICsvKiBQU1Jf TUFTSyBvbiBTS0wrICovCj4gKyNkZWZpbmUgX1NSRF9ERUJVR19BCQkJCTB4NjA4NjAKPiArI2Rl ZmluZSBfU1JEX0RFQlVHX0VEUAkJCQkweDZGODYwCj4gKyNkZWZpbmUgRURQX1BTUl9ERUJVRyh0 cmFuKQkJCV9NTUlPX1BTUl9BREoodHJhbiwKPiBfU1JEX0RFQlVHX0EpCj4gICNkZWZpbmUgICBF RFBfUFNSX0RFQlVHX01BU0tfTUFYX1NMRUVQICAgICAgICAgKDEgPDwgMjgpCj4gICNkZWZpbmUg ICBFRFBfUFNSX0RFQlVHX01BU0tfTFBTUCAgICAgICAgICAgICAgKDEgPDwgMjcpCj4gICNkZWZp bmUgICBFRFBfUFNSX0RFQlVHX01BU0tfTUVNVVAgICAgICAgICAgICAgKDEgPDwgMjYpCj4gQEAg LTQyOTcsNyArNDMxNyw5IEBAIGVudW0gewo+ICAjZGVmaW5lICAgRURQX1BTUl9ERUJVR19NQVNL X0RJU1BfUkVHX1dSSVRFICAgICgxIDw8IDE2KSAvKiBSZXNlcnZlZCBpbiBJQ0wrCj4gKi8KPiAg I2RlZmluZSAgIEVEUF9QU1JfREVCVUdfRVhJVF9PTl9QSVhFTF9VTkRFUlJVTiAoMSA8PCAxNSkg LyogU0tMKyAqLwo+ICAKPiAtI2RlZmluZSBFRFBfUFNSMl9DVEwJCQlfTU1JTygweDZmOTAwKQo+ ICsjZGVmaW5lIF9QU1IyX0NUTF9BCQkJMHg2MDkwMAo+ICsjZGVmaW5lIF9QU1IyX0NUTF9FRFAJ CQkweDZGOTAwCj4gKyNkZWZpbmUgRURQX1BTUjJfQ1RMKHRyYW4pCQlfTU1JT19UUkFOUzIodHJh biwgX1BTUjJfQ1RMX0EpCj4gICNkZWZpbmUgICBFRFBfUFNSMl9FTkFCTEUJCSgxIDw8IDMxKQo+ ICAjZGVmaW5lICAgRURQX1NVX1RSQUNLX0VOQUJMRQkJKDEgPDwgMzApCj4gICNkZWZpbmUgICBF RFBfWV9DT09SRElOQVRFX1ZBTElECSgxIDw8IDI2KSAvKiBHTEsgYW5kIENOTCsgKi8KPiBAQCAt NDMyMCw3ICs0MzQyLDcgQEAgZW51bSB7Cj4gICNkZWZpbmUgX1BTUl9FVkVOVF9UUkFOU19DCQkJ MHg2Mjg0OAo+ICAjZGVmaW5lIF9QU1JfRVZFTlRfVFJBTlNfRAkJCTB4NjM4NDgKPiAgI2RlZmlu ZSBfUFNSX0VWRU5UX1RSQU5TX0VEUAkJCTB4NkY4NDgKPiAtI2RlZmluZSBQU1JfRVZFTlQodHJh bnMpCQkJX01NSU9fVFJBTlMyKHRyYW5zLAo+IF9QU1JfRVZFTlRfVFJBTlNfQSkKPiArI2RlZmlu ZSBQU1JfRVZFTlQodHJhbikJCQkJX01NSU9fVFJBTlMyKHRyYW4sCj4gX1BTUl9FVkVOVF9UUkFO U19BKQo+ICAjZGVmaW5lICBQU1JfRVZFTlRfUFNSMl9XRF9USU1FUl9FWFBJUkUJCSgxIDw8IDE3 KQo+ICAjZGVmaW5lICBQU1JfRVZFTlRfUFNSMl9ESVNBQkxFRAkJKDEgPDwgMTYpCj4gICNkZWZp bmUgIFBTUl9FVkVOVF9TVV9ESVJUWV9GSUZPX1VOREVSUlVOCSgxIDw8IDE1KQo+IEBAIC00MzM4 LDE1ICs0MzYwLDE2IEBAIGVudW0gewo+ICAjZGVmaW5lICBQU1JfRVZFTlRfTFBTUF9NT0RFX0VY SVQJCSgxIDw8IDEpCj4gICNkZWZpbmUgIFBTUl9FVkVOVF9QU1JfRElTQUJMRQkJCSgxIDw8IDAp Cj4gIAo+IC0jZGVmaW5lIEVEUF9QU1IyX1NUQVRVUwkJCV9NTUlPKDB4NmY5NDApCj4gKyNkZWZp bmUgX1BTUjJfU1RBVFVTX0EJCQkweDYwOTQwCj4gKyNkZWZpbmUgX1BTUjJfU1RBVFVTX0VEUAkJ MHg2Rjk0MAo+ICsjZGVmaW5lIEVEUF9QU1IyX1NUQVRVUyh0cmFuKQkJX01NSU9fVFJBTlMyKHRy YW4sCj4gX1BTUjJfU1RBVFVTX0EpCj4gICNkZWZpbmUgRURQX1BTUjJfU1RBVFVTX1NUQVRFX01B U0sgICAgICgweGYgPDwgMjgpCj4gICNkZWZpbmUgRURQX1BTUjJfU1RBVFVTX1NUQVRFX1NISUZU ICAgIDI4Cj4gIAo+IC0jZGVmaW5lIF9QU1IyX1NVX1NUQVRVU18wCQkweDZGOTE0Cj4gLSNkZWZp bmUgX1BTUjJfU1VfU1RBVFVTXzEJCTB4NkY5MTgKPiAtI2RlZmluZSBfUFNSMl9TVV9TVEFUVVNf MgkJMHg2RjkxQwo+IC0jZGVmaW5lIF9QU1IyX1NVX1NUQVRVUyhpbmRleCkJCV9NTUlPKF9QSUNL X0VWRU4oKGluZGV4KSwKPiBfUFNSMl9TVV9TVEFUVVNfMCwgX1BTUjJfU1VfU1RBVFVTXzEpKQo+ IC0jZGVmaW5lIFBTUjJfU1VfU1RBVFVTKGZyYW1lKQkJKF9QU1IyX1NVX1NUQVRVUygoZnJhbWUp IC8gMykpCj4gKyNkZWZpbmUgX1BTUjJfU1VfU1RBVFVTX0EJCTB4NjA5MTQKPiArI2RlZmluZSBf UFNSMl9TVV9TVEFUVVNfRURQCQkweDZGOTE0Cj4gKyNkZWZpbmUgX1BTUjJfU1VfU1RBVFVTKHRy YW4sIGluZGV4KQlfTU1JTyhfVFJBTlMyKHRyYW4sIF9QU1IyX1NVX1NUQVRVU19BKSArCj4gKGlu ZGV4KSAqIDQpCj4gKyNkZWZpbmUgUFNSMl9TVV9TVEFUVVModHJhbiwgZnJhbWUpCShfUFNSMl9T VV9TVEFUVVModHJhbiwgKGZyYW1lKSAvIDMpKQo+ICAjZGVmaW5lIFBTUjJfU1VfU1RBVFVTX1NI SUZUKGZyYW1lKQkoKChmcmFtZSkgJSAzKSAqIDEwKQo+ICAjZGVmaW5lIFBTUjJfU1VfU1RBVFVT X01BU0soZnJhbWUpCSgweDNmZiA8PCBQU1IyX1NVX1NUQVRVU19TSElGVChmcmFtZSkpCj4gICNk ZWZpbmUgUFNSMl9TVV9TVEFUVVNfRlJBTUVTCQk4Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3Iu Ywo+IGluZGV4IDk2MzY2M2JhMGVkZi4uZmU5ODA0MTgxOWVjIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcHNyLmMKCk5vdyB0aGF0IHdlIHRyYWNrIHRoZSB0cmFuc2NvZGVyLCBpbnRlbF9wc3Jf aXJxX2NvbnRyb2woKSBjYW4gYmUgbW9kaWZpZWQKdG8gZW5hYmxlIGRlYnVnIGludGVycnVwdHMg b25seSB0aGF0IHRyYW5zY29kZXIsIGNhbiBiZSBkb25lIGFzIGEgZm9sbG93IHVwLgoKCj4gQEAg LTM5OSw3ICszOTksNyBAQCBzdGF0aWMgdm9pZCBoc3dfcHNyX3NldHVwX2F1eChzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQo+ICAKPiAgCUJVSUxEX0JVR19PTihzaXplb2YoYXV4X21zZykgPiAy MCk7Cj4gIAlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGF1eF9tc2cpOyBpICs9IDQpCj4gLQkJSTkx NV9XUklURShFRFBfUFNSX0FVWF9EQVRBKGkgPj4gMiksCj4gKwkJSTkxNV9XUklURShFRFBfUFNS X0FVWF9EQVRBKGRldl9wcml2LT5wc3IudHJhbnNjb2RlciwgaSA+PiAyKSwKPiAgCQkJICAgaW50 ZWxfZHBfcGFja19hdXgoJmF1eF9tc2dbaV0sIHNpemVvZihhdXhfbXNnKSAtIGkpKTsKPiAgCj4g IAlhdXhfY2xvY2tfZGl2aWRlciA9IGludGVsX2RwLT5nZXRfYXV4X2Nsb2NrX2RpdmlkZXIoaW50 ZWxfZHAsIDApOwo+IEBAIC00MTAsNyArNDEwLDcgQEAgc3RhdGljIHZvaWQgaHN3X3Bzcl9zZXR1 cF9hdXgoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCj4gIAkvKiBTZWxlY3Qgb25seSB2 YWxpZCBiaXRzIGZvciBTUkRfQVVYX0NUTCAqLwo+ICAJYXV4X2N0bCAmPSBwc3JfYXV4X21hc2s7 Cj4gLQlJOTE1X1dSSVRFKEVEUF9QU1JfQVVYX0NUTCwgYXV4X2N0bCk7Cj4gKwlJOTE1X1dSSVRF KEVEUF9QU1JfQVVYX0NUTChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpLCBhdXhfY3RsKTsKPiAg fQo+ICAKPiAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX2VuYWJsZV9zaW5rKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApCj4gQEAgLTUwMCw4ICs1MDAsOSBAQCBzdGF0aWMgdm9pZCBoc3dfYWN0aXZh dGVfcHNyMShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gOCkKPiAgCQl2YWwgfD0gRURQX1BTUl9DUkNfRU5BQkxFOwo+ICAKPiAtCXZhbCB8 PSBJOTE1X1JFQUQoRURQX1BTUl9DVEwpICYgRURQX1BTUl9SRVNUT1JFX1BTUl9BQ1RJVkVfQ1RY X01BU0s7Cj4gLQlJOTE1X1dSSVRFKEVEUF9QU1JfQ1RMLCB2YWwpOwo+ICsJdmFsIHw9IChJOTE1 X1JFQUQoRURQX1BTUl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSkgJgo+ICsJCUVEUF9Q U1JfUkVTVE9SRV9QU1JfQUNUSVZFX0NUWF9NQVNLKTsKPiArCUk5MTVfV1JJVEUoRURQX1BTUl9D VEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSwgdmFsKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZv aWQgaHN3X2FjdGl2YXRlX3BzcjIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiBAQCAtNTM3 LDkgKzUzOCw5IEBAIHN0YXRpYyB2b2lkIGhzd19hY3RpdmF0ZV9wc3IyKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApCj4gIAkgKiBQU1IyIEhXIGlzIGluY29ycmVjdGx5IHVzaW5nIEVEUF9QU1Jf VFAxX1RQM19TRUwgYW5kIEJTcGVjIGlzCj4gIAkgKiByZWNvbW1lbmRpbmcga2VlcCB0aGlzIGJp dCB1bnNldCB3aGlsZSBQU1IyIGlzIGVuYWJsZWQuCj4gIAkgKi8KPiAtCUk5MTVfV1JJVEUoRURQ X1BTUl9DVEwsIDApOwo+ICsJSTkxNV9XUklURShFRFBfUFNSX0NUTChkZXZfcHJpdi0+cHNyLnRy YW5zY29kZXIpLCAwKTsKPiAgCj4gLQlJOTE1X1dSSVRFKEVEUF9QU1IyX0NUTCwgdmFsKTsKPiAr CUk5MTVfV1JJVEUoRURQX1BTUjJfQ1RMKGRldl9wcml2LT5wc3IudHJhbnNjb2RlciksIHZhbCk7 Cj4gIH0KPiAgCj4gIHN0YXRpYyBib29sIGludGVsX3BzcjJfY29uZmlnX3ZhbGlkKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAsCj4gQEAgLTY1OCw4ICs2NTksOCBAQCBzdGF0aWMgdm9pZCBpbnRl bF9wc3JfYWN0aXZhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ICAKPiAgCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCj4gLQkJV0FSTl9PTihJOTE1X1JFQUQoRURQX1BT UjJfQ1RMKSAmIEVEUF9QU1IyX0VOQUJMRSk7Cj4gLQlXQVJOX09OKEk5MTVfUkVBRChFRFBfUFNS X0NUTCkgJiBFRFBfUFNSX0VOQUJMRSk7Cj4gKwkJV0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUjJf Q1RMKGRldl9wcml2LT5wc3IudHJhbnNjb2RlcikpICYKPiBFRFBfUFNSMl9FTkFCTEUpOwo+ICsJ V0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSkg Jgo+IEVEUF9QU1JfRU5BQkxFKTsKPiAgCVdBUk5fT04oZGV2X3ByaXYtPnBzci5hY3RpdmUpOwo+ ICAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBzci5sb2NrKTsKPiAgCiAgICAgICAg LyogICAKICAgICAgICAgKiBIU1cgc3BlYyBleHBsaWNpdGx5IHNheXMgUFNSIGlzIHRpZWQgdG8g cG9ydCBBLgogICAgICAgICAqIEJEVysgcGxhdGZvcm1zIHdpdGggRERJIGltcGxlbWVudGF0aW9u IG9mIFBTUiBoYXZlIGRpZmZlcmVudAogICAgICAgICAqIFBTUiByZWdpc3RlcnMgcGVyIHRyYW5z Y29kZXIgYW5kIHdlIG9ubHkgaW1wbGVtZW50IHRyYW5zY29kZXIgRURQCiAgICAgICAgICogb25l cy4gU2luY2UgYnkgRGlzcGxheSBkZXNpZ24gdHJhbnNjb2RlciBFRFAgaXMgdGllZCB0byBwb3J0 IEEKICAgICAgICAgKiB3ZSBjYW4gc2FmZWx5IGVzY2FwZSBiYXNlZCBvbiB0aGUgcG9ydCBBLgog ICAgICAgICAqLwogICAgICAgIGlmIChkaWdfcG9ydC0+YmFzZS5wb3J0ICE9IFBPUlRfQSkgewog ICAgICAgICAgICAgICAgRFJNX0RFQlVHX0tNUygiUFNSIGNvbmRpdGlvbiBmYWlsZWQ6IFBvcnQg bm90IHN1cHBvcnRlZFxuIik7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgfSAgICAK Ck5vdyB0aGF0IHdlIGFsbG93IFBTUiBvbiB0cmFuc2NvZGVycyB0aGF0IHN1cHBvcnQgaXQsIHdl IGNhbiBjaGFuZ2UgdGhpcyB0bwoJaWYgKElTX0hBU1dFTEwoKSAmJiBjcHVfdHJhbnNjb2RlciAh PSBUUkFOU0NPREVSX0VEUCkKCQlyZXR1cm47CgpUaGlzIGNhbiBiZSBhIGZvbGxvdyB1cCB3b3Jr LgkJCgo+IEBAIC03MjksNyArNzMwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX2VuYWJsZV9z b3VyY2Uoc3RydWN0IGludGVsX2RwCj4gKmludGVsX2RwLAo+ICAJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPCAxMSkKPiAgCQltYXNrIHw9IEVEUF9QU1JfREVCVUdfTUFTS19ESVNQX1JFR19XUklU RTsKPiAgCj4gLQlJOTE1X1dSSVRFKEVEUF9QU1JfREVCVUcsIG1hc2spOwo+ICsJSTkxNV9XUklU RShFRFBfUFNSX0RFQlVHKGRldl9wcml2LT5wc3IudHJhbnNjb2RlciksIG1hc2spOwo+ICB9Cj4g IAo+ICBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfZW5hYmxlX2xvY2tlZChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gQEAgLTc0Miw2ICs3NDMsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9wc3JfZW5hYmxlX2xvY2tlZChzdHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiAgCWRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkID0gaW50ZWxfcHNyMl9lbmFibGVkKGRldl9w cml2LCBjcnRjX3N0YXRlKTsKPiAgCWRldl9wcml2LT5wc3IuYnVzeV9mcm9udGJ1ZmZlcl9iaXRz ID0gMDsKPiAgCWRldl9wcml2LT5wc3IucGlwZSA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKS0+cGlwZTsKPiArCWRldl9wcml2LT5wc3IudHJhbnNjb2RlciA9IGNydGNfc3Rh dGUtPmNwdV90cmFuc2NvZGVyOwo+ICAKPiAgCURSTV9ERUJVR19LTVMoIkVuYWJsaW5nIFBTUiVz XG4iLAo+ICAJCSAgICAgIGRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkID8gIjIiIDogIjEiKTsK PiBAQCAtNzkxLDIwICs3OTMsMjcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX2V4aXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYpCj4gIAl1MzIgdmFsOwo+ICAKPiAgCWlmICgh ZGV2X3ByaXYtPnBzci5hY3RpdmUpIHsKPiAtCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5 KQo+IC0JCQlXQVJOX09OKEk5MTVfUkVBRChFRFBfUFNSMl9DVEwpICYgRURQX1BTUjJfRU5BQkxF KTsKPiAtCQlXQVJOX09OKEk5MTVfUkVBRChFRFBfUFNSX0NUTCkgJiBFRFBfUFNSX0VOQUJMRSk7 Cj4gKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewo+ICsJCQl2YWwgPSBJOTE1X1JF QUQoRURQX1BTUjJfQ1RMKGRldl9wcml2LT5wc3IudHJhbnNjb2RlcikpOwo+ICsJCQlXQVJOX09O KHZhbCAmIEVEUF9QU1IyX0VOQUJMRSk7Cj4gKwkJfQo+ICsKPiArCQl2YWwgPSBJOTE1X1JFQUQo RURQX1BTUl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSk7Cj4gKwkJV0FSTl9PTih2YWwg JiBFRFBfUFNSX0VOQUJMRSk7Cj4gKwo+ICAJCXJldHVybjsKPiAgCX0KPiAgCj4gIAlpZiAoZGV2 X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQpIHsKPiAtCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUjJf Q1RMKTsKPiArCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUjJfQ1RMKGRldl9wcml2LT5wc3IudHJh bnNjb2RlcikpOwo+ICAJCVdBUk5fT04oISh2YWwgJiBFRFBfUFNSMl9FTkFCTEUpKTsKPiAtCQlJ OTE1X1dSSVRFKEVEUF9QU1IyX0NUTCwgdmFsICYgfkVEUF9QU1IyX0VOQUJMRSk7Cj4gKwkJdmFs ICY9IH5FRFBfUFNSMl9FTkFCTEU7Cj4gKwkJSTkxNV9XUklURShFRFBfUFNSMl9DVEwoZGV2X3By aXYtPnBzci50cmFuc2NvZGVyKSwgdmFsKTsKPiAgCX0gZWxzZSB7Cj4gLQkJdmFsID0gSTkxNV9S RUFEKEVEUF9QU1JfQ1RMKTsKPiArCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUl9DVEwoZGV2X3By aXYtPnBzci50cmFuc2NvZGVyKSk7Cj4gIAkJV0FSTl9PTighKHZhbCAmIEVEUF9QU1JfRU5BQkxF KSk7Cj4gLQkJSTkxNV9XUklURShFRFBfUFNSX0NUTCwgdmFsICYgfkVEUF9QU1JfRU5BQkxFKTsK PiArCQl2YWwgJj0gfkVEUF9QU1JfRU5BQkxFOwo+ICsJCUk5MTVfV1JJVEUoRURQX1BTUl9DVEwo ZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSwgdmFsKTsKPiAgCX0KPiAgCWRldl9wcml2LT5wc3Iu YWN0aXZlID0gZmFsc2U7Cj4gIH0KPiBAQCAtODI2LDEwICs4MzUsMTAgQEAgc3RhdGljIHZvaWQg aW50ZWxfcHNyX2Rpc2FibGVfbG9ja2VkKHN0cnVjdCBpbnRlbF9kcAo+ICppbnRlbF9kcCkKPiAg CWludGVsX3Bzcl9leGl0KGRldl9wcml2KTsKPiAgCj4gIAlpZiAoZGV2X3ByaXYtPnBzci5wc3Iy X2VuYWJsZWQpIHsKPiAtCQlwc3Jfc3RhdHVzID0gRURQX1BTUjJfU1RBVFVTOwo+ICsJCXBzcl9z dGF0dXMgPSBFRFBfUFNSMl9TVEFUVVMoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKTsKPiAgCQlw c3Jfc3RhdHVzX21hc2sgPSBFRFBfUFNSMl9TVEFUVVNfU1RBVEVfTUFTSzsKPiAgCX0gZWxzZSB7 Cj4gLQkJcHNyX3N0YXR1cyA9IEVEUF9QU1JfU1RBVFVTOwo+ICsJCXBzcl9zdGF0dXMgPSBFRFBf UFNSX1NUQVRVUyhkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpOwo+ICAJCXBzcl9zdGF0dXNfbWFz ayA9IEVEUF9QU1JfU1RBVFVTX1NUQVRFX01BU0s7Cj4gIAl9Cj4gIAo+IEBAIC05NTYsNyArOTY1 LDggQEAgaW50IGludGVsX3Bzcl93YWl0X2Zvcl9pZGxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlCj4gKm5ld19jcnRjX3N0YXRlLAo+ICAJICogZGVmZW5zaXZlIGVub3VnaCB0byBjb3Zl ciBldmVyeXRoaW5nLgo+ICAJICovCj4gIAo+IC0JcmV0dXJuIF9faW50ZWxfd2FpdF9mb3JfcmVn aXN0ZXIoJmRldl9wcml2LT51bmNvcmUsIEVEUF9QU1JfU1RBVFVTLAo+ICsJcmV0dXJuIF9faW50 ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2LT51bmNvcmUsCj4gKwkJCQkJIEVEUF9QU1Jf U1RBVFVTKGRldl9wcml2LQo+ID5wc3IudHJhbnNjb2RlciksCj4gIAkJCQkJIEVEUF9QU1JfU1RB VFVTX1NUQVRFX01BU0ssCj4gIAkJCQkJIEVEUF9QU1JfU1RBVFVTX1NUQVRFX0lETEUsIDIsIDUw LAo+ICAJCQkJCSBvdXRfdmFsdWUpOwo+IEBAIC05NzIsMTAgKzk4MiwxMCBAQCBzdGF0aWMgYm9v bCBfX3Bzcl93YWl0X2Zvcl9pZGxlX2xvY2tlZChzdHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+ICAJaWYgKGRldl9wcml2LT5wc3IucHNy Ml9lbmFibGVkKSB7Cj4gLQkJcmVnID0gRURQX1BTUjJfU1RBVFVTOwo+ICsJCXJlZyA9IEVEUF9Q U1IyX1NUQVRVUyhkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpOwo+ICAJCW1hc2sgPSBFRFBfUFNS Ml9TVEFUVVNfU1RBVEVfTUFTSzsKPiAgCX0gZWxzZSB7Cj4gLQkJcmVnID0gRURQX1BTUl9TVEFU VVM7Cj4gKwkJcmVnID0gRURQX1BTUl9TVEFUVVMoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKTsK PiAgCQltYXNrID0gRURQX1BTUl9TVEFUVVNfU1RBVEVfTUFTSzsKPiAgCX0KPiAgCj4gQEAgLTEy MDYsOSArMTIxNiw2IEBAIHZvaWQgaW50ZWxfcHNyX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ICAJaWYgKCFIQVNfUFNSKGRldl9wcml2KSkKPiAgCQlyZXR1cm47Cj4g IAo+IC0JZGV2X3ByaXYtPnBzcl9tbWlvX2Jhc2UgPSBJU19IQVNXRUxMKGRldl9wcml2KSA/Cj4g LQkJSFNXX0VEUF9QU1JfQkFTRSA6IEJEV19FRFBfUFNSX0JBU0U7Cj4gLQo+ICAJaWYgKCFkZXZf cHJpdi0+cHNyLnNpbmtfc3VwcG9ydCkKPiAgCQlyZXR1cm47CgpSaWdodCBiZWxvdyB0aGlzLCB3 ZSBoYXZlIAogICAgICAgIHZhbCA9IEk5MTVfUkVBRChFRFBfUFNSX0lJUik7CiAgICAgICAgdmFs ICY9IEVEUF9QU1JfRVJST1IoZWRwX3Bzcl9zaGlmdChUUkFOU0NPREVSX0VEUCkpOwogICAgICAg IGlmICh2YWwpIHsKICAgICAgICAgICAgICAgIERSTV9ERUJVR19LTVMoIlBTUiBpbnRlcnJ1cHRp b24gZXJyb3Igc2V0XG4iKTsKICAgICAgICAgICAgICAgIGRldl9wcml2LT5wc3Iuc2lua19ub3Rf cmVsaWFibGUgPSB0cnVlOwogICAgICAgIH0gICAgCgpUaGUgd29ya2Fyb3VuZCBjaGVja3Mgb25s eSBlRFAgdHJhbnNjb2RlcnMsIGZpeCBpdCB0byBjaGVjayBhbGwgdHJhbnNjb2RlcnM/IFdlCmFy ZSBzdGlsbCBnb2luZyB0byBiZSBhc3N1bWUgb25seSBvbmUgZURQIHNpbmsgaXMgY29ubmVjdGVk LCBidXQgaXQgY2FuIGJlCmRyaXZlbiBieSBhbnkgdHJhbnNjb2Rlci4gCgoKPiAgCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=