From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH 10/13] drm/i915: Calculate watermark configuration during atomic check Date: Fri, 28 Aug 2015 16:42:11 +0300 Message-ID: <1440769331.5933.12.camel@gmail.com> References: <1440119524-13867-1-git-send-email-matthew.d.roper@intel.com> <1440119524-13867-11-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-f41.google.com (mail-pa0-f41.google.com [209.85.220.41]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6365E6E1DE for ; Fri, 28 Aug 2015 06:42:15 -0700 (PDT) Received: by padfo6 with SMTP id fo6so24945251pad.0 for ; Fri, 28 Aug 2015 06:42:15 -0700 (PDT) In-Reply-To: <1440119524-13867-11-git-send-email-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDE1LTA4LTIwIGF0IDE4OjEyIC0wNzAwLCBNYXR0IFJvcGVyIHdyb3RlOgo+IFNp Z25lZC1vZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Cj4gLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8IDEwICsrKysrKwo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA1MSArKysrKysrKysrKysrKysr KysrKysrKysrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAx ICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgIHwgNjYgKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDQgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0 aW9ucygrKSwgNTcgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5k ZXggYzkxYmFiOS4uYWMxM2NkNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0x Njg2LDYgKzE2ODYsMTMgQEAgc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgewo+ICAJc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICAgICAqcmVxdWVzdDsKPiAgfTsKPiAgCj4gKy8qIHVz ZWQgaW4gY29tcHV0aW5nIHRoZSBuZXcgd2F0ZXJtYXJrcyBzdGF0ZSAqLwo+ICtzdHJ1Y3QgaW50 ZWxfd21fY29uZmlnIHsKPiArCXVuc2lnbmVkIGludCBudW1fcGlwZXNfYWN0aXZlOwo+ICsJYm9v bCBzcHJpdGVzX2VuYWJsZWQ7Cj4gKwlib29sIHNwcml0ZXNfc2NhbGVkOwo+ICt9Owo+ICsKPiAg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKPiAg CXN0cnVjdCBrbWVtX2NhY2hlICpvYmplY3RzOwo+IEBAIC0xOTAzLDYgKzE5MTAsOSBAQCBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gIAkJICovCj4gIAkJdWludDE2X3Qgc2tsX2xhdGVuY3lb OF07Cj4gIAo+ICsJCS8qIENvbW1pdHRlZCB3bSBjb25maWcgKi8KPiArCQlzdHJ1Y3QgaW50ZWxf d21fY29uZmlnIGNvbmZpZzsKPiArCj4gIAkJLyoKPiAgCQkgKiBUaGUgc2tsX3dtX3ZhbHVlcyBz dHJ1Y3R1cmUgaXMgYSBiaXQgdG9vIGJpZyBmb3Igc3RhY2sKPiAgCQkgKiBhbGxvY2F0aW9uLCBz byB3ZSBrZWVwIHRoZSBzdGFnaW5nIHN0cnVjdCB3aGVyZSB3ZSBzdG9yZQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBjNDBmMDI1Li44ZTlkODdhIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xMzAwNSw2ICsxMzAwNSw0NCBAQCBz dGF0aWMgaW50IGludGVsX21vZGVzZXRfY2hlY2tzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ICsvKgo+ICsgKiBIYW5kbGUgY2FsY3VsYXRp b24gb2YgdmFyaW91cyB3YXRlcm1hcmsgZGF0YSBhdCB0aGUgZW5kIG9mIHRoZSBhdG9taWMgY2hl Y2sKPiArICogcGhhc2UuICBUaGUgY29kZSBoZXJlIHNob3VsZCBiZSBydW4gYWZ0ZXIgdGhlIHBl ci1jcnRjIGFuZCBwZXItcGxhbmUgJ2NoZWNrJwo+ICsgKiBoYW5kbGVycyB0byBlbnN1cmUgdGhh dCBhbGwgZGVyaXZlZCBzdGF0ZSBoYXMgYmVlbiB1cGRhdGVkLgo+ICsgKi8KPiArc3RhdGljIHZv aWQgY2FsY193YXRlcm1hcmtfZGF0YShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4g K3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2Owo+ICsJc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3Rh dGUpOwo+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiArCXN0cnVjdCBkcm1fcGxh bmVfc3RhdGUgKnBzdGF0ZTsKPiArCj4gKwkvKgo+ICsJICogQ2FsY3VsYXRlIHdhdGVybWFyayBj b25maWd1cmF0aW9uIGRldGFpbHMgbm93IHRoYXQgZGVyaXZlZAo+ICsJICogcGxhbmUvY3J0YyBz dGF0ZSBpcyBhbGwgcHJvcGVybHkgdXBkYXRlZC4KPiArCSAqLwo+ICsJZHJtX2Zvcl9lYWNoX2Ny dGMoY3J0YywgZGV2KSB7Cj4gKwkJY3N0YXRlID0gZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0 Y19zdGF0ZShzdGF0ZSwgY3J0YykgPzoKPiArCQkJY3J0Yy0+c3RhdGU7Cj4gKwoKRGlkIHlvdSBp bnRlbmQgdG8gY2hlY2sgY3J0Yy0+YWN0aXZlIGhlcmU/Cgo+ICsJCWludGVsX3N0YXRlLT53bV9j b25maWcubnVtX3BpcGVzX2FjdGl2ZSsrOwo+ICsJfQo+ICsJZHJtX2Zvcl9lYWNoX2xlZ2FjeV9w bGFuZShwbGFuZSwgZGV2KSB7Cj4gKwkJcHN0YXRlID0gZHJtX2F0b21pY19nZXRfZXhpc3Rpbmdf cGxhbmVfc3RhdGUoc3RhdGUsIHBsYW5lKSA/Ogo+ICsJCQlwbGFuZS0+c3RhdGU7Cj4gKwo+ICsJ CWlmICghdG9faW50ZWxfcGxhbmVfc3RhdGUocHN0YXRlKS0+dmlzaWJsZSkKPiArCQkJY29udGlu dWU7CgpJZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5LCBpdCBpcyBwb3NzaWJsZSBmb3IgYSBwbGFu ZSBvbiBhbiBpbmFjdGl2ZSBjcnRjIHRvIGhhdmUgdmlzaWJsZSA9IHRydWUuIEluCnRoYXQgY2Fz ZSwgdGhlIHJlc3VsdCBoZXJlIHdvdWxkIGJlIGRpZmZlcmVudCB0aGFuIHRoZSBmdW5jdGlvbiB0 aGlzIHJlcGxhY2VzLCB3aGljaCBjb3VudHMgb25seQpwbGFuZXMgb24gYWN0aXZlIGNydGNzLgoK CkFuZGVyCgo+ICsKPiArCQlpbnRlbF9zdGF0ZS0+d21fY29uZmlnLnNwcml0ZXNfZW5hYmxlZCA9 IHRydWU7Cj4gKwkJaWYgKHBzdGF0ZS0+Y3J0Y193ICE9IHBzdGF0ZS0+c3JjX3cgPj4gMTYgfHwK PiArCQkgICAgcHN0YXRlLT5jcnRjX2ggIT0gcHN0YXRlLT5zcmNfaCA+PiAxNikKPiArCQkJaW50 ZWxfc3RhdGUtPndtX2NvbmZpZy5zcHJpdGVzX3NjYWxlZCA9IHRydWU7Cj4gKwl9Cj4gK30KPiAr Cj4gIC8qKgo+ICAgKiBpbnRlbF9hdG9taWNfY2hlY2sgLSB2YWxpZGF0ZSBzdGF0ZSBvYmplY3QK PiAgICogQGRldjogZHJtIGRldmljZQo+IEBAIC0xMzAxMyw2ICsxMzA1MSw3IEBAIHN0YXRpYyBp bnQgaW50ZWxfbW9kZXNldF9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ ICBzdGF0aWMgaW50IGludGVsX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICAJCQkgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIHsKPiArCXN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRl KHN0YXRlKTsKPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiAgCXN0cnVjdCBkcm1fY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZTsKPiAgCWludCByZXQsIGk7Cj4gQEAgLTEzMDc2LDEwICsxMzExNSwx NSBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ICAJCWlmIChyZXQpCj4gIAkJCXJldHVybiByZXQ7Cj4gIAl9IGVsc2UKPiAtCQl0b19pbnRl bF9hdG9taWNfc3RhdGUoc3RhdGUpLT5jZGNsayA9Cj4gLQkJCXRvX2k5MTUoc3RhdGUtPmRldikt PmNkY2xrX2ZyZXE7Cj4gKwkJaW50ZWxfc3RhdGUtPmNkY2xrID0gdG9faTkxNShzdGF0ZS0+ZGV2 KS0+Y2RjbGtfZnJlcTsKPiAgCj4gLQlyZXR1cm4gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxh bmVzKHN0YXRlLT5kZXYsIHN0YXRlKTsKPiArCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNr X3BsYW5lcyhzdGF0ZS0+ZGV2LCBzdGF0ZSk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7 Cj4gKwo+ICsJY2FsY193YXRlcm1hcmtfZGF0YShzdGF0ZSk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4g IH0KPiAgCj4gIC8qKgo+IEBAIC0xMzExOSw2ICsxMzE2Myw3IEBAIHN0YXRpYyBpbnQgaW50ZWxf YXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCXJldHVybiByZXQ7Cj4g IAo+ICAJZHJtX2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZShkZXYsIHN0YXRlKTsKPiArCWRldl9w cml2LT53bS5jb25maWcgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLT53bV9jb25maWc7 Cj4gIAo+ICAJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwg aSkgewo+ICAJCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGY5Y2FjNGIuLjZhYzEwMTBj IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMjM5LDYgKzIzOSw3IEBAIHN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgewo+ICAJdW5zaWduZWQgaW50IGNkY2xrOwo+ICAJYm9v bCBkcGxsX3NldDsKPiAgCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9jb25maWcgc2hhcmVkX2Rw bGxbSTkxNV9OVU1fUExMU107Cj4gKwlzdHJ1Y3QgaW50ZWxfd21fY29uZmlnIHdtX2NvbmZpZzsK PiAgfTsKPiAgCj4gIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jCj4gaW5kZXggYmMyOTI2MC4uYjMyZDZiMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYwo+IEBAIC0xNzg2LDEzICsxNzg2LDYgQEAgc3RydWN0IGlsa193bV9tYXhpbXVtcyB7Cj4g IAl1aW50MTZfdCBmYmM7Cj4gIH07Cj4gIAo+IC0vKiB1c2VkIGluIGNvbXB1dGluZyB0aGUgbmV3 IHdhdGVybWFya3Mgc3RhdGUgKi8KPiAtc3RydWN0IGludGVsX3dtX2NvbmZpZyB7Cj4gLQl1bnNp Z25lZCBpbnQgbnVtX3BpcGVzX2FjdGl2ZTsKPiAtCWJvb2wgc3ByaXRlc19lbmFibGVkOwo+IC0J Ym9vbCBzcHJpdGVzX3NjYWxlZDsKPiAtfTsKPiAtCj4gIC8qCj4gICAqIEZvciBib3RoIFdNX1BJ UEUgYW5kIFdNX0xQLgo+ICAgKiBtZW1fdmFsdWUgbXVzdCBiZSBpbiAwLjF1cyB1bml0cy4KPiBA QCAtMjMyMiwyNiArMjMxNSw2IEBAIHN0YXRpYyB2b2lkIHNrbF9zZXR1cF93bV9sYXRlbmN5KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAlpbnRlbF9wcmludF93bV9sYXRlbmN5KGRldiwgIkdl bjkgUGxhbmUiLCBkZXZfcHJpdi0+d20uc2tsX2xhdGVuY3kpOwo+ICB9Cj4gIAo+IC1zdGF0aWMg dm9pZCBpbGtfY29tcHV0ZV93bV9jb25maWcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAtCQkJ CSAgc3RydWN0IGludGVsX3dtX2NvbmZpZyAqY29uZmlnKQo+IC17Cj4gLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YzsKPiAtCj4gLQkvKiBDb21wdXRlIHRoZSBjdXJyZW50bHkgX2FjdGl2 ZV8gY29uZmlnICovCj4gLQlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgaW50ZWxfY3J0Yykgewo+ IC0JCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUgPQo+IC0JCQl0b19pbnRl bF9jcnRjX3N0YXRlKGludGVsX2NydGMtPmJhc2Uuc3RhdGUpOwo+IC0JCWNvbnN0IHN0cnVjdCBp bnRlbF9waXBlX3dtICp3bSA9ICZjc3RhdGUtPndtLmFjdGl2ZS5pbGs7Cj4gLQo+IC0JCWlmICgh d20tPnBpcGVfZW5hYmxlZCkKPiAtCQkJY29udGludWU7Cj4gLQo+IC0JCWNvbmZpZy0+c3ByaXRl c19lbmFibGVkIHw9IHdtLT5zcHJpdGVzX2VuYWJsZWQ7Cj4gLQkJY29uZmlnLT5zcHJpdGVzX3Nj YWxlZCB8PSB3bS0+c3ByaXRlc19zY2FsZWQ7Cj4gLQkJY29uZmlnLT5udW1fcGlwZXNfYWN0aXZl Kys7Cj4gLQl9Cj4gLX0KPiAtCj4gIC8qIENvbXB1dGUgbmV3IHdhdGVybWFya3MgZm9yIHRoZSBw aXBlICovCj4gIHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCj4gIAkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gQEAg LTI5ODMsMTEgKzI5NTYsMTIgQEAgc2tsX2dldF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoY29u c3Qgc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMpCj4gIAo+ICBzdGF0aWMgdm9pZAo+ICBz a2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+IC0JCSAgICAgIGNv bnN0IHN0cnVjdCBpbnRlbF93bV9jb25maWcgKmNvbmZpZywKPiAgCQkgICAgICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAJCSAgICAgIHN0cnVjdCBza2xfZGRiX2Fs bG9jYXRpb24gKmRkYiAvKiBvdXQgKi8pCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBjcnRjLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7Cj4gKwlzdHJ1Y3QgaW50ZWxfd21fY29uZmlnICpjb25maWcgPSAmZGV2X3ByaXYt PndtLmNvbmZpZzsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjKTsKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmU7Cj4gIAllbnVt IHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gQEAgLTMxNTcsMTUgKzMxMzEsNiBAQCBz dGF0aWMgYm9vbCBza2xfZGRiX2FsbG9jYXRpb25fY2hhbmdlZChjb25zdCBzdHJ1Y3Qgc2tsX2Rk Yl9hbGxvY2F0aW9uIAo+ICpuZXdfZGRiLAo+ICAJcmV0dXJuIGZhbHNlOwo+ICB9Cj4gIAo+IC1z dGF0aWMgdm9pZCBza2xfY29tcHV0ZV93bV9nbG9iYWxfcGFyYW1ldGVycyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+IC0JCQkJCSAgICAgc3RydWN0IGludGVsX3dtX2NvbmZpZyAqY29uZmlnKQo+ IC17Cj4gLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gLQo+IC0JbGlzdF9mb3JfZWFjaF9lbnRy eShjcnRjLCAmZGV2LT5tb2RlX2NvbmZpZy5jcnRjX2xpc3QsIGhlYWQpCj4gLQkJY29uZmlnLT5u dW1fcGlwZXNfYWN0aXZlICs9IHRvX2ludGVsX2NydGMoY3J0YyktPmFjdGl2ZTsKPiAtfQo+IC0K PiAgc3RhdGljIGJvb2wgc2tsX2NvbXB1dGVfcGxhbmVfd20oY29uc3Qgc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJIHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj LAo+ICAJCQkJIHN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUsCj4gQEAgLTM1NzEsMTMg KzM1MzYsMTIgQEAgc3RhdGljIHZvaWQgc2tsX2ZsdXNoX3dtX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIH0KPiAgCj4gIHN0YXRpYyBib29sIHNrbF91cGRhdGVf cGlwZV93bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gLQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxf d21fY29uZmlnICpjb25maWcsCj4gIAkJCSAgICAgICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9u ICpkZGIsIC8qIG91dCAqLwo+ICAJCQkgICAgICAgc3RydWN0IHNrbF9waXBlX3dtICpwaXBlX3dt IC8qIG91dCAqLykKPiAgewo+ICAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSA9IHRv X2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+ICAKPiAtCXNrbF9hbGxvY2F0ZV9waXBl X2RkYihjcnRjLCBjb25maWcsIGNzdGF0ZSwgZGRiKTsKPiArCXNrbF9hbGxvY2F0ZV9waXBlX2Rk YihjcnRjLCBjc3RhdGUsIGRkYik7Cj4gIAlza2xfY29tcHV0ZV9waXBlX3dtKGNydGMsIGRkYiwg Y3N0YXRlLCBwaXBlX3dtKTsKPiAgCj4gIAlpZiAoIW1lbWNtcCgmY3N0YXRlLT53bS5hY3RpdmUu c2tsLCBwaXBlX3dtLCBzaXplb2YoKnBpcGVfd20pKSkKPiBAQCAtMzU5MCw3ICszNTU0LDYgQEAg c3RhdGljIGJvb2wgc2tsX3VwZGF0ZV9waXBlX3dtKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAg Cj4gIHN0YXRpYyB2b2lkIHNrbF91cGRhdGVfb3RoZXJfcGlwZV93bShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ICAJCQkJICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gLQkJCQkgICAgIHN0 cnVjdCBpbnRlbF93bV9jb25maWcgKmNvbmZpZywKPiAgCQkJCSAgICAgc3RydWN0IHNrbF93bV92 YWx1ZXMgKnIpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwo+IEBAIC0z NjIwLDcgKzM1ODMsNyBAQCBzdGF0aWMgdm9pZCBza2xfdXBkYXRlX290aGVyX3BpcGVfd20oc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQlpZiAoIWludGVsX2NydGMtPmFjdGl2ZSkKPiAgCQkJ Y29udGludWU7Cj4gIAo+IC0JCXdtX2NoYW5nZWQgPSBza2xfdXBkYXRlX3BpcGVfd20oJmludGVs X2NydGMtPmJhc2UsIGNvbmZpZywKPiArCQl3bV9jaGFuZ2VkID0gc2tsX3VwZGF0ZV9waXBlX3dt KCZpbnRlbF9jcnRjLT5iYXNlLAo+ICAJCQkJCQkmci0+ZGRiLCAmcGlwZV93bSk7Cj4gIAo+ICAJ CS8qCj4gQEAgLTM2NDIsMTkgKzM2MDUsMTYgQEAgc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV93bShz dHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJc3RydWN0IHNrbF93bV92YWx1ZXMgKnJlc3VsdHMg PSAmZGV2X3ByaXYtPndtLnNrbF9yZXN1bHRzOwo+ICAJc3RydWN0IHNrbF9waXBlX3dtIHBpcGVf d20gPSB7fTsKPiAtCXN0cnVjdCBpbnRlbF93bV9jb25maWcgY29uZmlnID0ge307Cj4gIAo+ICAJ bWVtc2V0KHJlc3VsdHMsIDAsIHNpemVvZigqcmVzdWx0cykpOwo+ICAKPiAtCXNrbF9jb21wdXRl X3dtX2dsb2JhbF9wYXJhbWV0ZXJzKGRldiwgJmNvbmZpZyk7Cj4gLQo+IC0JaWYgKCFza2xfdXBk YXRlX3BpcGVfd20oY3J0YywgJmNvbmZpZywgJnJlc3VsdHMtPmRkYiwgJnBpcGVfd20pKQo+ICsJ aWYgKCFza2xfdXBkYXRlX3BpcGVfd20oY3J0YywgJnJlc3VsdHMtPmRkYiwgJnBpcGVfd20pKQo+ ICAJCXJldHVybjsKPiAgCj4gIAlza2xfY29tcHV0ZV93bV9yZXN1bHRzKGRldiwgJnBpcGVfd20s IHJlc3VsdHMsIGludGVsX2NydGMpOwo+ICAJcmVzdWx0cy0+ZGlydHlbaW50ZWxfY3J0Yy0+cGlw ZV0gPSB0cnVlOwo+ICAKPiAtCXNrbF91cGRhdGVfb3RoZXJfcGlwZV93bShkZXYsIGNydGMsICZj b25maWcsIHJlc3VsdHMpOwo+ICsJc2tsX3VwZGF0ZV9vdGhlcl9waXBlX3dtKGRldiwgY3J0Yywg cmVzdWx0cyk7Cj4gIAlza2xfd3JpdGVfd21fdmFsdWVzKGRldl9wcml2LCByZXN1bHRzKTsKPiAg CXNrbF9mbHVzaF93bV92YWx1ZXMoZGV2X3ByaXYsIHJlc3VsdHMpOwo+ICAKPiBAQCAtMzY2Nywy MCArMzYyNywxOCBAQCBzdGF0aWMgdm9pZCBpbGtfcHJvZ3JhbV93YXRlcm1hcmtzKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBk ZXZfcHJpdi0+ZGV2Owo+ICAJc3RydWN0IGludGVsX3BpcGVfd20gbHBfd21fMV8yID0ge30sIGxw X3dtXzVfNiA9IHt9LCAqYmVzdF9scF93bTsKPiAgCXN0cnVjdCBpbGtfd21fbWF4aW11bXMgbWF4 Owo+IC0Jc3RydWN0IGludGVsX3dtX2NvbmZpZyBjb25maWcgPSB7fTsKPiArCXN0cnVjdCBpbnRl bF93bV9jb25maWcgKmNvbmZpZyA9ICZkZXZfcHJpdi0+d20uY29uZmlnOwo+ICAJc3RydWN0IGls a193bV92YWx1ZXMgcmVzdWx0cyA9IHt9Owo+ICAJZW51bSBpbnRlbF9kZGJfcGFydGl0aW9uaW5n IHBhcnRpdGlvbmluZzsKPiAgCj4gLQlpbGtfY29tcHV0ZV93bV9jb25maWcoZGV2LCAmY29uZmln KTsKPiAtCj4gLQlpbGtfY29tcHV0ZV93bV9tYXhpbXVtcyhkZXYsIDEsICZjb25maWcsIElOVEVM X0REQl9QQVJUXzFfMiwgJm1heCk7Cj4gLQlpbGtfd21fbWVyZ2UoZGV2LCAmY29uZmlnLCAmbWF4 LCAmbHBfd21fMV8yKTsKPiArCWlsa19jb21wdXRlX3dtX21heGltdW1zKGRldiwgMSwgY29uZmln LCBJTlRFTF9EREJfUEFSVF8xXzIsICZtYXgpOwo+ICsJaWxrX3dtX21lcmdlKGRldiwgY29uZmln LCAmbWF4LCAmbHBfd21fMV8yKTsKPiAgCj4gIAkvKiA1LzYgc3BsaXQgb25seSBpbiBzaW5nbGUg cGlwZSBjb25maWcgb24gSVZCKyAqLwo+ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDcg JiYKPiAtCSAgICBjb25maWcubnVtX3BpcGVzX2FjdGl2ZSA9PSAxICYmIGNvbmZpZy5zcHJpdGVz X2VuYWJsZWQpIHsKPiAtCQlpbGtfY29tcHV0ZV93bV9tYXhpbXVtcyhkZXYsIDEsICZjb25maWcs IElOVEVMX0REQl9QQVJUXzVfNiwgJm1heCk7Cj4gLQkJaWxrX3dtX21lcmdlKGRldiwgJmNvbmZp ZywgJm1heCwgJmxwX3dtXzVfNik7Cj4gKwkgICAgY29uZmlnLT5udW1fcGlwZXNfYWN0aXZlID09 IDEgJiYgY29uZmlnLT5zcHJpdGVzX2VuYWJsZWQpIHsKPiArCQlpbGtfY29tcHV0ZV93bV9tYXhp bXVtcyhkZXYsIDEsIGNvbmZpZywgSU5URUxfRERCX1BBUlRfNV82LCAmbWF4KTsKPiArCQlpbGtf d21fbWVyZ2UoZGV2LCBjb25maWcsICZtYXgsICZscF93bV81XzYpOwo+ICAKPiAgCQliZXN0X2xw X3dtID0gaWxrX2ZpbmRfYmVzdF9yZXN1bHQoZGV2LCAmbHBfd21fMV8yLCAmbHBfd21fNV82KTsK PiAgCX0gZWxzZSB7Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==