From mboxrd@z Thu Jan 1 00:00:00 1970 From: Janusz Krzysztofik Subject: Re: [PATCH 2/3] drm/i915: Allow userspace to specify ringsize on construction Date: Mon, 18 Nov 2019 12:14:12 +0100 Message-ID: <14059150.4o38dXUsEa@jkrzyszt-desk.ger.corp.intel.com> References: <20191115160546.896305-1-chris@chris-wilson.co.uk> <20191115160546.896305-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8B1C16E090 for ; Mon, 18 Nov 2019 11:14:26 +0000 (UTC) In-Reply-To: <20191115160546.896305-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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SGkgQ2hyaXMsCgpPbmx5IHNvbWUgbWlub3IgY29tbWVudHMgZnJvbSBtZSwgbW9zdGx5IG91dCBv ZiBteSBjdXJpb3NpdHkuCgpPbiBGcmlkYXksIE5vdmVtYmVyIDE1LCAyMDE5IDU6MDU6NDUgUE0g Q0VUIENocmlzIFdpbHNvbiB3cm90ZToKPiBObyBnb29kIHJlYXNvbiB3aHkgd2UgbXVzdCBhbHdh eXMgdXNlIGEgc3RhdGljIHJpbmdzaXplLCBzbyBsZXQKPiB1c2Vyc3BhY2Ugc2VsZWN0IG9uZSBk dXJpbmcgY29uc3RydWN0aW9uLgo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hy aXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0 aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9jb250ZXh0LmMgfCAxMzkgKysrKysrKysrKysrKysrKysrKy0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMgICAgICAgICB8ICAgMSArCj4gIGluY2x1ZGUvdWFw aS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAgICAgICAgfCAgMTkgKysrCj4gIDMgZmlsZXMgY2hh bmdlZCwgMTUzIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jCj4gaW5kZXggMTI4NGY0NzMwM2ZhLi5l ZTlhNDYzNGZlZDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX2NvbnRleHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9j b250ZXh0LmMKPiBAQCAtNTk3LDIzICs1OTcsMzAgQEAgX19jcmVhdGVfY29udGV4dChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgCXJldHVybiBFUlJfUFRSKGVycik7Cj4gIH0KPiAg Cj4gLXN0YXRpYyB2b2lkCj4gK3N0YXRpYyBpbnQKPiAgY29udGV4dF9hcHBseV9hbGwoc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiAtCQkgIHZvaWQgKCpmbikoc3RydWN0IGludGVsX2Nv bnRleHQgKmNlLCB2b2lkICpkYXRhKSwKPiArCQkgIGludCAoKmZuKShzdHJ1Y3QgaW50ZWxfY29u dGV4dCAqY2UsIHZvaWQgKmRhdGEpLAo+ICAJCSAgdm9pZCAqZGF0YSkKPiAgewo+ICAJc3RydWN0 IGk5MTVfZ2VtX2VuZ2luZXNfaXRlciBpdDsKPiAgCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsK PiArCWludCBlcnIgPSAwOwo+ICAKPiAtCWZvcl9lYWNoX2dlbV9lbmdpbmUoY2UsIGk5MTVfZ2Vt X2NvbnRleHRfbG9ja19lbmdpbmVzKGN0eCksIGl0KQo+IC0JCWZuKGNlLCBkYXRhKTsKPiArCWZv cl9lYWNoX2dlbV9lbmdpbmUoY2UsIGk5MTVfZ2VtX2NvbnRleHRfbG9ja19lbmdpbmVzKGN0eCks IGl0KSB7Cj4gKwkJZXJyID0gZm4oY2UsIGRhdGEpOwo+ICsJCWlmIChlcnIpCj4gKwkJCWJyZWFr Owo+ICsJfQo+ICAJaTkxNV9nZW1fY29udGV4dF91bmxvY2tfZW5naW5lcyhjdHgpOwo+ICsKPiAr CXJldHVybiBlcnI7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIF9fYXBwbHlfcHBndHQoc3RydWN0 IGludGVsX2NvbnRleHQgKmNlLCB2b2lkICp2bSkKPiArc3RhdGljIGludCBfX2FwcGx5X3BwZ3R0 KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwgdm9pZCAqdm0pCj4gIHsKPiAgCWk5MTVfdm1fcHV0 KGNlLT52bSk7Cj4gIAljZS0+dm0gPSBpOTE1X3ZtX2dldCh2bSk7Cj4gKwlyZXR1cm4gMDsKPiAg fQo+ICAKPiAgc3RhdGljIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKgo+IEBAIC02NTEsOSAr NjU4LDEwIEBAIHN0YXRpYyB2b2lkIF9fc2V0X3RpbWVsaW5lKHN0cnVjdCBpbnRlbF90aW1lbGlu ZSAqKmRzdCwKPiAgCQlpbnRlbF90aW1lbGluZV9wdXQob2xkKTsKPiAgfQo+ICAKPiAtc3RhdGlj IHZvaWQgX19hcHBseV90aW1lbGluZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIHZvaWQgKnRp bWVsaW5lKQo+ICtzdGF0aWMgaW50IF9fYXBwbHlfdGltZWxpbmUoc3RydWN0IGludGVsX2NvbnRl eHQgKmNlLCB2b2lkICp0aW1lbGluZSkKPiAgewo+ICAJX19zZXRfdGltZWxpbmUoJmNlLT50aW1l bGluZSwgdGltZWxpbmUpOwo+ICsJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIF9f YXNzaWduX3RpbWVsaW5lKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4gQEAgLTEyMjMs NiArMTIzMSwxMDQgQEAgc3RhdGljIGludCBzZXRfcHBndHQoc3RydWN0IGRybV9pOTE1X2ZpbGVf cHJpdmF0ZSAqZmlsZV9wcml2LAo+ICAJcmV0dXJuIGVycjsKPiAgfQo+ICAKPiArc3RhdGljIGlu dCBfX2FwcGx5X3JpbmdzaXplKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwgdm9pZCAqc3opCj4g K3sKPiArCWludCBlcnI7Cj4gKwo+ICsJZXJyID0gaTkxNV9hY3RpdmVfd2FpdCgmY2UtPmFjdGl2 ZSk7Cj4gKwlpZiAoZXJyIDwgMCkKPiArCQlyZXR1cm4gZXJyOwo+ICsKPiArCWlmIChpbnRlbF9j b250ZXh0X2xvY2tfcGlubmVkKGNlKSkKPiArCQlyZXR1cm4gLUVJTlRSOwo+ICsKPiArCWlmIChp bnRlbF9jb250ZXh0X2lzX3Bpbm5lZChjZSkpIHsKPiArCQllcnIgPSAtRUJVU1k7IC8qIEluIGFj dGl2ZSB1c2UsIGNvbWUgYmFjayBsYXRlciEgKi8KPiArCQlnb3RvIHVubG9jazsKPiArCX0KPiAr Cj4gKwlpZiAodGVzdF9iaXQoQ09OVEVYVF9BTExPQ19CSVQsICZjZS0+ZmxhZ3MpKSB7Cj4gKwkJ c3RydWN0IGludGVsX3JpbmcgKnJpbmc7Cj4gKwo+ICsJCS8qIFJlcGxhY2UgdGhlIGV4aXN0aW5n IHJpbmdidWZmZXIgKi8KPiArCQlyaW5nID0gaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nKGNlLT5l bmdpbmUsCj4gKwkJCQkJCSh1bnNpZ25lZCBsb25nKXN6KTsKPiArCQlpZiAoSVNfRVJSKHJpbmcp KSB7Cj4gKwkJCWVyciA9IFBUUl9FUlIocmluZyk7Cj4gKwkJCWdvdG8gdW5sb2NrOwo+ICsJCX0K PiArCj4gKwkJaW50ZWxfcmluZ19wdXQoY2UtPnJpbmcpOwo+ICsJCWNlLT5yaW5nID0gcmluZzsK PiArCj4gKwkJLyogQ29udGV4dCBpbWFnZSB3aWxsIGJlIHVwZGF0ZWQgb24gbmV4dCBwaW4gKi8K PiArCX0gZWxzZSB7Cj4gKwkJY2UtPnJpbmcgPSBzejsKPiArCX0KPiArCj4gK3VubG9jazoKPiAr CWludGVsX2NvbnRleHRfdW5sb2NrX3Bpbm5lZChjZSk7Cj4gKwlyZXR1cm4gZXJyOwo+ICt9CgpJ J20gd29uZGVyaW5nIGlmIHRoaXMgZnVuY3Rpb24gKGFuZCBfX2dldF9yaW5nc2l6ZSgpIGJlbG93 IGFzIHdlbGwpLCB3aXRoIGl0cyAKZGVwZW5kZW5jeSBvbiBpbnRlbF9jb250ZXh0IGludGVybmFs cywgZXNwZWNpYWxseSBvbiB0aGF0IGR1YWwgbWVhbmluZyBvZiAKY2UtPnJpbmcgd2hpY2ggZGVw ZW5kcyBvbiAoY2UtPmZsYWdzICYgQ09OVEVYVF9BTExPQ19CSVQpLCB3b3VsZCBiZXR0ZXIgZml0 IAppbnRvIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuYy4KCj4gKwo+ICtz dGF0aWMgaW50IHNldF9yaW5nc2l6ZShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+ICsJ CQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gKmFyZ3MpCj4gK3sKPiArCWlmICgh SEFTX0xPR0lDQUxfUklOR19DT05URVhUUyhjdHgtPmk5MTUpKQo+ICsJCXJldHVybiAtRU5PREVW Owo+ICsKPiArCWlmIChhcmdzLT5zaXplKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCWlm ICghSVNfQUxJR05FRChhcmdzLT52YWx1ZSwgSTkxNV9HVFRfUEFHRV9TSVpFKSkKPiArCQlyZXR1 cm4gLUVJTlZBTDsKPiArCj4gKwlpZiAoYXJncy0+dmFsdWUgPCBJOTE1X0dUVF9QQUdFX1NJWkUp Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJaWYgKGFyZ3MtPnZhbHVlID4gMTI4ICogSTkx NV9HVFRfUEFHRV9TSVpFKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCXJldHVybiBjb250 ZXh0X2FwcGx5X2FsbChjdHgsCj4gKwkJCQkgX19hcHBseV9yaW5nc2l6ZSwKPiArCQkJCSBfX2lu dGVsX2NvbnRleHRfcmluZ19zaXplKGFyZ3MtPnZhbHVlKSk7Cj4gK30KPiArCj4gK3N0YXRpYyBp bnQgX19nZXRfcmluZ3NpemUoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLCB2b2lkICphcmcpCj4g K3sKPiArCWludCBudW1fcGFnZXM7Cj4gKwo+ICsJaWYgKGludGVsX2NvbnRleHRfbG9ja19waW5u ZWQoY2UpKQo+ICsJCXJldHVybiAtRUlOVFI7Cj4gKwo+ICsJaWYgKHRlc3RfYml0KENPTlRFWFRf QUxMT0NfQklULCAmY2UtPmZsYWdzKSkKPiArCQludW1fcGFnZXMgPSBjZS0+cmluZy0+c2l6ZSAv IEk5MTVfR1RUX1BBR0VfU0laRTsKPiArCWVsc2UKPiArCQludW1fcGFnZXMgPSAodWludHB0cl90 KWNlLT5yaW5nIC8gSTkxNV9HVFRfUEFHRV9TSVpFOwo+ICsKPiArCWludGVsX2NvbnRleHRfdW5s b2NrX3Bpbm5lZChjZSk7Cj4gKwlyZXR1cm4gbnVtX3BhZ2VzOyAvKiBzdG9wIG9uIGZpcnN0IGVu Z2luZSAqLwoKTG9jYXRpb24gb2YgdGhpcyBjb21tZW50IHNlZW1zIG5vdCBwZXJmZWN0IHRvIG1l IGFzIGl0IGlzIG5vdCBxdWl0ZSBvYnZpb3VzIApob3cgdGhhdCB3b3JrcyB3aXRob3V0IGV4YW1p bmluZyBob3cgdGhpcyBmdW5jdGlvbiBpcyB1c2VkLCBidXQgaGF2aW5nIHNwZW50IGEgCndoaWxl IGxvb2tpbmcgYXJvdW5kLCBJJ20gbm90IGFibGUgdG8gc3VnZ2VzdCBhIGJldHRlciBwbGFjZS4K Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgZ2V0X3JpbmdzaXplKHN0cnVjdCBpOTE1X2dlbV9jb250 ZXh0ICpjdHgsCj4gKwkJCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSAqYXJncykK PiArewo+ICsJaW50IG51bV9wYWdlczsKPiArCj4gKwlpZiAoIUhBU19MT0dJQ0FMX1JJTkdfQ09O VEVYVFMoY3R4LT5pOTE1KSkKPiArCQlyZXR1cm4gLUVOT0RFVjsKPiArCj4gKwlpZiAoYXJncy0+ c2l6ZSkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwludW1fcGFnZXMgPSBjb250ZXh0X2Fw cGx5X2FsbChjdHgsIF9fZ2V0X3JpbmdzaXplLCBOVUxMKTsKPiArCWlmIChudW1fcGFnZXMgPCAw KQo+ICsJCXJldHVybiBudW1fcGFnZXM7Cj4gKwo+ICsJYXJncy0+dmFsdWUgPSAodTY0KW51bV9w YWdlcyAqIEk5MTVfR1RUX1BBR0VfU0laRTsKCkRvIHlvdSBjb252ZXJ0IHRvIG51bV9wYWdlcyBp bnNpZGUgX19nZXRfcmluZ3NpemUoKSB0aGVuIGJhY2sgdG8gc2l6ZSBpbiBieXRlcyAKdG8gYXZv aWQgYW4gb3ZlcmZsb3c/ICBPciBhbnkgb3RoZXIgcmVhc29uPyAgU29tZXRoaW5nIHRoYXQgbWF5 IGJlIHVzZWZ1bCBpbiAKdGhlIGZ1dHVyZT8KCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAgc3Rh dGljIGludCBnZW44X2VtaXRfcnBjc19jb25maWcoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCj4g IAkJCQkgc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAo+ICAJCQkJIHN0cnVjdCBpbnRlbF9zc2V1 IHNzZXUpCj4gQEAgLTE5MzUsNiArMjA0MSwxMCBAQCBzdGF0aWMgaW50IGN0eF9zZXRwYXJhbShz dHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmcHJpdiwKPiAgCQlyZXQgPSBzZXRfcGVyc2lz dGVuY2UoY3R4LCBhcmdzKTsKPiAgCQlicmVhazsKPiAgCj4gKwljYXNlIEk5MTVfQ09OVEVYVF9Q QVJBTV9SSU5HU0laRToKPiArCQlyZXQgPSBzZXRfcmluZ3NpemUoY3R4LCBhcmdzKTsKPiArCQli cmVhazsKPiArCj4gIAljYXNlIEk5MTVfQ09OVEVYVF9QQVJBTV9CQU5fUEVSSU9EOgo+ICAJZGVm YXVsdDoKPiAgCQlyZXQgPSAtRUlOVkFMOwo+IEBAIC0yMDAzLDYgKzIxMTMsMTkgQEAgc3RhdGlj IGludCBjbG9uZV9lbmdpbmVzKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpkc3QsCj4gIAkJCV9f ZnJlZV9lbmdpbmVzKGNsb25lLCBuKTsKPiAgCQkJZ290byBlcnJfdW5sb2NrOwo+ICAJCX0KPiAr Cj4gKwkJLyogQ29weSBhY3Jvc3MgdGhlIHByZWZlcnJlZCByaW5nc2l6ZSAqLwo+ICsJCWNsb25l LT5lbmdpbmVzW25dLT5yaW5nID0gZS0+ZW5naW5lc1tuXS0+cmluZzsKPiArCQlpZiAodGVzdF9i aXQoQ09OVEVYVF9BTExPQ19CSVQsICZlLT5lbmdpbmVzW25dLT5mbGFncykpIHsKPiArCQkJaWYg KGludGVsX2NvbnRleHRfbG9ja19waW5uZWQoZS0+ZW5naW5lc1tuXSkpIHsKPiArCQkJCV9fZnJl ZV9lbmdpbmVzKGNsb25lLCBuICsgMSk7Cj4gKwkJCQlnb3RvIGVycl91bmxvY2s7Cj4gKwkJCX0K PiArCj4gKwkJCWNsb25lLT5lbmdpbmVzW25dLT5yaW5nID0KPiArCQkJCV9faW50ZWxfY29udGV4 dF9yaW5nX3NpemUoZS0+ZW5naW5lc1tuXS0+cmluZy0+c2l6ZSk7Cj4gKwkJCWludGVsX2NvbnRl eHRfdW5sb2NrX3Bpbm5lZChlLT5lbmdpbmVzW25dKTsKPiArCQl9CgpBbm90aGVyIGNhbmRpZGF0 ZSBmb3IgYSBoZWxwZXIgbG9jYXRlZCBpbiAKZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf Y29udGV4dC5jPwoKPiAgCX0KPiAgCWNsb25lLT5udW1fZW5naW5lcyA9IG47Cj4gIAo+IEBAIC0y MzY2LDYgKzI0ODksMTAgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfZ2V0cGFyYW1faW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgCQlhcmdzLT52YWx1ZSA9IGk5MTVf Z2VtX2NvbnRleHRfaXNfcGVyc2lzdGVudChjdHgpOwo+ICAJCWJyZWFrOwo+ICAKPiArCWNhc2Ug STkxNV9DT05URVhUX1BBUkFNX1JJTkdTSVpFOgo+ICsJCXJldCA9IGdldF9yaW5nc2l6ZShjdHgs IGFyZ3MpOwo+ICsJCWJyZWFrOwo+ICsKPiAgCWNhc2UgSTkxNV9DT05URVhUX1BBUkFNX0JBTl9Q RVJJT0Q6Cj4gIAlkZWZhdWx0Ogo+ICAJCXJldCA9IC1FSU5WQUw7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfbHJjLmMKPiBpbmRleCAzM2NlMjU4ZDQ4NGYuLjI2NDk2OTBhOTUxZSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCj4gQEAgLTI0MTcsNiArMjQxNyw3IEBAIF9f ZXhlY2xpc3RzX3VwZGF0ZV9yZWdfc3RhdGUoY29uc3Qgc3RydWN0IGludGVsX2NvbnRleHQgKmNl LAo+ICAJcmVnc1tDVFhfUklOR19TVEFSVF0gPSBpOTE1X2dndHRfb2Zmc2V0KHJpbmctPnZtYSk7 Cj4gIAlyZWdzW0NUWF9SSU5HX0hFQURdID0gcmluZy0+aGVhZDsKPiAgCXJlZ3NbQ1RYX1JJTkdf VEFJTF0gPSByaW5nLT50YWlsOwo+ICsJcmVnc1tDVFhfUklOR19DVExdID0gUklOR19DVExfU0la RShyaW5nLT5zaXplKSB8IFJJTkdfVkFMSUQ7Cj4gIAo+ICAJLyogUlBDUyAqLwo+ICAJaWYgKGVu Z2luZS0+Y2xhc3MgPT0gUkVOREVSX0NMQVNTKSB7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFw aS9kcm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+IGluZGV4IDU0 MDBkN2UwNTdmMS4uYWU3Y2Q2ODFiMDc1IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0v aTkxNV9kcm0uaAo+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+IEBAIC0xNTg3 LDYgKzE1ODcsMjUgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtIHsKPiAgICog QnkgZGVmYXVsdCwgbmV3IGNvbnRleHRzIGFsbG93IHBlcnNpc3RlbmNlLgo+ICAgKi8KPiAgI2Rl ZmluZSBJOTE1X0NPTlRFWFRfUEFSQU1fUEVSU0lTVEVOQ0UJMHhiCj4gKwo+ICsvKgo+ICsgKiBJ OTE1X0NPTlRFWFRfUEFSQU1fUklOR1NJWkU6Cj4gKyAqCj4gKyAqIFNldHMgdGhlIHNpemUgb2Yg dGhlIENTIHJpbmdidWZmZXIgdG8gdXNlIGZvciBsb2dpY2FsIHJpbmcgY29udGV4dHMuIFRoaXMK PiArICogYXBwbGllcyBhIGxpbWl0IG9mIGhvdyBtYW55IGJhdGNoZXMgY2FuIGJlIHF1ZXVlZCB0 byBIVyBiZWZvcmUgdGhlIGNhbGxlcgo+ICsgKiBpcyBibG9ja2VkIGR1ZSB0byBsYWNrIG9mIHNw YWNlIGZvciBtb3JlIGNvbW1hbmRzLgo+ICsgKgo+ICsgKiBPbmx5IHJlbGlhYmx5IHBvc3NpYmxl IHRvIGJlIHNldCBwcmlvciB0byBmaXJzdCB1c2UsIGkuZS4gZHVyaW5nCj4gKyAqIGNvbnN0cnVj dGlvbi4gQXQgYW55IGxhdGVyIHBvaW50LCB0aGUgY3VycmVudCBleGVjdXRpb24gbXVzdCBiZSBm bHVzaGVkIGFzCj4gKyAqIHRoZSByaW5nIGNhbiBvbmx5IGJlIGNoYW5nZWQgd2hpbGUgdGhlIGNv bnRleHQgaXMgaWRsZS4KPiArICoKPiArICogT25seSBhcHBsaWVzIHRvIHRoZSBjdXJyZW50IHNl dCBvZiBlbmdpbmUgYW5kIGxvc3Qgd2hlbiB0aG9zZSBlbmdpbmVzCj4gKyAqIGFyZSByZXBsYWNl ZCBieSBhIG5ldyBtYXBwaW5nIChzZWUgSTkxNV9DT05URVhUX1BBUkFNX0VOR0lORVMpLgo+ICsg Kgo+ICsgKiBNdXN0IGJlIGJldHdlZW4gNCAtIDUxMiBLaUIsIGluIGludGVydmFscyBvZiBwYWdl IHNpemUgWzQgS2lCXS4KPiArICogRGVmYXVsdCBpcyAxNiBLaUIuCj4gKyAqLwo+ICsjZGVmaW5l IEk5MTVfQ09OVEVYVF9QQVJBTV9SSU5HU0laRQkweGMKCkkga25vdyBpdCBsb29rZWQgbGlrZSB0 aGF0IGFscmVhZHkgYmVmb3JlLCBidXQgaGF2aW5nIG90aGVyIGRvY3VtZW50ZWQgZmxhZ3MgCnNl cGFyYXRlZCBieSBibGFuayBsaW5lcyBmcm9tIGVhY2ggb3RoZXIsIElzIHRoZXJlIGFueSByZWFz b24gZm9yIG5vdCBwdXR0aW5nIAphbm90aGVyIGJsYW5rIGxpbmUgYWZ0ZXIgdGhlIGxhc3Qgb25l PwoKPiAgLyogTXVzdCBiZSBrZXB0IGNvbXBhY3QgLS0gbm8gaG9sZXMgYW5kIHdlbGwgZG9jdW1l bnRlZCAqLwo+ICAKPiAgCV9fdTY0IHZhbHVlOwo+IAoKTm9uZSBvZiB0aGUgYWJvdmUgY29tbWVu dHMgYXJlIGVzc2VudGlhbCBzbyB3aXRoIG9yIHdpdGhvdXQgdGhlbSBhZGRyZXNzZWQ6ClJldmll d2VkLWJ5OiBKYW51c3ogS3J6eXN6dG9maWsgPGphbnVzei5rcnp5c3p0b2Zpa0BsaW51eC5pbnRl bC5jb20+CgpUaGFua3MsCkphbnVzegoKCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7D84CC432C0 for ; Mon, 18 Nov 2019 11:14:28 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5BCA02071C for ; Mon, 18 Nov 2019 11:14:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5BCA02071C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DFC7B6E090; Mon, 18 Nov 2019 11:14:27 +0000 (UTC) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8B1C16E090 for ; Mon, 18 Nov 2019 11:14:26 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Nov 2019 03:14:26 -0800 X-IronPort-AV: E=Sophos;i="5.68,320,1569308400"; d="scan'208";a="209051038" Received: from jkrzyszt-desk.igk.intel.com (HELO jkrzyszt-desk.ger.corp.intel.com) ([172.22.244.17]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Nov 2019 03:14:24 -0800 From: Janusz Krzysztofik To: Chris Wilson Date: Mon, 18 Nov 2019 12:14:12 +0100 Message-ID: <14059150.4o38dXUsEa@jkrzyszt-desk.ger.corp.intel.com> Organization: Intel Technology Poland sp. z o.o. - ul. Slowackiego 173, 80-298 Gdansk - KRS 101882 - NIP 957-07-52-316 In-Reply-To: <20191115160546.896305-2-chris@chris-wilson.co.uk> References: <20191115160546.896305-1-chris@chris-wilson.co.uk> <20191115160546.896305-2-chris@chris-wilson.co.uk> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH 2/3] drm/i915: Allow userspace to specify ringsize on construction X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191118111412.BGdjcH_iMV4ic7U_mBTtckIJDdfDECSpjNC9GRYSdTA@z> SGkgQ2hyaXMsCgpPbmx5IHNvbWUgbWlub3IgY29tbWVudHMgZnJvbSBtZSwgbW9zdGx5IG91dCBv ZiBteSBjdXJpb3NpdHkuCgpPbiBGcmlkYXksIE5vdmVtYmVyIDE1LCAyMDE5IDU6MDU6NDUgUE0g Q0VUIENocmlzIFdpbHNvbiB3cm90ZToKPiBObyBnb29kIHJlYXNvbiB3aHkgd2UgbXVzdCBhbHdh eXMgdXNlIGEgc3RhdGljIHJpbmdzaXplLCBzbyBsZXQKPiB1c2Vyc3BhY2Ugc2VsZWN0IG9uZSBk dXJpbmcgY29uc3RydWN0aW9uLgo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hy aXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0 aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9jb250ZXh0LmMgfCAxMzkgKysrKysrKysrKysrKysrKysrKy0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMgICAgICAgICB8ICAgMSArCj4gIGluY2x1ZGUvdWFw aS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAgICAgICAgfCAgMTkgKysrCj4gIDMgZmlsZXMgY2hh bmdlZCwgMTUzIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jCj4gaW5kZXggMTI4NGY0NzMwM2ZhLi5l ZTlhNDYzNGZlZDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX2NvbnRleHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9j b250ZXh0LmMKPiBAQCAtNTk3LDIzICs1OTcsMzAgQEAgX19jcmVhdGVfY29udGV4dChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgCXJldHVybiBFUlJfUFRSKGVycik7Cj4gIH0KPiAg Cj4gLXN0YXRpYyB2b2lkCj4gK3N0YXRpYyBpbnQKPiAgY29udGV4dF9hcHBseV9hbGwoc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiAtCQkgIHZvaWQgKCpmbikoc3RydWN0IGludGVsX2Nv bnRleHQgKmNlLCB2b2lkICpkYXRhKSwKPiArCQkgIGludCAoKmZuKShzdHJ1Y3QgaW50ZWxfY29u dGV4dCAqY2UsIHZvaWQgKmRhdGEpLAo+ICAJCSAgdm9pZCAqZGF0YSkKPiAgewo+ICAJc3RydWN0 IGk5MTVfZ2VtX2VuZ2luZXNfaXRlciBpdDsKPiAgCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsK PiArCWludCBlcnIgPSAwOwo+ICAKPiAtCWZvcl9lYWNoX2dlbV9lbmdpbmUoY2UsIGk5MTVfZ2Vt X2NvbnRleHRfbG9ja19lbmdpbmVzKGN0eCksIGl0KQo+IC0JCWZuKGNlLCBkYXRhKTsKPiArCWZv cl9lYWNoX2dlbV9lbmdpbmUoY2UsIGk5MTVfZ2VtX2NvbnRleHRfbG9ja19lbmdpbmVzKGN0eCks IGl0KSB7Cj4gKwkJZXJyID0gZm4oY2UsIGRhdGEpOwo+ICsJCWlmIChlcnIpCj4gKwkJCWJyZWFr Owo+ICsJfQo+ICAJaTkxNV9nZW1fY29udGV4dF91bmxvY2tfZW5naW5lcyhjdHgpOwo+ICsKPiAr CXJldHVybiBlcnI7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIF9fYXBwbHlfcHBndHQoc3RydWN0 IGludGVsX2NvbnRleHQgKmNlLCB2b2lkICp2bSkKPiArc3RhdGljIGludCBfX2FwcGx5X3BwZ3R0 KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwgdm9pZCAqdm0pCj4gIHsKPiAgCWk5MTVfdm1fcHV0 KGNlLT52bSk7Cj4gIAljZS0+dm0gPSBpOTE1X3ZtX2dldCh2bSk7Cj4gKwlyZXR1cm4gMDsKPiAg fQo+ICAKPiAgc3RhdGljIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKgo+IEBAIC02NTEsOSAr NjU4LDEwIEBAIHN0YXRpYyB2b2lkIF9fc2V0X3RpbWVsaW5lKHN0cnVjdCBpbnRlbF90aW1lbGlu ZSAqKmRzdCwKPiAgCQlpbnRlbF90aW1lbGluZV9wdXQob2xkKTsKPiAgfQo+ICAKPiAtc3RhdGlj IHZvaWQgX19hcHBseV90aW1lbGluZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIHZvaWQgKnRp bWVsaW5lKQo+ICtzdGF0aWMgaW50IF9fYXBwbHlfdGltZWxpbmUoc3RydWN0IGludGVsX2NvbnRl eHQgKmNlLCB2b2lkICp0aW1lbGluZSkKPiAgewo+ICAJX19zZXRfdGltZWxpbmUoJmNlLT50aW1l bGluZSwgdGltZWxpbmUpOwo+ICsJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIF9f YXNzaWduX3RpbWVsaW5lKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4gQEAgLTEyMjMs NiArMTIzMSwxMDQgQEAgc3RhdGljIGludCBzZXRfcHBndHQoc3RydWN0IGRybV9pOTE1X2ZpbGVf cHJpdmF0ZSAqZmlsZV9wcml2LAo+ICAJcmV0dXJuIGVycjsKPiAgfQo+ICAKPiArc3RhdGljIGlu dCBfX2FwcGx5X3JpbmdzaXplKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwgdm9pZCAqc3opCj4g K3sKPiArCWludCBlcnI7Cj4gKwo+ICsJZXJyID0gaTkxNV9hY3RpdmVfd2FpdCgmY2UtPmFjdGl2 ZSk7Cj4gKwlpZiAoZXJyIDwgMCkKPiArCQlyZXR1cm4gZXJyOwo+ICsKPiArCWlmIChpbnRlbF9j b250ZXh0X2xvY2tfcGlubmVkKGNlKSkKPiArCQlyZXR1cm4gLUVJTlRSOwo+ICsKPiArCWlmIChp bnRlbF9jb250ZXh0X2lzX3Bpbm5lZChjZSkpIHsKPiArCQllcnIgPSAtRUJVU1k7IC8qIEluIGFj dGl2ZSB1c2UsIGNvbWUgYmFjayBsYXRlciEgKi8KPiArCQlnb3RvIHVubG9jazsKPiArCX0KPiAr Cj4gKwlpZiAodGVzdF9iaXQoQ09OVEVYVF9BTExPQ19CSVQsICZjZS0+ZmxhZ3MpKSB7Cj4gKwkJ c3RydWN0IGludGVsX3JpbmcgKnJpbmc7Cj4gKwo+ICsJCS8qIFJlcGxhY2UgdGhlIGV4aXN0aW5n IHJpbmdidWZmZXIgKi8KPiArCQlyaW5nID0gaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nKGNlLT5l bmdpbmUsCj4gKwkJCQkJCSh1bnNpZ25lZCBsb25nKXN6KTsKPiArCQlpZiAoSVNfRVJSKHJpbmcp KSB7Cj4gKwkJCWVyciA9IFBUUl9FUlIocmluZyk7Cj4gKwkJCWdvdG8gdW5sb2NrOwo+ICsJCX0K PiArCj4gKwkJaW50ZWxfcmluZ19wdXQoY2UtPnJpbmcpOwo+ICsJCWNlLT5yaW5nID0gcmluZzsK PiArCj4gKwkJLyogQ29udGV4dCBpbWFnZSB3aWxsIGJlIHVwZGF0ZWQgb24gbmV4dCBwaW4gKi8K PiArCX0gZWxzZSB7Cj4gKwkJY2UtPnJpbmcgPSBzejsKPiArCX0KPiArCj4gK3VubG9jazoKPiAr CWludGVsX2NvbnRleHRfdW5sb2NrX3Bpbm5lZChjZSk7Cj4gKwlyZXR1cm4gZXJyOwo+ICt9CgpJ J20gd29uZGVyaW5nIGlmIHRoaXMgZnVuY3Rpb24gKGFuZCBfX2dldF9yaW5nc2l6ZSgpIGJlbG93 IGFzIHdlbGwpLCB3aXRoIGl0cyAKZGVwZW5kZW5jeSBvbiBpbnRlbF9jb250ZXh0IGludGVybmFs cywgZXNwZWNpYWxseSBvbiB0aGF0IGR1YWwgbWVhbmluZyBvZiAKY2UtPnJpbmcgd2hpY2ggZGVw ZW5kcyBvbiAoY2UtPmZsYWdzICYgQ09OVEVYVF9BTExPQ19CSVQpLCB3b3VsZCBiZXR0ZXIgZml0 IAppbnRvIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuYy4KCj4gKwo+ICtz dGF0aWMgaW50IHNldF9yaW5nc2l6ZShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+ICsJ CQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gKmFyZ3MpCj4gK3sKPiArCWlmICgh SEFTX0xPR0lDQUxfUklOR19DT05URVhUUyhjdHgtPmk5MTUpKQo+ICsJCXJldHVybiAtRU5PREVW Owo+ICsKPiArCWlmIChhcmdzLT5zaXplKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCWlm ICghSVNfQUxJR05FRChhcmdzLT52YWx1ZSwgSTkxNV9HVFRfUEFHRV9TSVpFKSkKPiArCQlyZXR1 cm4gLUVJTlZBTDsKPiArCj4gKwlpZiAoYXJncy0+dmFsdWUgPCBJOTE1X0dUVF9QQUdFX1NJWkUp Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJaWYgKGFyZ3MtPnZhbHVlID4gMTI4ICogSTkx NV9HVFRfUEFHRV9TSVpFKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCXJldHVybiBjb250 ZXh0X2FwcGx5X2FsbChjdHgsCj4gKwkJCQkgX19hcHBseV9yaW5nc2l6ZSwKPiArCQkJCSBfX2lu dGVsX2NvbnRleHRfcmluZ19zaXplKGFyZ3MtPnZhbHVlKSk7Cj4gK30KPiArCj4gK3N0YXRpYyBp bnQgX19nZXRfcmluZ3NpemUoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLCB2b2lkICphcmcpCj4g K3sKPiArCWludCBudW1fcGFnZXM7Cj4gKwo+ICsJaWYgKGludGVsX2NvbnRleHRfbG9ja19waW5u ZWQoY2UpKQo+ICsJCXJldHVybiAtRUlOVFI7Cj4gKwo+ICsJaWYgKHRlc3RfYml0KENPTlRFWFRf QUxMT0NfQklULCAmY2UtPmZsYWdzKSkKPiArCQludW1fcGFnZXMgPSBjZS0+cmluZy0+c2l6ZSAv IEk5MTVfR1RUX1BBR0VfU0laRTsKPiArCWVsc2UKPiArCQludW1fcGFnZXMgPSAodWludHB0cl90 KWNlLT5yaW5nIC8gSTkxNV9HVFRfUEFHRV9TSVpFOwo+ICsKPiArCWludGVsX2NvbnRleHRfdW5s b2NrX3Bpbm5lZChjZSk7Cj4gKwlyZXR1cm4gbnVtX3BhZ2VzOyAvKiBzdG9wIG9uIGZpcnN0IGVu Z2luZSAqLwoKTG9jYXRpb24gb2YgdGhpcyBjb21tZW50IHNlZW1zIG5vdCBwZXJmZWN0IHRvIG1l IGFzIGl0IGlzIG5vdCBxdWl0ZSBvYnZpb3VzIApob3cgdGhhdCB3b3JrcyB3aXRob3V0IGV4YW1p bmluZyBob3cgdGhpcyBmdW5jdGlvbiBpcyB1c2VkLCBidXQgaGF2aW5nIHNwZW50IGEgCndoaWxl IGxvb2tpbmcgYXJvdW5kLCBJJ20gbm90IGFibGUgdG8gc3VnZ2VzdCBhIGJldHRlciBwbGFjZS4K Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgZ2V0X3JpbmdzaXplKHN0cnVjdCBpOTE1X2dlbV9jb250 ZXh0ICpjdHgsCj4gKwkJCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSAqYXJncykK PiArewo+ICsJaW50IG51bV9wYWdlczsKPiArCj4gKwlpZiAoIUhBU19MT0dJQ0FMX1JJTkdfQ09O VEVYVFMoY3R4LT5pOTE1KSkKPiArCQlyZXR1cm4gLUVOT0RFVjsKPiArCj4gKwlpZiAoYXJncy0+ c2l6ZSkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwludW1fcGFnZXMgPSBjb250ZXh0X2Fw cGx5X2FsbChjdHgsIF9fZ2V0X3JpbmdzaXplLCBOVUxMKTsKPiArCWlmIChudW1fcGFnZXMgPCAw KQo+ICsJCXJldHVybiBudW1fcGFnZXM7Cj4gKwo+ICsJYXJncy0+dmFsdWUgPSAodTY0KW51bV9w YWdlcyAqIEk5MTVfR1RUX1BBR0VfU0laRTsKCkRvIHlvdSBjb252ZXJ0IHRvIG51bV9wYWdlcyBp bnNpZGUgX19nZXRfcmluZ3NpemUoKSB0aGVuIGJhY2sgdG8gc2l6ZSBpbiBieXRlcyAKdG8gYXZv aWQgYW4gb3ZlcmZsb3c/ICBPciBhbnkgb3RoZXIgcmVhc29uPyAgU29tZXRoaW5nIHRoYXQgbWF5 IGJlIHVzZWZ1bCBpbiAKdGhlIGZ1dHVyZT8KCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAgc3Rh dGljIGludCBnZW44X2VtaXRfcnBjc19jb25maWcoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCj4g IAkJCQkgc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAo+ICAJCQkJIHN0cnVjdCBpbnRlbF9zc2V1 IHNzZXUpCj4gQEAgLTE5MzUsNiArMjA0MSwxMCBAQCBzdGF0aWMgaW50IGN0eF9zZXRwYXJhbShz dHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmcHJpdiwKPiAgCQlyZXQgPSBzZXRfcGVyc2lz dGVuY2UoY3R4LCBhcmdzKTsKPiAgCQlicmVhazsKPiAgCj4gKwljYXNlIEk5MTVfQ09OVEVYVF9Q QVJBTV9SSU5HU0laRToKPiArCQlyZXQgPSBzZXRfcmluZ3NpemUoY3R4LCBhcmdzKTsKPiArCQli cmVhazsKPiArCj4gIAljYXNlIEk5MTVfQ09OVEVYVF9QQVJBTV9CQU5fUEVSSU9EOgo+ICAJZGVm YXVsdDoKPiAgCQlyZXQgPSAtRUlOVkFMOwo+IEBAIC0yMDAzLDYgKzIxMTMsMTkgQEAgc3RhdGlj IGludCBjbG9uZV9lbmdpbmVzKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpkc3QsCj4gIAkJCV9f ZnJlZV9lbmdpbmVzKGNsb25lLCBuKTsKPiAgCQkJZ290byBlcnJfdW5sb2NrOwo+ICAJCX0KPiAr Cj4gKwkJLyogQ29weSBhY3Jvc3MgdGhlIHByZWZlcnJlZCByaW5nc2l6ZSAqLwo+ICsJCWNsb25l LT5lbmdpbmVzW25dLT5yaW5nID0gZS0+ZW5naW5lc1tuXS0+cmluZzsKPiArCQlpZiAodGVzdF9i aXQoQ09OVEVYVF9BTExPQ19CSVQsICZlLT5lbmdpbmVzW25dLT5mbGFncykpIHsKPiArCQkJaWYg KGludGVsX2NvbnRleHRfbG9ja19waW5uZWQoZS0+ZW5naW5lc1tuXSkpIHsKPiArCQkJCV9fZnJl ZV9lbmdpbmVzKGNsb25lLCBuICsgMSk7Cj4gKwkJCQlnb3RvIGVycl91bmxvY2s7Cj4gKwkJCX0K PiArCj4gKwkJCWNsb25lLT5lbmdpbmVzW25dLT5yaW5nID0KPiArCQkJCV9faW50ZWxfY29udGV4 dF9yaW5nX3NpemUoZS0+ZW5naW5lc1tuXS0+cmluZy0+c2l6ZSk7Cj4gKwkJCWludGVsX2NvbnRl eHRfdW5sb2NrX3Bpbm5lZChlLT5lbmdpbmVzW25dKTsKPiArCQl9CgpBbm90aGVyIGNhbmRpZGF0 ZSBmb3IgYSBoZWxwZXIgbG9jYXRlZCBpbiAKZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf Y29udGV4dC5jPwoKPiAgCX0KPiAgCWNsb25lLT5udW1fZW5naW5lcyA9IG47Cj4gIAo+IEBAIC0y MzY2LDYgKzI0ODksMTAgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfZ2V0cGFyYW1faW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgCQlhcmdzLT52YWx1ZSA9IGk5MTVf Z2VtX2NvbnRleHRfaXNfcGVyc2lzdGVudChjdHgpOwo+ICAJCWJyZWFrOwo+ICAKPiArCWNhc2Ug STkxNV9DT05URVhUX1BBUkFNX1JJTkdTSVpFOgo+ICsJCXJldCA9IGdldF9yaW5nc2l6ZShjdHgs IGFyZ3MpOwo+ICsJCWJyZWFrOwo+ICsKPiAgCWNhc2UgSTkxNV9DT05URVhUX1BBUkFNX0JBTl9Q RVJJT0Q6Cj4gIAlkZWZhdWx0Ogo+ICAJCXJldCA9IC1FSU5WQUw7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfbHJjLmMKPiBpbmRleCAzM2NlMjU4ZDQ4NGYuLjI2NDk2OTBhOTUxZSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCj4gQEAgLTI0MTcsNiArMjQxNyw3IEBAIF9f ZXhlY2xpc3RzX3VwZGF0ZV9yZWdfc3RhdGUoY29uc3Qgc3RydWN0IGludGVsX2NvbnRleHQgKmNl LAo+ICAJcmVnc1tDVFhfUklOR19TVEFSVF0gPSBpOTE1X2dndHRfb2Zmc2V0KHJpbmctPnZtYSk7 Cj4gIAlyZWdzW0NUWF9SSU5HX0hFQURdID0gcmluZy0+aGVhZDsKPiAgCXJlZ3NbQ1RYX1JJTkdf VEFJTF0gPSByaW5nLT50YWlsOwo+ICsJcmVnc1tDVFhfUklOR19DVExdID0gUklOR19DVExfU0la RShyaW5nLT5zaXplKSB8IFJJTkdfVkFMSUQ7Cj4gIAo+ICAJLyogUlBDUyAqLwo+ICAJaWYgKGVu Z2luZS0+Y2xhc3MgPT0gUkVOREVSX0NMQVNTKSB7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFw aS9kcm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+IGluZGV4IDU0 MDBkN2UwNTdmMS4uYWU3Y2Q2ODFiMDc1IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0v aTkxNV9kcm0uaAo+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+IEBAIC0xNTg3 LDYgKzE1ODcsMjUgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtIHsKPiAgICog QnkgZGVmYXVsdCwgbmV3IGNvbnRleHRzIGFsbG93IHBlcnNpc3RlbmNlLgo+ICAgKi8KPiAgI2Rl ZmluZSBJOTE1X0NPTlRFWFRfUEFSQU1fUEVSU0lTVEVOQ0UJMHhiCj4gKwo+ICsvKgo+ICsgKiBJ OTE1X0NPTlRFWFRfUEFSQU1fUklOR1NJWkU6Cj4gKyAqCj4gKyAqIFNldHMgdGhlIHNpemUgb2Yg dGhlIENTIHJpbmdidWZmZXIgdG8gdXNlIGZvciBsb2dpY2FsIHJpbmcgY29udGV4dHMuIFRoaXMK PiArICogYXBwbGllcyBhIGxpbWl0IG9mIGhvdyBtYW55IGJhdGNoZXMgY2FuIGJlIHF1ZXVlZCB0 byBIVyBiZWZvcmUgdGhlIGNhbGxlcgo+ICsgKiBpcyBibG9ja2VkIGR1ZSB0byBsYWNrIG9mIHNw YWNlIGZvciBtb3JlIGNvbW1hbmRzLgo+ICsgKgo+ICsgKiBPbmx5IHJlbGlhYmx5IHBvc3NpYmxl IHRvIGJlIHNldCBwcmlvciB0byBmaXJzdCB1c2UsIGkuZS4gZHVyaW5nCj4gKyAqIGNvbnN0cnVj dGlvbi4gQXQgYW55IGxhdGVyIHBvaW50LCB0aGUgY3VycmVudCBleGVjdXRpb24gbXVzdCBiZSBm bHVzaGVkIGFzCj4gKyAqIHRoZSByaW5nIGNhbiBvbmx5IGJlIGNoYW5nZWQgd2hpbGUgdGhlIGNv bnRleHQgaXMgaWRsZS4KPiArICoKPiArICogT25seSBhcHBsaWVzIHRvIHRoZSBjdXJyZW50IHNl dCBvZiBlbmdpbmUgYW5kIGxvc3Qgd2hlbiB0aG9zZSBlbmdpbmVzCj4gKyAqIGFyZSByZXBsYWNl ZCBieSBhIG5ldyBtYXBwaW5nIChzZWUgSTkxNV9DT05URVhUX1BBUkFNX0VOR0lORVMpLgo+ICsg Kgo+ICsgKiBNdXN0IGJlIGJldHdlZW4gNCAtIDUxMiBLaUIsIGluIGludGVydmFscyBvZiBwYWdl IHNpemUgWzQgS2lCXS4KPiArICogRGVmYXVsdCBpcyAxNiBLaUIuCj4gKyAqLwo+ICsjZGVmaW5l IEk5MTVfQ09OVEVYVF9QQVJBTV9SSU5HU0laRQkweGMKCkkga25vdyBpdCBsb29rZWQgbGlrZSB0 aGF0IGFscmVhZHkgYmVmb3JlLCBidXQgaGF2aW5nIG90aGVyIGRvY3VtZW50ZWQgZmxhZ3MgCnNl cGFyYXRlZCBieSBibGFuayBsaW5lcyBmcm9tIGVhY2ggb3RoZXIsIElzIHRoZXJlIGFueSByZWFz b24gZm9yIG5vdCBwdXR0aW5nIAphbm90aGVyIGJsYW5rIGxpbmUgYWZ0ZXIgdGhlIGxhc3Qgb25l PwoKPiAgLyogTXVzdCBiZSBrZXB0IGNvbXBhY3QgLS0gbm8gaG9sZXMgYW5kIHdlbGwgZG9jdW1l bnRlZCAqLwo+ICAKPiAgCV9fdTY0IHZhbHVlOwo+IAoKTm9uZSBvZiB0aGUgYWJvdmUgY29tbWVu dHMgYXJlIGVzc2VudGlhbCBzbyB3aXRoIG9yIHdpdGhvdXQgdGhlbSBhZGRyZXNzZWQ6ClJldmll d2VkLWJ5OiBKYW51c3ogS3J6eXN6dG9maWsgPGphbnVzei5rcnp5c3p0b2Zpa0BsaW51eC5pbnRl bC5jb20+CgpUaGFua3MsCkphbnVzegoKCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeA==