From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: Re: [PATCH] drm/i915: Kill sink_crc for good Date: Thu, 05 Jul 2018 14:11:45 -0700 Message-ID: <5316853.HHogQtWqm6@dk> References: <20180705192528.30515-1-rodrigo.vivi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pf0-x244.google.com (mail-pf0-x244.google.com [IPv6:2607:f8b0:400e:c00::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 20FBE6EF22 for ; Thu, 5 Jul 2018 21:11:49 +0000 (UTC) Received: by mail-pf0-x244.google.com with SMTP id e10-v6so6474708pfn.1 for ; Thu, 05 Jul 2018 14:11:49 -0700 (PDT) In-Reply-To: <20180705192528.30515-1-rodrigo.vivi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Daniel Vetter , Dhinakaran Pandiyan , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gVGh1cnNkYXksIEp1bHkgNSwgMjAxOCAxMjoyNToyOCBQTSBQRFQgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IEl0IHdhcyBvcmlnaW5hbGx5IGludHJvZHVjZWQgZm9sbG93aW5nIHRoZSBWRVNBIHNw ZWMgaW4gb3JkZXIgdG8gdmFsaWRhdGUKPiBQU1IuCj4gCj4gSG93ZXZlciB3ZSBmb3VuZCBzbyBt YW55IGlzc3VlcyBhcm91bmQgc2lua19jcmMgdGhhdCBpbnN0ZWFkIG9mIGhlbHBpbmcgUFNSCj4g ZGV2ZWxvcG1lbnQgaXQgb25seSBicm91Z2h0IGFub3RoZXIgbGF5ZXIgb2YgdHJvdWJsZSB0byB0 aGUgdGFibGUuCj4gCj4gU28sIHNpbmtfY3JjIGhhcyBiZWVuIGEgYmxhY2sgd2hvbGUgZm9yIHVz IGluIHF1ZXN0aW9uIG9mIHRpbWUsIGVmZm9ydCBhbmQKPiBob3BlLgo+IAo+IEZpcnN0IG9mIHRo ZSBwcm9ibGVtcyBpcyB0aGF0IEhXIHN0YXRlbWVudCBpcyBjbGVhcjogIkRvIG5vdCBhdHRlbXB0 IHRvIHVzZQo+IGF1eCBjb21tdW5pY2F0aW9uIHdpdGggUFNSIGVuYWJsZWQiLiBTbyB0aGUgbWFp biByZWFzb24gYmVoaW5kIHNpbmtfY3JjIGlzCj4gYWxyZWFkeSBjb21wcm9taXNlZC4KPiAKPiBG b3IgYSB3aGlsZSB3ZSBoYWQgaG9wZSBvbiB0aGUgYXV4LW11dGV4IGNvdWxkIHdvcmthcm91bmQg dGhpcyBwcm9ibGVtIG9uCj4gU0tMKyBwbGF0Zm9ybXMsIGJ1dCB0aGF0IG11dGV4IHdhcyBub3Qg cmVsaWFibGUsIG5vdCB0ZXN0ZWQsCj4gYW5kIHdlIHNob3VsZG4ndCB1c2UgYWNjb3JkaW5nIHRv IEhXIGVuZ2luZWVycy4KPiAKPiBBbHNvLCBub3Igc291cmNlLCBub3Igc2luayBkZXNpZ25lZCBh bmQgaW1wbGVtZW50ZWQgdGhlIHNpbmtfY3JjIHRvIGJlIHVzZWQKPiBsaWtlIHdlIGFyZSB0cnlp bmcgdG8gdXNlIGhlcmUuCj4gCj4gV2VsbCwgdGhlIHNpbmsgc2lkZSBvZiB0aGluZ3MgaXMgYWxz byBhcHBhcmVudGx5IG5vdCBwcmVwYXJlZCBmb3IgdGhpcwo+IGNhc2UuIEVhY2ggcGFuZWwgdGhh dCB3ZSB0cmllZCBzZWVtZWQgdG8gaGF2ZSBhIGRpZmZlcmVudCBiZWhhdmlvciB3aXRoIHNhbWUK PiBjb2RlIGFuZCBzYW1lIHNvdXJjZS4KPiAKPiBTbywgZm9yIGFsbCB0aGUgdGltZSB3ZSBsb3N0 IG9uIHRyeWluZyB0byBkdWNrdGFwZSBhbGwgdGhlc2UgZGlmZmVyZW50Cj4gaXNzdWVzIEkgYmVs aWV2ZSBpdCBpcyBub3cgdGltZSB0byBtb3ZlIFBTUiB0byBhIG1vcmUgcmVsaWFibGUgdmFsaWRh dGlvbi4KPiBNYXliZSBub3QgYSBwZXJmZWN0IG9uZSBhcyB3ZSBkcmVhbWVkIGZvciB0aGlzIHNp bmtfY3JjLCBidXQgYXQgbGVhc3QgbW9yZQo+IHJlbGlhYmxlLgo+IApHb29kIHJpZGRhbmNlLgpS ZXZpZXdlZC1ieTogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRl bC5jb20+Cgo+IENjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGlu dGVsLmNvbT4KPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiBT aWduZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIHwgIDgxIC0tLS0tLS0tLS0t LS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICB8IDEyMyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oICAgIHwgICAyIC0KPiAgMyBmaWxlcyBjaGFuZ2VkLCAyMDYgZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBpbmRleCBmNjE0MmQ3OGVkZTQuLmU4ZmEx MDZhMzY1NQo+IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtMjc2 MSw4NiArMjc2MSw2IEBAIERFRklORV9TSU1QTEVfQVRUUklCVVRFKGk5MTVfZWRwX3Bzcl9kZWJ1 Z19mb3BzLAo+ICAJCQlpOTE1X2VkcF9wc3JfZGVidWdfZ2V0LCBpOTE1X2VkcF9wc3JfZGVidWdf c2V0LAo+ICAJCQkiJWxsdVxuIik7Cj4gCj4gLXN0YXRpYyBpbnQgaTkxNV9zaW5rX2NyYyhzdHJ1 Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gLXsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IG5vZGVfdG9faTkxNShtLT5wcml2YXRlKTsKPiAtCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiAtCXN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvcjsKPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBjb25uX2l0ZXI7 Cj4gLQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gTlVMTDsKPiAtCXN0cnVjdCBkcm1fbW9k ZXNldF9hY3F1aXJlX2N0eCBjdHg7Cj4gLQlpbnQgcmV0Owo+IC0JdTggY3JjWzZdOwo+IC0KPiAt CWRybV9tb2Rlc2V0X2FjcXVpcmVfaW5pdCgmY3R4LCBEUk1fTU9ERVNFVF9BQ1FVSVJFX0lOVEVS UlVQVElCTEUpOwo+IC0KPiAtCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJmNv bm5faXRlcik7Cj4gLQo+IC0JZm9yX2VhY2hfaW50ZWxfY29ubmVjdG9yX2l0ZXIoY29ubmVjdG9y LCAmY29ubl9pdGVyKSB7Cj4gLQkJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+IC0JCXN0cnVjdCBk cm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZTsKPiAtCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZTsKPiAtCj4gLQkJaWYgKGNvbm5lY3Rvci0+YmFzZS5jb25uZWN0b3JfdHlwZSAh PSBEUk1fTU9ERV9DT05ORUNUT1JfZURQKQo+IC0JCQljb250aW51ZTsKPiAtCj4gLXJldHJ5Ogo+ IC0JCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9t dXRleCwgJmN0eCk7Cj4gLQkJaWYgKHJldCkKPiAtCQkJZ290byBlcnI7Cj4gLQo+IC0JCXN0YXRl ID0gY29ubmVjdG9yLT5iYXNlLnN0YXRlOwo+IC0JCWlmICghc3RhdGUtPmJlc3RfZW5jb2RlcikK PiAtCQkJY29udGludWU7Cj4gLQo+IC0JCWNydGMgPSBzdGF0ZS0+Y3J0YzsKPiAtCQlyZXQgPSBk cm1fbW9kZXNldF9sb2NrKCZjcnRjLT5tdXRleCwgJmN0eCk7Cj4gLQkJaWYgKHJldCkKPiAtCQkJ Z290byBlcnI7Cj4gLQo+IC0JCWNydGNfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMt PnN0YXRlKTsKPiAtCQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQo+IC0JCQljb250aW51 ZTsKPiAtCj4gLQkJLyoKPiAtCQkgKiBXZSBuZWVkIHRvIHdhaXQgZm9yIGFsbCBjcnRjIHVwZGF0 ZXMgdG8gY29tcGxldGUsIHRvIG1ha2UKPiAtCQkgKiBzdXJlIGFueSBwZW5kaW5nIG1vZGVzZXRz IGFuZCBwbGFuZSB1cGRhdGVzIGFyZSBjb21wbGV0ZWQuCj4gLQkJICovCj4gLQkJaWYgKGNydGNf c3RhdGUtPmJhc2UuY29tbWl0KSB7Cj4gLQkJCXJldCA9Cj4gd2FpdF9mb3JfY29tcGxldGlvbl9p bnRlcnJ1cHRpYmxlKCZjcnRjX3N0YXRlLT5iYXNlLmNvbW1pdC0+aHdfZG9uZSk7IC0KPiAtCQkJ aWYgKHJldCkKPiAtCQkJCWdvdG8gZXJyOwo+IC0JCX0KPiAtCj4gLQkJaW50ZWxfZHAgPSBlbmNf dG9faW50ZWxfZHAoc3RhdGUtPmJlc3RfZW5jb2Rlcik7Cj4gLQo+IC0JCXJldCA9IGludGVsX2Rw X3NpbmtfY3JjKGludGVsX2RwLCBjcnRjX3N0YXRlLCBjcmMpOwo+IC0JCWlmIChyZXQpCj4gLQkJ CWdvdG8gZXJyOwo+IC0KPiAtCQlzZXFfcHJpbnRmKG0sICIlMDJ4JTAyeCUwMnglMDJ4JTAyeCUw MnhcbiIsCj4gLQkJCSAgIGNyY1swXSwgY3JjWzFdLCBjcmNbMl0sCj4gLQkJCSAgIGNyY1szXSwg Y3JjWzRdLCBjcmNbNV0pOwo+IC0JCWdvdG8gb3V0Owo+IC0KPiAtZXJyOgo+IC0JCWlmIChyZXQg PT0gLUVERUFETEspIHsKPiAtCQkJcmV0ID0gZHJtX21vZGVzZXRfYmFja29mZigmY3R4KTsKPiAt CQkJaWYgKCFyZXQpCj4gLQkJCQlnb3RvIHJldHJ5Owo+IC0JCX0KPiAtCQlnb3RvIG91dDsKPiAt CX0KPiAtCXJldCA9IC1FTk9ERVY7Cj4gLW91dDoKPiAtCWRybV9jb25uZWN0b3JfbGlzdF9pdGVy X2VuZCgmY29ubl9pdGVyKTsKPiAtCWRybV9tb2Rlc2V0X2Ryb3BfbG9ja3MoJmN0eCk7Cj4gLQlk cm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7Cj4gLQo+IC0JcmV0dXJuIHJldDsKPiAtfQo+ IC0KPiAgc3RhdGljIGludCBpOTE1X2VuZXJneV91SihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQg KmRhdGEpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG5vZGVf dG9faTkxNShtLT5wcml2YXRlKTsKPiBAQCAtNDc4NCw3ICs0NzA0LDYgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1faW5mb19saXN0IGk5MTVfZGVidWdmc19saXN0W10KPiA9IHsgeyJpOTE1X3Bw Z3R0X2luZm8iLCBpOTE1X3BwZ3R0X2luZm8sIDB9LAo+ICAJeyJpOTE1X2xsYyIsIGk5MTVfbGxj LCAwfSwKPiAgCXsiaTkxNV9lZHBfcHNyX3N0YXR1cyIsIGk5MTVfZWRwX3Bzcl9zdGF0dXMsIDB9 LAo+IC0JeyJpOTE1X3NpbmtfY3JjX2VEUDEiLCBpOTE1X3NpbmtfY3JjLCAwfSwKPiAgCXsiaTkx NV9lbmVyZ3lfdUoiLCBpOTE1X2VuZXJneV91SiwgMH0sCj4gIAl7Imk5MTVfcnVudGltZV9wbV9z dGF0dXMiLCBpOTE1X3J1bnRpbWVfcG1fc3RhdHVzLCAwfSwKPiAgCXsiaTkxNV9wb3dlcl9kb21h aW5faW5mbyIsIGk5MTVfcG93ZXJfZG9tYWluX2luZm8sIDB9LAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jIGluZGV4IDViZTA3ZTFkODE2ZC4uZWZkZDRiNDA4ZDUxIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCj4gQEAgLTM5MDUsMTI5ICszOTA1LDYgQEAgaW50ZWxfZHBfY29uZmlndXJl X21zdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJCQkJCWludGVsX2RwLT5pc19tc3Qp Owo+ICB9Cj4gCj4gLXN0YXRpYyBpbnQgaW50ZWxfZHBfc2lua19jcmNfc3RvcChzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLAo+IC0JCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwgYm9vbCBkaXNhYmxlX3dhKQo+IC17Cj4gLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0 ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiAtCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwo+ IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPmJhc2UuY3J0Yyk7Cj4gLQl1OCBidWY7Cj4gLQlpbnQgcmV0ID0gMDsKPiAtCWludCBjb3Vu dCA9IDA7Cj4gLQlpbnQgYXR0ZW1wdHMgPSAxMDsKPiAtCj4gLQlpZiAoZHJtX2RwX2RwY2RfcmVh ZGIoJmludGVsX2RwLT5hdXgsIERQX1RFU1RfU0lOSywgJmJ1ZikgPCAwKSB7Cj4gLQkJRFJNX0RF QlVHX0tNUygiU2luayBDUkMgY291bGRuJ3QgYmUgc3RvcHBlZCBwcm9wZXJseVxuIik7Cj4gLQkJ cmV0ID0gLUVJTzsKPiAtCQlnb3RvIG91dDsKPiAtCX0KPiAtCj4gLQlpZiAoZHJtX2RwX2RwY2Rf d3JpdGViKCZpbnRlbF9kcC0+YXV4LCBEUF9URVNUX1NJTkssCj4gLQkJCSAgICAgICBidWYgJiB+ RFBfVEVTVF9TSU5LX1NUQVJUKSA8IDApIHsKPiAtCQlEUk1fREVCVUdfS01TKCJTaW5rIENSQyBj b3VsZG4ndCBiZSBzdG9wcGVkIHByb3Blcmx5XG4iKTsKPiAtCQlyZXQgPSAtRUlPOwo+IC0JCWdv dG8gb3V0Owo+IC0JfQo+IC0KPiAtCWRvIHsKPiAtCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2 X3ByaXYsIGludGVsX2NydGMtPnBpcGUpOwo+IC0KPiAtCQlpZiAoZHJtX2RwX2RwY2RfcmVhZGIo JmludGVsX2RwLT5hdXgsCj4gLQkJCQkgICAgICBEUF9URVNUX1NJTktfTUlTQywgJmJ1ZikgPCAw KSB7Cj4gLQkJCXJldCA9IC1FSU87Cj4gLQkJCWdvdG8gb3V0Owo+IC0JCX0KPiAtCQljb3VudCA9 IGJ1ZiAmIERQX1RFU1RfQ09VTlRfTUFTSzsKPiAtCX0gd2hpbGUgKC0tYXR0ZW1wdHMgJiYgY291 bnQpOwo+IC0KPiAtCWlmIChhdHRlbXB0cyA9PSAwKSB7Cj4gLQkJRFJNX0RFQlVHX0tNUygiVElN RU9VVDogU2luayBDUkMgY291bnRlciBpcyBub3QgemVyb2VkIGFmdGVyIApjYWxjdWxhdGlvbgo+ IGlzIHN0b3BwZWRcbiIpOyAtCQlyZXQgPSAtRVRJTUVET1VUOwo+IC0JfQo+IC0KPiAtIG91dDoK PiAtCWlmIChkaXNhYmxlX3dhKQo+IC0JCWhzd19lbmFibGVfaXBzKGNydGNfc3RhdGUpOwo+IC0J cmV0dXJuIHJldDsKPiAtfQo+IC0KPiAtc3RhdGljIGludCBpbnRlbF9kcF9zaW5rX2NyY19zdGFy dChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+IC0JCQkJICAgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCj4gLXsKPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRp Z19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+IC0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Cj4gLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKPiAtCXU4IGJ1ZjsKPiAtCWludCByZXQ7Cj4gLQo+IC0JaWYgKGRybV9kcF9k cGNkX3JlYWRiKCZpbnRlbF9kcC0+YXV4LCBEUF9URVNUX1NJTktfTUlTQywgJmJ1ZikgPCAwKQo+ IC0JCXJldHVybiAtRUlPOwo+IC0KPiAtCWlmICghKGJ1ZiAmIERQX1RFU1RfQ1JDX1NVUFBPUlRF RCkpCj4gLQkJcmV0dXJuIC1FTk9UVFk7Cj4gLQo+IC0JaWYgKGRybV9kcF9kcGNkX3JlYWRiKCZp bnRlbF9kcC0+YXV4LCBEUF9URVNUX1NJTkssICZidWYpIDwgMCkKPiAtCQlyZXR1cm4gLUVJTzsK PiAtCj4gLQlpZiAoYnVmICYgRFBfVEVTVF9TSU5LX1NUQVJUKSB7Cj4gLQkJcmV0ID0gaW50ZWxf ZHBfc2lua19jcmNfc3RvcChpbnRlbF9kcCwgY3J0Y19zdGF0ZSwgZmFsc2UpOwo+IC0JCWlmIChy ZXQpCj4gLQkJCXJldHVybiByZXQ7Cj4gLQl9Cj4gLQo+IC0JaHN3X2Rpc2FibGVfaXBzKGNydGNf c3RhdGUpOwo+IC0KPiAtCWlmIChkcm1fZHBfZHBjZF93cml0ZWIoJmludGVsX2RwLT5hdXgsIERQ X1RFU1RfU0lOSywKPiAtCQkJICAgICAgIGJ1ZiB8IERQX1RFU1RfU0lOS19TVEFSVCkgPCAwKSB7 Cj4gLQkJaHN3X2VuYWJsZV9pcHMoY3J0Y19zdGF0ZSk7Cj4gLQkJcmV0dXJuIC1FSU87Cj4gLQl9 Cj4gLQo+IC0JaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldl9wcml2LCBpbnRlbF9jcnRjLT5waXBl KTsKPiAtCXJldHVybiAwOwo+IC19Cj4gLQo+IC1pbnQgaW50ZWxfZHBfc2lua19jcmMoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwgc3RydWN0IGludGVsX2NydGNfc3RhdGUKPiAqY3J0Y19zdGF0 ZSwgdTggKmNyYykgLXsKPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0g ZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj KTsKPiAtCXU4IGJ1ZjsKPiAtCWludCBjb3VudCwgcmV0Owo+IC0JaW50IGF0dGVtcHRzID0gNjsK PiAtCj4gLQlyZXQgPSBpbnRlbF9kcF9zaW5rX2NyY19zdGFydChpbnRlbF9kcCwgY3J0Y19zdGF0 ZSk7Cj4gLQlpZiAocmV0KQo+IC0JCXJldHVybiByZXQ7Cj4gLQo+IC0JZG8gewo+IC0JCWludGVs X3dhaXRfZm9yX3ZibGFuayhkZXZfcHJpdiwgaW50ZWxfY3J0Yy0+cGlwZSk7Cj4gLQo+IC0JCWlm IChkcm1fZHBfZHBjZF9yZWFkYigmaW50ZWxfZHAtPmF1eCwKPiAtCQkJCSAgICAgIERQX1RFU1Rf U0lOS19NSVNDLCAmYnVmKSA8IDApIHsKPiAtCQkJcmV0ID0gLUVJTzsKPiAtCQkJZ290byBzdG9w Owo+IC0JCX0KPiAtCQljb3VudCA9IGJ1ZiAmIERQX1RFU1RfQ09VTlRfTUFTSzsKPiAtCj4gLQl9 IHdoaWxlICgtLWF0dGVtcHRzICYmIGNvdW50ID09IDApOwo+IC0KPiAtCWlmIChhdHRlbXB0cyA9 PSAwKSB7Cj4gLQkJRFJNX0VSUk9SKCJQYW5lbCBpcyB1bmFibGUgdG8gY2FsY3VsYXRlIGFueSBD UkMgYWZ0ZXIgNiB2YmxhbmtzXG4iKTsKPiAtCQlyZXQgPSAtRVRJTUVET1VUOwo+IC0JCWdvdG8g c3RvcDsKPiAtCX0KPiAtCj4gLQlpZiAoZHJtX2RwX2RwY2RfcmVhZCgmaW50ZWxfZHAtPmF1eCwg RFBfVEVTVF9DUkNfUl9DUiwgY3JjLCA2KSA8IDApIHsKPiAtCQlyZXQgPSAtRUlPOwo+IC0JCWdv dG8gc3RvcDsKPiAtCX0KPiAtCj4gLXN0b3A6Cj4gLQlpbnRlbF9kcF9zaW5rX2NyY19zdG9wKGlu dGVsX2RwLCBjcnRjX3N0YXRlLCB0cnVlKTsKPiAtCXJldHVybiByZXQ7Cj4gLX0KPiAtCj4gIHN0 YXRpYyBib29sCj4gIGludGVsX2RwX2dldF9zaW5rX2lycShzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLCB1OCAqc2lua19pcnFfdmVjdG9yKQo+ICB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCBpbmRleCBlMDliNDJkOTFkMWUuLjhlNmVlMmZlNjZlNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gQEAgLTE2NjUsOCArMTY2NSw2IEBAIHZvaWQgaW50ZWxfZHBfc2lua19kcG1z KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludAo+IG1vZGUpOyB2b2lkIGludGVsX2RwX2Vu Y29kZXJfcmVzZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKPiAgdm9pZCBpbnRlbF9k cF9lbmNvZGVyX3N1c3BlbmQoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpOwo+ ICB2b2lkIGludGVsX2RwX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIpOwo+IC1pbnQgaW50ZWxfZHBfc2lua19jcmMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwK PiAtCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgdTggKmNyYyk7 Cj4gIGJvb2wgaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gIAkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ ICAJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKTsKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK