From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 1/2] drm/i915: Refactor common ringbuffer allocation code Date: Thu, 03 Sep 2015 17:56:20 +0300 Message-ID: <87mvx3a6wb.fsf@gaia.fi.intel.com> References: <1441281700-17814-1-git-send-email-chris@chris-wilson.co.uk> <1441288909.29227.26.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 42F907A154 for ; Thu, 3 Sep 2015 07:56:22 -0700 (PDT) In-Reply-To: <1441288909.29227.26.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: "Zanoni, Paulo R" , "intel-gfx@lists.freedesktop.org" , "chris@chris-wilson.co.uk" List-Id: intel-gfx@lists.freedesktop.org Ilphbm9uaSwgUGF1bG8gUiIgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4gd3JpdGVzOgoKPiBF bSBRdWksIDIwMTUtMDktMDMgw6BzIDEzOjAxICswMTAwLCBDaHJpcyBXaWxzb24gZXNjcmV2ZXU6 Cj4+IEEgc21hbGwsIHZlcnkgc21hbGwsIHN0ZXAgdG8gc2hhcmluZyB0aGUgZHVwbGljYXRlIGNv ZGUgYmV0d2Vlbgo+PiBleGVjbGlzdHMgYW5kIGxlZ2FjeSBzdWJtaXNzaW9uIGVuZ2luZXMsIHN0 YXJ0aW5nIHdpdGggdGhlIHJpbmdidWZmZXIKPj4gYWxsb2NhdGlvbiBjb2RlLgo+PiAKPj4gU2ln bmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4+IENj OiBBcnVuIFNpbHV2ZXJ5IDxhcnVuLnNpbHV2ZXJ5QGxpbnV4LmludGVsLmNvbT4KPj4gQ2M6IE1p a2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAaW50ZWwuY29tPgo+PiBDYzogRGF2ZSBHb3Jkb24g PGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuYyAgICAgICAgfCA0OSArKysrKy0tLS0tLS0tLS0tLS0KPj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8IDg5ICsrKysrKysrKysrKysrKysrKysr LS0tCj4+IC0tLS0tLS0tLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuaCB8ICA4ICstLQo+PiAgMyBmaWxlcyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspLCA3NiBk ZWxldGlvbnMoLSkKPj4gCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+PiBpbmRleCA0 MGNiYmE0ZWE0YmEuLjI4YTcxMmU3ZDJkMCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMKPj4gQEAgLTIzNDAsOCArMjM0MCw3IEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9mcmVlKHN0 cnVjdCBpbnRlbF9jb250ZXh0IAo+PiAqY3R4KQo+PiAgCQkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0 X3VucGluKGN0eF9vYmopOwo+PiAgCQkJfQo+PiAgCQkJV0FSTl9PTihjdHgtPmVuZ2luZVtyaW5n LT5pZF0ucGluX2NvdW50KTsKPj4gLQkJCWludGVsX2Rlc3Ryb3lfcmluZ2J1ZmZlcl9vYmoocmlu Z2J1Zik7Cj4+IC0JCQlrZnJlZShyaW5nYnVmKTsKPj4gKwkJCWludGVsX3JpbmdidWZmZXJfZnJl ZShyaW5nYnVmKTsKPj4gIAkJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZjdHhfb2JqLT5i YXNlKTsKPj4gIAkJfQo+PiAgCX0KPj4gQEAgLTI0NDIsNDIgKzI0NDEsMjAgQEAgaW50IGludGVs X2xyX2NvbnRleHRfZGVmZXJyZWRfY3JlYXRlKHN0cnVjdCAKPj4gaW50ZWxfY29udGV4dCAqY3R4 LAo+PiAgCQkJSTkxNV9XUklURShHRU44X0dUQ1IsIEdFTjhfR1RDUl9JTlZBTElEQVRFKTsKPj4g IAl9Cj4+ICAKPj4gLQlyaW5nYnVmID0ga3phbGxvYyhzaXplb2YoKnJpbmdidWYpLCBHRlBfS0VS TkVMKTsKPj4gLQlpZiAoIXJpbmdidWYpIHsKPj4gLQkJRFJNX0RFQlVHX0RSSVZFUigiRmFpbGVk IHRvIGFsbG9jYXRlIHJpbmdidWZmZXIgCj4+ICVzXG4iLAo+Cj4gV2UgZ290IHJpZCBvZiB0aGlz IG1lc3NhZ2UsIGJ1dCBJIHN1cHBvc2UgaXQncyBub3QgYSBwcm9ibGVtLCBzaW5jZSBpdAo+IHdh cyBub3QgYSBsb3VkIGVycm9yIG1lc3NhZ2UuCj4KPgo+PiAtCQkJCXJpbmctPm5hbWUpOwo+PiAt CQlyZXQgPSAtRU5PTUVNOwo+PiArCXJpbmdidWYgPSBpbnRlbF9lbmdpbmVfY3JlYXRlX3Jpbmdi dWZmZXIocmluZywgNCAqIAo+PiBQQUdFX1NJWkUpOwo+PiArCWlmIChJU19FUlIocmluZ2J1Zikp IHsKPj4gKwkJcmV0ID0gUFRSX0VSUihyaW5nYnVmKTsKPj4gIAkJZ290byBlcnJvcl91bnBpbl9j dHg7Cj4+ICAJfQo+PiAgCj4+IC0JcmluZ2J1Zi0+cmluZyA9IHJpbmc7Cj4+IC0KPj4gLQlyaW5n YnVmLT5zaXplID0gNCAqIFBBR0VfU0laRTsKPj4gLQlyaW5nYnVmLT5lZmZlY3RpdmVfc2l6ZSA9 IHJpbmdidWYtPnNpemU7Cj4+IC0JcmluZ2J1Zi0+aGVhZCA9IDA7Cj4+IC0JcmluZ2J1Zi0+dGFp bCA9IDA7Cj4+IC0JcmluZ2J1Zi0+bGFzdF9yZXRpcmVkX2hlYWQgPSAtMTsKPj4gLQlpbnRlbF9y aW5nX3VwZGF0ZV9zcGFjZShyaW5nYnVmKTsKPj4gLQo+PiAtCWlmIChyaW5nYnVmLT5vYmogPT0g TlVMTCkgewo+PiAtCQlyZXQgPSBpbnRlbF9hbGxvY19yaW5nYnVmZmVyX29iaihkZXYsIHJpbmdi dWYpOwo+PiArCWlmIChpc19nbG9iYWxfZGVmYXVsdF9jdHgpIHsKPj4gKwkJcmV0ID0gaW50ZWxf cGluX2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmooZGV2LCAKPj4gcmluZ2J1Zik7Cj4+ICAJCWlmIChy ZXQpIHsKPj4gLQkJCURSTV9ERUJVR19EUklWRVIoCj4+IC0JCQkJIkZhaWxlZCB0byBhbGxvY2F0 ZSByaW5nYnVmZmVyIG9iaiAKPj4gJXM6ICVkXG4iLAo+PiAtCQkJCXJpbmctPm5hbWUsIHJldCk7 Cj4+IC0JCQlnb3RvIGVycm9yX2ZyZWVfcmJ1ZjsKPj4gKwkJCURSTV9FUlJPUigKPj4gKwkJCQkg ICJGYWlsZWQgdG8gcGluIGFuZCBtYXAgcmluZ2J1ZmZlciAKPj4gJXM6ICVkXG4iLAo+PiArCQkJ CSAgcmluZy0+bmFtZSwgcmV0KTsKPj4gKwkJCWdvdG8gZXJyb3JfcmluZ2J1ZjsKPj4gIAkJfQo+ PiAtCj4+IC0JCWlmIChpc19nbG9iYWxfZGVmYXVsdF9jdHgpIHsKPj4gLQkJCXJldCA9IGludGVs X3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKGRldiwgCj4+IHJpbmdidWYpOwo+PiAtCQkJaWYg KHJldCkgewo+PiAtCQkJCURSTV9FUlJPUigKPj4gLQkJCQkJIkZhaWxlZCB0byBwaW4gYW5kIG1h cCAKPj4gcmluZ2J1ZmZlciAlczogJWRcbiIsCj4+IC0JCQkJCXJpbmctPm5hbWUsIHJldCk7Cj4+ IC0JCQkJZ290byBlcnJvcl9kZXN0cm95X3JidWY7Cj4+IC0JCQl9Cj4+IC0JCX0KPj4gLQo+PiAg CX0KPj4gIAo+PiAgCXJldCA9IHBvcHVsYXRlX2xyX2NvbnRleHQoY3R4LCBjdHhfb2JqLCByaW5n LCByaW5nYnVmKTsKPj4gQEAgLTI1MTksMTAgKzI0OTYsOCBAQCBpbnQgaW50ZWxfbHJfY29udGV4 dF9kZWZlcnJlZF9jcmVhdGUoc3RydWN0IAo+PiBpbnRlbF9jb250ZXh0ICpjdHgsCj4+ICBlcnJv cjoKPj4gIAlpZiAoaXNfZ2xvYmFsX2RlZmF1bHRfY3R4KQo+PiAgCQlpbnRlbF91bnBpbl9yaW5n YnVmZmVyX29iaihyaW5nYnVmKTsKPj4gLWVycm9yX2Rlc3Ryb3lfcmJ1ZjoKPj4gLQlpbnRlbF9k ZXN0cm95X3JpbmdidWZmZXJfb2JqKHJpbmdidWYpOwo+PiAtZXJyb3JfZnJlZV9yYnVmOgo+PiAt CWtmcmVlKHJpbmdidWYpOwo+PiArZXJyb3JfcmluZ2J1ZjoKPj4gKwlpbnRlbF9yaW5nYnVmZmVy X2ZyZWUocmluZ2J1Zik7Cj4+ICBlcnJvcl91bnBpbl9jdHg6Cj4+ICAJaWYgKGlzX2dsb2JhbF9k ZWZhdWx0X2N0eCkKPj4gIAkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4X29iaik7Cj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgCj4+ IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4+IGluZGV4IDZlNmI4 ZGI5OTZlZi4uMjBhNzViYjUxNmFjIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCj4+IEBAIC0xOTk2LDE0ICsxOTk2LDE0IEBAIGludCBpbnRlbF9waW5fYW5k X21hcF9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgCj4+IGRybV9kZXZpY2UgKmRldiwKPj4gIAlyZXR1 cm4gMDsKPj4gIH0KPj4gIAo+PiAtdm9pZCBpbnRlbF9kZXN0cm95X3JpbmdidWZmZXJfb2JqKHN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+PiArc3RhdGljIHZvaWQgaW50ZWxfZGVz dHJveV9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAKPj4gKnJpbmdidWYp Cj4+ICB7Cj4+ICAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJnJpbmdidWYtPm9iai0+YmFz ZSk7Cj4+ICAJcmluZ2J1Zi0+b2JqID0gTlVMTDsKPj4gIH0KPj4gIAo+PiAtaW50IGludGVsX2Fs bG9jX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+IC0JCQkgICAgICAg c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4+ICtzdGF0aWMgaW50IGludGVsX2Fs bG9jX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ICsJCQkJICAgICAg c3RydWN0IGludGVsX3JpbmdidWZmZXIgCj4+ICpyaW5nYnVmKQo+PiAgewo+PiAgCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4+ICAKPj4gQEAgLTIwMjMsNiArMjAyMyw0OCBAQCBp bnQgaW50ZWxfYWxsb2NfcmluZ2J1ZmZlcl9vYmooc3RydWN0IAo+PiBkcm1fZGV2aWNlICpkZXYs Cj4+ICAJcmV0dXJuIDA7Cj4+ICB9Cj4+ICAKPj4gK3N0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICoK Pj4gK2ludGVsX2VuZ2luZV9jcmVhdGVfcmluZ2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsIGludCAKPj4gc2l6ZSkKPj4gK3sKPj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZzsKPj4gKwlpbnQgcmV0Owo+PiArCj4+ICsJcmluZyA9IGt6YWxsb2Moc2l6ZW9mKCpy aW5nKSwgR0ZQX0tFUk5FTCk7Cj4+ICsJaWYgKHJpbmcgPT0gTlVMTCkKPgo+IFRoZSBlcnJvciBt ZXNzYWdlIHJlZmVyZW5jZWQgYWJvdmUgc2hvdWxkIHByb2JhYmx5IGJlIGhlcmUuCj4KPgo+PiAr CQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPj4gKwo+PiArCXJpbmctPnJpbmcgPSBlbmdpbmU7 Cj4+ICsKPj4gKwlyaW5nLT5zaXplID0gc2l6ZTsKPj4gKwkvKiBXb3JrYXJvdW5kIGFuIGVycmF0 dW0gb24gdGhlIGk4MzAgd2hpY2ggY2F1c2VzIGEgaGFuZyBpZgo+PiArCSAqIHRoZSBUQUlMIHBv aW50ZXIgcG9pbnRzIHRvIHdpdGhpbiB0aGUgbGFzdCAyIGNhY2hlbGluZXMKPj4gKwkgKiBvZiB0 aGUgYnVmZmVyLgo+PiArCSAqLwo+PiArCXJpbmctPmVmZmVjdGl2ZV9zaXplID0gc2l6ZTsKPj4g KwlpZiAoSVNfSTgzMChlbmdpbmUtPmRldikgfHwgSVNfODQ1RyhlbmdpbmUtPmRldikpCj4+ICsJ CXJpbmctPmVmZmVjdGl2ZV9zaXplIC09IDIgKiBDQUNIRUxJTkVfQllURVM7Cj4+ICsKPj4gKwly aW5nLT5sYXN0X3JldGlyZWRfaGVhZCA9IC0xOwo+PiArCWludGVsX3JpbmdfdXBkYXRlX3NwYWNl KHJpbmcpOwo+PiArCj4+ICsJcmV0ID0gaW50ZWxfYWxsb2NfcmluZ2J1ZmZlcl9vYmooZW5naW5l LT5kZXYsIHJpbmcpOwo+PiArCWlmIChyZXQpIHsKPj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8g YWxsb2NhdGUgcmluZ2J1ZmZlciAlczogJWRcbiIsCj4KPiBTaG91bGRuJ3QgdGhpcyBiZSAiRmFp bGVkIHRvIGFsbG9jYXRlIHJpbmdidWZmZXIgb2JqICVzOiAlZCIgPwo+Cj4+ICsJCQkgIGVuZ2lu ZS0+bmFtZSwgcmV0KTsKPj4gKwkJa2ZyZWUocmluZyk7Cj4+ICsJCXJldHVybiBFUlJfUFRSKHJl dCk7Cj4+ICsJfQo+PiArCj4+ICsJcmV0dXJuIHJpbmc7Cj4+ICt9Cj4+ICsKPj4gK3ZvaWQKPj4g K2ludGVsX3JpbmdidWZmZXJfZnJlZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZykKPj4g K3sKPj4gKwlpbnRlbF9kZXN0cm95X3JpbmdidWZmZXJfb2JqKHJpbmcpOwo+PiArCWtmcmVlKHJp bmcpOwo+PiArfQo+PiArCj4+ICBzdGF0aWMgaW50IGludGVsX2luaXRfcmluZ19idWZmZXIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPj4gIAkJCQkgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcpCj4+ICB7Cj4+IEBAIC0yMDMxLDIyICsyMDczLDIwIEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5p dF9yaW5nX2J1ZmZlcihzdHJ1Y3QgCj4+IGRybV9kZXZpY2UgKmRldiwKPj4gIAo+PiAgCVdBUk5f T04ocmluZy0+YnVmZmVyKTsKPj4gIAo+PiAtCXJpbmdidWYgPSBremFsbG9jKHNpemVvZigqcmlu Z2J1ZiksIEdGUF9LRVJORUwpOwo+PiAtCWlmICghcmluZ2J1ZikKPj4gLQkJcmV0dXJuIC1FTk9N RU07Cj4+IC0JcmluZy0+YnVmZmVyID0gcmluZ2J1ZjsKPj4gLQo+PiAgCXJpbmctPmRldiA9IGRl djsKPj4gIAlJTklUX0xJU1RfSEVBRCgmcmluZy0+YWN0aXZlX2xpc3QpOwo+PiAgCUlOSVRfTElT VF9IRUFEKCZyaW5nLT5yZXF1ZXN0X2xpc3QpOwo+PiAgCUlOSVRfTElTVF9IRUFEKCZyaW5nLT5l eGVjbGlzdF9xdWV1ZSk7Cj4+ICAJaTkxNV9nZW1fYmF0Y2hfcG9vbF9pbml0KGRldiwgJnJpbmct PmJhdGNoX3Bvb2wpOwo+PiAtCXJpbmdidWYtPnNpemUgPSAzMiAqIFBBR0VfU0laRTsKPj4gLQly aW5nYnVmLT5yaW5nID0gcmluZzsKPj4gIAltZW1zZXQocmluZy0+c2VtYXBob3JlLnN5bmNfc2Vx bm8sIDAsIHNpemVvZihyaW5nCj4+IC0+c2VtYXBob3JlLnN5bmNfc2Vxbm8pKTsKPj4gIAo+PiAg CWluaXRfd2FpdHF1ZXVlX2hlYWQoJnJpbmctPmlycV9xdWV1ZSk7Cj4+ICAKPj4gKwlyaW5nYnVm ID0gaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nYnVmZmVyKHJpbmcsIDMyICogCj4+IFBBR0VfU0la RSk7Cj4+ICsJaWYgKElTX0VSUihyaW5nYnVmKSkKPj4gKwkJcmV0dXJuIFBUUl9FUlIocmluZ2J1 Zik7Cj4+ICsJcmluZy0+YnVmZmVyID0gcmluZ2J1ZjsKPj4gKwo+PiAgCWlmIChJOTE1X05FRURf R0ZYX0hXUyhkZXYpKSB7Cj4+ICAJCXJldCA9IGluaXRfc3RhdHVzX3BhZ2UocmluZyk7Cj4+ICAJ CWlmIChyZXQpCj4+IEBAIC0yMDU4LDE1ICsyMDk4LDYgQEAgc3RhdGljIGludCBpbnRlbF9pbml0 X3JpbmdfYnVmZmVyKHN0cnVjdCAKPj4gZHJtX2RldmljZSAqZGV2LAo+PiAgCQkJZ290byBlcnJv cjsKPj4gIAl9Cj4+ICAKPj4gLQlXQVJOX09OKHJpbmdidWYtPm9iaik7Cj4+IC0KPj4gLQlyZXQg PSBpbnRlbF9hbGxvY19yaW5nYnVmZmVyX29iaihkZXYsIHJpbmdidWYpOwo+PiAtCWlmIChyZXQp IHsKPj4gLQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgcmluZ2J1ZmZlciAlczogJWRc biIsCj4+IC0JCQkJcmluZy0+bmFtZSwgcmV0KTsKPj4gLQkJZ290byBlcnJvcjsKPj4gLQl9Cj4+ IC0KPj4gIAlyZXQgPSBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihkZXYsIHJpbmdi dWYpOwo+PiAgCWlmIChyZXQpIHsKPj4gIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gcGluIGFuZCBt YXAgcmluZ2J1ZmZlciAlczogCj4+ICVkXG4iLAo+PiBAQCAtMjA3NSwxNCArMjEwNiw2IEBAIHN0 YXRpYyBpbnQgaW50ZWxfaW5pdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgCj4+IGRybV9kZXZpY2UgKmRl diwKPj4gIAkJZ290byBlcnJvcjsKPj4gIAl9Cj4+ICAKPj4gLQkvKiBXb3JrYXJvdW5kIGFuIGVy cmF0dW0gb24gdGhlIGk4MzAgd2hpY2ggY2F1c2VzIGEgaGFuZyBpZgo+PiAtCSAqIHRoZSBUQUlM IHBvaW50ZXIgcG9pbnRzIHRvIHdpdGhpbiB0aGUgbGFzdCAyIGNhY2hlbGluZXMKPj4gLQkgKiBv ZiB0aGUgYnVmZmVyLgo+PiAtCSAqLwo+PiAtCXJpbmdidWYtPmVmZmVjdGl2ZV9zaXplID0gcmlu Z2J1Zi0+c2l6ZTsKPj4gLQlpZiAoSVNfSTgzMChkZXYpIHx8IElTXzg0NUcoZGV2KSkKPj4gLQkJ cmluZ2J1Zi0+ZWZmZWN0aXZlX3NpemUgLT0gMiAqIENBQ0hFTElORV9CWVRFUzsKPj4gLQo+PiAg CXJldCA9IGk5MTVfY21kX3BhcnNlcl9pbml0X3JpbmcocmluZyk7Cj4+ICAJaWYgKHJldCkKPj4g IAkJZ290byBlcnJvcjsKPj4gQEAgLTIwOTAsNyArMjExMyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxf aW5pdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgCj4+IGRybV9kZXZpY2UgKmRldiwKPj4gIAlyZXR1cm4g MDsKPgo+IFRoZSAiZ290byBlcnJvciIgcmlnaHQgYWJvdmUgdGhlIHJldHVybiAwIGNoYW5nZXMg aXRzIGJlaGF2aW9yOiBpdAo+IHdhc24ndCBjYWxsaW5nIGludGVsX2Rlc3Ryb3lfcmluZ2J1ZmZl cl9vYmooKSwgYnV0IEkgc3VwcG9zZSB0aGlzIGlzIGEKPiBmaXguIEknbSBqdXN0IHBvaW50aW5n IGl0IHNpbmNlIEknbSBub3QgMTAwJSBzdXJlLgo+CgpJIHdvdWxkIHNheSBpdHMgYSBmaXggYmVj YXVzZSB3ZSBsb3N0IHRoZSByZWYgYXQgdGhhdCBwb2ludC4KClJldmlld2VkLWJ5OiBNaWthIEt1 b3BwYWxhIDxtaWthLmt1b3BwYWxhQGludGVsLmNvbT4KCj4gRXZlcnl0aGluZyBzZWVtcyBjb3Jy ZWN0LCBzbyB3aXRoIG9yIHdpdGhvdXQgY2hhbmdlczoKPiBSZXZpZXdlZC1ieTogUGF1bG8gWmFu b25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cj4KPgo+PiAgCj4+ICBlcnJvcjoKPj4gLQlr ZnJlZShyaW5nYnVmKTsKPj4gKwlpbnRlbF9yaW5nYnVmZmVyX2ZyZWUocmluZ2J1Zik7Cj4+ICAJ cmluZy0+YnVmZmVyID0gTlVMTDsKPj4gIAlyZXR1cm4gcmV0Owo+PiAgfQo+PiBAQCAtMjA5OCwx OSArMjEyMSwxOCBAQCBlcnJvcjoKPj4gIHZvaWQgaW50ZWxfY2xlYW51cF9yaW5nX2J1ZmZlcihz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+PiAgewo+PiAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdjsKPj4gLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZjsK Pj4gIAo+PiAgCWlmICghaW50ZWxfcmluZ19pbml0aWFsaXplZChyaW5nKSkKPj4gIAkJcmV0dXJu Owo+PiAgCj4+ICAJZGV2X3ByaXYgPSB0b19pOTE1KHJpbmctPmRldik7Cj4+IC0JcmluZ2J1ZiA9 IHJpbmctPmJ1ZmZlcjsKPj4gIAo+PiAgCWludGVsX3N0b3BfcmluZ19idWZmZXIocmluZyk7Cj4+ ICAJV0FSTl9PTighSVNfR0VOMihyaW5nLT5kZXYpICYmIChJOTE1X1JFQURfTU9ERShyaW5nKSAm IAo+PiBNT0RFX0lETEUpID09IDApOwo+PiAgCj4+IC0JaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9v YmoocmluZ2J1Zik7Cj4+IC0JaW50ZWxfZGVzdHJveV9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsK Pj4gKwlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nLT5idWZmZXIpOwo+PiArCWludGVs X3JpbmdidWZmZXJfZnJlZShyaW5nLT5idWZmZXIpOwo+PiArCXJpbmctPmJ1ZmZlciA9IE5VTEw7 Cj4+ICAKPj4gIAlpZiAocmluZy0+Y2xlYW51cCkKPj4gIAkJcmluZy0+Y2xlYW51cChyaW5nKTsK Pj4gQEAgLTIxMTksOSArMjE0MSw2IEBAIHZvaWQgaW50ZWxfY2xlYW51cF9yaW5nX2J1ZmZlcihz dHJ1Y3QgCj4+IGludGVsX2VuZ2luZV9jcyAqcmluZykKPj4gIAo+PiAgCWk5MTVfY21kX3BhcnNl cl9maW5pX3JpbmcocmluZyk7Cj4+ICAJaTkxNV9nZW1fYmF0Y2hfcG9vbF9maW5pKCZyaW5nLT5i YXRjaF9wb29sKTsKPj4gLQo+PiAtCWtmcmVlKHJpbmdidWYpOwo+PiAtCXJpbmctPmJ1ZmZlciA9 IE5VTEw7Cj4+ICB9Cj4+ICAKPj4gIHN0YXRpYyBpbnQgcmluZ193YWl0X2Zvcl9zcGFjZShzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBpbnQgbikKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmgKPj4gaW5kZXggOTViMGI0YjU1ZmE2Li40OWZhNDFkYzBlYjYg MTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPj4gQEAgLTQy MCwxMiArNDIwLDEyIEBAIGludGVsX3dyaXRlX3N0YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgCj4+ICpyaW5nLAo+PiAgI2RlZmluZSBJOTE1X0dFTV9IV1NfU0NSQVRDSF9JTkRFWAkw eDQwCj4+ICAjZGVmaW5lIEk5MTVfR0VNX0hXU19TQ1JBVENIX0FERFIgKEk5MTVfR0VNX0hXU19T Q1JBVENIX0lOREVYIDw8IAo+PiBNSV9TVE9SRV9EV09SRF9JTkRFWF9TSElGVCkKPj4gIAo+PiAt dm9pZCBpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZ2J1Zik7Cj4+ICtzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqCj4+ICtpbnRlbF9lbmdpbmVf Y3JlYXRlX3JpbmdidWZmZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgCj4+ IHNpemUpOwo+PiAgaW50IGludGVsX3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4+ICAJCQkJICAgICBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAKPj4g KnJpbmdidWYpOwo+PiAtdm9pZCBpbnRlbF9kZXN0cm95X3JpbmdidWZmZXJfb2JqKHN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKTsKPj4gLWludCBpbnRlbF9hbGxvY19yaW5nYnVmZmVy X29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAtCQkJICAgICAgIHN0cnVjdCBpbnRlbF9y aW5nYnVmZmVyICpyaW5nYnVmKTsKPj4gK3ZvaWQgaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmoo c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwo+PiArdm9pZCBpbnRlbF9yaW5nYnVm ZmVyX2ZyZWUoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmcpOwo+PiAgCj4+ICB2b2lkIGlu dGVsX3N0b3BfcmluZ19idWZmZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Cj4+ICB2 b2lkIGludGVsX2NsZWFudXBfcmluZ19idWZmZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu Zyk7Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==