From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 07/11] drm/i915: move ddb_blocks to be a watermark parameter Date: Tue, 23 Oct 2018 15:07:15 +0300 Message-ID: <20181023120715.GR9144@intel.com> References: <20181016220133.26991-1-paulo.r.zanoni@intel.com> <20181016220133.26991-8-paulo.r.zanoni@intel.com> <20181018134104.GB9144@intel.com> <1540247362.2734.36.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1A4E489FD1 for ; Tue, 23 Oct 2018 12:07:18 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1540247362.2734.36.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBPY3QgMjIsIDIwMTggYXQgMDM6Mjk6MjJQTSAtMDcwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IEVtIFF1aSwgMjAxOC0xMC0xOCDDoHMgMTY6NDEgKzAzMDAsIFZpbGxlIFN5cmrDpGzD pCBlc2NyZXZldToKPiA+IE9uIFR1ZSwgT2N0IDE2LCAyMDE4IGF0IDAzOjAxOjI5UE0gLTA3MDAs IFBhdWxvIFphbm9uaSB3cm90ZToKPiA+ID4gVGhlIGdvYWwgb2Ygc3RydWN0IHNrbF93bV9wYXJh bXMgaXMgdG8gY2FjaGUgZXZlcnkgd2F0ZXJtYXJrCj4gPiA+IHBhcmFtZXRlciBzbyB0aGUgb3Ro ZXIgZnVuY3Rpb25zIGNhbiBqdXN0IHVzZSB0aGVtIHdpdGhvdXQgd29ycnlpbmcKPiA+ID4gYWJv dXQgdGhlIGFwcHJvcHJpYXRlIHBsYWNlIHRvIGZldGNoIGVhY2ggcGFyYW1ldGVyIHJlcXVlc3Rl ZCBieQo+ID4gPiB0aGUKPiA+ID4gc3BlYywgYW5kIHdpdGhvdXQgaGF2aW5nIHRvIHJlY29tcHV0 ZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIHVzZWQgaW4KPiA+ID4gZGlmZmVyZW50IHN0ZXBzIG9mIHRo ZSBjYWxjdWxhdGlvbi4KPiA+ID4gCj4gPiA+IFRoZSBkZGJfYmxvY2tzIHBhcmFtZXRlciBpcyBv bmUgdGhhdCBpcyB1c2VkIGJ5IGJvdGggdGhlIHRoZSBwbGFuZQo+ID4gPiB3YXRlcm1hcmtzIGFu ZCB0aGUgdHJhbnNpdGlvbiB3YXRlcm1hcmtzLiBNb3ZlIGRkYl9ibG9ja3MgdG8gdGhlCj4gPiA+ IHBhcmFtZXRlciBzdHJ1Y3Qgc28gd2UgY2FuIHNpbXBsaWZ5IHRoZSBjb2RlLgo+ID4gPiAKPiA+ ID4gU2lnbmVkLW9mZi1ieTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+ Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCB8ICAxICsK PiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgfCA0NCArKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLQo+ID4gPiAtLS0tLS0tLS0tLS0KPiA+ID4gIDIgZmlsZXMgY2hhbmdl ZCwgMTggaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gaW5kZXggNGIxZTg0NzE2MDliLi5iMzJkNjgwZDli ZjAgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiBAQCAtMTI1NSw2 ICsxMjU1LDcgQEAgc3RydWN0IHNrbF93bV9wYXJhbXMgewo+ID4gPiAgCWJvb2wgcmNfc3VyZmFj ZTsKPiA+ID4gIAlib29sIGlzX3BsYW5hcjsKPiA+ID4gIAl1aW50MzJfdCB3aWR0aDsKPiA+ID4g Kwl1aW50MTZfdCBkZGJfYmxvY2tzOwo+ID4gPiAgCXVpbnQ4X3QgY3BwOwo+ID4gPiAgCXVpbnQz Ml90IHBsYW5lX3BpeGVsX3JhdGU7Cj4gPiA+ICAJdWludDMyX3QgeV9taW5fc2NhbmxpbmVzOwo+ ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4gPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+ID4gaW5kZXggZjM4OGJmYTk5YTk3 Li40MDUzZjRhNjg2NTcgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4g PiBAQCAtNDUyMiwxMSArNDUyMiwxMyBAQCBzdGF0aWMgaW50Cj4gPiA+ICBza2xfY29tcHV0ZV9w bGFuZV93bV9wYXJhbXMoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+ID4gKmRldl9w cml2LAo+ID4gPiAgCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCj4gPiA+ ICAJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlCj4gPiA+ICppbnRlbF9wc3Rh dGUsCj4gPiA+ICsJCQkgICAgY29uc3Qgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiLAo+ ID4gPiAgCQkJICAgIHN0cnVjdCBza2xfd21fcGFyYW1zICp3cCwgaW50Cj4gPiA+IHBsYW5lX2lk KQo+ID4gPiAgewo+ID4gPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9w bGFuZShpbnRlbF9wc3RhdGUtCj4gPiA+ID5iYXNlLnBsYW5lKTsKPiA+ID4gIAljb25zdCBzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3RhdGUgPSAmaW50ZWxfcHN0YXRlLQo+ID4gPiA+YmFzZTsK PiA+ID4gIAljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBzdGF0ZS0+ZmI7Cj4g PiA+ICsJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKGNzdGF0ZS0+YmFzZS5jcnRjKS0+ cGlwZTsKPiA+ID4gIAl1aW50MzJfdCBpbnRlcm1fcGJwbDsKPiA+ID4gIAlzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpzdGF0ZSA9Cj4gPiA+ICAJCXRvX2ludGVsX2F0b21pY19zdGF0ZShjc3Rh dGUtPmJhc2Uuc3RhdGUpOwo+ID4gPiBAQCAtNDYyNCwxMyArNDYyNiwxNiBAQCBza2xfY29tcHV0 ZV9wbGFuZV93bV9wYXJhbXMoY29uc3Qgc3RydWN0Cj4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ID4gPiAgCXdwLT5saW5ldGltZV91cyA9IGZpeGVkMTZfdG9fdTMyX3JvdW5kX3Vw KAo+ID4gPiAgCQkJCQlpbnRlbF9nZXRfbGluZXRpbWVfdXMoY3N0YQo+ID4gPiB0ZSkpOwo+ID4g PiAgCj4gPiA+ICsJd3AtPmRkYl9ibG9ja3MgPSBwbGFuZV9pZCA/Cj4gPiAKPiA+IFVnaC4gVGhh dCAncGxhbmVfaWQnIHJlYWxseSBzaG91bGQgYmUgcmVuYW1lZCB0byBzb21ldGhpbmcgZWxzZS4K PiA+ICdjb2xvcl9wbGFuZScgd291bGQgYmUgdGhlIG5ld2ZhbmdsZWQgbmFtZSBJIHN0YXJ0ZWQg dG8gdXNlCj4gPiBlbHNld2hlcmUuCj4gCj4gSSBjb21wbGV0ZWx5IGFncmVlOiB0aGVyZSdzIHBs YW5lX2lkIGFuZCBwbGFuZS0+aWQgYW5kIHRoZXkgbWVhbgo+IGRpZmZlcmVudCB0aGluZ3MuCj4g Cj4gSWYgeW91J3JlIGFscmVhZHkgdXNpbmcgY29sb3JfcGxhbmUgSSBjYW4gdG90YWxseSBnbyB3 aXRoIGl0IHNvIHdlIGhhdmUKPiBjb25zaXN0ZW5jeS4gQnV0LCB3ZWxsLCBmb3IgUkdCIHBsYW5l cywgcGxhbmUgMCBkb2VzIGNvbnRhaW4gY29sb3IKPiBpbmZvcm1hdGlvbi4uLiBCdXQgY2FuIEkg c3VnZ2VzdCB1cyB0byB1c2UgInN1YnBsYW5lIiB0ZXJtaW5vbG9neSB3aGVuCj4gdGFsa2luZyBh Ym91dCB0aGUgcGxhbmVzIG9mIGEgcGxhbmU/IFdoYXQgYWJvdXQgc3VicGxhbmVfaW5kZXg/Cj4g U29tZXRoaW5nIHRoYXQgZG9lcyBub3QgdXNlIHRoZSB3b3JkICJwbGFuZSIgaXMgcHJvYmFibHkg YmV0dGVyLgoKV2hhdCBpcyAicGxhbmVzIG9mIGEgcGxhbmUiPwoKVGhlcmUgYXJlIGRybV9wbGFu ZXMsIGhhcmR3YXJlIGRpc3BsYXkgcGxhbmVzICgxOjEgd2l0aCBkcm1fcGxhbmUKZm9yIHVzKSwg YW5kIHRoZXJlIGFyZSB0aGUgcGxhbmVzIG9mIGEgcGxhbmFyIGZyYW1lYnVmZmVyIChsdW1hCnBs YW5lLCBjaHJvbWEgcGxhbmUsIGV0Yy4pLiBUaGUgbGF0dGVyIGlzIHdoYXQgSSBjaHJpc3RlbmVk CiJjb2xvciBwbGFuZSIuCgo+IAo+ID4gCj4gPiBQYXRjaCBsb29rcyBnb29kIHRvIG1lLgo+ID4g UmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5j b20+Cj4gPiAKPiA+ID4gKwkJICAgICBza2xfZGRiX2VudHJ5X3NpemUoJmRkYi0KPiA+ID4gPnV2 X3BsYW5lW3BpcGVdW3BsYW5lLT5pZF0pIDoKPiA+ID4gKwkJICAgICBza2xfZGRiX2VudHJ5X3Np emUoJmRkYi0+cGxhbmVbcGlwZV1bcGxhbmUtCj4gPiA+ID5pZF0pOwo+ID4gPiArCj4gPiA+ICAJ cmV0dXJuIDA7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gIHN0YXRpYyBpbnQgc2tsX2NvbXB1dGVf cGxhbmVfd20oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+ID4gKmRldl9wcml2LAo+ ID4gPiAgCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCj4gPiA+ICAJCQkJY29u c3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlCj4gPiA+ICppbnRlbF9wc3RhdGUsCj4gPiA+IC0J CQkJdWludDE2X3QgZGRiX2FsbG9jYXRpb24sCj4gPiA+ICAJCQkJaW50IGxldmVsLAo+ID4gPiAg CQkJCWNvbnN0IHN0cnVjdCBza2xfd21fcGFyYW1zICp3cCwKPiA+ID4gIAkJCQljb25zdCBzdHJ1 Y3Qgc2tsX3dtX2xldmVsCj4gPiA+ICpyZXN1bHRfcHJldiwKPiA+ID4gQEAgLTQ2NzQsNyArNDY3 OSw3IEBAIHN0YXRpYyBpbnQgc2tsX2NvbXB1dGVfcGxhbmVfd20oY29uc3Qgc3RydWN0Cj4gPiA+ IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiAgCQkgICAgIHdwLT5kYnVmX2Jsb2Nr X3NpemUgPCAxKSAmJgo+ID4gPiAgCQkgICAgICh3cC0+cGxhbmVfYnl0ZXNfcGVyX2xpbmUgLyB3 cC0KPiA+ID4gPmRidWZfYmxvY2tfc2l6ZSA8IDEpKSB7Cj4gPiA+ICAJCQlzZWxlY3RlZF9yZXN1 bHQgPSBtZXRob2QyOwo+ID4gPiAtCQl9IGVsc2UgaWYgKGRkYl9hbGxvY2F0aW9uID49Cj4gPiA+ ICsJCX0gZWxzZSBpZiAod3AtPmRkYl9ibG9ja3MgPj0KPiA+ID4gIAkJCSBmaXhlZDE2X3RvX3Uz Ml9yb3VuZF91cCh3cC0KPiA+ID4gPnBsYW5lX2Jsb2Nrc19wZXJfbGluZSkpIHsKPiA+ID4gIAkJ CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID09IDkgJiYKPiA+ID4gIAkJCSAgICAhSVNfR0VNSU5J TEFLRShkZXZfcHJpdikpCj4gPiA+IEBAIC00NzQ3LDggKzQ3NTIsOCBAQCBzdGF0aWMgaW50IHNr bF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdAo+ID4gPiBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gIAlpZiAoKGxldmVsID4gMCAmJiByZXNf bGluZXMgPiAzMSkgfHwKPiA+ID4gLQkgICAgcmVzX2Jsb2NrcyA+PSBkZGJfYWxsb2NhdGlvbiB8 fAo+ID4gPiAtCSAgICBtaW5fZGlzcF9idWZfbmVlZGVkID49IGRkYl9hbGxvY2F0aW9uKSB7Cj4g PiA+ICsJICAgIHJlc19ibG9ja3MgPj0gd3AtPmRkYl9ibG9ja3MgfHwKPiA+ID4gKwkgICAgbWlu X2Rpc3BfYnVmX25lZWRlZCA+PSB3cC0+ZGRiX2Jsb2Nrcykgewo+ID4gPiAgCQlyZXN1bHQtPnBs YW5lX2VuID0gZmFsc2U7Cj4gPiA+ICAKPiA+ID4gIAkJLyoKPiA+ID4gQEAgLTQ3NjMsNyArNDc2 OCw3IEBAIHN0YXRpYyBpbnQgc2tsX2NvbXB1dGVfcGxhbmVfd20oY29uc3Qgc3RydWN0Cj4gPiA+ IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiAgCQkJRFJNX0RFQlVHX0tNUygiUmVx dWVzdGVkIGRpc3BsYXkKPiA+ID4gY29uZmlndXJhdGlvbiBleGNlZWRzIHN5c3RlbSB3YXRlcm1h cmsgbGltaXRhdGlvbnNcbiIpOwo+ID4gPiAgCQkJRFJNX0RFQlVHX0tNUygiW1BMQU5FOiVkOiVz XSBibG9ja3MKPiA+ID4gcmVxdWlyZWQgPSAldS8ldSwgbGluZXMgcmVxdWlyZWQgPSAldS8zMVxu IiwKPiA+ID4gIAkJCQkgICAgICBwbGFuZS0+YmFzZS5pZCwgcGxhbmUtPm5hbWUsCj4gPiA+IC0J CQkJICAgICAgcmVzX2Jsb2NrcywgZGRiX2FsbG9jYXRpb24sCj4gPiA+IHJlc19saW5lcyk7Cj4g PiA+ICsJCQkJICAgICAgcmVzX2Jsb2Nrcywgd3AtPmRkYl9ibG9ja3MsCj4gPiA+IHJlc19saW5l cyk7Cj4gPiA+ICAJCQlyZXR1cm4gLUVJTlZBTDsKPiA+ID4gIAkJfQo+ID4gPiAgCX0KPiA+ID4g QEAgLTQ3ODksMjYgKzQ3OTQsMTUgQEAgc3RhdGljIGludCBza2xfY29tcHV0ZV9wbGFuZV93bShj b25zdAo+ID4gPiBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ICAKPiA+ ID4gIHN0YXRpYyBpbnQKPiA+ID4gIHNrbF9jb21wdXRlX3dtX2xldmVscyhjb25zdCBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+IC0JCSAgICAgIHN0cnVjdCBza2xfZGRi X2FsbG9jYXRpb24gKmRkYiwKPiA+ID4gIAkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNzdGF0ZSwKPiA+ID4gIAkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlCj4g PiA+ICppbnRlbF9wc3RhdGUsCj4gPiA+ICAJCSAgICAgIGNvbnN0IHN0cnVjdCBza2xfd21fcGFy YW1zICp3bV9wYXJhbXMsCj4gPiA+ICAJCSAgICAgIHN0cnVjdCBza2xfcGxhbmVfd20gKndtLAo+ ID4gPiAgCQkgICAgICBpbnQgcGxhbmVfaWQpCj4gPiA+ICB7Cj4gPiA+IC0Jc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNzdGF0ZS0KPiA+ID4gPmJhc2UuY3J0 Yyk7Cj4gPiA+IC0Jc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSBpbnRlbF9wc3RhdGUtPmJhc2Uu cGxhbmU7Cj4gPiA+IC0Jc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVs X3BsYW5lKHBsYW5lKTsKPiA+ID4gLQl1aW50MTZfdCBkZGJfYmxvY2tzOwo+ID4gPiAtCWVudW0g cGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiA+ID4gIAlpbnQgbGV2ZWwsIG1heF9sZXZl bCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2X3ByaXYpOwo+ID4gPiAtCWVudW0gcGxhbmVfaWQgaW50 ZWxfcGxhbmVfaWQgPSBpbnRlbF9wbGFuZS0+aWQ7Cj4gPiA+ICAJaW50IHJldDsKPiA+ID4gIAo+ ID4gPiAtCWRkYl9ibG9ja3MgPSBwbGFuZV9pZCA/Cj4gPiA+IC0JCSAgICAgc2tsX2RkYl9lbnRy eV9zaXplKCZkZGItCj4gPiA+ID51dl9wbGFuZVtwaXBlXVtpbnRlbF9wbGFuZV9pZF0pIDoKPiA+ ID4gLQkJICAgICBza2xfZGRiX2VudHJ5X3NpemUoJmRkYi0KPiA+ID4gPnBsYW5lW3BpcGVdW2lu dGVsX3BsYW5lX2lkXSk7Cj4gPiA+IC0KPiA+ID4gIAlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPD0g bWF4X2xldmVsOyBsZXZlbCsrKSB7Cj4gPiA+ICAJCXN0cnVjdCBza2xfd21fbGV2ZWwgKnJlc3Vs dCA9IHBsYW5lX2lkID8gJndtLQo+ID4gPiA+dXZfd21bbGV2ZWxdIDoKPiA+ID4gIAkJCQkJCQkg ICZ3bS0KPiA+ID4gPndtW2xldmVsXTsKPiA+ID4gQEAgLTQ4MjMsNyArNDgxNyw2IEBAIHNrbF9j b21wdXRlX3dtX2xldmVscyhjb25zdCBzdHJ1Y3QKPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gPiA+ICAJCXJldCA9IHNrbF9jb21wdXRlX3BsYW5lX3dtKGRldl9wcml2LAo+ID4g PiAgCQkJCQkgICBjc3RhdGUsCj4gPiA+ICAJCQkJCSAgIGludGVsX3BzdGF0ZSwKPiA+ID4gLQkJ CQkJICAgZGRiX2Jsb2NrcywKPiA+ID4gIAkJCQkJICAgbGV2ZWwsCj4gPiA+ICAJCQkJCSAgIHdt X3BhcmFtcywKPiA+ID4gIAkJCQkJICAgcmVzdWx0X3ByZXYsCj4gPiA+IEBAIC00ODYzLDcgKzQ4 NTYsNiBAQCBza2xfY29tcHV0ZV9saW5ldGltZV93bShzdHJ1Y3QKPiA+ID4gaW50ZWxfY3J0Y19z dGF0ZSAqY3N0YXRlKQo+ID4gPiAgc3RhdGljIHZvaWQgc2tsX2NvbXB1dGVfdHJhbnNpdGlvbl93 bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZQo+ID4gPiAqY3N0YXRlLAo+ID4gPiAgCQkJCSAgICAg IHN0cnVjdCBza2xfd21fcGFyYW1zICp3cCwKPiA+ID4gIAkJCQkgICAgICBzdHJ1Y3Qgc2tsX3dt X2xldmVsICp3bV9sMCwKPiA+ID4gLQkJCQkgICAgICB1aW50MTZfdCBkZGJfYWxsb2NhdGlvbiwK PiA+ID4gIAkJCQkgICAgICBzdHJ1Y3Qgc2tsX3dtX2xldmVsCj4gPiA+ICp0cmFuc193bSAvKiBv dXQgKi8pCj4gPiA+ICB7Cj4gPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNzdGF0ZS0+ YmFzZS5jcnRjLT5kZXY7Cj4gPiA+IEBAIC00OTE0LDcgKzQ5MDYsNyBAQCBzdGF0aWMgdm9pZCBz a2xfY29tcHV0ZV90cmFuc2l0aW9uX3dtKHN0cnVjdAo+ID4gPiBpbnRlbF9jcnRjX3N0YXRlICpj c3RhdGUsCj4gPiA+ICAKPiA+ID4gIAlyZXNfYmxvY2tzICs9IDE7Cj4gPiA+ICAKPiA+ID4gLQlp ZiAocmVzX2Jsb2NrcyA8IGRkYl9hbGxvY2F0aW9uKSB7Cj4gPiA+ICsJaWYgKHJlc19ibG9ja3Mg PCB3cC0+ZGRiX2Jsb2Nrcykgewo+ID4gPiAgCQl0cmFuc193bS0+cGxhbmVfcmVzX2IgPSByZXNf YmxvY2tzOwo+ID4gPiAgCQl0cmFuc193bS0+cGxhbmVfZW4gPSB0cnVlOwo+ID4gPiAgCQlyZXR1 cm47Cj4gPiA+IEBAIC00OTQ3LDM3ICs0OTM5LDM1IEBAIHN0YXRpYyBpbnQgc2tsX2J1aWxkX3Bp cGVfd20oc3RydWN0Cj4gPiA+IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiA+ID4gIAkJCQkJ CXRvX2ludGVsX3BsYW5lX3N0YQo+ID4gPiB0ZShwc3RhdGUpOwo+ID4gPiAgCQllbnVtIHBsYW5l X2lkIHBsYW5lX2lkID0gdG9faW50ZWxfcGxhbmUocGxhbmUpLQo+ID4gPiA+aWQ7Cj4gPiA+ICAJ CXN0cnVjdCBza2xfd21fcGFyYW1zIHdtX3BhcmFtczsKPiA+ID4gLQkJZW51bSBwaXBlIHBpcGUg PSB0b19pbnRlbF9jcnRjKGNzdGF0ZS0+YmFzZS5jcnRjKS0KPiA+ID4gPnBpcGU7Cj4gPiA+IC0J CXVpbnQxNl90IGRkYl9ibG9ja3M7Cj4gPiA+ICAKPiA+ID4gIAkJd20gPSAmcGlwZV93bS0+cGxh bmVzW3BsYW5lX2lkXTsKPiA+ID4gLQkJZGRiX2Jsb2NrcyA9IHNrbF9kZGJfZW50cnlfc2l6ZSgm ZGRiLQo+ID4gPiA+cGxhbmVbcGlwZV1bcGxhbmVfaWRdKTsKPiA+ID4gIAo+ID4gPiAgCQlyZXQg PSBza2xfY29tcHV0ZV9wbGFuZV93bV9wYXJhbXMoZGV2X3ByaXYsCj4gPiA+IGNzdGF0ZSwKPiA+ ID4gLQkJCQkJCSAgaW50ZWxfcHN0YXRlLAo+ID4gPiAmd21fcGFyYW1zLCAwKTsKPiA+ID4gKwkJ CQkJCSAgaW50ZWxfcHN0YXRlLAo+ID4gPiBkZGIsCj4gPiA+ICsJCQkJCQkgICZ3bV9wYXJhbXMs IDApOwo+ID4gPiAgCQlpZiAocmV0KQo+ID4gPiAgCQkJcmV0dXJuIHJldDsKPiA+ID4gIAo+ID4g PiAgCQlpZiAoIXdtX3BhcmFtcy5wbGFuZV92aXNpYmxlKQo+ID4gPiAgCQkJY29udGludWU7Cj4g PiA+ICAKPiA+ID4gLQkJcmV0ID0gc2tsX2NvbXB1dGVfd21fbGV2ZWxzKGRldl9wcml2LCBkZGIs IGNzdGF0ZSwKPiA+ID4gKwkJcmV0ID0gc2tsX2NvbXB1dGVfd21fbGV2ZWxzKGRldl9wcml2LCBj c3RhdGUsCj4gPiA+ICAJCQkJCSAgICBpbnRlbF9wc3RhdGUsCj4gPiA+ICZ3bV9wYXJhbXMsIHdt LCAwKTsKPiA+ID4gIAkJaWYgKHJldCkKPiA+ID4gIAkJCXJldHVybiByZXQ7Cj4gPiA+ICAKPiA+ ID4gIAkJc2tsX2NvbXB1dGVfdHJhbnNpdGlvbl93bShjc3RhdGUsICZ3bV9wYXJhbXMsICZ3bS0K PiA+ID4gPndtWzBdLAo+ID4gPiAtCQkJCQkgIGRkYl9ibG9ja3MsICZ3bS0KPiA+ID4gPnRyYW5z X3dtKTsKPiA+ID4gKwkJCQkJICAmd20tPnRyYW5zX3dtKTsKPiA+ID4gIAo+ID4gPiAgCQkvKiB1 diBwbGFuZSB3YXRlcm1hcmtzIG11c3QgYWxzbyBiZSB2YWxpZGF0ZWQgZm9yCj4gPiA+IE5WMTIv UGxhbmFyICovCj4gPiA+ICAJCWlmICh3bV9wYXJhbXMuaXNfcGxhbmFyKSB7Cj4gPiA+ICAJCQly ZXQgPQo+ID4gPiBza2xfY29tcHV0ZV9wbGFuZV93bV9wYXJhbXMoZGV2X3ByaXYsIGNzdGF0ZSwK PiA+ID4gLQkJCQkJCQkgIGludGVsX3BzCj4gPiA+IHRhdGUsCj4gPiA+ICsJCQkJCQkJICBpbnRl bF9wcwo+ID4gPiB0YXRlLCBkZGIsCj4gPiA+ICAJCQkJCQkJICAmd21fcGFyYQo+ID4gPiBtcywg MSk7Cj4gPiA+ICAJCQlpZiAocmV0KQo+ID4gPiAgCQkJCXJldHVybiByZXQ7Cj4gPiA+ICAKPiA+ ID4gLQkJCXJldCA9IHNrbF9jb21wdXRlX3dtX2xldmVscyhkZXZfcHJpdiwgZGRiLAo+ID4gPiBj c3RhdGUsCj4gPiA+ICsJCQlyZXQgPSBza2xfY29tcHV0ZV93bV9sZXZlbHMoZGV2X3ByaXYsCj4g PiA+IGNzdGF0ZSwKPiA+ID4gIAkJCQkJCSAgICBpbnRlbF9wc3RhdGUsCj4gPiA+ICZ3bV9wYXJh bXMsCj4gPiA+ICAJCQkJCQkgICAgd20sIDEpOwo+ID4gPiAgCQkJaWYgKHJldCkKPiA+ID4gLS0g Cj4gPiA+IDIuMTQuNAo+ID4gPiAKPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KPiA+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gPiBJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4gPiAKPiA+IAoKLS0gClZpbGxlIFN5 cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK