From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael H. Nguyen" Subject: Re: [PATCH v6 1/5] drm/i915: Implement a framework for batch buffer pools Date: Tue, 09 Dec 2014 11:42:40 -0800 Message-ID: <548750B0.5020407@intel.com> References: <1418078030-17690-1-git-send-email-michael.h.nguyen@intel.com> <1418078030-17690-2-git-send-email-michael.h.nguyen@intel.com> <20141209131820.GV27182@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 825666E2A3 for ; Tue, 9 Dec 2014 11:38:57 -0800 (PST) In-Reply-To: <20141209131820.GV27182@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: Brad Volkin , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiAxMi8wOS8yMDE0IDA1OjE4IEFNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+IE9uIE1vbiwg RGVjIDA4LCAyMDE0IGF0IDAyOjMzOjQ2UE0gLTA4MDAsIG1pY2hhZWwuaC5uZ3V5ZW5AaW50ZWwu Y29tIHdyb3RlOgo+PiBGcm9tOiBCcmFkIFZvbGtpbiA8YnJhZGxleS5kLnZvbGtpbkBpbnRlbC5j b20+Cj4+Cj4+IFRoaXMgYWRkcyBhIHNtYWxsIG1vZHVsZSBmb3IgbWFuYWdpbmcgYSBwb29sIG9m IGJhdGNoIGJ1ZmZlcnMuCj4+IFRoZSBvbmx5IGN1cnJlbnQgdXNlIGNhc2UgaXMgZm9yIHRoZSBj b21tYW5kIHBhcnNlciwgYXMgZGVzY3JpYmVkCj4+IGluIHRoZSBrZXJuZWxkb2MgaW4gdGhlIHBh dGNoLiBUaGUgY29kZSBpcyBzaW1wbGUsIGJ1dCBzZXBhcmF0aW5nCj4+IGl0IG91dCBtYWtlcyBp dCBlYXNpZXIgdG8gY2hhbmdlIHRoZSB1bmRlcmx5aW5nIGFsZ29yaXRobXMgYW5kIHRvCj4+IGV4 dGVuZCB0byBmdXR1cmUgdXNlIGNhc2VzIHNob3VsZCB0aGV5IGFyaXNlLgo+Pgo+PiBUaGUgaW50 ZXJmYWNlIGlzIHNpbXBsZTogaW5pdCB0byBjcmVhdGUgYW4gZW1wdHkgcG9vbCwgZmluaSB0bwo+ PiBjbGVhbiBpdCB1cCwgZ2V0IHRvIG9idGFpbiBhIG5ldyBidWZmZXIuIE5vdGUgdGhhdCBhbGwg YnVmZmVycyBhcmUKPj4gZXhwZWN0ZWQgdG8gYmUgaW5hY3RpdmUgYmVmb3JlIGNsZWFuaW5nIHVw IHRoZSBwb29sLgo+Pgo+PiBMb2NraW5nIGlzIGN1cnJlbnRseSBiYXNlZCBvbiB0aGUgY2FsbGVy IGhvbGRpbmcgdGhlIHN0cnVjdF9tdXRleC4KPj4gV2UgYWxyZWFkeSBkbyB0aGF0IGluIHRoZSBw bGFjZXMgd2hlcmUgd2Ugd2lsbCB1c2UgdGhlIGJhdGNoIHBvb2wKPj4gZm9yIHRoZSBjb21tYW5k IHBhcnNlci4KPj4KPj4gdjI6Cj4+IC0gcy9CVUdfT04vV0FSTl9PTi8gZm9yIGxvY2tpbmcgYXNz ZXJ0aW9ucwo+PiAtIFJlbW92ZSB0aGUgY2FwIG9uIHBvb2wgc2l6ZQo+PiAtIFN3aXRjaCBmcm9t IGFsbG9jL2ZyZWUgdG8gaW5pdC9maW5pCj4+Cj4+IHYzOgo+PiAtIElkaW9tYXRpYyBsb29waW5n IHN0cnVjdHVyZSBpbiBfZmluaQo+PiAtIENvcnJlY3QgaGFuZGxpbmcgb2YgcHVyZ2VkIG9iamVj dHMKPj4gLSBEb24ndCByZXR1cm4gYSBidWZmZXIgdGhhdCdzIHRvbyBtdWNoIGxhcmdlciB0aGFu IG5lZWRlZAo+Pgo+PiB2NDoKPj4gLSBSZWJhc2VkIHRvIGxhdGVzdCAtbmlnaHRseQo+Pgo+PiB2 NToKPj4gLSBSZW1vdmUgX3B1dCgpIGZ1bmN0aW9uIGFuZCBjbGVhbiB1cCBjb21tZW50cyB0byBt YXRjaAo+Pgo+PiB2NjoKPj4gLSBNb3ZlIHB1cmdlZCBjaGVjayBpbnNpZGUgdGhlIGxvb3AgKGRh bnZldCwgZnJvbSB2NCAxLzcgZmVlZGJhY2spCj4+Cj4+IHY3Ogo+PiAtIFVzZSBzaW5nbGUgbGlz dCBpbnN0ZWFkIG9mIHR3by4gKENocmlzIFcpCj4+IC0gcy9hY3RpdmVfbGlzdC9jYWNoZV9saXN0 Cj4+IC0gU3F1YXNoZWQgaW4gZGVidWcgcGF0Y2hlcyAoQ2hyaXMgVykKPj4gICAgZHJtL2k5MTU6 IEFkZCBhIGJhdGNoIHBvb2wgZGVidWdmcyBmaWxlCj4+Cj4+ICAgIEl0IHByb3ZpZGVzIHNvbWUg dXNlZnVsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBidWZmZXJzIGluCj4+ICAgIHRoZSBnbG9iYWwg Y29tbWFuZCBwYXJzZXIgYmF0Y2ggcG9vbC4KPj4KPj4gICAgdjI6IHJlYmFzZSBvbiBnbG9iYWwg cG9vbCBpbnN0ZWFkIG9mIHBlci1yaW5nIHBvb2xzCj4+ICAgIHYzOiByZWJhc2UKPj4KPj4gICAg ZHJtL2k5MTU6IEFkZCBiYXRjaCBwb29sIGRldGFpbHMgdG8gaTkxNV9nZW1fb2JqZWN0cyBkZWJ1 Z2ZzCj4+Cj4+ICAgIFRvIGJldHRlciBhY2NvdW50IGZvciB0aGUgcG90ZW50aWFsbHkgbGFyZ2Ug bWVtb3J5IGNvbnN1bXB0aW9uCj4+ICAgIG9mIHRoZSBiYXRjaCBwb29sLgo+Pgo+PiBJc3N1ZTog VklaLTQ3MTkKPj4gU2lnbmVkLW9mZi1ieTogQnJhZCBWb2xraW4gPGJyYWRsZXkuZC52b2xraW5A aW50ZWwuY29tPgo+PiAtLS0KPj4gICBEb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwgICAg ICAgICAgICAgfCAgIDUgKysKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAg ICAgICAgICAgfCAgIDEgKwo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j ICAgICAgICB8ICA3MSArKysrKysrKysrKysrKy0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCAgICAgICAgICAgIHwgIDIxICsrKysrCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgICAxICsKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9iYXRjaF9wb29sLmMgfCAxMzIgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKPj4gICA2IGZpbGVzIGNoYW5nZWQsIDIyMiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygt KQo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9i YXRjaF9wb29sLmMKPj4KPj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0u dG1wbCBiL0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbAo+PiBpbmRleCA4NTI4N2NiLi4w MjI5MjNhIDEwMDY0NAo+PiAtLS0gYS9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwKPj4g KysrIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2RybS50bXBsCj4+IEBAIC00MDI5LDYgKzQwMjks MTEgQEAgaW50IG51bV9pb2N0bHM7PC9zeW5vcHNpcz4KPj4gICAhSWRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfY21kX3BhcnNlci5jCj4+ICAgICAgICAgPC9zZWN0Mj4KPj4gICAgICAgICA8c2Vj dDI+Cj4+ICsgICAgICAgIDx0aXRsZT5CYXRjaGJ1ZmZlciBQb29sczwvdGl0bGU+Cj4+ICshUGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYyBiYXRjaCBwb29sCj4+ICsh SWRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYwo+PiArICAgICAgPC9z ZWN0Mj4KPj4gKyAgICAgIDxzZWN0Mj4KPj4gICAgICAgICAgIDx0aXRsZT5Mb2dpY2FsIFJpbmdz LCBMb2dpY2FsIFJpbmcgQ29udGV4dHMgYW5kIEV4ZWNsaXN0czwvdGl0bGU+Cj4+ICAgIVBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBMb2dpY2FsIFJpbmdzLCBMb2dpY2FsIFJpbmcg Q29udGV4dHMgYW5kIEV4ZWNsaXN0cwo+PiAgICFJZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKPj4gaW5kZXggZTQwODNlNC4uYzhkYmIzN2QgMTAw NjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4+IEBAIC0xOSw2ICsxOSw3IEBAIGk5MTUtJChDT05G SUdfREVCVUdfRlMpICs9IGk5MTVfZGVidWdmcy5vCj4+Cj4+ICAgIyBHRU0gY29kZQo+PiAgIGk5 MTUteSArPSBpOTE1X2NtZF9wYXJzZXIubyBcCj4+ICsJICBpOTE1X2dlbV9iYXRjaF9wb29sLm8g XAo+PiAgIAkgIGk5MTVfZ2VtX2NvbnRleHQubyBcCj4+ICAgCSAgaTkxNV9nZW1fcmVuZGVyX3N0 YXRlLm8gXAo+PiAgIAkgIGk5MTVfZ2VtX2RlYnVnLm8gXAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYwo+PiBpbmRleCBkMGU0NDVlLi4zYzNiZjk4IDEwMDY0NAo+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYwo+PiBAQCAtMzU5LDYgKzM1OSwzMyBAQCBzdGF0aWMgaW50IHBl cl9maWxlX3N0YXRzKGludCBpZCwgdm9pZCAqcHRyLCB2b2lkICpkYXRhKQo+PiAgIAlyZXR1cm4g MDsKPj4gICB9Cj4+Cj4+ICsjZGVmaW5lIHByaW50X2ZpbGVfc3RhdHMobSwgbmFtZSwgc3RhdHMp IFwKPj4gKwlzZXFfcHJpbnRmKG0sICIlczogJXUgb2JqZWN0cywgJXp1IGJ5dGVzICglenUgYWN0 aXZlLCAlenUgaW5hY3RpdmUsICV6dSBnbG9iYWwsICV6dSBzaGFyZWQsICV6dSB1bmJvdW5kKVxu IiwgXAo+PiArCQkgICBuYW1lLCBcCj4+ICsJCSAgIHN0YXRzLmNvdW50LCBcCj4+ICsJCSAgIHN0 YXRzLnRvdGFsLCBcCj4+ICsJCSAgIHN0YXRzLmFjdGl2ZSwgXAo+PiArCQkgICBzdGF0cy5pbmFj dGl2ZSwgXAo+PiArCQkgICBzdGF0cy5nbG9iYWwsIFwKPj4gKwkJICAgc3RhdHMuc2hhcmVkLCBc Cj4+ICsJCSAgIHN0YXRzLnVuYm91bmQpCj4+ICsKPj4gK3N0YXRpYyB2b2lkIHByaW50X2JhdGNo X3Bvb2xfc3RhdHMoc3RydWN0IHNlcV9maWxlICptLAo+PiArCQkJCSAgIHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqOwo+PiArCXN0cnVjdCBmaWxlX3N0YXRzIHN0YXRzOwo+PiArCj4+ICsJbWVtc2V0KCZz dGF0cywgMCwgc2l6ZW9mKHN0YXRzKSk7Cj4+ICsKPj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG9i aiwKPj4gKwkJCSAgICAmZGV2X3ByaXYtPm1tLmJhdGNoX3Bvb2wuY2FjaGVfbGlzdCwKPj4gKwkJ CSAgICBiYXRjaF9wb29sX2xpc3QpCj4+ICsJCXBlcl9maWxlX3N0YXRzKDAsIG9iaiwgJnN0YXRz KTsKPj4gKwo+PiArCXByaW50X2ZpbGVfc3RhdHMobSwgImJhdGNoIHBvb2wiLCBzdGF0cyk7Cj4+ ICt9Cj4+ICsKPj4gICAjZGVmaW5lIGNvdW50X3ZtYXMobGlzdCwgbWVtYmVyKSBkbyB7IFwKPj4g ICAJbGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsIGxpc3QsIG1lbWJlcikgeyBcCj4+ICAgCQlzaXpl ICs9IGk5MTVfZ2VtX29ial9nZ3R0X3NpemUodm1hLT5vYmopOyBcCj4+IEBAIC00NDEsNiArNDY4 LDkgQEAgc3RhdGljIGludCBpOTE1X2dlbV9vYmplY3RfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0s IHZvaWQqIGRhdGEpCj4+ICAgCQkgICBkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2VuZCAtIGRldl9w cml2LT5ndHQuYmFzZS5zdGFydCk7Cj4+Cj4+ICAgCXNlcV9wdXRjKG0sICdcbicpOwo+PiArCXBy aW50X2JhdGNoX3Bvb2xfc3RhdHMobSwgZGV2X3ByaXYpOwo+PiArCj4+ICsJc2VxX3B1dGMobSwg J1xuJyk7Cj4+ICAgCWxpc3RfZm9yX2VhY2hfZW50cnlfcmV2ZXJzZShmaWxlLCAmZGV2LT5maWxl bGlzdCwgbGhlYWQpIHsKPj4gICAJCXN0cnVjdCBmaWxlX3N0YXRzIHN0YXRzOwo+PiAgIAkJc3Ry dWN0IHRhc2tfc3RydWN0ICp0YXNrOwo+PiBAQCAtNDU4LDE1ICs0ODgsNyBAQCBzdGF0aWMgaW50 IGk5MTVfZ2VtX29iamVjdF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCogZGF0YSkKPj4g ICAJCSAqLwo+PiAgIAkJcmN1X3JlYWRfbG9jaygpOwo+PiAgIAkJdGFzayA9IHBpZF90YXNrKGZp bGUtPnBpZCwgUElEVFlQRV9QSUQpOwo+PiAtCQlzZXFfcHJpbnRmKG0sICIlczogJXUgb2JqZWN0 cywgJXp1IGJ5dGVzICglenUgYWN0aXZlLCAlenUgaW5hY3RpdmUsICV6dSBnbG9iYWwsICV6dSBz aGFyZWQsICV6dSB1bmJvdW5kKVxuIiwKPj4gLQkJCSAgIHRhc2sgPyB0YXNrLT5jb21tIDogIjx1 bmtub3duPiIsCj4+IC0JCQkgICBzdGF0cy5jb3VudCwKPj4gLQkJCSAgIHN0YXRzLnRvdGFsLAo+ PiAtCQkJICAgc3RhdHMuYWN0aXZlLAo+PiAtCQkJICAgc3RhdHMuaW5hY3RpdmUsCj4+IC0JCQkg ICBzdGF0cy5nbG9iYWwsCj4+IC0JCQkgICBzdGF0cy5zaGFyZWQsCj4+IC0JCQkgICBzdGF0cy51 bmJvdW5kKTsKPj4gKwkJcHJpbnRfZmlsZV9zdGF0cyhtLCB0YXNrID8gdGFzay0+Y29tbSA6ICI8 dW5rbm93bj4iLCBzdGF0cyk7Cj4+ICAgCQlyY3VfcmVhZF91bmxvY2soKTsKPj4gICAJfQo+Pgo+ PiBAQCAtNTgzLDYgKzYwNSwzNiBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX3BhZ2VmbGlwX2luZm8o c3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+PiAgIAlyZXR1cm4gMDsKPj4gICB9Cj4+ Cj4+ICtzdGF0aWMgaW50IGk5MTVfZ2VtX2JhdGNoX3Bvb2xfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUg Km0sIHZvaWQgKmRhdGEpCj4+ICt7Cj4+ICsJc3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSBt LT5wcml2YXRlOwo+PiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBub2RlLT5taW5vci0+ZGV2 Owo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Cj4+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPj4gKwlpbnQgY291bnQg PSAwOwo+PiArCWludCByZXQ7Cj4+ICsKPj4gKwlyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGli bGUoJmRldi0+c3RydWN0X211dGV4KTsKPj4gKwlpZiAocmV0KQo+PiArCQlyZXR1cm4gcmV0Owo+ PiArCj4+ICsJc2VxX3B1dHMobSwgImNhY2hlOlxuIik7Cj4+ICsJbGlzdF9mb3JfZWFjaF9lbnRy eShvYmosCj4+ICsJCQkgICAgJmRldl9wcml2LT5tbS5iYXRjaF9wb29sLmNhY2hlX2xpc3QsCj4+ ICsJCQkgICAgYmF0Y2hfcG9vbF9saXN0KSB7Cj4+ICsJCXNlcV9wdXRzKG0sICIgICAiKTsKPj4g KwkJZGVzY3JpYmVfb2JqKG0sIG9iaik7Cj4+ICsJCXNlcV9wdXRjKG0sICdcbicpOwo+PiArCQlj b3VudCsrOwo+PiArCX0KPj4gKwo+PiArCXNlcV9wcmludGYobSwgInRvdGFsOiAlZFxuIiwgY291 bnQpOwo+PiArCj4+ICsJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4+ICsKPj4g KwlyZXR1cm4gMDsKPj4gK30KPj4gKwo+PiAgIHN0YXRpYyBpbnQgaTkxNV9nZW1fcmVxdWVzdF9p bmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPj4gICB7Cj4+ICAgCXN0cnVjdCBk cm1faW5mb19ub2RlICpub2RlID0gbS0+cHJpdmF0ZTsKPj4gQEAgLTQzMjQsNiArNDM3Niw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2luZm9fbGlzdCBpOTE1X2RlYnVnZnNfbGlzdFtdID0g ewo+PiAgIAl7Imk5MTVfZ2VtX2h3c19ibHQiLCBpOTE1X2h3c19pbmZvLCAwLCAodm9pZCAqKUJD U30sCj4+ICAgCXsiaTkxNV9nZW1faHdzX2JzZCIsIGk5MTVfaHdzX2luZm8sIDAsICh2b2lkICop VkNTfSwKPj4gICAJeyJpOTE1X2dlbV9od3NfdmVib3giLCBpOTE1X2h3c19pbmZvLCAwLCAodm9p ZCAqKVZFQ1N9LAo+PiArCXsiaTkxNV9nZW1fYmF0Y2hfcG9vbCIsIGk5MTVfZ2VtX2JhdGNoX3Bv b2xfaW5mbywgMH0sCj4+ICAgCXsiaTkxNV9mcmVxdWVuY3lfaW5mbyIsIGk5MTVfZnJlcXVlbmN5 X2luZm8sIDB9LAo+PiAgIAl7Imk5MTVfZHJwY19pbmZvIiwgaTkxNV9kcnBjX2luZm8sIDB9LAo+ PiAgIAl7Imk5MTVfZW1vbl9zdGF0dXMiLCBpOTE1X2Vtb25fc3RhdHVzLCAwfSwKPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4+IGluZGV4IDExZTg1Y2IuLmYzZTI3ZTkgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+PiBAQCAtMTEyOSw2ICsxMTI5LDExIEBAIHN0cnVjdCBpbnRlbF9s M19wYXJpdHkgewo+PiAgIAlpbnQgd2hpY2hfc2xpY2U7Cj4+ICAgfTsKPj4KPj4gK3N0cnVjdCBp OTE1X2dlbV9iYXRjaF9wb29sIHsKPj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+PiArCXN0 cnVjdCBsaXN0X2hlYWQgY2FjaGVfbGlzdDsKPj4gK307Cj4+ICsKPj4gICBzdHJ1Y3QgaTkxNV9n ZW1fbW0gewo+PiAgIAkvKiogTWVtb3J5IGFsbG9jYXRvciBmb3IgR1RUIHN0b2xlbiBtZW1vcnkg Ki8KPj4gICAJc3RydWN0IGRybV9tbSBzdG9sZW47Cj4+IEBAIC0xMTQyLDYgKzExNDcsMTMgQEAg c3RydWN0IGk5MTVfZ2VtX21tIHsKPj4gICAJICovCj4+ICAgCXN0cnVjdCBsaXN0X2hlYWQgdW5i b3VuZF9saXN0Owo+Pgo+PiArCS8qCj4+ICsJICogQSBwb29sIG9mIG9iamVjdHMgdG8gdXNlIGFz IHNoYWRvdyBjb3BpZXMgb2YgY2xpZW50IGJhdGNoIGJ1ZmZlcnMKPj4gKwkgKiB3aGVuIHRoZSBj b21tYW5kIHBhcnNlciBpcyBlbmFibGVkLiBQcmV2ZW50cyB0aGUgY2xpZW50IGZyb20KPj4gKwkg KiBtb2RpZnlpbmcgdGhlIGJhdGNoIGNvbnRlbnRzIGFmdGVyIHNvZnR3YXJlIHBhcnNpbmcuCj4+ ICsJICovCj4+ICsJc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgYmF0Y2hfcG9vbDsKPj4gKwo+ PiAgIAkvKiogVXNhYmxlIHBvcnRpb24gb2YgdGhlIEdUVCBmb3IgR0VNICovCj4+ICAgCXVuc2ln bmVkIGxvbmcgc3RvbGVuX2Jhc2U7IC8qIGxpbWl0ZWQgdG8gbG93IG1lbW9yeSAoMzItYml0KSAq Lwo+Pgo+PiBAQCAtMTg3Miw2ICsxODg0LDggQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg ewo+PiAgIAkvKiogVXNlZCBpbiBleGVjYnVmIHRvIHRlbXBvcmFyaWx5IGhvbGQgYSByZWYgKi8K Pj4gICAJc3RydWN0IGxpc3RfaGVhZCBvYmpfZXhlY19saW5rOwo+Pgo+PiArCXN0cnVjdCBsaXN0 X2hlYWQgYmF0Y2hfcG9vbF9saXN0Owo+PiArCj4+ICAgCS8qKgo+PiAgIAkgKiBUaGlzIGlzIHNl dCBpZiB0aGUgb2JqZWN0IGlzIG9uIHRoZSBhY3RpdmUgbGlzdHMgKGhhcyBwZW5kaW5nCj4+ICAg CSAqIHJlbmRlcmluZyBhbmQgc28gYSBub24temVybyBzZXFubyksIGFuZCBpcyBub3Qgc2V0IGlm IGl0IGkgcyBvbgo+PiBAQCAtMjg3Niw2ICsyODkwLDEzIEBAIHZvaWQgaTkxNV9kZXN0cm95X2Vy cm9yX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+PiAgIHZvaWQgaTkxNV9nZXRfZXh0 cmFfaW5zdGRvbmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdWludDMyX3QgKmluc3Rkb25lKTsK Pj4gICBjb25zdCBjaGFyICppOTE1X2NhY2hlX2xldmVsX3N0cihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSwgaW50IHR5cGUpOwo+Pgo+PiArLyogaTkxNV9nZW1fYmF0Y2hfcG9vbC5jICov Cj4+ICt2b2lkIGk5MTVfZ2VtX2JhdGNoX3Bvb2xfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+PiArCQkJICAgICAgc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgKnBvb2wpOwo+PiArdm9p ZCBpOTE1X2dlbV9iYXRjaF9wb29sX2Zpbmkoc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgKnBv b2wpOwo+PiArc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QqCj4+ICtpOTE1X2dlbV9iYXRjaF9w b29sX2dldChzdHJ1Y3QgaTkxNV9nZW1fYmF0Y2hfcG9vbCAqcG9vbCwgc2l6ZV90IHNpemUpOwo+ PiArCj4+ICAgLyogaTkxNV9jbWRfcGFyc2VyLmMgKi8KPj4gICBpbnQgaTkxNV9jbWRfcGFyc2Vy X2dldF92ZXJzaW9uKHZvaWQpOwo+PiAgIGludCBpOTE1X2NtZF9wYXJzZXJfaW5pdF9yaW5nKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPj4g aW5kZXggZGUyNDFlYi4uMmYxNGFlMSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+ IEBAIC00Mzg0LDYgKzQzODQsNyBAQCB2b2lkIGk5MTVfZ2VtX29iamVjdF9pbml0KHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4+ICAgCUlOSVRfTElTVF9IRUFEKCZvYmotPnJpbmdf bGlzdCk7Cj4+ICAgCUlOSVRfTElTVF9IRUFEKCZvYmotPm9ial9leGVjX2xpbmspOwo+PiAgIAlJ TklUX0xJU1RfSEVBRCgmb2JqLT52bWFfbGlzdCk7Cj4+ICsJSU5JVF9MSVNUX0hFQUQoJm9iai0+ YmF0Y2hfcG9vbF9saXN0KTsKPj4KPj4gICAJb2JqLT5vcHMgPSBvcHM7Cj4+Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9iYXRjaF9wb29sLmMKPj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQKPj4gaW5kZXggMDAwMDAwMC4uZTkzNDllMwo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYwo+PiBAQCAtMCwwICsxLDEz MiBAQAo+PiArLyoKPj4gKyAqIENvcHlyaWdodCDCqSAyMDE0IEludGVsIENvcnBvcmF0aW9uCj4+ ICsgKgo+PiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4+ICsg KiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcg d2l0aG91dCBsaW1pdGF0aW9uCj4+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5 LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPj4gKyAqIGFuZC9vciBz ZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9t IHRoZQo+PiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPj4gKyAqCj4+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4+ ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh bnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4+ICsgKiBTb2Z0d2FyZS4KPj4gKyAqCj4+ICsgKiBUSEUg U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO RCwgRVhQUkVTUyBPUgo+PiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU TyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4+ICsgKiBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hB TEwKPj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig QU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g QU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+PiArICog RlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVT RSBPUiBPVEhFUiBERUFMSU5HUwo+PiArICogSU4gVEhFIFNPRlRXQVJFLgo+PiArICoKPj4gKyAq Lwo+PiArCj4+ICsjaW5jbHVkZSAiaTkxNV9kcnYuaCIKPj4gKwo+PiArLyoqCj4+ICsgKiBET0M6 IGJhdGNoIHBvb2wKPj4gKyAqCj4+ICsgKiBJbiBvcmRlciB0byBzdWJtaXQgYmF0Y2ggYnVmZmVy cyBhcyAnc2VjdXJlJywgdGhlIHNvZnR3YXJlIGNvbW1hbmQgcGFyc2VyCj4+ICsgKiBtdXN0IGVu c3VyZSB0aGF0IGEgYmF0Y2ggYnVmZmVyIGNhbm5vdCBiZSBtb2RpZmllZCBhZnRlciBwYXJzaW5n LiBJdCBkb2VzCj4+ICsgKiB0aGlzIGJ5IGNvcHlpbmcgdGhlIHVzZXIgcHJvdmlkZWQgYmF0Y2gg YnVmZmVyIGNvbnRlbnRzIHRvIGEga2VybmVsIG93bmVkCj4+ICsgKiBidWZmZXIgZnJvbSB3aGlj aCB0aGUgaGFyZHdhcmUgd2lsbCBhY3R1YWxseSBleGVjdXRlLCBhbmQgYnkgY2FyZWZ1bGx5Cj4+ ICsgKiBtYW5hZ2luZyB0aGUgYWRkcmVzcyBzcGFjZSBiaW5kaW5ncyBmb3Igc3VjaCBidWZmZXJz Lgo+PiArICoKPj4gKyAqIFRoZSBiYXRjaCBwb29sIGZyYW1ld29yayBwcm92aWRlcyBhIG1lY2hh bmlzbSBmb3IgdGhlIGRyaXZlciB0byBtYW5hZ2UgYQo+PiArICogc2V0IG9mIHNjcmF0Y2ggYnVm ZmVycyB0byB1c2UgZm9yIHRoaXMgcHVycG9zZS4gVGhlIGZyYW1ld29yayBjYW4gYmUKPj4gKyAq IGV4dGVuZGVkIHRvIHN1cHBvcnQgb3RoZXIgdXNlcyBjYXNlcyBzaG91bGQgdGhleSBhcmlzZS4K Pj4gKyAqLwo+PiArCj4+ICsvKioKPj4gKyAqIGk5MTVfZ2VtX2JhdGNoX3Bvb2xfaW5pdCgpIC0g aW5pdGlhbGl6ZSBhIGJhdGNoIGJ1ZmZlciBwb29sCj4+ICsgKiBAZGV2OiB0aGUgZHJtIGRldmlj ZQo+PiArICogQHBvb2w6IHRoZSBiYXRjaCBidWZmZXIgcG9vbAo+PiArICovCj4+ICt2b2lkIGk5 MTVfZ2VtX2JhdGNoX3Bvb2xfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiArCQkJICAg ICAgc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgKnBvb2wpCj4+ICt7Cj4+ICsJcG9vbC0+ZGV2 ID0gZGV2Owo+PiArCUlOSVRfTElTVF9IRUFEKCZwb29sLT5jYWNoZV9saXN0KTsKPj4gK30KPj4g Kwo+PiArLyoqCj4+ICsgKiBpOTE1X2dlbV9iYXRjaF9wb29sX2ZpbmkoKSAtIGNsZWFuIHVwIGEg YmF0Y2ggYnVmZmVyIHBvb2wKPj4gKyAqIEBwb29sOiB0aGUgcG9vbCB0byBjbGVhbiB1cAo+PiAr ICoKPj4gKyAqIE5vdGU6IENhbGxlcnMgbXVzdCBob2xkIHRoZSBzdHJ1Y3RfbXV0ZXguCj4+ICsg Ki8KPj4gK3ZvaWQgaTkxNV9nZW1fYmF0Y2hfcG9vbF9maW5pKHN0cnVjdCBpOTE1X2dlbV9iYXRj aF9wb29sICpwb29sKQo+PiArewo+PiArCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmcG9vbC0+ ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKPj4gKwo+PiArCXdoaWxlICghbGlzdF9lbXB0eSgmcG9vbC0+ Y2FjaGVfbGlzdCkpIHsKPj4gKwkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9Cj4+ ICsJCQlsaXN0X2ZpcnN0X2VudHJ5KCZwb29sLT5jYWNoZV9saXN0LAo+PiArCQkJCQkgc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QsCj4+ICsJCQkJCSBiYXRjaF9wb29sX2xpc3QpOwo+PiArCj4+ ICsJCVdBUk5fT04ob2JqLT5hY3RpdmUpOwo+PiArCj4+ICsJCWxpc3RfZGVsX2luaXQoJm9iai0+ YmF0Y2hfcG9vbF9saXN0KTsKPj4gKwkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+ YmFzZSk7Cj4+ICsJfQo+PiArfQo+PiArCj4+ICsvKioKPj4gKyAqIGk5MTVfZ2VtX2JhdGNoX3Bv b2xfZ2V0KCkgLSBzZWxlY3QgYSBidWZmZXIgZnJvbSB0aGUgcG9vbAo+PiArICogQHBvb2w6IHRo ZSBiYXRjaCBidWZmZXIgcG9vbAo+PiArICogQHNpemU6IHRoZSBtaW5pbXVtIGRlc2lyZWQgc2l6 ZSBvZiB0aGUgcmV0dXJuZWQgYnVmZmVyCj4+ICsgKgo+PiArICogRmluZHMgb3IgYWxsb2NhdGVz IGEgYmF0Y2ggYnVmZmVyIGluIHRoZSBwb29sIHdpdGggYXQgbGVhc3QgdGhlIHJlcXVlc3RlZAo+ PiArICogc2l6ZS4gVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgYW55IGRvbWFpbiwgYWN0 aXZlL2luYWN0aXZlLCBvcgo+PiArICogcHVyZ2VhYmlsaXR5IG1hbmFnZW1lbnQgZm9yIHRoZSBy ZXR1cm5lZCBidWZmZXIuCj4+ICsgKgo+PiArICogTm90ZTogQ2FsbGVycyBtdXN0IGhvbGQgdGhl IHN0cnVjdF9tdXRleAo+PiArICoKPj4gKyAqIFJldHVybjogdGhlIHNlbGVjdGVkIGJhdGNoIGJ1 ZmZlciBvYmplY3QKPj4gKyAqLwo+PiArc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgo+PiAr aTkxNV9nZW1fYmF0Y2hfcG9vbF9nZXQoc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgKnBvb2ws Cj4+ICsJCQlzaXplX3Qgc2l6ZSkKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqID0gTlVMTDsKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqdG1wLCAqbmV4 dDsKPj4gKwo+PiArCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmcG9vbC0+ZGV2LT5zdHJ1Y3Rf bXV0ZXgpKTsKPj4gKwo+PiArCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh0bXAsIG5leHQsCj4+ ICsJCQkmcG9vbC0+Y2FjaGVfbGlzdCwgYmF0Y2hfcG9vbF9saXN0KSB7Cj4+ICsKPj4gKwkJaWYg KHRtcC0+YWN0aXZlKQo+PiArCQkJY29udGludWU7Cj4+ICsKPj4gKwkJLyogV2hpbGUgd2UncmUg bG9vcGluZywgZG8gc29tZSBjbGVhbiB1cCAqLwo+PiArCQlpZiAodG1wLT5tYWR2ID09IF9fSTkx NV9NQURWX1BVUkdFRCkgewo+PiArCQkJbGlzdF9kZWwoJnRtcC0+YmF0Y2hfcG9vbF9saXN0KTsK Pj4gKwkJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZ0bXAtPmJhc2UpOwo+PiArCQkJY29u dGludWU7Cj4+ICsJCX0KPj4gKwo+PiArCQkvKgo+PiArCQkgKiBTZWxlY3QgYSBidWZmZXIgdGhh dCBpcyBhdCBsZWFzdCBhcyBiaWcgYXMgbmVlZGVkCj4+ICsJCSAqIGJ1dCBub3QgJ3RvbyBtdWNo JyBiaWdnZXIuIEEgYmV0dGVyIHdheSB0byBkbyB0aGlzCj4+ICsJCSAqIG1pZ2h0IGJlIHRvIGJ1 Y2tldCB0aGUgcG9vbCBvYmplY3RzIGJhc2VkIG9uIHNpemUuCj4+ICsJCSAqLwo+PiArCQlpZiAo dG1wLT5iYXNlLnNpemUgPj0gc2l6ZSAmJgo+PiArCQkgICAgdG1wLT5iYXNlLnNpemUgPD0gKDIg KiBzaXplKSkgewo+PiArCQkJb2JqID0gdG1wOwo+PiArCQkJYnJlYWs7Cj4+ICsJCX0KPj4gKwl9 Cj4+ICsKPj4gKwlpZiAoIW9iaikgewo+PiArCQlvYmogPSBpOTE1X2dlbV9hbGxvY19vYmplY3Qo cG9vbC0+ZGV2LCBzaXplKTsKPj4gKwkJaWYgKCFvYmopCj4+ICsJCQlyZXR1cm4gRVJSX1BUUigt RU5PTUVNKTsKPj4gKwo+PiArCQlsaXN0X2FkZF90YWlsKCZvYmotPmJhdGNoX3Bvb2xfbGlzdCwg JnBvb2wtPmNhY2hlX2xpc3QpOwo+PiArCX0KPgo+IFNob3VsZG4ndCB3ZSBoYXZlIGEgZWxzZSBs aXN0X21vdmVfdGFpbCBoZXJlIHRvIGtlZXAgdGhlIGxpc3QgaW4gbHJ1Cj4gb3JkZXI/ClllcyEK PiAtRGFuaWVsCj4KPj4gKwo+PiArCXJldHVybiBvYmo7Cj4+ICt9Cj4+IC0tCj4+IDEuOS4xCj4+ Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IElu dGVsLWdmeCBtYWlsaW5nIGxpc3QKPj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ PiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK