From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH] drm/i915: Kill sink_crc for good Date: Thu, 5 Jul 2018 14:25:00 -0700 Message-ID: <20180705212500.GO734@intel.com> References: <20180705192528.30515-1-rodrigo.vivi@intel.com> <5316853.HHogQtWqm6@dk> 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 CACEB6EDB9 for ; Thu, 5 Jul 2018 21:25:02 +0000 (UTC) Content-Disposition: inline In-Reply-To: <5316853.HHogQtWqm6@dk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dhinakaran Pandiyan Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, Dhinakaran Pandiyan List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBKdWwgMDUsIDIwMTggYXQgMDI6MTE6NDVQTSAtMDcwMCwgRGhpbmFrYXJhbiBQYW5k aXlhbiB3cm90ZToKPiBPbiBUaHVyc2RheSwgSnVseSA1LCAyMDE4IDEyOjI1OjI4IFBNIFBEVCBS b2RyaWdvIFZpdmkgd3JvdGU6Cj4gPiBJdCB3YXMgb3JpZ2luYWxseSBpbnRyb2R1Y2VkIGZvbGxv d2luZyB0aGUgVkVTQSBzcGVjIGluIG9yZGVyIHRvIHZhbGlkYXRlCj4gPiBQU1IuCj4gPiAKPiA+ IEhvd2V2ZXIgd2UgZm91bmQgc28gbWFueSBpc3N1ZXMgYXJvdW5kIHNpbmtfY3JjIHRoYXQgaW5z dGVhZCBvZiBoZWxwaW5nIFBTUgo+ID4gZGV2ZWxvcG1lbnQgaXQgb25seSBicm91Z2h0IGFub3Ro ZXIgbGF5ZXIgb2YgdHJvdWJsZSB0byB0aGUgdGFibGUuCj4gPiAKPiA+IFNvLCBzaW5rX2NyYyBo YXMgYmVlbiBhIGJsYWNrIHdob2xlIGZvciB1cyBpbiBxdWVzdGlvbiBvZiB0aW1lLCBlZmZvcnQg YW5kCj4gPiBob3BlLgo+ID4gCj4gPiBGaXJzdCBvZiB0aGUgcHJvYmxlbXMgaXMgdGhhdCBIVyBz dGF0ZW1lbnQgaXMgY2xlYXI6ICJEbyBub3QgYXR0ZW1wdCB0byB1c2UKPiA+IGF1eCBjb21tdW5p Y2F0aW9uIHdpdGggUFNSIGVuYWJsZWQiLiBTbyB0aGUgbWFpbiByZWFzb24gYmVoaW5kIHNpbmtf Y3JjIGlzCj4gPiBhbHJlYWR5IGNvbXByb21pc2VkLgo+ID4gCj4gPiBGb3IgYSB3aGlsZSB3ZSBo YWQgaG9wZSBvbiB0aGUgYXV4LW11dGV4IGNvdWxkIHdvcmthcm91bmQgdGhpcyBwcm9ibGVtIG9u Cj4gPiBTS0wrIHBsYXRmb3JtcywgYnV0IHRoYXQgbXV0ZXggd2FzIG5vdCByZWxpYWJsZSwgbm90 IHRlc3RlZCwKPiA+IGFuZCB3ZSBzaG91bGRuJ3QgdXNlIGFjY29yZGluZyB0byBIVyBlbmdpbmVl cnMuCj4gPiAKPiA+IEFsc28sIG5vciBzb3VyY2UsIG5vciBzaW5rIGRlc2lnbmVkIGFuZCBpbXBs ZW1lbnRlZCB0aGUgc2lua19jcmMgdG8gYmUgdXNlZAo+ID4gbGlrZSB3ZSBhcmUgdHJ5aW5nIHRv IHVzZSBoZXJlLgo+ID4gCj4gPiBXZWxsLCB0aGUgc2luayBzaWRlIG9mIHRoaW5ncyBpcyBhbHNv IGFwcGFyZW50bHkgbm90IHByZXBhcmVkIGZvciB0aGlzCj4gPiBjYXNlLiBFYWNoIHBhbmVsIHRo YXQgd2UgdHJpZWQgc2VlbWVkIHRvIGhhdmUgYSBkaWZmZXJlbnQgYmVoYXZpb3Igd2l0aCBzYW1l Cj4gPiBjb2RlIGFuZCBzYW1lIHNvdXJjZS4KPiA+IAo+ID4gU28sIGZvciBhbGwgdGhlIHRpbWUg d2UgbG9zdCBvbiB0cnlpbmcgdG8gZHVja3RhcGUgYWxsIHRoZXNlIGRpZmZlcmVudAo+ID4gaXNz dWVzIEkgYmVsaWV2ZSBpdCBpcyBub3cgdGltZSB0byBtb3ZlIFBTUiB0byBhIG1vcmUgcmVsaWFi bGUgdmFsaWRhdGlvbi4KPiA+IE1heWJlIG5vdCBhIHBlcmZlY3Qgb25lIGFzIHdlIGRyZWFtZWQg Zm9yIHRoaXMgc2lua19jcmMsIGJ1dCBhdCBsZWFzdCBtb3JlCj4gPiByZWxpYWJsZS4KPiA+IAo+ IEdvb2QgcmlkZGFuY2UuCgpCeWUgYnllIHNpbmtfY3JjLCB3ZSBhcmUgbm90IGdvaW5nIHRvIG1p c3MgeW91ISA7KQoKPiBSZXZpZXdlZC1ieTogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJh bi5wYW5kaXlhbkBpbnRlbC5jb20+CgpUaGFua3MgZm9yIGdyYW50aW5nIG1lIHRoaXMgaG9ub3Ih Cgpub3cgbGV0J3Mgd2FpdCBmb3IgQ0kgdG8gYmxvdy11cC4uLgp0aGFuIHdoZW4gd2UgY2hhbmdl IHBzciB0ZXN0IGNhc2VzIHdlIGNvbWUgYmFjayBoZXJlLCB0cmlnZ2VyIGEgcmV0ZXN0IGFuZApv bmNlIENJIGlzIGhhcHB5IHdpdGggcHVzaC4KCj4gCj4gPiBDYzogRGhpbmFrYXJhbiBQYW5kaXlh biA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4gPiBDYzogRGFuaWVsIFZldHRlciA8 ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+IFNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gVml2aSA8 cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jIHwgIDgxIC0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMgICAgIHwgMTIzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICB8ICAgMiAtCj4gPiAg MyBmaWxlcyBjaGFuZ2VkLCAyMDYgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYyBpbmRleCBmNjE0MmQ3OGVkZTQuLmU4ZmExMDZhMzY1NQo+ID4g MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+IEBAIC0yNzYxLDg2 ICsyNzYxLDYgQEAgREVGSU5FX1NJTVBMRV9BVFRSSUJVVEUoaTkxNV9lZHBfcHNyX2RlYnVnX2Zv cHMsCj4gPiAgCQkJaTkxNV9lZHBfcHNyX2RlYnVnX2dldCwgaTkxNV9lZHBfcHNyX2RlYnVnX3Nl dCwKPiA+ICAJCQkiJWxsdVxuIik7Cj4gPiAKPiA+IC1zdGF0aWMgaW50IGk5MTVfc2lua19jcmMo c3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ID4gLXsKPiA+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gbm9kZV90b19pOTE1KG0tPnByaXZhdGUpOwo+ID4gLQlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gPiAtCXN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiA+IC0Jc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9p dGVyIGNvbm5faXRlcjsKPiA+IC0Jc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IE5VTEw7Cj4g PiAtCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCBjdHg7Cj4gPiAtCWludCByZXQ7Cj4g PiAtCXU4IGNyY1s2XTsKPiA+IC0KPiA+IC0JZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgs IERSTV9NT0RFU0VUX0FDUVVJUkVfSU5URVJSVVBUSUJMRSk7Cj4gPiAtCj4gPiAtCWRybV9jb25u ZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJmNvbm5faXRlcik7Cj4gPiAtCj4gPiAtCWZvcl9l YWNoX2ludGVsX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJmNvbm5faXRlcikgewo+ID4gLQkJ c3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4gLQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg KnN0YXRlOwo+ID4gLQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gPiAt Cj4gPiAtCQlpZiAoY29ubmVjdG9yLT5iYXNlLmNvbm5lY3Rvcl90eXBlICE9IERSTV9NT0RFX0NP Tk5FQ1RPUl9lRFApCj4gPiAtCQkJY29udGludWU7Cj4gPiAtCj4gPiAtcmV0cnk6Cj4gPiAtCQly ZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgs ICZjdHgpOwo+ID4gLQkJaWYgKHJldCkKPiA+IC0JCQlnb3RvIGVycjsKPiA+IC0KPiA+IC0JCXN0 YXRlID0gY29ubmVjdG9yLT5iYXNlLnN0YXRlOwo+ID4gLQkJaWYgKCFzdGF0ZS0+YmVzdF9lbmNv ZGVyKQo+ID4gLQkJCWNvbnRpbnVlOwo+ID4gLQo+ID4gLQkJY3J0YyA9IHN0YXRlLT5jcnRjOwo+ ID4gLQkJcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmY3J0Yy0+bXV0ZXgsICZjdHgpOwo+ID4gLQkJ aWYgKHJldCkKPiA+IC0JCQlnb3RvIGVycjsKPiA+IC0KPiA+IC0JCWNydGNfc3RhdGUgPSB0b19p bnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKPiA+IC0JCWlmICghY3J0Y19zdGF0ZS0+YmFz ZS5hY3RpdmUpCj4gPiAtCQkJY29udGludWU7Cj4gPiAtCj4gPiAtCQkvKgo+ID4gLQkJICogV2Ug bmVlZCB0byB3YWl0IGZvciBhbGwgY3J0YyB1cGRhdGVzIHRvIGNvbXBsZXRlLCB0byBtYWtlCj4g PiAtCQkgKiBzdXJlIGFueSBwZW5kaW5nIG1vZGVzZXRzIGFuZCBwbGFuZSB1cGRhdGVzIGFyZSBj b21wbGV0ZWQuCj4gPiAtCQkgKi8KPiA+IC0JCWlmIChjcnRjX3N0YXRlLT5iYXNlLmNvbW1pdCkg ewo+ID4gLQkJCXJldCA9Cj4gPiB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGUoJmNy dGNfc3RhdGUtPmJhc2UuY29tbWl0LT5od19kb25lKTsgLQo+ID4gLQkJCWlmIChyZXQpCj4gPiAt CQkJCWdvdG8gZXJyOwo+ID4gLQkJfQo+ID4gLQo+ID4gLQkJaW50ZWxfZHAgPSBlbmNfdG9faW50 ZWxfZHAoc3RhdGUtPmJlc3RfZW5jb2Rlcik7Cj4gPiAtCj4gPiAtCQlyZXQgPSBpbnRlbF9kcF9z aW5rX2NyYyhpbnRlbF9kcCwgY3J0Y19zdGF0ZSwgY3JjKTsKPiA+IC0JCWlmIChyZXQpCj4gPiAt CQkJZ290byBlcnI7Cj4gPiAtCj4gPiAtCQlzZXFfcHJpbnRmKG0sICIlMDJ4JTAyeCUwMnglMDJ4 JTAyeCUwMnhcbiIsCj4gPiAtCQkJICAgY3JjWzBdLCBjcmNbMV0sIGNyY1syXSwKPiA+IC0JCQkg ICBjcmNbM10sIGNyY1s0XSwgY3JjWzVdKTsKPiA+IC0JCWdvdG8gb3V0Owo+ID4gLQo+ID4gLWVy cjoKPiA+IC0JCWlmIChyZXQgPT0gLUVERUFETEspIHsKPiA+IC0JCQlyZXQgPSBkcm1fbW9kZXNl dF9iYWNrb2ZmKCZjdHgpOwo+ID4gLQkJCWlmICghcmV0KQo+ID4gLQkJCQlnb3RvIHJldHJ5Owo+ ID4gLQkJfQo+ID4gLQkJZ290byBvdXQ7Cj4gPiAtCX0KPiA+IC0JcmV0ID0gLUVOT0RFVjsKPiA+ IC1vdXQ6Cj4gPiAtCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9pdGVyKTsKPiA+ IC0JZHJtX21vZGVzZXRfZHJvcF9sb2NrcygmY3R4KTsKPiA+IC0JZHJtX21vZGVzZXRfYWNxdWly ZV9maW5pKCZjdHgpOwo+ID4gLQo+ID4gLQlyZXR1cm4gcmV0Owo+ID4gLX0KPiA+IC0KPiA+ICBz dGF0aWMgaW50IGk5MTVfZW5lcmd5X3VKKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkK PiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG5vZGVfdG9f aTkxNShtLT5wcml2YXRlKTsKPiA+IEBAIC00Nzg0LDcgKzQ3MDQsNiBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9pbmZvX2xpc3QgaTkxNV9kZWJ1Z2ZzX2xpc3RbXQo+ID4gPSB7IHsiaTkxNV9w cGd0dF9pbmZvIiwgaTkxNV9wcGd0dF9pbmZvLCAwfSwKPiA+ICAJeyJpOTE1X2xsYyIsIGk5MTVf bGxjLCAwfSwKPiA+ICAJeyJpOTE1X2VkcF9wc3Jfc3RhdHVzIiwgaTkxNV9lZHBfcHNyX3N0YXR1 cywgMH0sCj4gPiAtCXsiaTkxNV9zaW5rX2NyY19lRFAxIiwgaTkxNV9zaW5rX2NyYywgMH0sCj4g PiAgCXsiaTkxNV9lbmVyZ3lfdUoiLCBpOTE1X2VuZXJneV91SiwgMH0sCj4gPiAgCXsiaTkxNV9y dW50aW1lX3BtX3N0YXR1cyIsIGk5MTVfcnVudGltZV9wbV9zdGF0dXMsIDB9LAo+ID4gIAl7Imk5 MTVfcG93ZXJfZG9tYWluX2luZm8iLCBpOTE1X3Bvd2VyX2RvbWFpbl9pbmZvLCAwfSwKPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMgaW5kZXggNWJlMDdlMWQ4MTZkLi5lZmRkNGI0MDhkNTEg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBAQCAtMzkwNSwxMjkgKzM5MDUs NiBAQCBpbnRlbF9kcF9jb25maWd1cmVfbXN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4g PiAgCQkJCQlpbnRlbF9kcC0+aXNfbXN0KTsKPiA+ICB9Cj4gPiAKPiA+IC1zdGF0aWMgaW50IGlu dGVsX2RwX3NpbmtfY3JjX3N0b3Aoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+IC0JCQkJ ICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgYm9vbCBkaXNhYmxlX3dhKQo+ ID4gLXsKPiA+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBkcF90b19k aWdfcG9ydChpbnRlbF9kcCk7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwo+ID4gLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK PiA+IC0JdTggYnVmOwo+ID4gLQlpbnQgcmV0ID0gMDsKPiA+IC0JaW50IGNvdW50ID0gMDsKPiA+ IC0JaW50IGF0dGVtcHRzID0gMTA7Cj4gPiAtCj4gPiAtCWlmIChkcm1fZHBfZHBjZF9yZWFkYigm aW50ZWxfZHAtPmF1eCwgRFBfVEVTVF9TSU5LLCAmYnVmKSA8IDApIHsKPiA+IC0JCURSTV9ERUJV R19LTVMoIlNpbmsgQ1JDIGNvdWxkbid0IGJlIHN0b3BwZWQgcHJvcGVybHlcbiIpOwo+ID4gLQkJ cmV0ID0gLUVJTzsKPiA+IC0JCWdvdG8gb3V0Owo+ID4gLQl9Cj4gPiAtCj4gPiAtCWlmIChkcm1f ZHBfZHBjZF93cml0ZWIoJmludGVsX2RwLT5hdXgsIERQX1RFU1RfU0lOSywKPiA+IC0JCQkgICAg ICAgYnVmICYgfkRQX1RFU1RfU0lOS19TVEFSVCkgPCAwKSB7Cj4gPiAtCQlEUk1fREVCVUdfS01T KCJTaW5rIENSQyBjb3VsZG4ndCBiZSBzdG9wcGVkIHByb3Blcmx5XG4iKTsKPiA+IC0JCXJldCA9 IC1FSU87Cj4gPiAtCQlnb3RvIG91dDsKPiA+IC0JfQo+ID4gLQo+ID4gLQlkbyB7Cj4gPiAtCQlp bnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYsIGludGVsX2NydGMtPnBpcGUpOwo+ID4gLQo+ ID4gLQkJaWYgKGRybV9kcF9kcGNkX3JlYWRiKCZpbnRlbF9kcC0+YXV4LAo+ID4gLQkJCQkgICAg ICBEUF9URVNUX1NJTktfTUlTQywgJmJ1ZikgPCAwKSB7Cj4gPiAtCQkJcmV0ID0gLUVJTzsKPiA+ IC0JCQlnb3RvIG91dDsKPiA+IC0JCX0KPiA+IC0JCWNvdW50ID0gYnVmICYgRFBfVEVTVF9DT1VO VF9NQVNLOwo+ID4gLQl9IHdoaWxlICgtLWF0dGVtcHRzICYmIGNvdW50KTsKPiA+IC0KPiA+IC0J aWYgKGF0dGVtcHRzID09IDApIHsKPiA+IC0JCURSTV9ERUJVR19LTVMoIlRJTUVPVVQ6IFNpbmsg Q1JDIGNvdW50ZXIgaXMgbm90IHplcm9lZCBhZnRlciAKPiBjYWxjdWxhdGlvbgo+ID4gaXMgc3Rv cHBlZFxuIik7IC0JCXJldCA9IC1FVElNRURPVVQ7Cj4gPiAtCX0KPiA+IC0KPiA+IC0gb3V0Ogo+ ID4gLQlpZiAoZGlzYWJsZV93YSkKPiA+IC0JCWhzd19lbmFibGVfaXBzKGNydGNfc3RhdGUpOwo+ ID4gLQlyZXR1cm4gcmV0Owo+ID4gLX0KPiA+IC0KPiA+IC1zdGF0aWMgaW50IGludGVsX2RwX3Np bmtfY3JjX3N0YXJ0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAtCQkJCSAgIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gLXsKPiA+IC0Jc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gPiAt CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJh c2UuYmFzZS5kZXYpOwo+ID4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiA+IC0JdTggYnVmOwo+ID4gLQlpbnQg cmV0Owo+ID4gLQo+ID4gLQlpZiAoZHJtX2RwX2RwY2RfcmVhZGIoJmludGVsX2RwLT5hdXgsIERQ X1RFU1RfU0lOS19NSVNDLCAmYnVmKSA8IDApCj4gPiAtCQlyZXR1cm4gLUVJTzsKPiA+IC0KPiA+ IC0JaWYgKCEoYnVmICYgRFBfVEVTVF9DUkNfU1VQUE9SVEVEKSkKPiA+IC0JCXJldHVybiAtRU5P VFRZOwo+ID4gLQo+ID4gLQlpZiAoZHJtX2RwX2RwY2RfcmVhZGIoJmludGVsX2RwLT5hdXgsIERQ X1RFU1RfU0lOSywgJmJ1ZikgPCAwKQo+ID4gLQkJcmV0dXJuIC1FSU87Cj4gPiAtCj4gPiAtCWlm IChidWYgJiBEUF9URVNUX1NJTktfU1RBUlQpIHsKPiA+IC0JCXJldCA9IGludGVsX2RwX3Npbmtf Y3JjX3N0b3AoaW50ZWxfZHAsIGNydGNfc3RhdGUsIGZhbHNlKTsKPiA+IC0JCWlmIChyZXQpCj4g PiAtCQkJcmV0dXJuIHJldDsKPiA+IC0JfQo+ID4gLQo+ID4gLQloc3dfZGlzYWJsZV9pcHMoY3J0 Y19zdGF0ZSk7Cj4gPiAtCj4gPiAtCWlmIChkcm1fZHBfZHBjZF93cml0ZWIoJmludGVsX2RwLT5h dXgsIERQX1RFU1RfU0lOSywKPiA+IC0JCQkgICAgICAgYnVmIHwgRFBfVEVTVF9TSU5LX1NUQVJU KSA8IDApIHsKPiA+IC0JCWhzd19lbmFibGVfaXBzKGNydGNfc3RhdGUpOwo+ID4gLQkJcmV0dXJu IC1FSU87Cj4gPiAtCX0KPiA+IC0KPiA+IC0JaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldl9wcml2 LCBpbnRlbF9jcnRjLT5waXBlKTsKPiA+IC0JcmV0dXJuIDA7Cj4gPiAtfQo+ID4gLQo+ID4gLWlu dCBpbnRlbF9kcF9zaW5rX2NyYyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZQo+ID4gKmNydGNfc3RhdGUsIHU4ICpjcmMpIC17Cj4gPiAtCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRpZ19wb3J0 LT5iYXNlLmJhc2UuZGV2KTsKPiA+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gPiAtCXU4IGJ1ZjsKPiA+IC0J aW50IGNvdW50LCByZXQ7Cj4gPiAtCWludCBhdHRlbXB0cyA9IDY7Cj4gPiAtCj4gPiAtCXJldCA9 IGludGVsX2RwX3NpbmtfY3JjX3N0YXJ0KGludGVsX2RwLCBjcnRjX3N0YXRlKTsKPiA+IC0JaWYg KHJldCkKPiA+IC0JCXJldHVybiByZXQ7Cj4gPiAtCj4gPiAtCWRvIHsKPiA+IC0JCWludGVsX3dh aXRfZm9yX3ZibGFuayhkZXZfcHJpdiwgaW50ZWxfY3J0Yy0+cGlwZSk7Cj4gPiAtCj4gPiAtCQlp ZiAoZHJtX2RwX2RwY2RfcmVhZGIoJmludGVsX2RwLT5hdXgsCj4gPiAtCQkJCSAgICAgIERQX1RF U1RfU0lOS19NSVNDLCAmYnVmKSA8IDApIHsKPiA+IC0JCQlyZXQgPSAtRUlPOwo+ID4gLQkJCWdv dG8gc3RvcDsKPiA+IC0JCX0KPiA+IC0JCWNvdW50ID0gYnVmICYgRFBfVEVTVF9DT1VOVF9NQVNL Owo+ID4gLQo+ID4gLQl9IHdoaWxlICgtLWF0dGVtcHRzICYmIGNvdW50ID09IDApOwo+ID4gLQo+ ID4gLQlpZiAoYXR0ZW1wdHMgPT0gMCkgewo+ID4gLQkJRFJNX0VSUk9SKCJQYW5lbCBpcyB1bmFi bGUgdG8gY2FsY3VsYXRlIGFueSBDUkMgYWZ0ZXIgNiB2YmxhbmtzXG4iKTsKPiA+IC0JCXJldCA9 IC1FVElNRURPVVQ7Cj4gPiAtCQlnb3RvIHN0b3A7Cj4gPiAtCX0KPiA+IC0KPiA+IC0JaWYgKGRy bV9kcF9kcGNkX3JlYWQoJmludGVsX2RwLT5hdXgsIERQX1RFU1RfQ1JDX1JfQ1IsIGNyYywgNikg PCAwKSB7Cj4gPiAtCQlyZXQgPSAtRUlPOwo+ID4gLQkJZ290byBzdG9wOwo+ID4gLQl9Cj4gPiAt Cj4gPiAtc3RvcDoKPiA+IC0JaW50ZWxfZHBfc2lua19jcmNfc3RvcChpbnRlbF9kcCwgY3J0Y19z dGF0ZSwgdHJ1ZSk7Cj4gPiAtCXJldHVybiByZXQ7Cj4gPiAtfQo+ID4gLQo+ID4gIHN0YXRpYyBi b29sCj4gPiAgaW50ZWxfZHBfZ2V0X3NpbmtfaXJxKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs IHU4ICpzaW5rX2lycV92ZWN0b3IpCj4gPiAgewo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oIGluZGV4IGUwOWI0MmQ5MWQxZS4uOGU2ZWUyZmU2NmU0IDEwMDY0NAo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4gPiBAQCAtMTY2NSw4ICsxNjY1LDYgQEAgdm9pZCBpbnRlbF9kcF9z aW5rX2RwbXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50Cj4gPiBtb2RlKTsgdm9pZCBp bnRlbF9kcF9lbmNvZGVyX3Jlc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4gPiAg dm9pZCBpbnRlbF9kcF9lbmNvZGVyX3N1c3BlbmQoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVs X2VuY29kZXIpOwo+ID4gIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2Rlcik7Cj4gPiAtaW50IGludGVsX2RwX3NpbmtfY3JjKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAsCj4gPiAtCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwgdTggKmNyYyk7Cj4gPiAgYm9vbCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpwaXBlX2NvbmZpZywKPiA+ICAJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpjb25uX3N0YXRlKTsKPiAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==