From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 11/11] drm/i915: Extend GET_APERTURE ioctl to report available map space Date: Wed, 1 Jun 2016 11:31:49 +0100 Message-ID: <574EB995.7070309@linux.intel.com> References: <1464675564-11988-1-git-send-email-ankitprasad.r.sharma@intel.com> <1464675564-11988-12-git-send-email-ankitprasad.r.sharma@intel.com> 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 BB2796E955 for ; Wed, 1 Jun 2016 10:32:00 +0000 (UTC) In-Reply-To: <1464675564-11988-12-git-send-email-ankitprasad.r.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ankitprasad.r.sharma@intel.com, intel-gfx@lists.freedesktop.org Cc: akash.goel@intel.com List-Id: intel-gfx@lists.freedesktop.org Ck9uIDMxLzA1LzE2IDA3OjE5LCBhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5jb20gd3JvdGU6 Cj4gRnJvbTogQW5raXRwcmFzYWQgU2hhcm1hIDxhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5j b20+Cj4KPiBXaGVuIGNvbnN0cnVjdGluZyBhIGJhdGNoYnVmZmVyLCBpdCBpcyBzb21ldGltZXMg Y3J1Y2lhbCB0byBrbm93IHRoZQo+IGxhcmdlc3QgaG9sZSBpbnRvIHdoaWNoIHdlIGNhbiBmaXQg YSBmZW5jZWFibGUgYnVmZmVyIChmb3IgZXhhbXBsZSB3aGVuCj4gaGFuZGxpbmcgdmVyeSBsYXJn ZSBvYmplY3RzIG9uIGdlbjIgYW5kIGdlbjMpLiBUaGlzIGRlcGVuZHMgb24gdGhlCj4gZnJhZ21l bnRhdGlvbiBvZiBwaW5uZWQgYnVmZmVycyBpbnNpZGUgdGhlIGFwZXJ0dXJlLCBhIHF1ZXN0aW9u IG9ubHkgdGhlCj4ga2VybmVsIGNhbiBlYXNpbHkgYW5zd2VyLgo+Cj4gVGhpcyBwYXRjaCBleHRl bmRzIHRoZSBjdXJyZW50IERSTV9JOTE1X0dFTV9HRVRfQVBFUlRVUkUgaW9jdGwgdG8KPiBpbmNs dWRlIGEgY291cGxlIG9mIG5ldyBmaWVsZHMgaW4gaXRzIHJlcGx5IHRvIHVzZXJzcGFjZSAtIHRo ZSB0b3RhbAo+IGFtb3VudCBvZiBzcGFjZSBhdmFpbGFibGUgaW4gdGhlIG1hcHBhYmxlIHJlZ2lv biBvZiB0aGUgYXBlcnR1cmUgYW5kCj4gYWxzbyB0aGUgc2luZ2xlIGxhcmdlc3QgYmxvY2sgYXZh aWxhYmxlLgo+Cj4gVGhpcyBpcyBub3QgcXVpdGUgd2hhdCB1c2Vyc3BhY2Ugd2FudHMgdG8gYW5z d2VyIHRoZSBxdWVzdGlvbiBvZiB3aGV0aGVyCj4gdGhpcyBiYXRjaCB3aWxsIGZpdCBhcyBmZW5j ZXMgYXJlIGFsc28gcmVxdWlyZWQgdG8gbWVldCBzZXZlcmUgYWxpZ25tZW50Cj4gY29uc3RyYWlu dHMgd2l0aGluIHRoZSBiYXRjaC4gRm9yIHRoaXMgcHVycG9zZSwgYSB0aGlyZCBjb25zZXJ2YXRp dmUKPiBlc3RpbWF0ZSBvZiBsYXJnZXN0IGZlbmNlIGF2YWlsYWJsZSBpcyBhbHNvIHByb3ZpZGVk LiBGb3Igd2hlbiB1c2Vyc3BhY2UKPiBuZWVkcyBtb3JlIHRoYW4gb25lIGJhdGNoLCB3ZSBhbHNv IHByb3ZpZGUgdGhlIGN1bG11bGF0aXZlIHNwYWNlCgpjdW11bGF0aXZlCgo+IGF2YWlsYWJsZSBm b3IgZmVuY2VzIHN1Y2ggdGhhdCBpdCBoYXMgc29tZSBhZGRpdGlvbmFsIGd1aWRhbmNlIHRvIGhv dwo+IG11Y2ggc3BhY2UgaXQgY291bGQgYWxsb2NhdGUgdG8gZmVuY2VzLiBDb25zZXJ2YXRpc20g c3RpbGwgd2lucy4KPgo+IFRoaXMgcGF0Y2ggZXh0ZW5kcyB0aGUgR0VUX0FQRVJUVVJFIGlvY3Rs IHRvIGFkZCBzdXBwb3J0Cj4gZm9yIGdldHRpbmcgdG90YWwgc2l6ZSBhbmQgYXZhaWxhYmxlIHNp emUgb2YgdGhlIHN0b2xlbiByZWdpb24gYXMKPiB3ZWxsIGFzIHNpbmdsZSBsYXJnZXN0IGJsb2Nr IGF2YWlsYWJsZSBpbiB0aGUgc3RvbGVuIHJlZ2lvbiB0b28uCj4KPiBUaGUgcGF0Y2ggYWxzbyBh ZGRzIGEgZGVidWdmcyBmaWxlIGZvciBjb252ZW5pZW50IHRlc3RpbmcgYW5kCj4gcmVwb3J0aW5n Lgo+Cj4gdjI6IFRoZSBmaXJzdCBvYmplY3QgY2Fubm90IGVuZCBhdCBvZmZzZXQgMCwgc28gd2Ug Y2FuIHVzZSBsYXN0PT0wIHRvCj4gZGV0ZWN0IHRoZSBlbXB0eSBsaXN0Lgo+Cj4gdjM6IEV4cGFu ZCBhbGwgdmFsdWVzIHRvIDY0Yml0LCBqdXN0IGluIGNhc2UuCj4gICAgICBSZXBvcnQgdG90YWwg bWFwcGFibGUgYXBlcnR1cmUgc2l6ZSBmb3IgdXNlcnNwYWNlIHRoYXQgY2Fubm90IGVhc2lseQo+ ICAgICAgZGV0ZXJtaW5lIGl0IGJ5IGluc3BlY3RpbmcgdGhlIFBDSSBkZXZpY2UuCj4KPiB2NDog KFJvZHJpZ28pIEZpeGVkIHJlYmFzZSBjb25mbGljdHMuCj4KPiB2NTogUmViYXNlZCB0byB0aGUg bGF0ZXN0IGRybS1pbnRlbC1uaWdodGx5IChBbmtpdCkKPgo+IHY2OiBLZWVwaW5nIGxpbWl0cyB0 byBnZXRfYXBlcnR1cmUgaW9jdGwsIGFuZCBtb3ZlZCBjaGFuZ2luZyBudW1iZXJzIHRvCj4gZGVi dWdmcywgQWRkcmVzc2VkIGNvbW1lbnRzIChDaHJpcy9UdnJ0a28pCj4KPiB2NzogU3F1YXNoZWQg c3RvbGVuIG1lbW9yeSBzaXplIHBhdGNoIHRvIHRoaXMgb25lLCBBZGRlZCBhIG5ldyB2ZXJzaW9u Cj4gZmllbGQgdG8gdmFsaWRhdGUgdGhlIG1hcF9zaXplIGFuZCBzdG9sZW4gc2l6ZSB2YWx1ZXMs IENoYW5nZWQgQXV0aG9yCj4gdG8gbWUgKEFua2l0KSBkdWUgdG8gc2lnbmlmY2FudCBjaGFuZ2Vz IGluIHRoZSBsb2dpYyB1c2VkIHRvIGdldCBzaXplCgpzaWduaWZpY2FudAoKPiB2YWx1ZXMKPgo+ IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXMgYXQgY2hyaXMtd2lsc29uLmNvLnVr Pgo+IFNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpIGF0IGludGVsLmNv bT4KPiBTaWduZWQtb2ZmLWJ5OiBBbmtpdHByYXNhZCBTaGFybWEgPGFua2l0cHJhc2FkLnIuc2hh cm1hQGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jICAgIHwgMTQzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgfCAgIDMgKwo+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgfCAgIDQgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fc3RvbGVuLmMgfCAgMjcgKysrKysrKwo+ICAgaW5jbHVkZS91YXBpL2RybS9p OTE1X2RybS5oICAgICAgICAgICAgfCAgMTcgKysrKwo+ICAgNSBmaWxlcyBjaGFuZ2VkLCAxOTQg aW5zZXJ0aW9ucygrKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCBh ZWFlNjAwLi42MjVlM2NjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBA QCAtNTg2LDYgKzU4NiwxNDggQEAgc3RhdGljIGludCBpOTE1X2dlbV9vYmplY3RfaW5mbyhzdHJ1 Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQqIGRhdGEpCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiArc3Rh dGljIGludCB2bWFfcmFua19ieV9nZ3R0KHZvaWQgKnByaXYsCj4gKwkJCSAgICBzdHJ1Y3QgbGlz dF9oZWFkICpBLAo+ICsJCQkgICAgc3RydWN0IGxpc3RfaGVhZCAqQikKPiArewo+ICsJc3RydWN0 IGk5MTVfdm1hICphID0gbGlzdF9lbnRyeShBLCB0eXBlb2YoKmEpLCBleGVjX2xpc3QpOwo+ICsJ c3RydWN0IGk5MTVfdm1hICpiID0gbGlzdF9lbnRyeShCLCB0eXBlb2YoKmIpLCBleGVjX2xpc3Qp Owo+ICsKPiArCXJldHVybiBhLT5ub2RlLnN0YXJ0IC0gYi0+bm9kZS5zdGFydDsKPiArfQo+ICsK PiArc3RhdGljIHUzMiBfX2ZlbmNlX3NpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCB1MzIgc3RhcnQsIHUzMiBlbmQpCj4gK3sKPiArCXUzMiBzaXplID0gZW5kIC0gc3RhcnQ7 Cj4gKwl1MzIgZmVuY2Vfc2l6ZTsKPiArCj4gKwlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdl biA8IDQpIHsKPiArCQl1MzIgZmVuY2VfbWF4Owo+ICsJCXUzMiBmZW5jZV9uZXh0Owo+ICsKPiAr CQlpZiAoSVNfR0VOMyhkZXZfcHJpdikpIHsKPiArCQkJZmVuY2VfbWF4ID0gSTgzMF9GRU5DRV9N QVhfU0laRV9WQUwgPDwgMjA7Cj4gKwkJCWZlbmNlX25leHQgPSAxMDI0KjEwMjQ7Cj4gKwkJfSBl bHNlIHsKPiArCQkJZmVuY2VfbWF4ID0gSTgzMF9GRU5DRV9NQVhfU0laRV9WQUwgPDwgMTk7Cj4g KwkJCWZlbmNlX25leHQgPSA1MTIqMTAyNDsKPiArCQl9Cj4gKwo+ICsJCWZlbmNlX21heCA9IG1p bihmZW5jZV9tYXgsIHNpemUpOwo+ICsJCWZlbmNlX3NpemUgPSAwOwo+ICsJCS8qIEZpbmQgZmVu Y2Vfc2l6ZSBsZXNzIHRoYW4gZmVuY2VfbWF4IGFuZCBwb3dlciBvZiAyICovCj4gKwkJd2hpbGUg KGZlbmNlX25leHQgPD0gZmVuY2VfbWF4KSB7Cj4gKwkJCXUzMiBiYXNlID0gQUxJR04oc3RhcnQs IGZlbmNlX25leHQpOwo+ICsJCQlpZiAoYmFzZSArIGZlbmNlX25leHQgPiBlbmQpCj4gKwkJCQli cmVhazsKPiArCj4gKwkJCWZlbmNlX3NpemUgPSBmZW5jZV9uZXh0Owo+ICsJCQlmZW5jZV9uZXh0 IDw8PSAxOwo+ICsJCX0KPiArCX0gZWxzZSB7Cj4gKwkJZmVuY2Vfc2l6ZSA9IHNpemU7Cj4gKwl9 Cj4gKwo+ICsJcmV0dXJuIGZlbmNlX3NpemU7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgaTkxNV9n ZW1fYXBlcnR1cmVfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gK3sKPiAr CXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gbS0+cHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBub2RlLT5taW5vci0+ZGV2Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBpOTE1X2dndHQgKmdn dHQgPSAmZGV2X3ByaXYtPmdndHQ7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2dldF9hcGVydHVy ZSBhcmc7Cj4gKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKPiArCXN0cnVjdCBsaXN0X2hlYWQgbWFw X2xpc3Q7Cj4gKwljb25zdCB1aW50NjRfdCBtYXBfbGltaXQgPSBnZ3R0LT5tYXBwYWJsZV9lbmQ7 Cj4gKwl1aW50NjRfdCBtYXBfc3BhY2UsIG1hcF9sYXJnZXN0LCBmZW5jZV9zcGFjZSwgZmVuY2Vf bGFyZ2VzdDsKPiArCXVpbnQ2NF90IGxhc3QsIGhvbGVfc2l6ZSwgc3RvbGVuX2ZyZWUsIHN0b2xl bl9sYXJnZXN0Owo+ICsJaW50IHJldDsKPiArCj4gKwlJTklUX0xJU1RfSEVBRCgmbWFwX2xpc3Qp Owo+ICsKPiArCW1hcF9zcGFjZSA9IG1hcF9sYXJnZXN0ID0gMDsKPiArCWZlbmNlX3NwYWNlID0g ZmVuY2VfbGFyZ2VzdCA9IDA7Cj4gKwo+ICsJcmV0ID0gaTkxNV9nZW1fZ2V0X2FwZXJ0dXJlX2lv Y3RsKG5vZGUtPm1pbm9yLT5kZXYsICZhcmcsIE5VTEwpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1 cm4gcmV0OwoKSXMgaXQgYSBjb25jZXJuIHRoYXQgdGhlIHNuYXBzaG90IG9mIGF2YWlsYWJsZSBz cGFjZSBhbmQgbGFyZ2VzdCBnZ3R0IApob2xlIGlzIG5vdCBhdG9taWMgZ2l2ZW4gdGhlIG11dGV4 IGRyb3AgYW5kIHJlLWFjcXVpcmUgYmV0d2VlbiB0aGUgdHdvPyAKUHJvYmFibHkgbm90Li4KCj4g Kwo+ICsJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsKPiArCWk5MTVfZ2VtX3N0 b2xlbl9zaXplX2luZm8oZGV2X3ByaXYsICZzdG9sZW5fZnJlZSwKPiArCQkJCSAgJnN0b2xlbl9s YXJnZXN0KTsKPiArCj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJmdndHQtPmJhc2UuYWN0 aXZlX2xpc3QsIHZtX2xpbmspCj4gKwkJaWYgKHZtYS0+cGluX2NvdW50ICYmCj4gKwkJCSh2bWEt Pm5vZGUuc3RhcnQgKyB2bWEtPm5vZGUuc2l6ZSkgPD0gbWFwX2xpbWl0KQo+ICsJCQlsaXN0X2Fk ZCgmdm1hLT5leGVjX2xpc3QsICZtYXBfbGlzdCk7Cj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZt YSwgJmdndHQtPmJhc2UuaW5hY3RpdmVfbGlzdCwgdm1fbGluaykKPiArCQlpZiAodm1hLT5waW5f Y291bnQgJiYKPiArCQkJKHZtYS0+bm9kZS5zdGFydCArIHZtYS0+bm9kZS5zaXplKSA8PSBtYXBf bGltaXQpCj4gKwkJCWxpc3RfYWRkKCZ2bWEtPmV4ZWNfbGlzdCwgJm1hcF9saXN0KTsKPiArCj4g KwlsYXN0ID0gMDsKPiArCWxpc3Rfc29ydChOVUxMLCAmbWFwX2xpc3QsIHZtYV9yYW5rX2J5X2dn dHQpOwo+ICsJd2hpbGUgKCFsaXN0X2VtcHR5KCZtYXBfbGlzdCkpIHsKPiArCQl2bWEgPSBsaXN0 X2ZpcnN0X2VudHJ5KCZtYXBfbGlzdCwgdHlwZW9mKCp2bWEpLCBleGVjX2xpc3QpOwo+ICsJCWxp c3RfZGVsX2luaXQoJnZtYS0+ZXhlY19saXN0KTsKPiArCj4gKwkJaWYgKGxhc3QgPT0gMCkKPiAr CQkJZ290byBza2lwX2ZpcnN0Owo+ICsKPiArCQlob2xlX3NpemUgPSB2bWEtPm5vZGUuc3RhcnQg LSBsYXN0Owo+ICsJCWlmIChob2xlX3NpemUgPiBtYXBfbGFyZ2VzdCkKPiArCQkJbWFwX2xhcmdl c3QgPSBob2xlX3NpemU7Cj4gKwkJbWFwX3NwYWNlICs9IGhvbGVfc2l6ZTsKPiArCj4gKwkJaG9s ZV9zaXplID0gX19mZW5jZV9zaXplKGRldl9wcml2LCBsYXN0LCB2bWEtPm5vZGUuc3RhcnQpOwo+ ICsJCWlmIChob2xlX3NpemUgPiBmZW5jZV9sYXJnZXN0KQo+ICsJCQlmZW5jZV9sYXJnZXN0ID0g aG9sZV9zaXplOwo+ICsJCWZlbmNlX3NwYWNlICs9IGhvbGVfc2l6ZTsKPiArCj4gK3NraXBfZmly c3Q6Cj4gKwkJbGFzdCA9IHZtYS0+bm9kZS5zdGFydCArIHZtYS0+bm9kZS5zaXplOwo+ICsJfQo+ ICsJaWYgKGxhc3QgPCBtYXBfbGltaXQpIHsKPiArCQlob2xlX3NpemUgPSBtYXBfbGltaXQgLSBs YXN0Owo+ICsJCWlmIChob2xlX3NpemUgPiBtYXBfbGFyZ2VzdCkKPiArCQkJbWFwX2xhcmdlc3Qg PSBob2xlX3NpemU7Cj4gKwkJbWFwX3NwYWNlICs9IGhvbGVfc2l6ZTsKPiArCj4gKwkJaG9sZV9z aXplID0gX19mZW5jZV9zaXplKGRldl9wcml2LCBsYXN0LCBtYXBfbGltaXQpOwo+ICsJCWlmICho b2xlX3NpemUgPiBmZW5jZV9sYXJnZXN0KQo+ICsJCQlmZW5jZV9sYXJnZXN0ID0gaG9sZV9zaXpl Owo+ICsJCWZlbmNlX3NwYWNlICs9IGhvbGVfc2l6ZTsKPiArCX0KPiArCj4gKwltdXRleF91bmxv Y2soJmRldi0+c3RydWN0X211dGV4KTsKPiArCj4gKwlzZXFfcHJpbnRmKG0sICJUb3RhbCBzaXpl IG9mIHRoZSBHVFQ6ICVsbHUgYnl0ZXNcbiIsCj4gKwkJICAgYXJnLmFwZXJfc2l6ZSk7Cj4gKwlz ZXFfcHJpbnRmKG0sICJBdmFpbGFibGUgc3BhY2UgaW4gdGhlIEdUVDogJWxsdSBieXRlc1xuIiwK PiArCQkgICBhcmcuYXBlcl9hdmFpbGFibGVfc2l6ZSk7Cj4gKwlzZXFfcHJpbnRmKG0sICJUb3Rh bCBzcGFjZSBpbiB0aGUgbWFwcGFibGUgYXBlcnR1cmU6ICVsbHUgYnl0ZXNcbiIsCj4gKwkJICAg YXJnLm1hcF90b3RhbF9zaXplKTsKPiArCXNlcV9wcmludGYobSwgIkF2YWlsYWJsZSBzcGFjZSBp biB0aGUgbWFwcGFibGUgYXBlcnR1cmU6ICVsbHUgYnl0ZXNcbiIsCj4gKwkJICAgbWFwX3NwYWNl KTsKPiArCXNlcV9wcmludGYobSwgIlNpbmdsZSBsYXJnZXN0IHNwYWNlIGluIHRoZSBtYXBwYWJs ZSBhcGVydHVyZTogJWxsdSBieXRlc1xuIiwKPiArCQkgICBtYXBfbGFyZ2VzdCk7Cj4gKwlzZXFf cHJpbnRmKG0sICJBdmFpbGFibGUgc3BhY2UgZm9yIGZlbmNlczogJWxsdSBieXRlc1xuIiwKPiAr CQkgICBmZW5jZV9zcGFjZSk7Cj4gKwlzZXFfcHJpbnRmKG0sICJTaW5nbGUgbGFyZ2VzdCBmZW5j ZSBhdmFpbGFibGU6ICVsbHUgYnl0ZXNcbiIsCj4gKwkJICAgZmVuY2VfbGFyZ2VzdCk7Cj4gKwlz ZXFfcHJpbnRmKG0sICJUb3RhbCBzaXplIG9mIHRoZSBzdG9sZW4gcmVnaW9uOiAlbGx1IGJ5dGVz XG4iLAo+ICsJCSAgIGFyZy5zdG9sZW5fdG90YWxfc2l6ZSk7Cj4gKwlzZXFfcHJpbnRmKG0sICJB dmFpbGFibGUgc2l6ZSBvZiB0aGUgc3RvbGVuIHJlZ2lvbjogJWxsdSBieXRlc1xuIiwKPiArCQkg ICBzdG9sZW5fZnJlZSk7Cj4gKwlzZXFfcHJpbnRmKG0sICJTaW5nbGUgbGFyZ2VzdCBhcmVhIGlu IHRoZSBzdG9sZW4gcmVnaW9uOiAlbGx1IGJ5dGVzXG4iLAo+ICsJCSAgIHN0b2xlbl9sYXJnZXN0 KTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAgIHN0YXRpYyBpbnQgaTkxNV9nZW1fZ3R0 X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ICAgewo+ICAgCXN0cnVjdCBk cm1faW5mb19ub2RlICpub2RlID0gbS0+cHJpdmF0ZTsKPiBAQCAtNTQwNSw2ICs1NTQ3LDcgQEAg c3RhdGljIGludCBpOTE1X2RlYnVnZnNfY3JlYXRlKHN0cnVjdCBkZW50cnkgKnJvb3QsCj4gICBz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9pbmZvX2xpc3QgaTkxNV9kZWJ1Z2ZzX2xpc3RbXSA9IHsK PiAgIAl7Imk5MTVfY2FwYWJpbGl0aWVzIiwgaTkxNV9jYXBhYmlsaXRpZXMsIDB9LAo+ICAgCXsi aTkxNV9nZW1fb2JqZWN0cyIsIGk5MTVfZ2VtX29iamVjdF9pbmZvLCAwfSwKPiArCXsiaTkxNV9n ZW1fYXBlcnR1cmUiLCBpOTE1X2dlbV9hcGVydHVyZV9pbmZvLCAwfSwKPiAgIAl7Imk5MTVfZ2Vt X2d0dCIsIGk5MTVfZ2VtX2d0dF9pbmZvLCAwfSwKPiAgIAl7Imk5MTVfZ2VtX3Bpbm5lZCIsIGk5 MTVfZ2VtX2d0dF9pbmZvLCAwLCAodm9pZCAqKSBQSU5ORURfTElTVH0sCj4gICAJeyJpOTE1X2dl bV9hY3RpdmUiLCBpOTE1X2dlbV9vYmplY3RfbGlzdF9pbmZvLCAwLCAodm9pZCAqKSBBQ1RJVkVf TElTVH0sCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggZjJkYmIyNi4uYWEyYWE3YiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0zNTYyLDYgKzM1NjIsOSBAQCBpOTE1 X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbl9mb3JfcHJlYWxsb2NhdGVkKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gICAJCQkJCSAgICAgICB1MzIgZ3R0X29mZnNldCwKPiAgIAkJCQkJICAgICAg IHUzMiBzaXplKTsKPiAgIGludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fc3RvbGVuX2ZyZWV6ZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cj4gK3ZvaWQgaTkxNV9nZW1fc3RvbGVuX3Np emVfaW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCSAgICAgICB1 aW50NjRfdCAqc3RvbGVuX2ZyZWUsCj4gKwkJCSAgICAgICB1aW50NjRfdCAqc3RvbGVuX2xhcmdl c3QpOwo+Cj4gICAvKiBpOTE1X2dlbV9zaHJpbmtlci5jICovCj4gICB1bnNpZ25lZCBsb25nIGk5 MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggOGJkY2M1NS4uY2UzYjczYiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYwo+IEBAIC0xNjUsNiArMTY1LDEwIEBAIGk5MTVfZ2VtX2dldF9hcGVydHVy ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+Cj4gICAJYXJncy0+ YXBlcl9zaXplID0gZ2d0dC0+YmFzZS50b3RhbDsKPiAgIAlhcmdzLT5hcGVyX2F2YWlsYWJsZV9z aXplID0gYXJncy0+YXBlcl9zaXplIC0gcGlubmVkOwo+ICsJYXJncy0+dmVyc2lvbiA9IDE7Cj4g KwlhcmdzLT5tYXBfdG90YWxfc2l6ZSA9IGdndHQtPm1hcHBhYmxlX2VuZDsKPiArCWFyZ3MtPnN0 b2xlbl90b3RhbF9zaXplID0KPiArCQlkZXZfcHJpdi0+bW0udm9sYXRpbGVfc3RvbGVuID8gMCA6 IGdndHQtPnN0b2xlbl91c2FibGVfc2l6ZTsKPgo+ICAgCXJldHVybiAwOwo+ICAgfQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCj4gaW5kZXggMGU2MjAzYy4uMWZiNDU5NyAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCj4gQEAgLTkxNCwzICs5 MTQsMzAgQEAgaW50IGk5MTVfZ2VtX3N0b2xlbl9mcmVlemUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUpCj4KPiAgIAlyZXR1cm4gcmV0Owo+ICAgfQo+ICsKPiArCj4gK3ZvaWQgaTkxNV9n ZW1fc3RvbGVuX3NpemVfaW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g KwkJCSAgICAgICB1aW50NjRfdCAqc3RvbGVuX2ZyZWUsCj4gKwkJCSAgICAgICB1aW50NjRfdCAq c3RvbGVuX2xhcmdlc3QpCj4gK3sKPiArCXN0cnVjdCBkcm1fbW0gKm1tID0gJmRldl9wcml2LT5t bS5zdG9sZW47Cj4gKwlzdHJ1Y3QgZHJtX21tX25vZGUgKmhvbGU7Cj4gKwl1aW50NjRfdCBob2xl X3NpemUsIGhvbGVfc3RhcnQsIGhvbGVfZW5kLCBsYXJnZXN0X2hvbGUgPSAwOwo+ICsJdWludDY0 X3QgdG90YWxfZnJlZSA9IDA7Cj4gKwo+ICsJaWYgKGRldl9wcml2LT5tbS52b2xhdGlsZV9zdG9s ZW4pIHsKPiArCQkqc3RvbGVuX2ZyZWUgPSAwOwo+ICsJCSpzdG9sZW5fbGFyZ2VzdCA9IDA7Cj4g KwkJcmV0dXJuOwo+ICsJfQoKSXMgaXQgd29ydGggaGF2aW5nIHRoaXMgc3BlY2lhbCBjYXNlPyBJ IGFtIGFzc3VtaW5nIHRoZSBsaXN0IGJlbG93IHdpbGwgCmFsd2F5cyBiZSBlbXB0eSBpbiB0aGUg dm9sYXRpbGVfc3RvbGVuIGNhc2U/Cgo+ICsKPiArCWRybV9tbV9mb3JfZWFjaF9ob2xlKGhvbGUs IG1tLCBob2xlX3N0YXJ0LCBob2xlX2VuZCkgewo+ICsJCQlob2xlX3NpemUgPSBob2xlX2VuZCAt IGhvbGVfc3RhcnQ7Cj4gKwkJCXRvdGFsX2ZyZWUgKz0gaG9sZV9zaXplOwo+ICsJCQlpZiAobGFy Z2VzdF9ob2xlIDwgaG9sZV9zaXplKQo+ICsJCQkJbGFyZ2VzdF9ob2xlID0gaG9sZV9zaXplOwo+ ICsJfQo+ICsKPiArCSpzdG9sZW5fZnJlZSA9IHRvdGFsX2ZyZWU7Cj4gKwkqc3RvbGVuX2xhcmdl c3QgPSBsYXJnZXN0X2hvbGU7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9p OTE1X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4gaW5kZXggY2VmZjRjMS4u YmMxNmYwYSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPiArKysg Yi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPiBAQCAtMTAxMSw2ICsxMDExLDIzIEBAIHN0 cnVjdCBkcm1faTkxNV9nZW1fZ2V0X2FwZXJ0dXJlIHsKPiAgIAkgKiBieXRlcwo+ICAgCSAqLwo+ ICAgCV9fdTY0IGFwZXJfYXZhaWxhYmxlX3NpemU7Cj4gKwo+ICsJLyoqCj4gKwkgKiBWZXJzaW9u aW5nIHRvIGluZGljYXRlIGlmIG1hcF90b3RhbF9zaXplIGFuZCBzdG9sZW5fdG90YWxfc2l6ZQo+ ICsJICogdmFsdWUgcmV0dXJuZWQgYXJlIHZhbGlkIG9yIG5vdAo+ICsJICovCj4gKwlfX3U2NCB2 ZXJzaW9uOwoKNjQtYml0cyBzb3VuZCBsaWtlIGFuIG92ZXJraWxsIHRvIG1lLiBCdXQgdGhlbiBh Z2FpbiBpdCBrZWVwcyBpdCBhbGlnbmVkIApzbyBkb24ndCBrbm93LiBQcm9iYWJseSBub3Qgd29y dGggY29tcGxpY2F0aW5nIGl0IGJ5IHNocmlua2luZyBhbmQgCnJlc2VydmluZyBzb21lIGZvciBs YXRlci4KCj4gKwo+ICsJLyoqCj4gKwkgKiBUb3RhbCBzcGFjZSBpbiB0aGUgbWFwcGFibGUgcmVn aW9uIG9mIHRoZSBhcGVydHVyZSwgaW4gYnl0ZXMKPiArCSAqLwo+ICsJX191NjQgbWFwX3RvdGFs X3NpemU7Cj4gKwo+ICsJLyoqCj4gKwkgKiBUb3RhbCBzcGFjZSBpbiB0aGUgc3RvbGVuIHJlZ2lv biwgaW4gYnl0ZXMKPiArCSAqLwo+ICsJX191NjQgc3RvbGVuX3RvdGFsX3NpemU7Cj4gKwo+ICAg fTsKPgo+ICAgc3RydWN0IGRybV9pOTE1X2dldF9waXBlX2Zyb21fY3J0Y19pZCB7Cj4KCkFueXdh eSwgbG9va3MgT0sgdG8gbWUuCgpSZXZpZXdlZC1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51 cnN1bGluQGludGVsLmNvbT4KCllvdSBjYW4gZml4IHRoZSB0eXBvcyBvZiBjb3Vyc2UgYW5kIGtl ZXAgdGhlIHItYi4KClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==