From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kahola Subject: Re: [PATCH 4/7] drm/i915: Always use crtc_ timings when dealing with adjustead_mode Date: Thu, 24 Sep 2015 11:08:44 +0300 Message-ID: <1443082124.3303.12.camel@sorvi> References: <1441708851-24646-1-git-send-email-ville.syrjala@linux.intel.com> <1441708851-24646-5-git-send-email-ville.syrjala@linux.intel.com> Reply-To: mika.kahola@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 457DE6E78A for ; Thu, 24 Sep 2015 01:08:57 -0700 (PDT) In-Reply-To: <1441708851-24646-5-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ville.syrjala@linux.intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UmV2aWV3ZWQtYnk6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRlbC5jb20+CgpPbiBUdWUs IDIwMTUtMDktMDggYXQgMTM6NDAgKzAzMDAsIHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t IHdyb3RlOgo+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+Cj4gCj4gVGhlIGFkanVzdGVhZF9tb2RlIGNydGNfIHRpbWluZ3MgYXJlIHdoYXQgd2Ug d2lsbCBwcm9ncmFtIGludG8gdGhlIGhhcmR3YXJlLAo+IHNvIGl0J3MgdGhvc2UgdGltaW5ncyB3 ZSBzaG91bGQgYmUgbG9va2luZyBwcmFjdGljYWxseSBldmVyeXdoZXJlLgo+IAo+IFRoZSBub3Jt YWwgYW5kIGNydGNfIHRpbWluZ3Mgc2hvdWxkIGRpZmZlciBvbmx5IHdoZW4gc3RlcmUgZG91Ymxp bmcgaXMKPiB1c2VkLiBJbiB0aGF0IGNhc2UgdGhlIG5vcm1hbCB0aW1pbmdzIGFyZSB0aGUgb3Jp Z25hbCBub24tZG91YmxlZAo+IHRpbWlnbnMsIGFuZCBjcnRjXyB0aW1pbmdzIGFyZSB0aGUgZG91 YmxlZCB0aW1pbmdzIHVzZWQgYnkgdGhlIGhhcmR3YXJlLgo+IAo+IFRoZSBvbmx5IGNhc2Ugd2hl cmUgd2UgY29udGludWUgdG8gbG9vayBhdCB0aGUgbm9ybWFsIHRpbWluZ3MgaXMgd2hlbiB3ZQo+ IHBhc3MgdGhlIGFkanVzdGVkX21vZGUgdG8gZHJtX21hdGNoX3tjZWEsaGRtaX1fbW9kZSgpIHRv IGZpbmQgdGhlIFZJQy4KPiBkcm1fZWRpZCBrZWVwcyB0aGUgbW9kZXMgYXJvbnVuZCBpbiB0aGUg bm9uLWRvdWJsZSBmb3JtIG9ubHksIHNvIGl0Cj4gbmVlZHMgdGhlIG5vbi1kb3VibGUgdGltaW5n cyB0byBtYXRjaCBhZ2FpbnN0Lgo+IAo+IERvbmUgd2l0aCBzZWQKPiAncy9hZGp1c3RlZF9tb2Rl LT5cKFt2aFZIXVwpL2FkanVzdGVkX21vZGUtPmNydGNfXDEvZycKPiAncy9hZGp1c3RlZF9tb2Rl LT5jbG9jay9hZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrL2cnCj4gd2l0aCBhIG1hbnVhbCBzL1ZE aXNwbGF5L3ZkaXNwbGF5LyB3aXRoaW4gdGhlIGNvbW1lbnQgaW4gaW50ZWxfZHZvLmMKPiAKPiBT aWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kdm9faXZjaC5jICAgICAgfCAgOCAr Ky0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jICAgfCAgNCArLS0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDQgKy0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RzaS5jICAgICB8IDI0ICsrKysrKystLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kdm8uYyAgICAgfCAgOCArKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wYW5lbC5jICAgfCA1OCArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jICAgIHwgIDQgKy0tCj4gIDgg ZmlsZXMgY2hhbmdlZCwgNTYgaW5zZXJ0aW9ucygrKSwgNTYgZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2R2b19pdmNoLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kdm9faXZjaC5jCj4gaW5kZXggNzMyY2U4Ny4uZTA4MmY3NSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kdm9faXZjaC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZHZvX2l2Y2guYwo+IEBAIC00MTQsMTYgKzQxNCwxNiBAQCBzdGF0aWMgdm9pZCBpdmNo X21vZGVfc2V0KHN0cnVjdCBpbnRlbF9kdm9fZGV2aWNlICpkdm8sCj4gIAl2cjQwID0gKFZSNDBf U1RBTExfRU5BQkxFIHwgVlI0MF9WRVJUSUNBTF9JTlRFUlBfRU5BQkxFIHwKPiAgCQlWUjQwX0hP UklaT05UQUxfSU5URVJQX0VOQUJMRSk7Cj4gIAo+IC0JaWYgKG1vZGUtPmhkaXNwbGF5ICE9IGFk anVzdGVkX21vZGUtPmhkaXNwbGF5IHx8Cj4gLQkgICAgbW9kZS0+dmRpc3BsYXkgIT0gYWRqdXN0 ZWRfbW9kZS0+dmRpc3BsYXkpIHsKPiArCWlmIChtb2RlLT5oZGlzcGxheSAhPSBhZGp1c3RlZF9t b2RlLT5jcnRjX2hkaXNwbGF5IHx8Cj4gKwkgICAgbW9kZS0+dmRpc3BsYXkgIT0gYWRqdXN0ZWRf bW9kZS0+Y3J0Y192ZGlzcGxheSkgewo+ICAJCXVpbnQxNl90IHhfcmF0aW8sIHlfcmF0aW87Cj4g IAo+ICAJCXZyMDEgfD0gVlIwMV9QQU5FTF9GSVRfRU5BQkxFOwo+ICAJCXZyNDAgfD0gVlI0MF9D TE9DS19HQVRJTkdfRU5BQkxFOwo+ICAJCXhfcmF0aW8gPSAoKChtb2RlLT5oZGlzcGxheSAtIDEp IDw8IDE2KSAvCj4gLQkJCSAgIChhZGp1c3RlZF9tb2RlLT5oZGlzcGxheSAtIDEpKSA+PiAyOwo+ ICsJCQkgICAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSAtIDEpKSA+PiAyOwo+ICAJCXlf cmF0aW8gPSAoKChtb2RlLT52ZGlzcGxheSAtIDEpIDw8IDE2KSAvCj4gLQkJCSAgIChhZGp1c3Rl ZF9tb2RlLT52ZGlzcGxheSAtIDEpKSA+PiAyOwo+ICsJCQkgICAoYWRqdXN0ZWRfbW9kZS0+Y3J0 Y192ZGlzcGxheSAtIDEpKSA+PiAyOwo+ICAJCWl2Y2hfd3JpdGUoZHZvLCBWUjQyLCB4X3JhdGlv KTsKPiAgCQlpdmNoX3dyaXRlKGR2bywgVlI0MSwgeV9yYXRpbyk7Cj4gIAl9IGVsc2Ugewo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+IGluZGV4IGNhOTBiYTMuLjU4NDhhNTAgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiBAQCAtNzQsMTMgKzc0LDEzIEBAIHN0YXRp YyB1MzIgYXVkaW9fY29uZmlnX2hkbWlfcGl4ZWxfY2xvY2soY29uc3Qgc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmFkanVzdGVkCj4gIAlpbnQgaTsKPiAgCj4gIAlmb3IgKGkgPSAwOyBpIDwgQVJS QVlfU0laRShoZG1pX2F1ZGlvX2Nsb2NrKTsgaSsrKSB7Cj4gLQkJaWYgKGFkanVzdGVkX21vZGUt PmNsb2NrID09IGhkbWlfYXVkaW9fY2xvY2tbaV0uY2xvY2spCj4gKwkJaWYgKGFkanVzdGVkX21v ZGUtPmNydGNfY2xvY2sgPT0gaGRtaV9hdWRpb19jbG9ja1tpXS5jbG9jaykKPiAgCQkJYnJlYWs7 Cj4gIAl9Cj4gIAo+ICAJaWYgKGkgPT0gQVJSQVlfU0laRShoZG1pX2F1ZGlvX2Nsb2NrKSkgewo+ ICAJCURSTV9ERUJVR19LTVMoIkhETUkgYXVkaW8gcGl4ZWwgY2xvY2sgc2V0dGluZyBmb3IgJWQg bm90IGZvdW5kLCBmYWxsaW5nIGJhY2sgdG8gZGVmYXVsdHNcbiIsCj4gLQkJCSAgICAgIGFkanVz dGVkX21vZGUtPmNsb2NrKTsKPiArCQkJICAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayk7 Cj4gIAkJaSA9IDE7Cj4gIAl9Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK PiBpbmRleCBiOGI3NTQwLi5mODNlMjVkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+IEBAIC00MzU2LDcgKzQzNTYsNyBAQCBpbnQgc2tsX3VwZGF0ZV9zY2FsZXJfY3J0 YyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqc3RhdGUpCj4gIAlyZXR1cm4gc2tsX3VwZGF0ZV9z Y2FsZXIoc3RhdGUsICFzdGF0ZS0+YmFzZS5hY3RpdmUsIFNLTF9DUlRDX0lOREVYLAo+ICAJCSZz dGF0ZS0+c2NhbGVyX3N0YXRlLnNjYWxlcl9pZCwgRFJNX1JPVEFURV8wLAo+ICAJCXN0YXRlLT5w aXBlX3NyY193LCBzdGF0ZS0+cGlwZV9zcmNfaCwKPiAtCQlhZGp1c3RlZF9tb2RlLT5oZGlzcGxh eSwgYWRqdXN0ZWRfbW9kZS0+dmRpc3BsYXkpOwo+ICsJCWFkanVzdGVkX21vZGUtPmNydGNfaGRp c3BsYXksIGFkanVzdGVkX21vZGUtPmNydGNfdmRpc3BsYXkpOwo+ICB9Cj4gIAo+ICAvKioKPiBA QCAtNjU0Myw3ICs2NTQzLDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2NvbXB1dGVfY29uZmln KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJICogV2FQcnVuZU1vZGVXaXRoSW5jb3JyZWN0 SHN5bmNPZmZzZXQ6Y3RnLGVsayxpbGssc25iLGl2Yix2bHYsaHN3Lgo+ICAJICovCj4gIAlpZiAo KElOVEVMX0lORk8oZGV2KS0+Z2VuID4gNCB8fCBJU19HNFgoZGV2KSkgJiYKPiAtCQlhZGp1c3Rl ZF9tb2RlLT5oc3luY19zdGFydCA9PSBhZGp1c3RlZF9tb2RlLT5oZGlzcGxheSkKPiArCQlhZGp1 c3RlZF9tb2RlLT5jcnRjX2hzeW5jX3N0YXJ0ID09IGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3Bs YXkpCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+ICAJaWYgKEhBU19JUFMoZGV2KSkKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+IGluZGV4IDY3N2Q3MGUuLmRjMmY2N2UgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+IEBAIC03OCw3ICs3OCw3IEBAIHN0YXRp YyBib29sIGludGVsX2RwX21zdF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAl9Cj4gIAo+IC0JbXN0X3BibiA9IGRybV9k cF9jYWxjX3Bibl9tb2RlKGFkanVzdGVkX21vZGUtPmNsb2NrLCBicHApOwo+ICsJbXN0X3BibiA9 IGRybV9kcF9jYWxjX3Bibl9tb2RlKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssIGJwcCk7Cj4g IAo+ICAJcGlwZV9jb25maWctPnBibiA9IG1zdF9wYm47Cj4gIAlzbG90cyA9IGRybV9kcF9maW5k X3ZjcGlfc2xvdHMoJmludGVsX2RwLT5tc3RfbWdyLCBtc3RfcGJuKTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kc2kuYwo+IGluZGV4IDU1YWYwYzUuLjJkNGVjZmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kc2kuYwo+IEBAIC03MTAsMTAgKzcxMCwxMCBAQCBzdGF0aWMgdm9pZCBzZXRfZHNpX3Rp bWluZ3Moc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICAKPiAgCXUxNiBoYWN0aXZlLCBo ZnAsIGhzeW5jLCBoYnAsIHZmcCwgdnN5bmMsIHZicDsKPiAgCj4gLQloYWN0aXZlID0gYWRqdXN0 ZWRfbW9kZS0+aGRpc3BsYXk7Cj4gLQloZnAgPSBhZGp1c3RlZF9tb2RlLT5oc3luY19zdGFydCAt IGFkanVzdGVkX21vZGUtPmhkaXNwbGF5Owo+IC0JaHN5bmMgPSBhZGp1c3RlZF9tb2RlLT5oc3lu Y19lbmQgLSBhZGp1c3RlZF9tb2RlLT5oc3luY19zdGFydDsKPiAtCWhicCA9IGFkanVzdGVkX21v ZGUtPmh0b3RhbCAtIGFkanVzdGVkX21vZGUtPmhzeW5jX2VuZDsKPiArCWhhY3RpdmUgPSBhZGp1 c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5Owo+ICsJaGZwID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19o c3luY19zdGFydCAtIGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXk7Cj4gKwloc3luYyA9IGFk anVzdGVkX21vZGUtPmNydGNfaHN5bmNfZW5kIC0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oc3luY19z dGFydDsKPiArCWhicCA9IGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsIC0gYWRqdXN0ZWRfbW9k ZS0+Y3J0Y19oc3luY19lbmQ7Cj4gIAo+ICAJaWYgKGludGVsX2RzaS0+ZHVhbF9saW5rKSB7Cj4g IAkJaGFjdGl2ZSAvPSAyOwo+IEBAIC03MjQsOSArNzI0LDkgQEAgc3RhdGljIHZvaWQgc2V0X2Rz aV90aW1pbmdzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgCQloYnAgLz0gMjsKPiAg CX0KPiAgCj4gLQl2ZnAgPSBhZGp1c3RlZF9tb2RlLT52c3luY19zdGFydCAtIGFkanVzdGVkX21v ZGUtPnZkaXNwbGF5Owo+IC0JdnN5bmMgPSBhZGp1c3RlZF9tb2RlLT52c3luY19lbmQgLSBhZGp1 c3RlZF9tb2RlLT52c3luY19zdGFydDsKPiAtCXZicCA9IGFkanVzdGVkX21vZGUtPnZ0b3RhbCAt IGFkanVzdGVkX21vZGUtPnZzeW5jX2VuZDsKPiArCXZmcCA9IGFkanVzdGVkX21vZGUtPmNydGNf dnN5bmNfc3RhcnQgLSBhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5Owo+ICsJdnN5bmMgPSBh ZGp1c3RlZF9tb2RlLT5jcnRjX3ZzeW5jX2VuZCAtIGFkanVzdGVkX21vZGUtPmNydGNfdnN5bmNf c3RhcnQ7Cj4gKwl2YnAgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX3Z0b3RhbCAtIGFkanVzdGVkX21v ZGUtPmNydGNfdnN5bmNfZW5kOwo+ICAKPiAgCS8qIGhvcml6b250YWwgdmFsdWVzIGFyZSBpbiB0 ZXJtcyBvZiBoaWdoIHNwZWVkIGJ5dGUgY2xvY2sgKi8KPiAgCWhhY3RpdmUgPSB0eGJ5dGVjbGto cyhoYWN0aXZlLCBicHAsIGxhbmVfY291bnQsCj4gQEAgLTc2Nyw3ICs3NjcsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9kc2lfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rl cikKPiAgCj4gIAlEUk1fREVCVUdfS01TKCJwaXBlICVjXG4iLCBwaXBlX25hbWUoaW50ZWxfY3J0 Yy0+cGlwZSkpOwo+ICAKPiAtCW1vZGVfaGRpc3BsYXkgPSBhZGp1c3RlZF9tb2RlLT5oZGlzcGxh eTsKPiArCW1vZGVfaGRpc3BsYXkgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5Owo+ICAK PiAgCWlmIChpbnRlbF9kc2ktPmR1YWxfbGluaykgewo+ICAJCW1vZGVfaGRpc3BsYXkgLz0gMjsK PiBAQCAtNzk0LDcgKzc5NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVwYXJlKHN0cnVj dCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ICAJCUk5MTVfV1JJVEUoTUlQSV9EUEhZ X1BBUkFNKHBvcnQpLCBpbnRlbF9kc2ktPmRwaHlfcmVnKTsKPiAgCj4gIAkJSTkxNV9XUklURShN SVBJX0RQSV9SRVNPTFVUSU9OKHBvcnQpLAo+IC0JCQlhZGp1c3RlZF9tb2RlLT52ZGlzcGxheSA8 PCBWRVJUSUNBTF9BRERSRVNTX1NISUZUIHwKPiArCQkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y192ZGlz cGxheSA8PCBWRVJUSUNBTF9BRERSRVNTX1NISUZUIHwKPiAgCQkJbW9kZV9oZGlzcGxheSA8PCBI T1JJWk9OVEFMX0FERFJFU1NfU0hJRlQpOwo+ICAJfQo+ICAKPiBAQCAtODQwLDEzICs4NDAsMTMg QEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIgKmlu dGVsX2VuY29kZXIpCj4gIAkJaWYgKGlzX3ZpZF9tb2RlKGludGVsX2RzaSkgJiYKPiAgCQkJaW50 ZWxfZHNpLT52aWRlb19tb2RlX2Zvcm1hdCA9PSBWSURFT19NT0RFX0JVUlNUKSB7Cj4gIAkJCUk5 MTVfV1JJVEUoTUlQSV9IU19UWF9USU1FT1VUKHBvcnQpLAo+IC0JCQkJdHhieXRlY2xraHMoYWRq dXN0ZWRfbW9kZS0+aHRvdGFsLCBicHAsCj4gKwkJCQl0eGJ5dGVjbGtocyhhZGp1c3RlZF9tb2Rl LT5jcnRjX2h0b3RhbCwgYnBwLAo+ICAJCQkJCSAgICBpbnRlbF9kc2ktPmxhbmVfY291bnQsCj4g IAkJCQkJICAgIGludGVsX2RzaS0+YnVyc3RfbW9kZV9yYXRpbykgKyAxKTsKPiAgCQl9IGVsc2Ug ewo+ICAJCQlJOTE1X1dSSVRFKE1JUElfSFNfVFhfVElNRU9VVChwb3J0KSwKPiAtCQkJCXR4Ynl0 ZWNsa2hzKGFkanVzdGVkX21vZGUtPnZ0b3RhbCAqCj4gLQkJCQkJICAgIGFkanVzdGVkX21vZGUt Pmh0b3RhbCwKPiArCQkJCXR4Ynl0ZWNsa2hzKGFkanVzdGVkX21vZGUtPmNydGNfdnRvdGFsICoK PiArCQkJCQkgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWwsCj4gIAkJCQkJICAgIGJwcCwg aW50ZWxfZHNpLT5sYW5lX2NvdW50LAo+ICAJCQkJCSAgICBpbnRlbF9kc2ktPmJ1cnN0X21vZGVf cmF0aW8pICsgMSk7Cj4gIAkJfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5jCj4gaW5kZXggMGJj OGFhOC4uNTU1YWZiYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k dm8uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5jCj4gQEAgLTI4NSwx MSArMjg1LDExIEBAIHN0YXRpYyB2b2lkIGludGVsX2R2b19wcmVfZW5hYmxlKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyKQo+ICAJCWR2b192YWwgfD0gRFZPX1ZTWU5DX0FDVElWRV9ISUdI Owo+ICAKPiAgCS8qSTkxNV9XUklURShEVk9CX1NSQ0RJTSwKPiAtCSAgKGFkanVzdGVkX21vZGUt PmhkaXNwbGF5IDw8IERWT19TUkNESU1fSE9SSVpPTlRBTF9TSElGVCkgfAo+IC0JICAoYWRqdXN0 ZWRfbW9kZS0+VkRpc3BsYXkgPDwgRFZPX1NSQ0RJTV9WRVJUSUNBTF9TSElGVCkpOyovCj4gKwkg IChhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5IDw8IERWT19TUkNESU1fSE9SSVpPTlRBTF9T SElGVCkgfAo+ICsJICAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y192ZGlzcGxheSA8PCBEVk9fU1JDRElN X1ZFUlRJQ0FMX1NISUZUKSk7Ki8KPiAgCUk5MTVfV1JJVEUoZHZvX3NyY2RpbV9yZWcsCj4gLQkJ ICAgKGFkanVzdGVkX21vZGUtPmhkaXNwbGF5IDw8IERWT19TUkNESU1fSE9SSVpPTlRBTF9TSElG VCkgfAo+IC0JCSAgIChhZGp1c3RlZF9tb2RlLT52ZGlzcGxheSA8PCBEVk9fU1JDRElNX1ZFUlRJ Q0FMX1NISUZUKSk7Cj4gKwkJICAgKGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkgPDwgRFZP X1NSQ0RJTV9IT1JJWk9OVEFMX1NISUZUKSB8Cj4gKwkJICAgKGFkanVzdGVkX21vZGUtPmNydGNf dmRpc3BsYXkgPDwgRFZPX1NSQ0RJTV9WRVJUSUNBTF9TSElGVCkpOwo+ICAJLypJOTE1X1dSSVRF KERWT0IsIGR2b192YWwpOyovCj4gIAlJOTE1X1dSSVRFKGR2b19yZWcsIGR2b192YWwpOwo+ICB9 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gaW5kZXggZDA3MWJlZC4uODNlYzk0YSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+IEBAIC0xMTMsNTEgKzExMyw1MSBA QCBpbnRlbF9wY2hfcGFuZWxfZml0dGluZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywK PiAgCXggPSB5ID0gd2lkdGggPSBoZWlnaHQgPSAwOwo+ICAKPiAgCS8qIE5hdGl2ZSBtb2RlcyBk b24ndCBuZWVkIGZpdHRpbmcgKi8KPiAtCWlmIChhZGp1c3RlZF9tb2RlLT5oZGlzcGxheSA9PSBw aXBlX2NvbmZpZy0+cGlwZV9zcmNfdyAmJgo+IC0JICAgIGFkanVzdGVkX21vZGUtPnZkaXNwbGF5 ID09IHBpcGVfY29uZmlnLT5waXBlX3NyY19oKQo+ICsJaWYgKGFkanVzdGVkX21vZGUtPmNydGNf aGRpc3BsYXkgPT0gcGlwZV9jb25maWctPnBpcGVfc3JjX3cgJiYKPiArCSAgICBhZGp1c3RlZF9t b2RlLT5jcnRjX3ZkaXNwbGF5ID09IHBpcGVfY29uZmlnLT5waXBlX3NyY19oKQo+ICAJCWdvdG8g ZG9uZTsKPiAgCj4gIAlzd2l0Y2ggKGZpdHRpbmdfbW9kZSkgewo+ICAJY2FzZSBEUk1fTU9ERV9T Q0FMRV9DRU5URVI6Cj4gIAkJd2lkdGggPSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdzsKPiAgCQlo ZWlnaHQgPSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaDsKPiAtCQl4ID0gKGFkanVzdGVkX21vZGUt PmhkaXNwbGF5IC0gd2lkdGggKyAxKS8yOwo+IC0JCXkgPSAoYWRqdXN0ZWRfbW9kZS0+dmRpc3Bs YXkgLSBoZWlnaHQgKyAxKS8yOwo+ICsJCXggPSAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxh eSAtIHdpZHRoICsgMSkvMjsKPiArCQl5ID0gKGFkanVzdGVkX21vZGUtPmNydGNfdmRpc3BsYXkg LSBoZWlnaHQgKyAxKS8yOwo+ICAJCWJyZWFrOwo+ICAKPiAgCWNhc2UgRFJNX01PREVfU0NBTEVf QVNQRUNUOgo+ICAJCS8qIFNjYWxlIGJ1dCBwcmVzZXJ2ZSB0aGUgYXNwZWN0IHJhdGlvICovCj4g IAkJewo+IC0JCQl1MzIgc2NhbGVkX3dpZHRoID0gYWRqdXN0ZWRfbW9kZS0+aGRpc3BsYXkKPiAr CQkJdTMyIHNjYWxlZF93aWR0aCA9IGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkKPiAgCQkJ CSogcGlwZV9jb25maWctPnBpcGVfc3JjX2g7Cj4gIAkJCXUzMiBzY2FsZWRfaGVpZ2h0ID0gcGlw ZV9jb25maWctPnBpcGVfc3JjX3cKPiAtCQkJCSogYWRqdXN0ZWRfbW9kZS0+dmRpc3BsYXk7Cj4g KwkJCQkqIGFkanVzdGVkX21vZGUtPmNydGNfdmRpc3BsYXk7Cj4gIAkJCWlmIChzY2FsZWRfd2lk dGggPiBzY2FsZWRfaGVpZ2h0KSB7IC8qIHBpbGxhciAqLwo+ICAJCQkJd2lkdGggPSBzY2FsZWRf aGVpZ2h0IC8gcGlwZV9jb25maWctPnBpcGVfc3JjX2g7Cj4gIAkJCQlpZiAod2lkdGggJiAxKQo+ ICAJCQkJCXdpZHRoKys7Cj4gLQkJCQl4ID0gKGFkanVzdGVkX21vZGUtPmhkaXNwbGF5IC0gd2lk dGggKyAxKSAvIDI7Cj4gKwkJCQl4ID0gKGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkgLSB3 aWR0aCArIDEpIC8gMjsKPiAgCQkJCXkgPSAwOwo+IC0JCQkJaGVpZ2h0ID0gYWRqdXN0ZWRfbW9k ZS0+dmRpc3BsYXk7Cj4gKwkJCQloZWlnaHQgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5 Owo+ICAJCQl9IGVsc2UgaWYgKHNjYWxlZF93aWR0aCA8IHNjYWxlZF9oZWlnaHQpIHsgLyogbGV0 dGVyICovCj4gIAkJCQloZWlnaHQgPSBzY2FsZWRfd2lkdGggLyBwaXBlX2NvbmZpZy0+cGlwZV9z cmNfdzsKPiAgCQkJCWlmIChoZWlnaHQgJiAxKQo+ICAJCQkJICAgIGhlaWdodCsrOwo+IC0JCQkJ eSA9IChhZGp1c3RlZF9tb2RlLT52ZGlzcGxheSAtIGhlaWdodCArIDEpIC8gMjsKPiArCQkJCXkg PSAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y192ZGlzcGxheSAtIGhlaWdodCArIDEpIC8gMjsKPiAgCQkJ CXggPSAwOwo+IC0JCQkJd2lkdGggPSBhZGp1c3RlZF9tb2RlLT5oZGlzcGxheTsKPiArCQkJCXdp ZHRoID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheTsKPiAgCQkJfSBlbHNlIHsKPiAgCQkJ CXggPSB5ID0gMDsKPiAtCQkJCXdpZHRoID0gYWRqdXN0ZWRfbW9kZS0+aGRpc3BsYXk7Cj4gLQkJ CQloZWlnaHQgPSBhZGp1c3RlZF9tb2RlLT52ZGlzcGxheTsKPiArCQkJCXdpZHRoID0gYWRqdXN0 ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheTsKPiArCQkJCWhlaWdodCA9IGFkanVzdGVkX21vZGUtPmNy dGNfdmRpc3BsYXk7Cj4gIAkJCX0KPiAgCQl9Cj4gIAkJYnJlYWs7Cj4gIAo+ICAJY2FzZSBEUk1f TU9ERV9TQ0FMRV9GVUxMU0NSRUVOOgo+ICAJCXggPSB5ID0gMDsKPiAtCQl3aWR0aCA9IGFkanVz dGVkX21vZGUtPmhkaXNwbGF5Owo+IC0JCWhlaWdodCA9IGFkanVzdGVkX21vZGUtPnZkaXNwbGF5 Owo+ICsJCXdpZHRoID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheTsKPiArCQloZWlnaHQg PSBhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5Owo+ICAJCWJyZWFrOwo+ICAKPiAgCWRlZmF1 bHQ6Cj4gQEAgLTE4Miw3ICsxODIsNyBAQCBjZW50cmVfaG9yaXpvbnRhbGx5KHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlLAo+ICAJYmxhbmtfd2lkdGggPSBhZGp1c3RlZF9t b2RlLT5jcnRjX2hibGFua19lbmQgLSBhZGp1c3RlZF9tb2RlLT5jcnRjX2hibGFua19zdGFydDsK PiAgCXN5bmNfcG9zID0gKGJsYW5rX3dpZHRoIC0gc3luY193aWR0aCArIDEpIC8gMjsKPiAgCj4g LQlib3JkZXIgPSAoYWRqdXN0ZWRfbW9kZS0+aGRpc3BsYXkgLSB3aWR0aCArIDEpIC8gMjsKPiAr CWJvcmRlciA9IChhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5IC0gd2lkdGggKyAxKSAvIDI7 Cj4gIAlib3JkZXIgKz0gYm9yZGVyICYgMTsgLyogbWFrZSB0aGUgYm9yZGVyIGV2ZW4gKi8KPiAg Cj4gIAlhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5ID0gd2lkdGg7Cj4gQEAgLTIwNCw3ICsy MDQsNyBAQCBjZW50cmVfdmVydGljYWxseShzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0 ZWRfbW9kZSwKPiAgCWJsYW5rX3dpZHRoID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y192YmxhbmtfZW5k IC0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y192Ymxhbmtfc3RhcnQ7Cj4gIAlzeW5jX3BvcyA9IChibGFu a193aWR0aCAtIHN5bmNfd2lkdGggKyAxKSAvIDI7Cj4gIAo+IC0JYm9yZGVyID0gKGFkanVzdGVk X21vZGUtPnZkaXNwbGF5IC0gaGVpZ2h0ICsgMSkgLyAyOwo+ICsJYm9yZGVyID0gKGFkanVzdGVk X21vZGUtPmNydGNfdmRpc3BsYXkgLSBoZWlnaHQgKyAxKSAvIDI7Cj4gIAo+ICAJYWRqdXN0ZWRf bW9kZS0+Y3J0Y192ZGlzcGxheSA9IGhlaWdodDsKPiAgCWFkanVzdGVkX21vZGUtPmNydGNfdmJs YW5rX3N0YXJ0ID0gaGVpZ2h0ICsgYm9yZGVyOwo+IEBAIC0yMzEsMTAgKzIzMSwxMCBAQCBzdGF0 aWMgdm9pZCBpOTY1X3NjYWxlX2FzcGVjdChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9j b25maWcsCj4gIAkJCSAgICAgIHUzMiAqcGZpdF9jb250cm9sKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3Rl ZF9tb2RlOwo+IC0JdTMyIHNjYWxlZF93aWR0aCA9IGFkanVzdGVkX21vZGUtPmhkaXNwbGF5ICoK PiArCXUzMiBzY2FsZWRfd2lkdGggPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5ICoKPiAg CQlwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaDsKPiAgCXUzMiBzY2FsZWRfaGVpZ2h0ID0gcGlwZV9j b25maWctPnBpcGVfc3JjX3cgKgo+IC0JCWFkanVzdGVkX21vZGUtPnZkaXNwbGF5Owo+ICsJCWFk anVzdGVkX21vZGUtPmNydGNfdmRpc3BsYXk7Cj4gIAo+ICAJLyogOTY1KyBpcyBlYXN5LCBpdCBk b2VzIGV2ZXJ5dGhpbmcgaW4gaHcgKi8KPiAgCWlmIChzY2FsZWRfd2lkdGggPiBzY2FsZWRfaGVp Z2h0KQo+IEBAIC0yNDMsNyArMjQzLDcgQEAgc3RhdGljIHZvaWQgaTk2NV9zY2FsZV9hc3BlY3Qo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICAJZWxzZSBpZiAoc2NhbGVk X3dpZHRoIDwgc2NhbGVkX2hlaWdodCkKPiAgCQkqcGZpdF9jb250cm9sIHw9IFBGSVRfRU5BQkxF IHwKPiAgCQkJUEZJVF9TQ0FMSU5HX0xFVFRFUjsKPiAtCWVsc2UgaWYgKGFkanVzdGVkX21vZGUt PmhkaXNwbGF5ICE9IHBpcGVfY29uZmlnLT5waXBlX3NyY193KQo+ICsJZWxzZSBpZiAoYWRqdXN0 ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSAhPSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdykKPiAgCQkq cGZpdF9jb250cm9sIHw9IFBGSVRfRU5BQkxFIHwgUEZJVF9TQ0FMSU5HX0FVVE87Cj4gIH0KPiAg Cj4gQEAgLTI1MiwxMCArMjUyLDEwIEBAIHN0YXRpYyB2b2lkIGk5eHhfc2NhbGVfYXNwZWN0KHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgCQkJICAgICAgdTMyICpib3Jk ZXIpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBp cGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gLQl1MzIgc2NhbGVkX3dpZHRoID0gYWRq dXN0ZWRfbW9kZS0+aGRpc3BsYXkgKgo+ICsJdTMyIHNjYWxlZF93aWR0aCA9IGFkanVzdGVkX21v ZGUtPmNydGNfaGRpc3BsYXkgKgo+ICAJCXBpcGVfY29uZmlnLT5waXBlX3NyY19oOwo+ICAJdTMy IHNjYWxlZF9oZWlnaHQgPSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdyAqCj4gLQkJYWRqdXN0ZWRf bW9kZS0+dmRpc3BsYXk7Cj4gKwkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y192ZGlzcGxheTsKPiAgCXUz MiBiaXRzOwo+ICAKPiAgCS8qCj4gQEAgLTI2OSw5ICsyNjksOSBAQCBzdGF0aWMgdm9pZCBpOXh4 X3NjYWxlX2FzcGVjdChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gIAkJ CQkgICAgcGlwZV9jb25maWctPnBpcGVfc3JjX2gpOwo+ICAKPiAgCQkqYm9yZGVyID0gTFZEU19C T1JERVJfRU5BQkxFOwo+IC0JCWlmIChwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaCAhPSBhZGp1c3Rl ZF9tb2RlLT52ZGlzcGxheSkgewo+ICsJCWlmIChwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaCAhPSBh ZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5KSB7Cj4gIAkJCWJpdHMgPSBwYW5lbF9maXR0ZXJf c2NhbGluZyhwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaCwKPiAtCQkJCQkJICAgIGFkanVzdGVkX21v ZGUtPnZkaXNwbGF5KTsKPiArCQkJCQkJICAgIGFkanVzdGVkX21vZGUtPmNydGNfdmRpc3BsYXkp Owo+ICAKPiAgCQkJKnBmaXRfcGdtX3JhdGlvcyB8PSAoYml0cyA8PCBQRklUX0hPUklaX1NDQUxF X1NISUZUIHwKPiAgCQkJCQkgICAgIGJpdHMgPDwgUEZJVF9WRVJUX1NDQUxFX1NISUZUKTsKPiBA QCAtMjg1LDkgKzI4NSw5IEBAIHN0YXRpYyB2b2lkIGk5eHhfc2NhbGVfYXNwZWN0KHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgCQkJCSAgcGlwZV9jb25maWctPnBpcGVf c3JjX3cpOwo+ICAKPiAgCQkqYm9yZGVyID0gTFZEU19CT1JERVJfRU5BQkxFOwo+IC0JCWlmIChw aXBlX2NvbmZpZy0+cGlwZV9zcmNfdyAhPSBhZGp1c3RlZF9tb2RlLT5oZGlzcGxheSkgewo+ICsJ CWlmIChwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdyAhPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNw bGF5KSB7Cj4gIAkJCWJpdHMgPSBwYW5lbF9maXR0ZXJfc2NhbGluZyhwaXBlX2NvbmZpZy0+cGlw ZV9zcmNfdywKPiAtCQkJCQkJICAgIGFkanVzdGVkX21vZGUtPmhkaXNwbGF5KTsKPiArCQkJCQkJ ICAgIGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkpOwo+ICAKPiAgCQkJKnBmaXRfcGdtX3Jh dGlvcyB8PSAoYml0cyA8PCBQRklUX0hPUklaX1NDQUxFX1NISUZUIHwKPiAgCQkJCQkgICAgIGJp dHMgPDwgUEZJVF9WRVJUX1NDQUxFX1NISUZUKTsKPiBAQCAtMzE1LDggKzMxNSw4IEBAIHZvaWQg aW50ZWxfZ21jaF9wYW5lbF9maXR0aW5nKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+ ICAJYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ICAK PiAgCS8qIE5hdGl2ZSBtb2RlcyBkb24ndCBuZWVkIGZpdHRpbmcgKi8KPiAtCWlmIChhZGp1c3Rl ZF9tb2RlLT5oZGlzcGxheSA9PSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdyAmJgo+IC0JICAgIGFk anVzdGVkX21vZGUtPnZkaXNwbGF5ID09IHBpcGVfY29uZmlnLT5waXBlX3NyY19oKQo+ICsJaWYg KGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkgPT0gcGlwZV9jb25maWctPnBpcGVfc3JjX3cg JiYKPiArCSAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5ID09IHBpcGVfY29uZmlnLT5w aXBlX3NyY19oKQo+ICAJCWdvdG8gb3V0Owo+ICAKPiAgCXN3aXRjaCAoZml0dGluZ19tb2RlKSB7 Cj4gQEAgLTM0Miw4ICszNDIsOCBAQCB2b2lkIGludGVsX2dtY2hfcGFuZWxfZml0dGluZyhzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiAgCQkgKiBGdWxsIHNjYWxpbmcsIGV2ZW4gaWYg aXQgY2hhbmdlcyB0aGUgYXNwZWN0IHJhdGlvLgo+ICAJCSAqIEZvcnR1bmF0ZWx5IHRoaXMgaXMg YWxsIGRvbmUgZm9yIHVzIGluIGh3Lgo+ICAJCSAqLwo+IC0JCWlmIChwaXBlX2NvbmZpZy0+cGlw ZV9zcmNfaCAhPSBhZGp1c3RlZF9tb2RlLT52ZGlzcGxheSB8fAo+IC0JCSAgICBwaXBlX2NvbmZp Zy0+cGlwZV9zcmNfdyAhPSBhZGp1c3RlZF9tb2RlLT5oZGlzcGxheSkgewo+ICsJCWlmIChwaXBl X2NvbmZpZy0+cGlwZV9zcmNfaCAhPSBhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5IHx8Cj4g KwkJICAgIHBpcGVfY29uZmlnLT5waXBlX3NyY193ICE9IGFkanVzdGVkX21vZGUtPmNydGNfaGRp c3BsYXkpIHsKPiAgCQkJcGZpdF9jb250cm9sIHw9IFBGSVRfRU5BQkxFOwo+ICAJCQlpZiAoSU5U RUxfSU5GTyhkZXYpLT5nZW4gPj0gNCkKPiAgCQkJCXBmaXRfY29udHJvbCB8PSBQRklUX1NDQUxJ TkdfQVVUTzsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jCj4gaW5kZXggODFlOTMyNS4uODEw ZTBiYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMKPiBAQCAtNjA1LDkgKzYwNSw5 IEBAIGxvZ19mYWlsOgo+ICAKPiAgc3RhdGljIGludCBpbnRlbF9zZHZvX2dldF9waXhlbF9tdWx0 aXBsaWVyKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQo+ICB7 Cj4gLQlpZiAoYWRqdXN0ZWRfbW9kZS0+Y2xvY2sgPj0gMTAwMDAwKQo+ICsJaWYgKGFkanVzdGVk X21vZGUtPmNydGNfY2xvY2sgPj0gMTAwMDAwKQo+ICAJCXJldHVybiAxOwo+IC0JZWxzZSBpZiAo YWRqdXN0ZWRfbW9kZS0+Y2xvY2sgPj0gNTAwMDApCj4gKwllbHNlIGlmIChhZGp1c3RlZF9tb2Rl LT5jcnRjX2Nsb2NrID49IDUwMDAwKQo+ICAJCXJldHVybiAyOwo+ICAJZWxzZQo+ICAJCXJldHVy biA0OwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==