From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 02/33] drm/i915: Measure the required reserved size for request emission Date: Fri, 25 Jan 2019 10:34:37 +0200 Message-ID: <87sgxhkuea.fsf@gaia.fi.intel.com> References: <20190125023005.1007-1-chris@chris-wilson.co.uk> <20190125023005.1007-2-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9B1706F29F for ; Fri, 25 Jan 2019 08:36:32 +0000 (UTC) In-Reply-To: <20190125023005.1007-2-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gSW5zdGVh ZCBvZiB0ZWRpb3VzbHkgYW5kIGZyYWdpbGVseSBjb3VudGluZyB1cCB0aGUgbnVtYmVyIG9mIGR3 b3Jkcwo+IHJlcXVpcmVkIHRvIGVtaXQgdGhlIGJyZWFkY3J1bWIgdG8gc2VhbCBhIHJlcXVlc3Qs IGZha2UgYSByZXF1ZXN0IGFuZAo+IG1lYXN1cmUgaXQgYXV0b21hdGljYWxseSBvbmNlIGR1cmlu ZyBlbmdpbmUgc2V0dXAuCj4KPiBUaGUgZG93bnNpZGUgaXMgdGhhdCB0aGlzIHJlcXVpcmVzIGEg ZmFpciBhbW91bnQgb2YgbW9ja2luZyB0byBjcmVhdGUgYQo+IHByb3BlciBicmVhZGNydW1iLiBT dGlsbCwgc2hvdWxkIGJlIGxlc3MgZXJyb3IgcHJvbmUgaW4gZnV0dXJlIGFzIHRoZQo+IGJyZWFk Y3J1bWIgc2l6ZSBmbHVjdHVhdGVzIQoKV2UgYXJlIHF1aWNrIHRvIG5vdGljZSwgYnV0IHRoaXMg bWV0aG9kIHNhdmVzIGJyYWlucyBhbmQgdGltZSwKcmV2aWV3IHRpbWUuCgo+Cj4gU2lnbmVkLW9m Zi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jICAgICAgIHwgNDkgKysrKysrKysr KysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAg ICAgfCAxMiArKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMg ICAgICB8IDI0ICsrKysrKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9j a19lbmdpbmUuYyB8ICA0ICstCj4gIDUgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwg MTQgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwo+ IGluZGV4IDJmM2M3MWY2ZDMxMy4uODgzYmEyMDhkMWMyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZW5naW5lX2NzLmMKPiBAQCAtNjA0LDYgKzYwNCw0NyBAQCBzdGF0aWMgdm9pZCBf X2ludGVsX2NvbnRleHRfdW5waW4oc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiAgCWlu dGVsX2NvbnRleHRfdW5waW4odG9faW50ZWxfY29udGV4dChjdHgsIGVuZ2luZSkpOwo+ICB9Cj4g IAo+ICtzdHJ1Y3QgbWVhc3VyZV9icmVhZGNydW1iIHsKPiArCXN0cnVjdCBpOTE1X3JlcXVlc3Qg cnE7Cj4gKwlzdHJ1Y3QgaTkxNV90aW1lbGluZSB0aW1lbGluZTsKPiArCXN0cnVjdCBpbnRlbF9y aW5nIHJpbmc7Cj4gKwl1MzIgY3NbMTAyNF07Cj4gK307Cj4gKwo+ICtzdGF0aWMgaW50IG1lYXN1 cmVfYnJlYWRjcnVtYl9zeihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK3sKPiAr CXN0cnVjdCBtZWFzdXJlX2JyZWFkY3J1bWIgKmZyYW1lOwo+ICsJdW5zaWduZWQgaW50IGR3Owo+ ICsKPiArCUdFTV9CVUdfT04oIWVuZ2luZS0+aTkxNS0+Z3Quc2NyYXRjaCk7Cj4gKwo+ICsJZnJh bWUgPSBremFsbG9jKHNpemVvZigqZnJhbWUpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghZnJhbWUp Cj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJaTkxNV90aW1lbGluZV9pbml0KGVuZ2luZS0+ aTkxNSwgJmZyYW1lLT50aW1lbGluZSwgZW5naW5lLT5uYW1lKTsKCllvdSBjb3VsZCBpbml0IHdp dGggbnVsbCBuYW1lLiBUaGlzIGlzIHNvIHNob3J0IGxpdmVkCmFuZCB3ZSBkb250IGV4cGVjdCBk ZWJ1Z3MuIElmIGl0IGV2ZXIgbGVha3MgaW50byB3aWxkLApibG93b3V0IHdvdWxkIGJlIGluc3Rh bnQuIE5vdyB0aGUgbmFtZSBpcyB0aGUgc2FtZSBhcwp0aGUgcmVhbCBkZWFsLgoKPiArCj4gKwlm cmFtZS0+cmluZy50aW1lbGluZSA9ICZmcmFtZS0+dGltZWxpbmU7Cj4gKwlmcmFtZS0+cmluZy52 YWRkciA9IGZyYW1lLT5jczsKPiArCWZyYW1lLT5yaW5nLnNpemUgPSBzaXplb2YoZnJhbWUtPmNz KTsKPiArCWZyYW1lLT5yaW5nLmVmZmVjdGl2ZV9zaXplID0gZnJhbWUtPnJpbmcuc2l6ZTsKPiAr CWZyYW1lLT5yaW5nLnNwYWNlID0gZnJhbWUtPnJpbmcuc2l6ZSAtIDg7CgpXaHkgMiBkd29yZHMg c2hvcnQ/IEp1c3QgY3VyaW91cyBhcyBpdCBkb2Vzbid0IHNlZW0KdG8gbWF0dGVyIGluIHRoaXMg dXNlIGNhc2UuCgo+ICsJSU5JVF9MSVNUX0hFQUQoJmZyYW1lLT5yaW5nLnJlcXVlc3RfbGlzdCk7 Cj4gKwo+ICsJZnJhbWUtPnJxLmk5MTUgPSBlbmdpbmUtPmk5MTU7Cj4gKwlmcmFtZS0+cnEuZW5n aW5lID0gZW5naW5lOwo+ICsJZnJhbWUtPnJxLnJpbmcgPSAmZnJhbWUtPnJpbmc7Cj4gKwlmcmFt ZS0+cnEudGltZWxpbmUgPSAmZnJhbWUtPnRpbWVsaW5lOwo+ICsKPiArCWR3ID0gZW5naW5lLT5l bWl0X2JyZWFkY3J1bWIoJmZyYW1lLT5ycSwgZnJhbWUtPmNzKSAtIGZyYW1lLT5jczsKPiArCUdF TV9CVUdfT04oZHcgIT0gZW5naW5lLT5lbWl0X2JyZWFkY3J1bWJfc3opOwoKUGVhY2Ugb2YgbWlu ZCBwcm92aWRlZCA9KQoKUmV2aWV3ZWQtYnk6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFA bGludXguaW50ZWwuY29tPgoKPiArCj4gKwlpOTE1X3RpbWVsaW5lX2ZpbmkoJmZyYW1lLT50aW1l bGluZSk7Cj4gKwlrZnJlZShmcmFtZSk7Cj4gKwo+ICsJcmV0dXJuIGR3Owo+ICt9Cj4gKwo+ICAv KioKPiAgICogaW50ZWxfZW5naW5lc19pbml0X2NvbW1vbiAtIGluaXRpYWxpemUgY2VuZ2luZSBz dGF0ZSB3aGljaCBtaWdodCByZXF1aXJlIGh3IGFjY2Vzcwo+ICAgKiBAZW5naW5lOiBFbmdpbmUg dG8gaW5pdGlhbGl6ZS4KPiBAQCAtNjU3LDggKzY5OCwxNiBAQCBpbnQgaW50ZWxfZW5naW5lX2lu aXRfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCWlmIChyZXQpCj4g IAkJZ290byBlcnJfYnJlYWRjcnVtYnM7Cj4gIAo+ICsJcmV0ID0gbWVhc3VyZV9icmVhZGNydW1i X3N6KGVuZ2luZSk7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlnb3RvIGVycl9zdGF0dXNfcGFnZTsK PiArCj4gKwllbmdpbmUtPmVtaXRfYnJlYWRjcnVtYl9zeiA9IHJldDsKPiArCj4gIAlyZXR1cm4g MDsKPiAgCj4gK2Vycl9zdGF0dXNfcGFnZToKPiArCWNsZWFudXBfc3RhdHVzX3BhZ2UoZW5naW5l KTsKPiAgZXJyX2JyZWFkY3J1bWJzOgo+ICAJaW50ZWxfZW5naW5lX2ZpbmlfYnJlYWRjcnVtYnMo ZW5naW5lKTsKPiAgZXJyX3VucGluX3ByZWVtcHQ6Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMK PiBpbmRleCA5MTU1Y2M2NzU5MjQuLmQyMjk5NDI1Y2YyZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCj4gQEAgLTIwNTEsMTUgKzIwNTEsMTcgQEAgc3RhdGljIGludCBnZW44X2VtaXRf Zmx1c2hfcmVuZGVyKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsCj4gICAqIHVzZWQgYXMg YSB3b3JrYXJvdW5kIGZvciBub3QgYmVpbmcgYWxsb3dlZCB0byBkbyBsaXRlCj4gICAqIHJlc3Rv cmUgd2l0aCBIRUFEPT1UQUlMIChXYUlkbGVMaXRlUmVzdG9yZSkuCj4gICAqLwo+IC1zdGF0aWMg dm9pZCBnZW44X2VtaXRfd2FfdGFpbChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LCB1MzIg KmNzKQo+ICtzdGF0aWMgdTMyICpnZW44X2VtaXRfd2FfdGFpbChzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpyZXF1ZXN0LCB1MzIgKmNzKQo+ICB7Cj4gIAkvKiBFbnN1cmUgdGhlcmUncyBhbHdheXMgYXQg bGVhc3Qgb25lIHByZWVtcHRpb24gcG9pbnQgcGVyLXJlcXVlc3QuICovCj4gIAkqY3MrKyA9IE1J X0FSQl9DSEVDSzsKPiAgCSpjcysrID0gTUlfTk9PUDsKPiAgCXJlcXVlc3QtPndhX3RhaWwgPSBp bnRlbF9yaW5nX29mZnNldChyZXF1ZXN0LCBjcyk7Cj4gKwo+ICsJcmV0dXJuIGNzOwo+ICB9Cj4g IAo+IC1zdGF0aWMgdm9pZCBnZW44X2VtaXRfYnJlYWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpyZXF1ZXN0LCB1MzIgKmNzKQo+ICtzdGF0aWMgdTMyICpnZW44X2VtaXRfYnJlYWRjcnVtYihz dHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LCB1MzIgKmNzKQo+ICB7Cj4gIAkvKiB3L2E6IGJp dCA1IG5lZWRzIHRvIGJlIHplcm8gZm9yIE1JX0ZMVVNIX0RXIGFkZHJlc3MuICovCj4gIAlCVUlM RF9CVUdfT04oSTkxNV9HRU1fSFdTX0lOREVYX0FERFIgJiAoMSA8PCA1KSk7Cj4gQEAgLTIwNzEs MTEgKzIwNzMsMTEgQEAgc3RhdGljIHZvaWQgZ2VuOF9lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5 MTVfcmVxdWVzdCAqcmVxdWVzdCwgdTMyICpjcykKPiAgCXJlcXVlc3QtPnRhaWwgPSBpbnRlbF9y aW5nX29mZnNldChyZXF1ZXN0LCBjcyk7Cj4gIAlhc3NlcnRfcmluZ190YWlsX3ZhbGlkKHJlcXVl c3QtPnJpbmcsIHJlcXVlc3QtPnRhaWwpOwo+ICAKPiAtCWdlbjhfZW1pdF93YV90YWlsKHJlcXVl c3QsIGNzKTsKPiArCXJldHVybiBnZW44X2VtaXRfd2FfdGFpbChyZXF1ZXN0LCBjcyk7Cj4gIH0K PiAgc3RhdGljIGNvbnN0IGludCBnZW44X2VtaXRfYnJlYWRjcnVtYl9zeiA9IDYgKyBXQV9UQUlM X0RXT1JEUzsKPiAgCj4gLXN0YXRpYyB2b2lkIGdlbjhfZW1pdF9icmVhZGNydW1iX3JjcyhzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LCB1MzIgKmNzKQo+ICtzdGF0aWMgdTMyICpnZW44X2Vt aXRfYnJlYWRjcnVtYl9yY3Moc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCwgdTMyICpjcykK PiAgewo+ICAJLyogV2UncmUgdXNpbmcgcXdvcmQgd3JpdGUsIHNlcW5vIHNob3VsZCBiZSBhbGln bmVkIHRvIDggYnl0ZXMuICovCj4gIAlCVUlMRF9CVUdfT04oSTkxNV9HRU1fSFdTX0lOREVYICYg MSk7Cj4gQEAgLTIwOTUsNyArMjA5Nyw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfZW1pdF9icmVhZGNy dW1iX3JjcyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LCB1MzIgKmNzKQo+ICAJcmVxdWVz dC0+dGFpbCA9IGludGVsX3Jpbmdfb2Zmc2V0KHJlcXVlc3QsIGNzKTsKPiAgCWFzc2VydF9yaW5n X3RhaWxfdmFsaWQocmVxdWVzdC0+cmluZywgcmVxdWVzdC0+dGFpbCk7Cj4gIAo+IC0JZ2VuOF9l bWl0X3dhX3RhaWwocmVxdWVzdCwgY3MpOwo+ICsJcmV0dXJuIGdlbjhfZW1pdF93YV90YWlsKHJl cXVlc3QsIGNzKTsKPiAgfQo+ICBzdGF0aWMgY29uc3QgaW50IGdlbjhfZW1pdF9icmVhZGNydW1i X3Jjc19zeiA9IDggKyBXQV9UQUlMX0RXT1JEUzsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuYwo+IGluZGV4IGUzOWU0ODNkOGQxNi4uMTA3YzQ5MzRlMmZhIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IEBAIC0yOTksNyArMjk5 LDcgQEAgZ2VuNl9yZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMy IG1vZGUpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZ2VuNl9yY3NfZW1p dF9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgKmNzKQo+ICtzdGF0aWMg dTMyICpnZW42X3Jjc19lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUz MiAqY3MpCj4gIHsKPiAgCS8qIEZpcnN0IHdlIGRvIHRoZSBnZW42X2VtaXRfcG9zdF9zeW5jX25v bnplcm9fZmx1c2ggdy9hICovCj4gIAkqY3MrKyA9IEdGWF9PUF9QSVBFX0NPTlRST0woNCk7Cj4g QEAgLTMyNyw2ICszMjcsOCBAQCBzdGF0aWMgdm9pZCBnZW42X3Jjc19lbWl0X2JyZWFkY3J1bWIo c3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiAqY3MpCj4gIAo+ICAJcnEtPnRhaWwgPSBpbnRl bF9yaW5nX29mZnNldChycSwgY3MpOwo+ICAJYXNzZXJ0X3JpbmdfdGFpbF92YWxpZChycS0+cmlu ZywgcnEtPnRhaWwpOwo+ICsKPiArCXJldHVybiBjczsKPiAgfQo+ICBzdGF0aWMgY29uc3QgaW50 IGdlbjZfcmNzX2VtaXRfYnJlYWRjcnVtYl9zeiA9IDE0Owo+ICAKPiBAQCAtNDA5LDcgKzQxMSw3 IEBAIGdlbjdfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiBt b2RlKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGdlbjdfcmNzX2VtaXRf YnJlYWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyICpjcykKPiArc3RhdGljIHUz MiAqZ2VuN19yY3NfZW1pdF9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIg KmNzKQo+ICB7Cj4gIAkqY3MrKyA9IEdGWF9PUF9QSVBFX0NPTlRST0woNCk7Cj4gIAkqY3MrKyA9 IChQSVBFX0NPTlRST0xfUkVOREVSX1RBUkdFVF9DQUNIRV9GTFVTSCB8Cj4gQEAgLTQyNywxMCAr NDI5LDEyIEBAIHN0YXRpYyB2b2lkIGdlbjdfcmNzX2VtaXRfYnJlYWRjcnVtYihzdHJ1Y3QgaTkx NV9yZXF1ZXN0ICpycSwgdTMyICpjcykKPiAgCj4gIAlycS0+dGFpbCA9IGludGVsX3Jpbmdfb2Zm c2V0KHJxLCBjcyk7Cj4gIAlhc3NlcnRfcmluZ190YWlsX3ZhbGlkKHJxLT5yaW5nLCBycS0+dGFp bCk7Cj4gKwo+ICsJcmV0dXJuIGNzOwo+ICB9Cj4gIHN0YXRpYyBjb25zdCBpbnQgZ2VuN19yY3Nf ZW1pdF9icmVhZGNydW1iX3N6ID0gNjsKPiAgCj4gLXN0YXRpYyB2b2lkIGdlbjZfeGNzX2VtaXRf YnJlYWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyICpjcykKPiArc3RhdGljIHUz MiAqZ2VuNl94Y3NfZW1pdF9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIg KmNzKQo+ICB7Cj4gIAkqY3MrKyA9IE1JX0ZMVVNIX0RXIHwgTUlfRkxVU0hfRFdfT1BfU1RPUkVE VzsKPiAgCSpjcysrID0gaW50ZWxfaHdzX3NlcW5vX2FkZHJlc3MocnEtPmVuZ2luZSkgfCBNSV9G TFVTSF9EV19VU0VfR1RUOwo+IEBAIC00MzksMTEgKzQ0MywxMyBAQCBzdGF0aWMgdm9pZCBnZW42 X3hjc19lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiAqY3MpCj4g IAo+ICAJcnEtPnRhaWwgPSBpbnRlbF9yaW5nX29mZnNldChycSwgY3MpOwo+ICAJYXNzZXJ0X3Jp bmdfdGFpbF92YWxpZChycS0+cmluZywgcnEtPnRhaWwpOwo+ICsKPiArCXJldHVybiBjczsKPiAg fQo+ICBzdGF0aWMgY29uc3QgaW50IGdlbjZfeGNzX2VtaXRfYnJlYWRjcnVtYl9zeiA9IDQ7Cj4g IAo+ICAjZGVmaW5lIEdFTjdfWENTX1dBIDMyCj4gLXN0YXRpYyB2b2lkIGdlbjdfeGNzX2VtaXRf YnJlYWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyICpjcykKPiArc3RhdGljIHUz MiAqZ2VuN194Y3NfZW1pdF9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIg KmNzKQo+ICB7Cj4gIAlpbnQgaTsKPiAgCj4gQEAgLTQ2Niw2ICs0NzIsOCBAQCBzdGF0aWMgdm9p ZCBnZW43X3hjc19lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiAq Y3MpCj4gIAo+ICAJcnEtPnRhaWwgPSBpbnRlbF9yaW5nX29mZnNldChycSwgY3MpOwo+ICAJYXNz ZXJ0X3JpbmdfdGFpbF92YWxpZChycS0+cmluZywgcnEtPnRhaWwpOwo+ICsKPiArCXJldHVybiBj czsKPiAgfQo+ICBzdGF0aWMgY29uc3QgaW50IGdlbjdfeGNzX2VtaXRfYnJlYWRjcnVtYl9zeiA9 IDggKyBHRU43X1hDU19XQSAqIDM7Cj4gICN1bmRlZiBHRU43X1hDU19XQQo+IEBAIC04NjEsNyAr ODY5LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9zdWJtaXRfcmVxdWVzdChzdHJ1Y3QgaTkxNV9yZXF1 ZXN0ICpyZXF1ZXN0KQo+ICAJCQlpbnRlbF9yaW5nX3NldF90YWlsKHJlcXVlc3QtPnJpbmcsIHJl cXVlc3QtPnRhaWwpKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaTl4eF9lbWl0X2JyZWFkY3J1 bWIoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiAqY3MpCj4gK3N0YXRpYyB1MzIgKmk5eHhf ZW1pdF9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1MzIgKmNzKQo+ICB7Cj4g IAkqY3MrKyA9IE1JX0ZMVVNIOwo+ICAKPiBAQCAtODc0LDExICs4ODIsMTMgQEAgc3RhdGljIHZv aWQgaTl4eF9lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiAqY3Mp Cj4gIAo+ICAJcnEtPnRhaWwgPSBpbnRlbF9yaW5nX29mZnNldChycSwgY3MpOwo+ICAJYXNzZXJ0 X3JpbmdfdGFpbF92YWxpZChycS0+cmluZywgcnEtPnRhaWwpOwo+ICsKPiArCXJldHVybiBjczsK PiAgfQo+ICBzdGF0aWMgY29uc3QgaW50IGk5eHhfZW1pdF9icmVhZGNydW1iX3N6ID0gNjsKPiAg Cj4gICNkZWZpbmUgR0VONV9XQV9TVE9SRVMgOCAvKiBtdXN0IGJlIGF0IGxlYXN0IDEhICovCj4g LXN0YXRpYyB2b2lkIGdlbjVfZW1pdF9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJx LCB1MzIgKmNzKQo+ICtzdGF0aWMgdTMyICpnZW41X2VtaXRfYnJlYWRjcnVtYihzdHJ1Y3QgaTkx NV9yZXF1ZXN0ICpycSwgdTMyICpjcykKPiAgewo+ICAJaW50IGk7Cj4gIAo+IEBAIC04OTUsNiAr OTA1LDggQEAgc3RhdGljIHZvaWQgZ2VuNV9lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVx dWVzdCAqcnEsIHUzMiAqY3MpCj4gIAo+ICAJcnEtPnRhaWwgPSBpbnRlbF9yaW5nX29mZnNldChy cSwgY3MpOwo+ICAJYXNzZXJ0X3JpbmdfdGFpbF92YWxpZChycS0+cmluZywgcnEtPnRhaWwpOwo+ ICsKPiArCXJldHVybiBjczsKPiAgfQo+ICBzdGF0aWMgY29uc3QgaW50IGdlbjVfZW1pdF9icmVh ZGNydW1iX3N6ID0gR0VONV9XQV9TVE9SRVMgKiAzICsgMjsKPiAgI3VuZGVmIEdFTjVfV0FfU1RP UkVTCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGluZGV4IGMzZWYw ZjliZjMyMS4uNDc5YmQ1M2Q0YWM2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaAo+IEBAIC00NzAsNyArNDcwLDcgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7 Cj4gIAkJCQkJIHVuc2lnbmVkIGludCBkaXNwYXRjaF9mbGFncyk7Cj4gICNkZWZpbmUgSTkxNV9E SVNQQVRDSF9TRUNVUkUgQklUKDApCj4gICNkZWZpbmUgSTkxNV9ESVNQQVRDSF9QSU5ORUQgQklU KDEpCj4gLQl2b2lkCQkoKmVtaXRfYnJlYWRjcnVtYikoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEs IHUzMiAqY3MpOwo+ICsJdTMyCQkqKCplbWl0X2JyZWFkY3J1bWIpKHN0cnVjdCBpOTE1X3JlcXVl c3QgKnJxLCB1MzIgKmNzKTsKPiAgCWludAkJZW1pdF9icmVhZGNydW1iX3N6Owo+ICAKPiAgCS8q IFBhc3MgdGhlIHJlcXVlc3QgdG8gdGhlIGhhcmR3YXJlIHF1ZXVlIChlLmcuIGRpcmVjdGx5IGlu dG8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZW5n aW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19lbmdpbmUuYwo+IGlu ZGV4IDQ0MmVjMmFlZWM4MS4uOTA1MzE4YjdhZTE4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2VuZ2luZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL21vY2tfZW5naW5lLmMKPiBAQCAtMTU5LDkgKzE1OSw5IEBAIHN0YXRp YyBpbnQgbW9ja19lbWl0X2ZsdXNoKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsCj4gIAly ZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgbW9ja19lbWl0X2JyZWFkY3J1bWIoc3Ry dWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCwKPiAtCQkJCSB1MzIgKmZsYWdzKQo+ICtzdGF0aWMg dTMyICptb2NrX2VtaXRfYnJlYWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LCB1 MzIgKmNzKQo+ICB7Cj4gKwlyZXR1cm4gY3M7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIG1vY2tf c3VibWl0X3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKPiAtLSAKPiAyLjIw LjEKPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK