From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v2 13/22] drm/i915: Update reset path to fix incomplete requests Date: Mon, 3 Oct 2016 13:44:14 +0100 Message-ID: <0be5c99b-101b-1132-6199-e81cb28b031b@linux.intel.com> References: <20160905130438.31046-1-chris@chris-wilson.co.uk> <20160907144516.29495-1-chris@chris-wilson.co.uk> <20160907144516.29495-13-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 87CCB6E3FE for ; Mon, 3 Oct 2016 12:44:17 +0000 (UTC) In-Reply-To: <20160907144516.29495-13-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 Cc: mika.kuoppala@intel.com List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA3LzA5LzIwMTYgMTU6NDUsIENocmlzIFdpbHNvbiB3cm90ZToKPiBVcGRhdGUgcmVzZXQg cGF0aCBpbiBwcmVwYXJhdGlvbiBmb3IgZW5naW5lIHJlc2V0IHdoaWNoIHJlcXVpcmVzCj4gaWRl bnRpZmljYXRpb24gb2YgaW5jb21wbGV0ZSByZXF1ZXN0cyBhbmQgYXNzb2NpYXRlZCBjb250ZXh0 IGFuZCBmaXhpbmcKPiB0aGVpciBzdGF0ZSBzbyB0aGF0IGVuZ2luZSBjYW4gcmVzdW1lIGNvcnJl Y3RseSBhZnRlciByZXNldC4KPgo+IFRoZSByZXF1ZXN0IHRoYXQgY2F1c2VkIHRoZSBoYW5nIHdp bGwgYmUgc2tpcHBlZCBhbmQgaGVhZCBpcyByZXNldCB0byB0aGUKPiBzdGFydCBvZiBicmVhZGNy dW1iLiBUaGlzIGFsbG93cyB1cyB0byByZXN1bWUgZnJvbSB3aGVyZSB3ZSBsZWZ0LW9mZi4KPiBT aW5jZSB0aGlzIHJlcXVlc3QgZGlkbid0IGNvbXBsZXRlIG5vcm1hbGx5IHdlIGFsc28gbmVlZCB0 byBjbGVhbnVwIGVsc3AKPiBxdWV1ZSBtYW51YWxseS4gVGhpcyBpcyB2aXRhbCBpZiB3ZSBlbXBs b3kgbm9uYmxvY2tpbmcgcmVxdWVzdAo+IHN1Ym1pc3Npb24gd2hlcmUgd2UgbWF5IGhhdmUgYSB3 ZWIgb2YgZGVwZW5kZW5jaWVzIHVwb24gdGhlIGh1bmcgcmVxdWVzdAo+IGFuZCBzbyBhZHZhbmNp bmcgdGhlIHNlcW5vIG1hbnVhbGx5IGlzIG5vIGxvbmdlciB0cml2aWFsLgo+Cj4gQUJJOiBnZW1f cmVzZXRfc3RhdHMgLyBEUk1fSU9DVExfSTkxNV9HRVRfUkVTRVRfU1RBVFMKPgo+IFdlIGNoYW5n ZSB0aGUgd2F5IHdlIGNvdW50IHBlbmRpbmcgYmF0Y2hlcy4gT25seSB0aGUgYWN0aXZlIGNvbnRl eHQKPiBpbnZvbHZlZCBpbiB0aGUgcmVzZXQgaXMgbWFya2VkIGFzIGVpdGhlciBpbm5vY2VudCBv ciBndWlsdHksIGFuZCBub3QKPiBtYXJrIHRoZSBlbnRpcmUgd29ybGQgYXMgcGVuZGluZy4gQnkg aW5zcGVjdGlvbiB0aGlzIG9ubHkgYWZmZWN0cwo+IGlndC9nZW1fcmVzZXRfc3RhdHMgKHdoaWNo IGFzc3VtZXMgaW1wbGVtZW50YXRpb24gZGV0YWlscykgYW5kIG5vdAo+IHBpZ2xpdC4KPgo+IEFS Ql9yb2J1c3RuZXNzIGdpdmVzIHRoaXMgZ3VpZGUgb24gaG93IHdlIGV4cGVjdCB0aGUgdXNlciBv ZiB0aGlzCj4gaW50ZXJmYWNlIHRvIGJlaGF2ZToKPgo+ICAgKiBQcm92aWRlIGEgbWVjaGFuaXNt IGZvciBhbiBPcGVuR0wgYXBwbGljYXRpb24gdG8gbGVhcm4gYWJvdXQKPiAgICAgZ3JhcGhpY3Mg cmVzZXRzIHRoYXQgYWZmZWN0IHRoZSBjb250ZXh0LiAgV2hlbiBhIGdyYXBoaWNzIHJlc2V0Cj4g ICAgIG9jY3VycywgdGhlIE9wZW5HTCBjb250ZXh0IGJlY29tZXMgdW51c2FibGUgYW5kIHRoZSBh cHBsaWNhdGlvbgo+ICAgICBtdXN0IGNyZWF0ZSBhIG5ldyBjb250ZXh0IHRvIGNvbnRpbnVlIG9w ZXJhdGlvbi4gRGV0ZWN0aW5nIGEKPiAgICAgZ3JhcGhpY3MgcmVzZXQgaGFwcGVucyB0aHJvdWdo IGFuIGluZXhwZW5zaXZlIHF1ZXJ5Lgo+Cj4gQW5kIHdpdGggcmVnYXJkcyB0byB0aGUgYWN0dWFs IG1lYW5pbmcgb2YgdGhlIHJlc2V0IHZhbHVlczoKPgo+ICAgICBDZXJ0YWluIGV2ZW50cyBjYW4g cmVzdWx0IGluIGEgcmVzZXQgb2YgdGhlIEdMIGNvbnRleHQuIFN1Y2ggYSByZXNldAo+ICAgICBj YXVzZXMgYWxsIGNvbnRleHQgc3RhdGUgdG8gYmUgbG9zdC4gUmVjb3ZlcnkgZnJvbSBzdWNoIGV2 ZW50cwo+ICAgICByZXF1aXJlcyByZWNyZWF0aW9uIG9mIGFsbCBvYmplY3RzIGluIHRoZSBhZmZl Y3RlZCBjb250ZXh0LiBUaGUKPiAgICAgY3VycmVudCBzdGF0dXMgb2YgdGhlIGdyYXBoaWNzIHJl c2V0IHN0YXRlIGlzIHJldHVybmVkIGJ5Cj4KPiAJZW51bSBHZXRHcmFwaGljc1Jlc2V0U3RhdHVz QVJCKCk7Cj4KPiAgICAgVGhlIHN5bWJvbGljIGNvbnN0YW50IHJldHVybmVkIGluZGljYXRlcyBp ZiB0aGUgR0wgY29udGV4dCBoYXMgYmVlbgo+ICAgICBpbiBhIHJlc2V0IHN0YXRlIGF0IGFueSBw b2ludCBzaW5jZSB0aGUgbGFzdCBjYWxsIHRvCj4gICAgIEdldEdyYXBoaWNzUmVzZXRTdGF0dXNB UkIuIE5PX0VSUk9SIGluZGljYXRlcyB0aGF0IHRoZSBHTCBjb250ZXh0Cj4gICAgIGhhcyBub3Qg YmVlbiBpbiBhIHJlc2V0IHN0YXRlIHNpbmNlIHRoZSBsYXN0IGNhbGwuCj4gICAgIEdVSUxUWV9D T05URVhUX1JFU0VUX0FSQiBpbmRpY2F0ZXMgdGhhdCBhIHJlc2V0IGhhcyBiZWVuIGRldGVjdGVk Cj4gICAgIHRoYXQgaXMgYXR0cmlidXRhYmxlIHRvIHRoZSBjdXJyZW50IEdMIGNvbnRleHQuCj4g ICAgIElOTk9DRU5UX0NPTlRFWFRfUkVTRVRfQVJCIGluZGljYXRlcyBhIHJlc2V0IGhhcyBiZWVu IGRldGVjdGVkIHRoYXQKPiAgICAgaXMgbm90IGF0dHJpYnV0YWJsZSB0byB0aGUgY3VycmVudCBH TCBjb250ZXh0Lgo+ICAgICBVTktOT1dOX0NPTlRFWFRfUkVTRVRfQVJCIGluZGljYXRlcyBhIGRl dGVjdGVkIGdyYXBoaWNzIHJlc2V0IHdob3NlCj4gICAgIGNhdXNlIGlzIHVua25vd24uCj4KPiBU aGUgbGFuZ3VhZ2UgaGVyZSBpcyBleHBsaWNpdCBpbiB0aGF0IHdlIG11c3QgbWFyayB1cCB0aGUg Z3VpbHR5IGJhdGNoLAo+IGJ1dCBpcyBsb29zZSBlbm91Z2ggZm9yIHVzIHRvIHJlbGF4IHRoZSBp bm5vY2VudCAoaS5lLiBwZW5kaW5nKQo+IGFjY291bnRpbmcgYXMgb25seSB0aGUgYWN0aXZlIGJh dGNoZXMgYXJlIGludm9sdmVkIHdpdGggdGhlIHJlc2V0Lgo+Cj4gSW4gdGhlIGZ1dHVyZSwgd2Ug YXJlIGxvb2tpbmcgdG93YXJkcyBzaW5nbGUgZW5naW5lIHJlc2V0dGluZyAod2l0aAo+IG1pbmlt YWwgbG9ja2luZyksIHdoZXJlIGl0IHNlZW1zIGluYXBwcm9wcmlhdGUgdG8gbWFyayB0aGUgZW50 aXJlIHdvcmxkCj4gYXMgaW5ub2NlbnQgc2luY2UgdGhlIHJlc2V0IG9jY3VycmVkIG9uIGEgZGlm ZmVyZW50IGVuZ2luZS4gUmVkdWNpbmcgdGhlCj4gaW5mb3JtYXRpb24gYXZhaWxhYmxlIG1lYW5z IHdlIG9ubHkgaGF2ZSB0byBlbmNvdW50ZXIgdGhlIHBhaW4gb25jZSwgYW5kCj4gYWxzbyByZWR1 Y2VzIHRoZSBpbmZvcm1hdGlvbiBsZWFraW5nIGZyb20gb25lIGNvbnRleHQgdG8gYW5vdGhlci4K Pgo+IHYyOiBMZWdhY3kgcmluZ2J1ZmZlciBzdWJtaXNzaW9uIHJlcXVpcmVkIGEgcmVzZXQgZm9s bG93aW5nIGhpYmVybmF0aW9uLAo+IG9yIGVsc2Ugd2UgcmVzdG9yZSBzdGFsZSB2YWx1ZXMgdG8g dGhlIFJJTkdfSEVBRCBhbmQgd2Fsa2VkIG92ZXIKPiBzdG9sZW4gZ2FyYmFnZS4KPgo+IHYzOiBH dUMgcmVxdWlyZXMgcmVwbGF5aW5nIHRoZSByZXF1ZXN0cyBhZnRlciBhIHJlc2V0Lgo+Cj4gdjQ6 IFJlc3RvcmUgZW5naW5lIElSUSBhZnRlciByZXNldCAoc28gd2FpdGVycyB3aWxsIGJlIHdva2Vu ISkKPiAgICAgIFJlYXJtIGhhbmdjaGVjayBpZiByZXNldHRpbmcgd2l0aCBhIHdhaXRlci4KPgo+ IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+IENjOiBNaWth IEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGludGVsLmNvbT4KPiBDYzogQXJ1biBTaWx1dmVyeSA8 YXJ1bi5zaWx1dmVyeUBsaW51eC5pbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2ls c29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5jICAgICAgICAgICAgfCAgIDggKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8ICAgNSArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgMTIzICsrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgICAgfCAgMTYg LS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgICA4 ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgICAgfCAgMTUg KysrLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAgIHwgIDQ5 ICsrKysrKysrKystLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggICAgICAg ICAgIHwgICAzICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMg ICAgfCAgNDcgKysrKysrKy0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaCAgICB8ICAgNyArLQo+ICAgMTAgZmlsZXMgY2hhbmdlZCwgMTgzIGluc2VydGlvbnMo KyksIDk4IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gaW5kZXggYzFi ODkwZGJkNmNjLi4yYjA3MjdkMTQ2N2QgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBA QCAtNTU5LDcgKzU1OSw2IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX2Zpbmkoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKPiAgIAl9Cj4gICAKPiAgIAltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRl eCk7Cj4gLQlpOTE1X2dlbV9yZXNldChkZXYpOwo+ICAgCWk5MTVfZ2VtX2NsZWFudXBfZW5naW5l cyhkZXYpOwo+ICAgCWk5MTVfZ2VtX2NvbnRleHRfZmluaShkZXYpOwo+ICAgCW11dGV4X3VubG9j aygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+IEBAIC0xNTc5LDcgKzE1NzgsNyBAQCBzdGF0aWMgaW50 IGk5MTVfZHJtX3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCW11dGV4X2xvY2so JmRldi0+c3RydWN0X211dGV4KTsKPiAgIAlpZiAoaTkxNV9nZW1faW5pdF9odyhkZXYpKSB7Cj4g ICAJCURSTV9FUlJPUigiZmFpbGVkIHRvIHJlLWluaXRpYWxpemUgR1BVLCBkZWNsYXJpbmcgd2Vk Z2VkIVxuIik7Cj4gLQkJc2V0X2JpdChJOTE1X1dFREdFRCwgJmRldl9wcml2LT5ncHVfZXJyb3Iu ZmxhZ3MpOwo+ICsJCWk5MTVfZ2VtX3NldF93ZWRnZWQoZGV2X3ByaXYpOwo+ICAgCX0KPiAgIAlt dXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiAgIAo+IEBAIC0xNzU2LDggKzE3NTUs NiBAQCBpbnQgaTkxNV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g ICAKPiAgIAlwcl9ub3RpY2UoImRybS9pOTE1OiBSZXNldHRpbmcgY2hpcCBhZnRlciBncHUgaGFu Z1xuIik7Cj4gICAKPiAtCWk5MTVfZ2VtX3Jlc2V0KGRldik7Cj4gLQo+ICAgCXJldCA9IGludGVs X2dwdV9yZXNldChkZXZfcHJpdiwgQUxMX0VOR0lORVMpOwo+ICAgCWlmIChyZXQpIHsKPiAgIAkJ aWYgKHJldCAhPSAtRU5PREVWKQo+IEBAIC0xNzY3LDYgKzE3NjQsNyBAQCBpbnQgaTkxNV9yZXNl dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJCWdvdG8gZXJyb3I7Cj4g ICAJfQo+ICAgCj4gKwlpOTE1X2dlbV9yZXNldChkZXZfcHJpdik7Cj4gICAJaW50ZWxfb3Zlcmxh eV9yZXNldChkZXZfcHJpdik7Cj4gICAKPiAgIAkvKiBPaywgbm93IGdldCB0aGluZ3MgZ29pbmcg YWdhaW4uLi4gKi8KPiBAQCAtMTgwMyw3ICsxODAxLDcgQEAgb3V0Ogo+ICAgCXJldHVybiByZXQ7 Cj4gICAKPiAgIGVycm9yOgo+IC0Jc2V0X2JpdChJOTE1X1dFREdFRCwgJmVycm9yLT5mbGFncyk7 Cj4gKwlpOTE1X2dlbV9zZXRfd2VkZ2VkKGRldl9wcml2KTsKPiAgIAlnb3RvIG91dDsKPiAgIH0K PiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDJlMmZkOGE3NzIzMy4uYTYzYmY4 MjBhYThmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTIwMjksNiArMjAyOSw3 IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiAgIAo+ICAgCS8qIEFic3RyYWN0IHRoZSBz dWJtaXNzaW9uIG1lY2hhbmlzbSAobGVnYWN5IHJpbmdidWZmZXIgb3IgZXhlY2xpc3RzKSBhd2F5 ICovCj4gICAJc3RydWN0IHsKPiArCQl2b2lkICgqcmVzdW1lKShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqKTsKPiAgIAkJdm9pZCAoKmNsZWFudXBfZW5naW5lKShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpOwo+ICAgCj4gICAJCS8qKgo+IEBAIC0zMjYyLDcgKzMyNjMsOCBAQCBzdGF0 aWMgaW5saW5lIHUzMiBpOTE1X3Jlc2V0X2NvdW50KHN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJy b3IpCj4gICAJcmV0dXJuIFJFQURfT05DRShlcnJvci0+cmVzZXRfY291bnQpOwo+ICAgfQo+ICAg Cj4gLXZvaWQgaTkxNV9nZW1fcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gK3ZvaWQg aTkxNV9nZW1fcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiArdm9p ZCBpOTE1X2dlbV9zZXRfd2VkZ2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 Cj4gICBib29sIGk5MTVfZ2VtX2NsZmx1c2hfb2JqZWN0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosIGJvb2wgZm9yY2UpOwo+ICAgaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICAgaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9p bml0X2h3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IEBAIC0zMzkxLDcgKzMzOTMsNiBAQCB2 b2lkIGk5MTVfZ2VtX29iamVjdF9zYXZlX2JpdF8xN19zd2l6emxlKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmopOwo+ICAgaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9jb250ZXh0X2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gICB2b2lkIGk5MTVfZ2VtX2NvbnRleHRfbG9z dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICAgdm9pZCBpOTE1X2dlbV9j b250ZXh0X2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gLXZvaWQgaTkxNV9nZW1fY29u dGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgIGludCBpOTE1X2dlbV9jb250 ZXh0X29wZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlKTsK PiAgIHZvaWQgaTkxNV9nZW1fY29udGV4dF9jbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOwo+ICAgaW50IGk5MTVfc3dpdGNoX2NvbnRleHQoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGlu ZGV4IDIzMDY5YTJkMjg1MC4uNjVhNjliYmUwMjFkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCj4gQEAgLTI1NTUsMjkgKzI1NTUsODMgQEAgaTkxNV9nZW1fZmluZF9hY3RpdmVfcmVxdWVz dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJcmV0dXJuIE5VTEw7Cj4gICB9 Cj4gICAKPiAtc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVzZXRfZW5naW5lX3N0YXR1cyhzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK3N0YXRpYyB2b2lkIHJlc2V0X3JlcXVlc3Qoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICt7Cj4gKwl2b2lkICp2YWRkciA9 IHJlcXVlc3QtPnJpbmctPnZhZGRyOwo+ICsJdTMyIGhlYWQ7Cj4gKwo+ICsJLyogQXMgdGhpcyBy ZXF1ZXN0IGxpa2VseSBkZXBlbmRzIG9uIHN0YXRlIGZyb20gdGhlIGxvc3QKPiArCSAqIGNvbnRl eHQsIGNsZWFyIG91dCBhbGwgdGhlIHVzZXIgb3BlcmF0aW9ucyBsZWF2aW5nIHRoZQo+ICsJICog YnJlYWRjcnVtYiBhdCB0aGUgZW5kIChzbyB3ZSBnZXQgdGhlIGZlbmNlIG5vdGlmaWNhdGlvbnMp Lgo+ICsJICovCj4gKwloZWFkID0gcmVxdWVzdC0+aGVhZDsKPiArCWlmIChyZXF1ZXN0LT5wb3N0 Zml4IDwgaGVhZCkgewo+ICsJCW1lbXNldCh2YWRkciArIGhlYWQsIDAsIHJlcXVlc3QtPnJpbmct PnNpemUgLSBoZWFkKTsKPiArCQloZWFkID0gMDsKPiArCX0KPiArCW1lbXNldCh2YWRkciArIGhl YWQsIDAsIHJlcXVlc3QtPnBvc3RmaXggLSBoZWFkKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQg aTkxNV9nZW1fcmVzZXRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAg IHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7Cj4gKwlzdHJ1Y3Qg aTkxNV9nZW1fY29udGV4dCAqaW5jb21wbGV0ZV9jdHg7Cj4gICAJYm9vbCByaW5nX2h1bmc7Cj4g ICAKPiArCS8qIEVuc3VyZSBpcnEgaGFuZGxlciBmaW5pc2hlcywgYW5kIG5vdCBydW4gYWdhaW4u ICovCj4gKwl0YXNrbGV0X2tpbGwoJmVuZ2luZS0+aXJxX3Rhc2tsZXQpOwo+ICsKPiAgIAlyZXF1 ZXN0ID0gaTkxNV9nZW1fZmluZF9hY3RpdmVfcmVxdWVzdChlbmdpbmUpOwo+IC0JaWYgKHJlcXVl c3QgPT0gTlVMTCkKPiArCWlmICghcmVxdWVzdCkKPiAgIAkJcmV0dXJuOwo+ICAgCj4gICAJcmlu Z19odW5nID0gZW5naW5lLT5oYW5nY2hlY2suc2NvcmUgPj0gSEFOR0NIRUNLX1NDT1JFX1JJTkdf SFVORzsKPiAtCj4gICAJaTkxNV9zZXRfcmVzZXRfc3RhdHVzKHJlcXVlc3QtPmN0eCwgcmluZ19o dW5nKTsKPiArCWlmICghcmluZ19odW5nKQo+ICsJCXJldHVybjsKPiArCj4gKwlEUk1fREVCVUdf RFJJVkVSKCJyZXNldGluZyAlcyB0byBzdGFydCBmcm9tIHRhaWwgb2YgcmVxdWVzdCAweCV4XG4i LAo+ICsJCQkgZW5naW5lLT5uYW1lLCByZXF1ZXN0LT5mZW5jZS5zZXFubyk7Cj4gKwo+ICsJLyog U2V0dXAgdGhlIENTIHRvIHJlc3VtZSBmcm9tIHRoZSBicmVhZGNydW1iIG9mIHRoZSBodW5nIHJl cXVlc3QgKi8KPiArCWVuZ2luZS0+cmVzZXRfaHcoZW5naW5lLCByZXF1ZXN0KTsKPiArCj4gKwkv KiBVc2VycyBvZiB0aGUgZGVmYXVsdCBjb250ZXh0IGRvIG5vdCByZWx5IG9uIGxvZ2ljYWwgc3Rh dGUKPiArCSAqIHByZXNlcnZlZCBiZXR3ZWVuIGJhdGNoZXMuIFRoZXkgaGF2ZSB0byBlbWl0IGZ1 bGwgc3RhdGUgb24KPiArCSAqIGV2ZXJ5IGJhdGNoIGFuZCBzbyBpdCBpcyBzYWZlIHRvIGV4ZWN1 dGUgcXVldWVkIHJlcXVlc3RzIGZvbGxvd2luZwo+ICsJICogdGhlIGhhbmcuCj4gKwkgKgo+ICsJ ICogT3RoZXIgY29udGV4dHMgcHJlc2VydmUgc3RhdGUsIG5vdyBjb3JydXB0LiBXZSB3YW50IHRv IHNraXAgYWxsCj4gKwkgKiBxdWV1ZWQgcmVxdWVzdHMgdGhhdCByZWZlcmVuY2UgdGhlIGNvcnJ1 cHQgY29udGV4dC4KPiArCSAqLwo+ICsJaW5jb21wbGV0ZV9jdHggPSByZXF1ZXN0LT5jdHg7Cj4g KwlpZiAoaTkxNV9nZW1fY29udGV4dF9pc19kZWZhdWx0KGluY29tcGxldGVfY3R4KSkKPiArCQly ZXR1cm47Cj4gKwo+ICAgCWxpc3RfZm9yX2VhY2hfZW50cnlfY29udGludWUocmVxdWVzdCwgJmVu Z2luZS0+cmVxdWVzdF9saXN0LCBsaW5rKQo+IC0JCWk5MTVfc2V0X3Jlc2V0X3N0YXR1cyhyZXF1 ZXN0LT5jdHgsIGZhbHNlKTsKPiArCQlpZiAocmVxdWVzdC0+Y3R4ID09IGluY29tcGxldGVfY3R4 KQo+ICsJCQlyZXNldF9yZXF1ZXN0KHJlcXVlc3QpOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyB2b2lk IGk5MTVfZ2VtX3Jlc2V0X2VuZ2luZV9jbGVhbnVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKPiArdm9pZCBpOTE1X2dlbV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7Cj4g LQlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZzsKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZTsKPiAgIAo+IC0JLyogRW5zdXJlIGlycSBoYW5kbGVyIGZpbmlzaGVzLCBhbmQgbm90IHJ1 biBhZ2Fpbi4gKi8KPiAtCXRhc2tsZXRfa2lsbCgmZW5naW5lLT5pcnFfdGFza2xldCk7Cj4gKwlp OTE1X2dlbV9yZXRpcmVfcmVxdWVzdHMoZGV2X3ByaXYpOwo+ICsKPiArCWZvcl9lYWNoX2VuZ2lu ZShlbmdpbmUsIGRldl9wcml2KQo+ICsJCWk5MTVfZ2VtX3Jlc2V0X2VuZ2luZShlbmdpbmUpOwo+ ICsKPiArCWk5MTVfZ2VtX3Jlc3RvcmVfZmVuY2VzKCZkZXZfcHJpdi0+ZHJtKTsKPiArfQo+ICsK PiArc3RhdGljIHZvaWQgbm9wX3N1Ym1pdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxdWVzdCkKPiArewo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBpOTE1X2dlbV9jbGVh bnVwX2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCgpJIGFtIGF3YXJlIHRo aXMgaXMgYSBsYXRlIGNvbW1lbnQsIGJ1dCB3YW50ZWQgdG8gc2F5IHRoYXQgdGhlIG5hbWUgYWJv dmUgCmlzIG5vdCBpZGVhbCBzaW5jZSB3ZSBoYXZlIGJvdGggaTkxNV9nZW1fY2xlYW51cF9lbmdp bmVzIGFuZCAKZGV2X3ByaXYtPmd0LmNsZWFudXBfZW5naW5lIHdoaWNoIGRvIGNvbXBsZXRlbHkg ZGlmZmVyZW50IHR5cGUgb2YgdGhpbmcgCnRoYW4gdGhpcy4KClJlZ2FyZHMsCgpUdnJ0a28KCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=