From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 1/3] drm/i915/guc: keep GuC doorbell & process descriptor mapped in kernel Date: Tue, 19 Apr 2016 16:20:13 +0100 Message-ID: <57164CAD.3060600@linux.intel.com> References: <1461078516-28678-1-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 47AA36E7D3 for ; Tue, 19 Apr 2016 15:20:17 +0000 (UTC) In-Reply-To: <1461078516-28678-1-git-send-email-david.s.gordon@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dave Gordon , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE5LzA0LzE2IDE2OjA4LCBEYXZlIEdvcmRvbiB3cm90ZToKPiBEb24ndCB1c2Uga21hcF9h dG9taWMoKSBmb3IgZG9vcmJlbGwgJiBwcm9jZXNzIGRlc2NyaXB0b3IgYWNjZXNzLgo+IFRoaXMg cGF0Y2ggZml4ZXMgdGhlIEJVRyBzaG93biBiZWxvdywgd2hlcmUgdGhlIHRocmVhZCBjb3VsZCBz bGVlcAo+IHdoaWxlIGhvbGRpbmcgYSBrbWFwX2F0b21pYyBtYXBwaW5nLiBJbiBvcmRlciBub3Qg dG8gbmVlZCB0byBjYWxsCj4ga21hcF9hdG9taWMoKSBpbiB0aGlzIGNvZGUgcGF0aCwgd2Ugbm93 IHNldCB1cCBhIHBlcm1hbmVudCBrZXJuZWwKPiBtYXBwaW5nIG9mIHRoZSBzaGFyZWQgZG9vcmJl bGwgYW5kIHByb2Nlc3MtZGVzY3JpcHRvciBwYWdlLCBhbmQKPiB1c2UgdGhhdCBpbiBhbGwgZG9v cmJlbGwgYW5kIHByb2Nlc3MtZGVzY3JpcHRvciByZWxhdGVkIGNvZGUuCj4KPiAgICBCVUc6IHNj aGVkdWxpbmcgd2hpbGUgYXRvbWljOiBnZW1fY2xvc2VfcmFjZS8xOTQxLzB4MDAwMDAwMDIKPiAg ICBNb2R1bGVzIGxpbmtlZCBpbjogaGlkX2dlbmVyaWMgdXNiaGlkIGk5MTUgYXNpeCB1c2JuZXQg bGlicGh5IG1paQo+ICAgICAgaTJjX2FsZ29fYml0IGRybV9rbXNfaGVscGVyIGNmYmZpbGxyZWN0 IHN5c2NvcHlhcmVhIGNmYmltZ2JsdAo+ICAgICAgc3lzZmlsbHJlY3Qgc3lzaW1nYmx0IGZiX3N5 c19mb3BzIGNmYmNvcHlhcmVhIGRybSBjb3JldGVtcCBpMmNfaGlkCj4gICAgICBoaWQgdmlkZW8g cGluY3RybF9zdW5yaXNlcG9pbnQgcGluY3RybF9pbnRlbCBhY3BpX3BhZCBubHNfaXNvODg1OV8x Cj4gICAgICBlMTAwMGUgcHRwIHBzbW91c2UgcHBzX2NvcmUgYWhjaSBsaWJhaGNpCj4gICAgQ1BV OiAwIFBJRDogMTk0MSBDb21tOiBnZW1fY2xvc2VfcmFjZSBUYWludGVkOiBHICAgICBVIDQuNC4w LTE2MDEyMSsgIzEyMwo+ICAgIEhhcmR3YXJlIG5hbWU6IEludGVsIENvcnBvcmF0aW9uIFNreWxh a2UgQ2xpZW50IHBsYXRmb3JtL1NreWxha2UgQUlPCj4gICAgICBERFIzTCBSVlAxMCwgQklPUyBT S0xTRTJSMS5SMDAuWDEwMC5CMDEuMTUwOTIyMDU1MSAwOS8yMi8yMDE1Cj4gICAgICAwMDAwMDAw MDAwMDEzZTQwIGZmZmY4ODAxNjZjMjdhNzggZmZmZmZmZmY4MTI4MGQwMiBmZmZmODgwMTcyYzEz ZTQwCj4gICAgICBmZmZmODgwMTY2YzI3YTg4IGZmZmZmZmZmODEwYzIwM2EgZmZmZjg4MDE2NmMy N2FjOCBmZmZmZmZmZjgxNGVjODA4Cj4gICAgICBmZmZmODgwMTZiN2M2MDAwIGZmZmY4ODAxNjZj MjgwMDAgMDAwMDAwMDAwMDBmNDI0MCAwMDAwMDAwMDAwMDAwMDAxCj4gICAgQ2FsbCBUcmFjZToK PiAgICAgIFs8ZmZmZmZmZmY4MTI4MGQwMj5dIGR1bXBfc3RhY2srMHg0Yi8weDc5Cj4gICAgICBb PGZmZmZmZmZmODEwYzIwM2E+XSBfX3NjaGVkdWxlX2J1ZysweDQxLzB4NGYKPiAgICAgIFs8ZmZm ZmZmZmY4MTRlYzgwOD5dIF9fc2NoZWR1bGUrMHg1YTgvMHg2OTAKPiAgICAgIFs8ZmZmZmZmZmY4 MTRlYzkyNz5dIHNjaGVkdWxlKzB4MzcvMHg4MAo+ICAgICAgWzxmZmZmZmZmZjgxNGVmM2ZkPl0g c2NoZWR1bGVfaHJ0aW1lb3V0X3JhbmdlX2Nsb2NrKzB4YWQvMHgxMzAKPiAgICAgIFs8ZmZmZmZm ZmY4MTA5MGJlMD5dID8gaHJ0aW1lcl9pbml0KzB4MTAvMHgxMAo+ICAgICAgWzxmZmZmZmZmZjgx NGVmM2YxPl0gPyAgc2NoZWR1bGVfaHJ0aW1lb3V0X3JhbmdlX2Nsb2NrKzB4YTEvMHgxMzAKPiAg ICAgIFs8ZmZmZmZmZmY4MTRlZjQ4ZT5dIHNjaGVkdWxlX2hydGltZW91dF9yYW5nZSsweGUvMHgx MAo+ICAgICAgWzxmZmZmZmZmZjgxNGVlZjliPl0gdXNsZWVwX3JhbmdlKzB4M2IvMHg0MAo+ICAg ICAgWzxmZmZmZmZmZmEwMWVjMTA5Pl0gaTkxNV9ndWNfd3FfY2hlY2tfc3BhY2UrMHgxMTkvMHgy MTAgW2k5MTVdCj4gICAgICBbPGZmZmZmZmZmYTAxZGE0N2M+XSBpbnRlbF9sb2dpY2FsX3Jpbmdf YWxsb2NfcmVxdWVzdF9leHRyYXMrMHg1Yy8weDcwIFtpOTE1XQo+ICAgICAgWzxmZmZmZmZmZmEw MWNkYmYxPl0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYysweDkxLzB4MTcwIFtpOTE1XQo+ICAgICAg WzxmZmZmZmZmZmEwMWMxYzA3Pl0gaTkxNV9nZW1fZG9fZXhlY2J1ZmZlci5pc3JhLjI1KzB4YmM3 LzB4MTJhMCBbaTkxNV0KPiAgICAgIFs8ZmZmZmZmZmZhMDFjYjc4NT5dID8gIGk5MTVfZ2VtX29i amVjdF9nZXRfcGFnZXNfZ3R0KzB4MjI1LzB4M2MwIFtpOTE1XQo+ICAgICAgWzxmZmZmZmZmZmEw MWQxZmI2Pl0gPyBpOTE1X2dlbV9wd3JpdGVfaW9jdGwrMHhkNi8weDlmMCBbaTkxNV0KPiAgICAg IFs8ZmZmZmZmZmZhMDFjMmU2OD5dIGk5MTVfZ2VtX2V4ZWNidWZmZXIyKzB4YTgvMHgyNTAgW2k5 MTVdCj4gICAgICBbPGZmZmZmZmZmYTAwZjY1ZDg+XSBkcm1faW9jdGwrMHgyNTgvMHg0ZjAgW2Ry bV0KPiAgICAgIFs8ZmZmZmZmZmZhMDFjMmRjMD5dID8gaTkxNV9nZW1fZXhlY2J1ZmZlcisweDM0 MC8weDM0MCBbaTkxNV0KPiAgICAgIFs8ZmZmZmZmZmY4MTExNTkwZD5dIGRvX3Zmc19pb2N0bCsw eDJjZC8weDRhMAo+ICAgICAgWzxmZmZmZmZmZjgxMTFlYWMyPl0gPyBfX2ZnZXQrMHg3Mi8weGIw Cj4gICAgICBbPGZmZmZmZmZmODExMTViMWM+XSBTeVNfaW9jdGwrMHgzYy8weDcwCj4gICAgICBb PGZmZmZmZmZmODE0ZWZmZDc+XSBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MTIvMHg2YQo+ ICAgIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQo+Cj4gdjQ6Cj4gICAgT25s eSB0ZWFyIGRvd24gZG9vcmJlbGwgJiBrdW5tYXAoKSBjbGllbnQgb2JqZWN0IGlmIHdlIGFjdHVh bGx5Cj4gICAgc3VjY2VlZGVkIGluIGFsbG9jYXRpbmcgYSBjbGllbnQgb2JqZWN0IChUdnJ0a28g VXJzdWxpbikKPgo+IEJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3df YnVnLmNnaT9pZD05Mzg0Nwo+IE9yaWdpbmFsLXZlcnNpb24tYnk6IEFsZXggRGFpIDx5dS5kYWlA aW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IERhdmUgR29yZG9uIDxkYXZpZC5zLmdvcmRvbkBp bnRlbC5jb20+Cj4gQ2M6IFR2dHJrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+ Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgfCA2 NiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2d1Yy5oICAgICAgICAgICB8ICAyICsKPiAgIDIgZmlsZXMgY2hhbmdlZCwgMzAgaW5z ZXJ0aW9ucygrKSwgMzggZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ndWNfc3VibWlzc2lvbi5jCj4gaW5kZXggZGE4NmJkYi4uZDI1MTY5OSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPiBAQCAtMTc5LDE1ICsxNzks MTEgQEAgc3RhdGljIHZvaWQgZ3VjX2luaXRfZG9vcmJlbGwoc3RydWN0IGludGVsX2d1YyAqZ3Vj LAo+ICAgCQkJICAgICAgc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqY2xpZW50KQo+ICAgewo+ICAg CXN0cnVjdCBndWNfZG9vcmJlbGxfaW5mbyAqZG9vcmJlbGw7Cj4gLQl2b2lkICpiYXNlOwo+Cj4g LQliYXNlID0ga21hcF9hdG9taWMoaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlKGNsaWVudC0+Y2xp ZW50X29iaiwgMCkpOwo+IC0JZG9vcmJlbGwgPSBiYXNlICsgY2xpZW50LT5kb29yYmVsbF9vZmZz ZXQ7Cj4gKwlkb29yYmVsbCA9IGNsaWVudC0+Y2xpZW50X2Jhc2UgKyBjbGllbnQtPmRvb3JiZWxs X29mZnNldDsKPgo+IC0JZG9vcmJlbGwtPmRiX3N0YXR1cyA9IDE7Cj4gKwlkb29yYmVsbC0+ZGJf c3RhdHVzID0gR1VDX0RPT1JCRUxMX0VOQUJMRUQ7Cj4gICAJZG9vcmJlbGwtPmNvb2tpZSA9IDA7 Cj4gLQo+IC0Ja3VubWFwX2F0b21pYyhiYXNlKTsKPiAgIH0KPgo+ICAgc3RhdGljIGludCBndWNf cmluZ19kb29yYmVsbChzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpnYykKPiBAQCAtMTk1LDExICsx OTEsOSBAQCBzdGF0aWMgaW50IGd1Y19yaW5nX2Rvb3JiZWxsKHN0cnVjdCBpOTE1X2d1Y19jbGll bnQgKmdjKQo+ICAgCXN0cnVjdCBndWNfcHJvY2Vzc19kZXNjICpkZXNjOwo+ICAgCXVuaW9uIGd1 Y19kb29yYmVsbF9xdyBkYl9jbXAsIGRiX2V4YywgZGJfcmV0Owo+ICAgCXVuaW9uIGd1Y19kb29y YmVsbF9xdyAqZGI7Cj4gLQl2b2lkICpiYXNlOwo+ICAgCWludCBhdHRlbXB0ID0gMiwgcmV0ID0g LUVBR0FJTjsKPgo+IC0JYmFzZSA9IGttYXBfYXRvbWljKGk5MTVfZ2VtX29iamVjdF9nZXRfcGFn ZShnYy0+Y2xpZW50X29iaiwgMCkpOwo+IC0JZGVzYyA9IGJhc2UgKyBnYy0+cHJvY19kZXNjX29m ZnNldDsKPiArCWRlc2MgPSBnYy0+Y2xpZW50X2Jhc2UgKyBnYy0+cHJvY19kZXNjX29mZnNldDsK Pgo+ICAgCS8qIFVwZGF0ZSB0aGUgdGFpbCBzbyBpdCBpcyB2aXNpYmxlIHRvIEd1QyAqLwo+ICAg CWRlc2MtPnRhaWwgPSBnYy0+d3FfdGFpbDsKPiBAQCAtMjE1LDcgKzIwOSw3IEBAIHN0YXRpYyBp bnQgZ3VjX3JpbmdfZG9vcmJlbGwoc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ2MpCj4gICAJCWRi X2V4Yy5jb29raWUgPSAxOwo+Cj4gICAJLyogcG9pbnRlciBvZiBjdXJyZW50IGRvb3JiZWxsIGNh Y2hlbGluZSAqLwo+IC0JZGIgPSBiYXNlICsgZ2MtPmRvb3JiZWxsX29mZnNldDsKPiArCWRiID0g Z2MtPmNsaWVudF9iYXNlICsgZ2MtPmRvb3JiZWxsX29mZnNldDsKPgo+ICAgCXdoaWxlIChhdHRl bXB0LS0pIHsKPiAgIAkJLyogbGV0cyByaW5nIHRoZSBkb29yYmVsbCAqLwo+IEBAIC0yNDcsNyAr MjQxLDYgQEAgc3RhdGljIGludCBndWNfcmluZ19kb29yYmVsbChzdHJ1Y3QgaTkxNV9ndWNfY2xp ZW50ICpnYykKPiAgIAkvKiBGaW5hbGx5LCB1cGRhdGUgdGhlIGNhY2hlZCBjb3B5IG9mIHRoZSBH dUMncyBXUSBoZWFkICovCj4gICAJZ2MtPndxX2hlYWQgPSBkZXNjLT5oZWFkOwo+Cj4gLQlrdW5t YXBfYXRvbWljKGJhc2UpOwo+ICAgCXJldHVybiByZXQ7Cj4gICB9Cj4KPiBAQCAtMjU2LDE2ICsy NDksMTIgQEAgc3RhdGljIHZvaWQgZ3VjX2Rpc2FibGVfZG9vcmJlbGwoc3RydWN0IGludGVsX2d1 YyAqZ3VjLAo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1 Y190b19pOTE1KGd1Yyk7Cj4gICAJc3RydWN0IGd1Y19kb29yYmVsbF9pbmZvICpkb29yYmVsbDsK PiAtCXZvaWQgKmJhc2U7Cj4gICAJaTkxNV9yZWdfdCBkcmJyZWcgPSBHRU44X0RSQlJFR0woY2xp ZW50LT5kb29yYmVsbF9pZCk7Cj4gICAJaW50IHZhbHVlOwo+Cj4gLQliYXNlID0ga21hcF9hdG9t aWMoaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlKGNsaWVudC0+Y2xpZW50X29iaiwgMCkpOwo+IC0J ZG9vcmJlbGwgPSBiYXNlICsgY2xpZW50LT5kb29yYmVsbF9vZmZzZXQ7Cj4gKwlkb29yYmVsbCA9 IGNsaWVudC0+Y2xpZW50X2Jhc2UgKyBjbGllbnQtPmRvb3JiZWxsX29mZnNldDsKPgo+IC0JZG9v cmJlbGwtPmRiX3N0YXR1cyA9IDA7Cj4gLQo+IC0Ja3VubWFwX2F0b21pYyhiYXNlKTsKPiArCWRv b3JiZWxsLT5kYl9zdGF0dXMgPSBHVUNfRE9PUkJFTExfRElTQUJMRUQ7Cj4KPiAgIAlJOTE1X1dS SVRFKGRyYnJlZywgSTkxNV9SRUFEKGRyYnJlZykgJiB+R0VOOF9EUkJfVkFMSUQpOwo+Cj4gQEAg LTM0MSwxMCArMzMwLDggQEAgc3RhdGljIHZvaWQgZ3VjX2luaXRfcHJvY19kZXNjKHN0cnVjdCBp bnRlbF9ndWMgKmd1YywKPiAgIAkJCSAgICAgICBzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50ICpjbGll bnQpCj4gICB7Cj4gICAJc3RydWN0IGd1Y19wcm9jZXNzX2Rlc2MgKmRlc2M7Cj4gLQl2b2lkICpi YXNlOwo+Cj4gLQliYXNlID0ga21hcF9hdG9taWMoaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlKGNs aWVudC0+Y2xpZW50X29iaiwgMCkpOwo+IC0JZGVzYyA9IGJhc2UgKyBjbGllbnQtPnByb2NfZGVz Y19vZmZzZXQ7Cj4gKwlkZXNjID0gY2xpZW50LT5jbGllbnRfYmFzZSArIGNsaWVudC0+cHJvY19k ZXNjX29mZnNldDsKPgo+ICAgCW1lbXNldChkZXNjLCAwLCBzaXplb2YoKmRlc2MpKTsKPgo+IEBA IC0zNjEsOCArMzQ4LDYgQEAgc3RhdGljIHZvaWQgZ3VjX2luaXRfcHJvY19kZXNjKHN0cnVjdCBp bnRlbF9ndWMgKmd1YywKPiAgIAlkZXNjLT53cV9zaXplX2J5dGVzID0gY2xpZW50LT53cV9zaXpl Owo+ICAgCWRlc2MtPndxX3N0YXR1cyA9IFdRX1NUQVRVU19BQ1RJVkU7Cj4gICAJZGVzYy0+cHJp b3JpdHkgPSBjbGllbnQtPnByaW9yaXR5Owo+IC0KPiAtCWt1bm1hcF9hdG9taWMoYmFzZSk7Cj4g ICB9Cj4KPiAgIC8qCj4gQEAgLTQ3NCw3ICs0NTksNiBAQCBzdGF0aWMgdm9pZCBndWNfZmluaV9j dHhfZGVzYyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCj4gICBpbnQgaTkxNV9ndWNfd3FfY2hlY2tf c3BhY2Uoc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ2MpCj4gICB7Cj4gICAJc3RydWN0IGd1Y19w cm9jZXNzX2Rlc2MgKmRlc2M7Cj4gLQl2b2lkICpiYXNlOwo+ICAgCXUzMiBzaXplID0gc2l6ZW9m KHN0cnVjdCBndWNfd3FfaXRlbSk7Cj4gICAJaW50IHJldCA9IC1FVElNRURPVVQsIHRpbWVvdXRf Y291bnRlciA9IDIwMDsKPgo+IEBAIC00ODYsOCArNDcwLDcgQEAgaW50IGk5MTVfZ3VjX3dxX2No ZWNrX3NwYWNlKHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmdjKQo+ICAgCWlmIChDSVJDX1NQQUNF KGdjLT53cV90YWlsLCBnYy0+d3FfaGVhZCwgZ2MtPndxX3NpemUpID49IHNpemUpCj4gICAJCXJl dHVybiAwOwo+Cj4gLQliYXNlID0ga21hcF9hdG9taWMoaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdl KGdjLT5jbGllbnRfb2JqLCAwKSk7Cj4gLQlkZXNjID0gYmFzZSArIGdjLT5wcm9jX2Rlc2Nfb2Zm c2V0Owo+ICsJZGVzYyA9IGdjLT5jbGllbnRfYmFzZSArIGdjLT5wcm9jX2Rlc2Nfb2Zmc2V0Owo+ Cj4gICAJd2hpbGUgKHRpbWVvdXRfY291bnRlci0tID4gMCkgewo+ICAgCQlnYy0+d3FfaGVhZCA9 IGRlc2MtPmhlYWQ7Cj4gQEAgLTUwMSw4ICs0ODQsNiBAQCBpbnQgaTkxNV9ndWNfd3FfY2hlY2tf c3BhY2Uoc3RydWN0IGk5MTVfZ3VjX2NsaWVudCAqZ2MpCj4gICAJCQl1c2xlZXBfcmFuZ2UoMTAw MCwgMjAwMCk7Cj4gICAJfTsKPgo+IC0Ja3VubWFwX2F0b21pYyhiYXNlKTsKPiAtCj4gICAJcmV0 dXJuIHJldDsKPiAgIH0KPgo+IEBAIC02NjEsMjEgKzY0MiwyOCBAQCBzdGF0aWMgdm9pZCBndWNf Y2xpZW50X2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAlpZiAoIWNsaWVudCkKPiAg IAkJcmV0dXJuOwo+Cj4gLQlpZiAoY2xpZW50LT5kb29yYmVsbF9pZCAhPSBHVUNfSU5WQUxJRF9E T09SQkVMTF9JRCkgewo+IC0JCS8qCj4gLQkJICogRmlyc3QgZGlzYWJsZSB0aGUgZG9vcmJlbGws IHRoZW4gdGVsbCB0aGUgR3VDIHdlJ3ZlCj4gLQkJICogZmluaXNoZWQgd2l0aCBpdCwgZmluYWxs eSBkZWFsbG9jYXRlIGl0IGluIG91ciBiaXRtYXAKPiAtCQkgKi8KPiAtCQlndWNfZGlzYWJsZV9k b29yYmVsbChndWMsIGNsaWVudCk7Cj4gLQkJaG9zdDJndWNfcmVsZWFzZV9kb29yYmVsbChndWMs IGNsaWVudCk7Cj4gLQkJcmVsZWFzZV9kb29yYmVsbChndWMsIGNsaWVudC0+ZG9vcmJlbGxfaWQp Owo+IC0JfQo+IC0KPiAgIAkvKgo+ICAgCSAqIFhYWDogd2FpdCBmb3IgYW55IG91dHN0YW5kaW5n IHN1Ym1pc3Npb25zIGJlZm9yZSBmcmVlaW5nIG1lbW9yeS4KPiAgIAkgKiBCZSBzdXJlIHRvIGRy b3AgYW55IGxvY2tzCj4gICAJICovCj4KPiArCWlmIChjbGllbnQtPmNsaWVudF9iYXNlKSB7Cj4g KwkJLyoKPiArCQkgKiBJZiB3ZSBnb3QgYXMgZmFyIGFzIHNldHRpbmcgdXAgYSBkb29yYmVsbCwg bWFrZSBzdXJlCj4gKwkJICogd2Ugc2h1dCBpdCBkb3duIGJlZm9yZSB1bm1hcHBpbmcgJiBkZWFs bG9jYXRpbmcgdGhlCj4gKwkJICogbWVtb3J5LiBTbyBmaXJzdCBkaXNhYmxlIHRoZSBkb29yYmVs bCwgdGhlbiB0ZWxsIHRoZQo+ICsJCSAqIEd1QyB0aGF0IHdlJ3ZlIGZpbmlzaGVkIHdpdGggaXQs IGZpbmFsbHkgZGVhbGxvY2F0ZQo+ICsJCSAqIGl0IGluIG91ciBiaXRtYXAKPiArCQkgKi8KPiAr CQlpZiAoY2xpZW50LT5kb29yYmVsbF9pZCAhPSBHVUNfSU5WQUxJRF9ET09SQkVMTF9JRCkgewo+ ICsJCQlndWNfZGlzYWJsZV9kb29yYmVsbChndWMsIGNsaWVudCk7Cj4gKwkJCWhvc3QyZ3VjX3Jl bGVhc2VfZG9vcmJlbGwoZ3VjLCBjbGllbnQpOwo+ICsJCQlyZWxlYXNlX2Rvb3JiZWxsKGd1Yywg Y2xpZW50LT5kb29yYmVsbF9pZCk7Cj4gKwkJfQo+ICsKPiArCQlrdW5tYXAoa21hcF90b19wYWdl KGNsaWVudC0+Y2xpZW50X2Jhc2UpKTsKPiArCX0KPiArCj4gICAJZ2VtX3JlbGVhc2VfZ3VjX29i aihjbGllbnQtPmNsaWVudF9vYmopOwo+Cj4gICAJaWYgKGNsaWVudC0+Y3R4X2luZGV4ICE9IEdV Q19JTlZBTElEX0NUWF9JRCkgewo+IEBAIC02OTYsNyArNjg0LDcgQEAgc3RhdGljIHZvaWQgZ3Vj X2NsaWVudF9mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAgKiBAY3R4Ogl0aGUgY29u dGV4dCB0aGF0IG93bnMgdGhlIGNsaWVudCAod2UgdXNlIHRoZSBkZWZhdWx0IHJlbmRlcgo+ICAg ICogCQljb250ZXh0KQo+ICAgICoKPiAtICogUmV0dXJuOglBbiBpOTE1X2d1Y19jbGllbnQgb2Jq ZWN0IGlmIHN1Y2Nlc3MuCj4gKyAqIFJldHVybjoJQW4gaTkxNV9ndWNfY2xpZW50IG9iamVjdCBp ZiBzdWNjZXNzLCBlbHNlIE5VTEwuCj4gICAgKi8KPiAgIHN0YXRpYyBzdHJ1Y3QgaTkxNV9ndWNf Y2xpZW50ICpndWNfY2xpZW50X2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQkJ CQl1aW50MzJfdCBwcmlvcml0eSwKPiBAQCAtNzI4LDcgKzcxNiw5IEBAIHN0YXRpYyBzdHJ1Y3Qg aTkxNV9ndWNfY2xpZW50ICpndWNfY2xpZW50X2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gICAJaWYgKCFvYmopCj4gICAJCWdvdG8gZXJyOwo+Cj4gKwkvKiBXZSdsbCBrZWVwIGp1c3Qg dGhlIGZpcnN0IChkb29yYmVsbC9wcm9jKSBwYWdlIHBlcm1hbmVudGx5IGttYXAnZC4gKi8KPiAg IAljbGllbnQtPmNsaWVudF9vYmogPSBvYmo7Cj4gKwljbGllbnQtPmNsaWVudF9iYXNlID0ga21h cChpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2Uob2JqLCAwKSk7Cj4gICAJY2xpZW50LT53cV9vZmZz ZXQgPSBHVUNfREJfU0laRTsKPiAgIAljbGllbnQtPndxX3NpemUgPSBHVUNfV1FfU0laRTsKPgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCj4gaW5kZXggM2JiODViMS4uMDYwNTBjMjQxYSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCj4gQEAgLTMxLDYgKzMxLDcgQEAgc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0Owo+Cj4gICBzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50IHsKPiAgIAlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY2xpZW50X29iajsKPiArCXZvaWQgKmNsaWVudF9i YXNlOwkJLyogZmlyc3QgcGFnZSAob25seSkgb2YgYWJvdmUJKi8KPiAgIAlzdHJ1Y3QgaW50ZWxf Y29udGV4dCAqb3duZXI7Cj4gICAJc3RydWN0IGludGVsX2d1YyAqZ3VjOwo+ICAgCXVpbnQzMl90 IHByaW9yaXR5Owo+IEBAIC01Miw2ICs1Myw3IEBAIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgewo+ ICAgCXVpbnQzMl90IHFfZmFpbDsKPiAgIAl1aW50MzJfdCBiX2ZhaWw7Cj4gICAJaW50IHJldGNv ZGU7Cj4gKwlpbnQgc3BhcmU7CQkJLyogcGFkIHRvIDMyIERXb3JkcwkJKi8KPiAgIH07Cj4KPiAg IGVudW0gaW50ZWxfZ3VjX2Z3X3N0YXR1cyB7Cj4KCkxvb2tzIGNvcnJlY3QsCgpSZXZpZXdlZC1i eTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClJlZ2FyZHMsCgpU dnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==