From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v6] drm/i915: Add soft-pinning API for execbuffer Date: Wed, 2 Dec 2015 11:28:52 +0000 Message-ID: <565ED5F4.2040808@linux.intel.com> References: <1437410504-12467-1-git-send-email-thomas.daniel@intel.com> <1444993140-20909-1-git-send-email-thomas.daniel@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 72A726E7C8 for ; Wed, 2 Dec 2015 03:29:12 -0800 (PST) In-Reply-To: <1444993140-20909-1-git-send-email-thomas.daniel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Thomas Daniel , intel-gfx@lists.freedesktop.org Cc: Vinay Belgaumkar , Akash Goel , =?UTF-8?Q?Kristian_H=c3=b8gsberg?= List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE2LzEwLzE1IDExOjU5LCBUaG9tYXMgRGFuaWVsIHdyb3RlOgo+IEZyb206IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+Cj4gVXNlcnNwYWNlIGNhbiBwYXNzIGlu IGFuIG9mZnNldCB0aGF0IGl0IHByZXN1bWVzIHRoZSBvYmplY3QgaXMgbG9jYXRlZAo+IGF0LiBU aGUga2VybmVsIHdpbGwgdGhlbiBkbyBpdHMgdXRtb3N0IHRvIGZpdCB0aGUgb2JqZWN0IGludG8g dGhhdAo+IGxvY2F0aW9uLiBUaGUgYXNzdW1wdGlvbiBpcyB0aGF0IHVzZXJzcGFjZSBpcyBoYW5k bGluZyBpdHMgb3duIG9iamVjdAo+IGxvY2F0aW9ucyAoZm9yIGV4YW1wbGUgYWxvbmcgd2l0aCBm dWxsLXBwZ3R0KSBhbmQgdGhhdCB0aGUga2VybmVsIHdpbGwKPiByYXJlbHkgaGF2ZSB0byBtYWtl IHNwYWNlIGZvciB0aGUgdXNlcidzIHJlcXVlc3RzLgo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMg V2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4KPiB2MjogRml4ZWQgaW5jb3JyZWN0 IGV2aWN0aW9uIGZvdW5kIGJ5IE1pY2hhbCBXaW5pYXJza2kgLSBmaXggc3VnZ2VzdGVkIGJ5IENo cmlzCj4gV2lsc29uLiAgRml4ZWQgaW5jb3JyZWN0IGVycm9yIHBhdGhzIGNhdXNpbmcgY3Jhc2gg Zm91bmQgYnkgTWljaGFsIFdpbmlhcnNraS4KPiAoTm90IHB1Ymxpc2hlZCBleHRlcm5hbGx5KQo+ Cj4gdjM6IFJlYmFzZWQgYmVjYXVzZSBvZiB0cml2aWFsIGNvbmZsaWN0IGluIG9iamVjdF9iaW5k X3RvX3ZtLiAgRml4ZWQgZXZpY3Rpb24KPiB0byBhbGxvdyBldmljdGlvbiBvZiBzb2Z0LXBpbm5l ZCBvYmplY3RzIHdoZW4gYW5vdGhlciBzb2Z0LXBpbm5lZCBvYmplY3QgdXNlZAo+IGJ5IGEgc3Vi c2VxdWVudCBleGVjYnVmZmVyIG92ZXJsYXBzIHJlcG9ydGVkIGJ5IE1pY2hhbCBXaW5pYXJza2ku Cj4gKE5vdCBwdWJsaXNoZWQgZXh0ZXJuYWxseSkKPgo+IHY0OiBNb3ZlZCBzb2Z0LXBpbm5lZCBv YmplY3RzIHRvIHRoZSBmcm9udCBvZiBvcmRlcmVkX3ZtYXMgc28gdGhhdCB0aGV5IGFyZQo+IHBp bm5lZCBmaXJzdCBhZnRlciBhbiBhZGRyZXNzIGNvbmZsaWN0IGhhcHBlbnMgdG8gYXZvaWQgcmVw ZWF0ZWQgY29uZmxpY3RzIGluCj4gcmFyZSBjYXNlcyAoU3VnZ2VzdGVkIGJ5IENocmlzIFdpbHNv bikuICBFeHBhbmRlZCBjb21tZW50IG9uCj4gZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0Mi5vZmZz ZXQgdG8gY292ZXIgdGhpcyBuZXcgQVBJLgo+Cj4gdjU6IEFkZGVkIEk5MTVfUEFSQU1fSEFTX0VY RUNfU09GVFBJTiBwYXJhbWV0ZXIgZm9yIGRldGVjdGluZyB0aGlzIGNhcGFiaWxpdHkKPiAoS3Jp c3RpYW4pLiBBZGRlZCBjaGVjayBmb3IgbXVsdGlwbGUgcGlubmluZ3Mgb24gZXZpY3Rpb24gKEFr YXNoKS4gTWFkZSBzdXJlCj4gYnVmZmVycyBhcmUgbm90IGNvbnNpZGVyZWQgbWlzcGxhY2VkIHdp dGhvdXQgdGhlIHVzZXIgc3BlY2lmeWluZwo+IEVYRUNfT0JKRUNUX1NVUFBPUlRTXzQ4Ql9BRERS RVNTLiAgVXNlciBtdXN0IGFzc3VtZSByZXNwb25zaWJpbGl0eSBmb3IgYW55Cj4gYWRkcmVzc2lu ZyB3b3JrYXJvdW5kcy4gIFVwZGF0ZWQgb2JqZWN0Mi5vZmZzZXQgZmllbGQgY29tbWVudCBhZ2Fp biB0byBjbGFyaWZ5Cj4gTk9fUkVMT0MgY2FzZSAoQ2hyaXMpLiAgY2hlY2twYXRjaCBjbGVhbnVw Lgo+Cj4gdjY6IFRyaXZpYWwgcmViYXNlIG9uIGxhdGVzdCBkcm0taW50ZWwtbmlnaHRseQo+Cj4g Q2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBBa2FzaCBH b2VsIDxha2FzaC5nb2VsQGludGVsLmNvbT4KPiBDYzogVmluYXkgQmVsZ2F1bWthciA8dmluYXku YmVsZ2F1bWthckBpbnRlbC5jb20+Cj4gQ2M6IE1pY2hhbCBXaW5pYXJza2kgPG1pY2hhbC53aW5p YXJza2lAaW50ZWwuY29tPgo+IENjOiBab3UgTmFuaGFpIDxuYW5oYWkuem91QGludGVsLmNvbT4K PiBDYzogS3Jpc3RpYW4gSMO4Z3NiZXJnIDxob2Vnc2JlcmdAZ21haWwuY29tPgo+IFNpZ25lZC1v ZmYtYnk6IFRob21hcyBEYW5pZWwgPHRob21hcy5kYW5pZWxAaW50ZWwuY29tPgo+IC0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyAgICAgICAgICAgIHwgIDMgKysKPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8ICAyICsKPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8IDY0ICsrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3Qu YyAgICAgIHwgMzkgKysrKysrKysrKysrKysrKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9leGVjYnVmZmVyLmMgfCAxOSArKysrKysrLS0KPiAgIGluY2x1ZGUvdWFwaS9kcm0v aTkxNV9kcm0uaCAgICAgICAgICAgICAgICB8IDEyICsrKystLQo+ICAgNiBmaWxlcyBjaGFuZ2Vk LCAxMTMgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZG1hLmMKPiBpbmRleCAyMzM2YWY5Li44MjRjNmMzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZG1hLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rt YS5jCj4gQEAgLTE3MCw2ICsxNzAsOSBAQCBzdGF0aWMgaW50IGk5MTVfZ2V0cGFyYW0oc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAljYXNlIEk5MTVfUEFSQU1fSEFTX1JF U09VUkNFX1NUUkVBTUVSOgo+ICAgCQl2YWx1ZSA9IEhBU19SRVNPVVJDRV9TVFJFQU1FUihkZXYp Owo+ICAgCQlicmVhazsKPiArCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19TT0ZUUElOOgo+ICsJ CXZhbHVlID0gMTsKPiArCQlicmVhazsKPiAgIAlkZWZhdWx0Ogo+ICAgCQlEUk1fREVCVUcoIlVu a25vd24gcGFyYW1ldGVyICVkXG4iLCBwYXJhbS0+cGFyYW0pOwo+ICAgCQlyZXR1cm4gLUVJTlZB TDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCAxMzk2YWY5Li43M2MzYWNmIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTI4MTYsNiArMjgxNiw3IEBAIHZvaWQgaTkx NV9nZW1fdm1hX2Rlc3Ryb3koc3RydWN0IGk5MTVfdm1hICp2bWEpOwo+ICAgI2RlZmluZSBQSU5f VVBEQVRFCSgxPDw1KQo+ICAgI2RlZmluZSBQSU5fWk9ORV80RwkoMTw8NikKPiAgICNkZWZpbmUg UElOX0hJR0gJKDE8PDcpCj4gKyNkZWZpbmUgUElOX09GRlNFVF9GSVhFRAkoMTw8OCkKPiAgICNk ZWZpbmUgUElOX09GRlNFVF9NQVNLICh+NDA5NSkKPiAgIGludCBfX211c3RfY2hlY2sKPiAgIGk5 MTVfZ2VtX29iamVjdF9waW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiBAQCAt MzE2Myw2ICszMTY0LDcgQEAgaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9ldmljdF9zb21ldGhp bmcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJCQkJICB1bnNpZ25lZCBsb25nIHN0YXJ0 LAo+ICAgCQkJCQkgIHVuc2lnbmVkIGxvbmcgZW5kLAo+ICAgCQkJCQkgIHVuc2lnbmVkIGZsYWdz KTsKPiAraW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9ldmljdF9mb3Jfdm1hKHN0cnVjdCBpOTE1 X3ZtYSAqdGFyZ2V0KTsKPiAgIGludCBpOTE1X2dlbV9ldmljdF92bShzdHJ1Y3QgaTkxNV9hZGRy ZXNzX3NwYWNlICp2bSwgYm9vbCBkb19pZGxlKTsKPgo+ICAgLyogYmVsb25ncyBpbiBpOTE1X2dl bV9ndHQuaCAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDFlNjc0ODQuLmMzNDUz YmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMzQ1MCwzMCArMzQ1MCw1MCBA QCBpOTE1X2dlbV9vYmplY3RfYmluZF90b192bShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAo+ICAgCWlmIChJU19FUlIodm1hKSkKPiAgIAkJZ290byBlcnJfdW5waW47Cj4KPiAtCWlm IChmbGFncyAmIFBJTl9ISUdIKSB7Cj4gLQkJc2VhcmNoX2ZsYWcgPSBEUk1fTU1fU0VBUkNIX0JF TE9XOwo+IC0JCWFsbG9jX2ZsYWcgPSBEUk1fTU1fQ1JFQVRFX1RPUDsKPiArCWlmIChmbGFncyAm IFBJTl9PRkZTRVRfRklYRUQpIHsKPiArCQl1aW50NjRfdCBvZmZzZXQgPSBmbGFncyAmIFBJTl9P RkZTRVRfTUFTSzsKPiArCj4gKwkJaWYgKG9mZnNldCAmIChhbGlnbm1lbnQgLSAxKSkgewo+ICsJ CQlyZXQgPSAtRUlOVkFMOwo+ICsJCQlnb3RvIGVycl9mcmVlX3ZtYTsKPiArCQl9Cj4gKwkJdm1h LT5ub2RlLnN0YXJ0ID0gb2Zmc2V0Owo+ICsJCXZtYS0+bm9kZS5zaXplID0gc2l6ZTsKPiArCQl2 bWEtPm5vZGUuY29sb3IgPSBvYmotPmNhY2hlX2xldmVsOwo+ICsJCXJldCA9IGRybV9tbV9yZXNl cnZlX25vZGUoJnZtLT5tbSwgJnZtYS0+bm9kZSk7CgpUaGlzIHdpbGwgcmV0dXJuIEVOT1NQQyB0 byB1c2Vyc3BhY2Ugd2hlbiB0aGV5IGhhdmUgcGFzc2VkIGluIGFuIGFkZHJlc3MgCm91dHNpZGUg dGhlIChQUClHVFQgcmFuZ2Ugd2hpY2ggaXMgbWlzbGVhZGluZy4KCkkgd291bGQgc3VnZ2VzdCBl eHBsaWNpdCBjaGVja2luZyBhZ2FpbnN0IHRoZSAnZW5kJyAoYXZhaWxhYmxlIGEgYml0IApmdXJ0 aGVyIHVwIGluIHRoZSBzYW1lIGZ1bmN0aW9uKSBhbmQgcmV0dXJuaW5nIHNvbWV0aGluZyBtb3Jl IAphcHByb3ByaWF0ZS4gQXQgbGVhc3QgRUlOVkFMLCBhbHRob3VnaCBleGVjYnVmIG92ZXJsb2Fk cyB0aGF0IG9uZSBzbyAKbXVjaCBJIHdvdWxkIGV2ZW4gcmF0aGVyIHN0ZWFsIHNvbWUgb3RoZXIg c2VtaS1hcHByb3ByaWF0ZSBvbmUgbGlrZSAKRU5YSU8gKE5vIHN1Y2ggZGV2aWNlIG9yIF9hZGRy ZXNzXykgb3Igc29tZXRoaW5nLgoKUmVnYXJkcywKClR2cnRrbwoKPiArCQlpZiAocmV0KSB7Cj4g KwkJCXJldCA9IGk5MTVfZ2VtX2V2aWN0X2Zvcl92bWEodm1hKTsKPiArCQkJaWYgKHJldCA9PSAw KQo+ICsJCQkJcmV0ID0gZHJtX21tX3Jlc2VydmVfbm9kZSgmdm0tPm1tLCAmdm1hLT5ub2RlKTsK PiArCQl9Cj4gKwkJaWYgKHJldCkKPiArCQkJZ290byBlcnJfZnJlZV92bWE7Cj4gICAJfSBlbHNl IHsKPiAtCQlzZWFyY2hfZmxhZyA9IERSTV9NTV9TRUFSQ0hfREVGQVVMVDsKPiAtCQlhbGxvY19m bGFnID0gRFJNX01NX0NSRUFURV9ERUZBVUxUOwo+IC0JfQo+ICsJCWlmIChmbGFncyAmIFBJTl9I SUdIKSB7Cj4gKwkJCXNlYXJjaF9mbGFnID0gRFJNX01NX1NFQVJDSF9CRUxPVzsKPiArCQkJYWxs b2NfZmxhZyA9IERSTV9NTV9DUkVBVEVfVE9QOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCXNlYXJjaF9m bGFnID0gRFJNX01NX1NFQVJDSF9ERUZBVUxUOwo+ICsJCQlhbGxvY19mbGFnID0gRFJNX01NX0NS RUFURV9ERUZBVUxUOwo+ICsJCX0KPgo+ICAgc2VhcmNoX2ZyZWU6Cj4gLQlyZXQgPSBkcm1fbW1f aW5zZXJ0X25vZGVfaW5fcmFuZ2VfZ2VuZXJpYygmdm0tPm1tLCAmdm1hLT5ub2RlLAo+IC0JCQkJ CQkgIHNpemUsIGFsaWdubWVudCwKPiAtCQkJCQkJICBvYmotPmNhY2hlX2xldmVsLAo+IC0JCQkJ CQkgIHN0YXJ0LCBlbmQsCj4gLQkJCQkJCSAgc2VhcmNoX2ZsYWcsCj4gLQkJCQkJCSAgYWxsb2Nf ZmxhZyk7Cj4gLQlpZiAocmV0KSB7Cj4gLQkJcmV0ID0gaTkxNV9nZW1fZXZpY3Rfc29tZXRoaW5n KGRldiwgdm0sIHNpemUsIGFsaWdubWVudCwKPiAtCQkJCQkgICAgICAgb2JqLT5jYWNoZV9sZXZl bCwKPiAtCQkJCQkgICAgICAgc3RhcnQsIGVuZCwKPiAtCQkJCQkgICAgICAgZmxhZ3MpOwo+IC0J CWlmIChyZXQgPT0gMCkKPiAtCQkJZ290byBzZWFyY2hfZnJlZTsKPiArCQlyZXQgPSBkcm1fbW1f aW5zZXJ0X25vZGVfaW5fcmFuZ2VfZ2VuZXJpYygmdm0tPm1tLCAmdm1hLT5ub2RlLAo+ICsJCQkJ CQkJICBzaXplLCBhbGlnbm1lbnQsCj4gKwkJCQkJCQkgIG9iai0+Y2FjaGVfbGV2ZWwsCj4gKwkJ CQkJCQkgIHN0YXJ0LCBlbmQsCj4gKwkJCQkJCQkgIHNlYXJjaF9mbGFnLAo+ICsJCQkJCQkJICBh bGxvY19mbGFnKTsKPiArCQlpZiAocmV0KSB7Cj4gKwkJCXJldCA9IGk5MTVfZ2VtX2V2aWN0X3Nv bWV0aGluZyhkZXYsIHZtLCBzaXplLCBhbGlnbm1lbnQsCj4gKwkJCQkJCSAgICAgICBvYmotPmNh Y2hlX2xldmVsLAo+ICsJCQkJCQkgICAgICAgc3RhcnQsIGVuZCwKPiArCQkJCQkJICAgICAgIGZs YWdzKTsKPiArCQkJaWYgKHJldCA9PSAwKQo+ICsJCQkJZ290byBzZWFyY2hfZnJlZTsKPgo+IC0J CWdvdG8gZXJyX2ZyZWVfdm1hOwo+ICsJCQlnb3RvIGVycl9mcmVlX3ZtYTsKPiArCQl9Cj4gICAJ fQo+ICAgCWlmIChXQVJOX09OKCFpOTE1X2dlbV92YWxpZF9ndHRfc3BhY2Uodm1hLCBvYmotPmNh Y2hlX2xldmVsKSkpIHsKPiAgIAkJcmV0ID0gLUVJTlZBTDsKPiBAQCAtNDAwNyw2ICs0MDI3LDEw IEBAIGk5MTVfdm1hX21pc3BsYWNlZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgdWludDMyX3QgYWxp Z25tZW50LCB1aW50NjRfdCBmbGFncykKPiAgIAkgICAgdm1hLT5ub2RlLnN0YXJ0IDwgKGZsYWdz ICYgUElOX09GRlNFVF9NQVNLKSkKPiAgIAkJcmV0dXJuIHRydWU7Cj4KPiArCWlmIChmbGFncyAm IFBJTl9PRkZTRVRfRklYRUQgJiYKPiArCSAgICB2bWEtPm5vZGUuc3RhcnQgIT0gKGZsYWdzICYg UElOX09GRlNFVF9NQVNLKSkKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCj4gICAJcmV0dXJuIGZhbHNl Owo+ICAgfQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2 aWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCj4gaW5kZXggZDcx YTEzMy4uMDdjNmU0ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ldmljdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYwo+ IEBAIC0xOTksNiArMTk5LDQ1IEBAIGZvdW5kOgo+ICAgCXJldHVybiByZXQ7Cj4gICB9Cj4KPiAr aW50Cj4gK2k5MTVfZ2VtX2V2aWN0X2Zvcl92bWEoc3RydWN0IGk5MTVfdm1hICp0YXJnZXQpCj4g K3sKPiArCXN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwgKm5leHQ7Cj4gKwo+ICsJbGlzdF9mb3Jf ZWFjaF9lbnRyeV9zYWZlKG5vZGUsIG5leHQsCj4gKwkJCSZ0YXJnZXQtPnZtLT5tbS5oZWFkX25v ZGUubm9kZV9saXN0LAo+ICsJCQlub2RlX2xpc3QpIHsKPiArCQlzdHJ1Y3QgaTkxNV92bWEgKnZt YTsKPiArCQlpbnQgcmV0Owo+ICsKPiArCQlpZiAobm9kZS0+c3RhcnQgKyBub2RlLT5zaXplIDw9 IHRhcmdldC0+bm9kZS5zdGFydCkKPiArCQkJY29udGludWU7Cj4gKwkJaWYgKG5vZGUtPnN0YXJ0 ID49IHRhcmdldC0+bm9kZS5zdGFydCArIHRhcmdldC0+bm9kZS5zaXplKQo+ICsJCQlicmVhazsK PiArCj4gKwkJdm1hID0gY29udGFpbmVyX29mKG5vZGUsIHR5cGVvZigqdm1hKSwgbm9kZSk7Cj4g Kwo+ICsJCWlmICh2bWEtPnBpbl9jb3VudCkgewo+ICsJCQlpZiAoIXZtYS0+ZXhlY19lbnRyeSB8 fCAodm1hLT5waW5fY291bnQgPiAxKSkKPiArCQkJCS8qIE9iamVjdCBpcyBwaW5uZWQgZm9yIHNv bWUgb3RoZXIgdXNlICovCj4gKwkJCQlyZXR1cm4gLUVCVVNZOwo+ICsKPiArCQkJLyogV2UgbmVl ZCB0byBldmljdCBhIGJ1ZmZlciBpbiB0aGUgc2FtZSBiYXRjaCAqLwo+ICsJCQlpZiAodm1hLT5l eGVjX2VudHJ5LT5mbGFncyAmIEVYRUNfT0JKRUNUX1BJTk5FRCkKPiArCQkJCS8qIE92ZXJsYXBw aW5nIGZpeGVkIG9iamVjdHMgaW4gdGhlIHNhbWUgYmF0Y2ggKi8KPiArCQkJCXJldHVybiAtRUlO VkFMOwo+ICsKPiArCQkJcmV0dXJuIC1FTk9TUEM7Cj4gKwkJfQo+ICsKPiArCQlyZXQgPSBpOTE1 X3ZtYV91bmJpbmQodm1hKTsKPiArCQlpZiAocmV0KQo+ICsJCQlyZXR1cm4gcmV0Owo+ICsJfQo+ ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICAgLyoqCj4gICAgKiBpOTE1X2dlbV9ldmljdF92 bSAtIEV2aWN0IGFsbCBpZGxlIHZtYXMgZnJvbSBhIHZtCj4gICAgKiBAdm06IEFkZHJlc3Mgc3Bh Y2UgdG8gY2xlYW5zZQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVy LmMKPiBpbmRleCA2ZWQ3ZDYzYS4uYjcyZmZlNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiBAQCAtNTk5LDYgKzU5OSw4IEBAIGk5MTVfZ2VtX2V4 ZWNidWZmZXJfcmVzZXJ2ZV92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gICAJCQlmbGFncyB8 PSBQSU5fR0xPQkFMIHwgUElOX01BUFBBQkxFOwo+ICAgCQlpZiAoZW50cnktPmZsYWdzICYgX19F WEVDX09CSkVDVF9ORUVEU19CSUFTKQo+ICAgCQkJZmxhZ3MgfD0gQkFUQ0hfT0ZGU0VUX0JJQVMg fCBQSU5fT0ZGU0VUX0JJQVM7Cj4gKwkJaWYgKGVudHJ5LT5mbGFncyAmIEVYRUNfT0JKRUNUX1BJ Tk5FRCkKPiArCQkJZmxhZ3MgfD0gZW50cnktPm9mZnNldCB8IFBJTl9PRkZTRVRfRklYRUQ7Cj4g ICAJCWlmICgoZmxhZ3MgJiBQSU5fTUFQUEFCTEUpID09IDApCj4gICAJCQlmbGFncyB8PSBQSU5f SElHSDsKPiAgIAl9Cj4gQEAgLTY3MCw2ICs2NzIsMTAgQEAgZWJfdm1hX21pc3BsYWNlZChzdHJ1 Y3QgaTkxNV92bWEgKnZtYSkKPiAgIAkgICAgdm1hLT5ub2RlLnN0YXJ0ICYgKGVudHJ5LT5hbGln bm1lbnQgLSAxKSkKPiAgIAkJcmV0dXJuIHRydWU7Cj4KPiArCWlmIChlbnRyeS0+ZmxhZ3MgJiBF WEVDX09CSkVDVF9QSU5ORUQgJiYKPiArCSAgICB2bWEtPm5vZGUuc3RhcnQgIT0gZW50cnktPm9m ZnNldCkKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCj4gICAJaWYgKGVudHJ5LT5mbGFncyAmIF9fRVhF Q19PQkpFQ1RfTkVFRFNfQklBUyAmJgo+ICAgCSAgICB2bWEtPm5vZGUuc3RhcnQgPCBCQVRDSF9P RkZTRVRfQklBUykKPiAgIAkJcmV0dXJuIHRydWU7Cj4gQEAgLTY3OCw3ICs2ODQsOCBAQCBlYl92 bWFfbWlzcGxhY2VkKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ICAgCWlmIChlbnRyeS0+ZmxhZ3Mg JiBfX0VYRUNfT0JKRUNUX05FRURTX01BUCAmJiAhb2JqLT5tYXBfYW5kX2ZlbmNlYWJsZSkKPiAg IAkJcmV0dXJuICFvbmx5X21hcHBhYmxlX2Zvcl9yZWxvYyhlbnRyeS0+ZmxhZ3MpOwo+Cj4gLQlp ZiAoKGVudHJ5LT5mbGFncyAmIEVYRUNfT0JKRUNUX1NVUFBPUlRTXzQ4Ql9BRERSRVNTKSA9PSAw ICYmCj4gKwlpZiAoIShlbnRyeS0+ZmxhZ3MgJgo+ICsJICAgIChFWEVDX09CSkVDVF9TVVBQT1JU U180OEJfQUREUkVTUyB8IEVYRUNfT0JKRUNUX1BJTk5FRCkpICYmCj4gICAJICAgICh2bWEtPm5v ZGUuc3RhcnQgKyB2bWEtPm5vZGUuc2l6ZSAtIDEpID4+IDMyKQo+ICAgCQlyZXR1cm4gdHJ1ZTsK Pgo+IEBAIC02OTUsNiArNzAyLDcgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXNlcnZlKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJc3RydWN0IGk5MTVfdm1hICp2bWE7Cj4gICAJ c3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm07Cj4gICAJc3RydWN0IGxpc3RfaGVhZCBvcmRl cmVkX3ZtYXM7Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIHBpbm5lZF92bWFzOwo+ICAgCWJvb2wgaGFz X2ZlbmNlZF9ncHVfYWNjZXNzID0gSU5URUxfSU5GTyhyaW5nLT5kZXYpLT5nZW4gPCA0Owo+ICAg CWludCByZXRyeTsKPgo+IEBAIC03MDMsNiArNzExLDcgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9y ZXNlcnZlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJdm0gPSBsaXN0X2ZpcnN0 X2VudHJ5KHZtYXMsIHN0cnVjdCBpOTE1X3ZtYSwgZXhlY19saXN0KS0+dm07Cj4KPiAgIAlJTklU X0xJU1RfSEVBRCgmb3JkZXJlZF92bWFzKTsKPiArCUlOSVRfTElTVF9IRUFEKCZwaW5uZWRfdm1h cyk7Cj4gICAJd2hpbGUgKCFsaXN0X2VtcHR5KHZtYXMpKSB7Cj4gICAJCXN0cnVjdCBkcm1faTkx NV9nZW1fZXhlY19vYmplY3QyICplbnRyeTsKPiAgIAkJYm9vbCBuZWVkX2ZlbmNlLCBuZWVkX21h cHBhYmxlOwo+IEBAIC03MjEsNyArNzMwLDkgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXNlcnZl KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJCQlvYmotPnRpbGluZ19tb2RlICE9 IEk5MTVfVElMSU5HX05PTkU7Cj4gICAJCW5lZWRfbWFwcGFibGUgPSBuZWVkX2ZlbmNlIHx8IG5l ZWRfcmVsb2NfbWFwcGFibGUodm1hKTsKPgo+IC0JCWlmIChuZWVkX21hcHBhYmxlKSB7Cj4gKwkJ aWYgKGVudHJ5LT5mbGFncyAmIEVYRUNfT0JKRUNUX1BJTk5FRCkKPiArCQkJbGlzdF9tb3ZlX3Rh aWwoJnZtYS0+ZXhlY19saXN0LCAmcGlubmVkX3ZtYXMpOwo+ICsJCWVsc2UgaWYgKG5lZWRfbWFw cGFibGUpIHsKPiAgIAkJCWVudHJ5LT5mbGFncyB8PSBfX0VYRUNfT0JKRUNUX05FRURTX01BUDsK PiAgIAkJCWxpc3RfbW92ZSgmdm1hLT5leGVjX2xpc3QsICZvcmRlcmVkX3ZtYXMpOwo+ICAgCQl9 IGVsc2UKPiBAQCAtNzMxLDYgKzc0Miw3IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfcmVzZXJ2ZShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAgCQlvYmotPmJhc2UucGVuZGluZ193cml0 ZV9kb21haW4gPSAwOwo+ICAgCX0KPiAgIAlsaXN0X3NwbGljZSgmb3JkZXJlZF92bWFzLCB2bWFz KTsKPiArCWxpc3Rfc3BsaWNlKCZwaW5uZWRfdm1hcywgdm1hcyk7Cj4KPiAgIAkvKiBBdHRlbXB0 IHRvIHBpbiBhbGwgb2YgdGhlIGJ1ZmZlcnMgaW50byB0aGUgR1RULgo+ICAgCSAqIFRoaXMgaXMg ZG9uZSBpbiAzIHBoYXNlczoKPiBAQCAtMTMxNyw3ICsxMzI5LDggQEAgZWJfZ2V0X2JhdGNoKHN0 cnVjdCBlYl92bWFzICplYikKPiAgIAkgKiBOb3RlIHRoYXQgYWN0dWFsIGhhbmdzIGhhdmUgb25s eSBiZWVuIG9ic2VydmVkIG9uIGdlbjcsIGJ1dCBmb3IKPiAgIAkgKiBwYXJhbm9pYSBkbyBpdCBl dmVyeXdoZXJlLgo+ICAgCSAqLwo+IC0Jdm1hLT5leGVjX2VudHJ5LT5mbGFncyB8PSBfX0VYRUNf T0JKRUNUX05FRURTX0JJQVM7Cj4gKwlpZiAoKHZtYS0+ZXhlY19lbnRyeS0+ZmxhZ3MgJiBFWEVD X09CSkVDVF9QSU5ORUQpID09IDApCj4gKwkJdm1hLT5leGVjX2VudHJ5LT5mbGFncyB8PSBfX0VY RUNfT0JKRUNUX05FRURTX0JJQVM7Cj4KPiAgIAlyZXR1cm4gdm1hLT5vYmo7Cj4gICB9Cj4gZGlm ZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0v aTkxNV9kcm0uaAo+IGluZGV4IDQ4NGE5ZmIuLmZjNzU0YTMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVk ZS91YXBpL2RybS9pOTE1X2RybS5oCj4gKysrIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5o Cj4gQEAgLTM1Niw2ICszNTYsNyBAQCB0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9pcnFfd2FpdCB7 Cj4gICAjZGVmaW5lIEk5MTVfUEFSQU1fRVVfVE9UQUwJCSAzNAo+ICAgI2RlZmluZSBJOTE1X1BB UkFNX0hBU19HUFVfUkVTRVQJIDM1Cj4gICAjZGVmaW5lIEk5MTVfUEFSQU1fSEFTX1JFU09VUkNF X1NUUkVBTUVSIDM2Cj4gKyNkZWZpbmUgSTkxNV9QQVJBTV9IQVNfRVhFQ19TT0ZUUElOCSAzNwo+ Cj4gICB0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9nZXRwYXJhbSB7Cj4gICAJX19zMzIgcGFyYW07 Cj4gQEAgLTY4Miw4ICs2ODMsMTIgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIg ewo+ICAgCV9fdTY0IGFsaWdubWVudDsKPgo+ICAgCS8qKgo+IC0JICogUmV0dXJuZWQgdmFsdWUg b2YgdGhlIHVwZGF0ZWQgb2Zmc2V0IG9mIHRoZSBvYmplY3QsIGZvciBmdXR1cmUKPiAtCSAqIHBy ZXN1bWVkX29mZnNldCB3cml0ZXMuCj4gKwkgKiBXaGVuIHRoZSBFWEVDX09CSkVDVF9QSU5ORUQg ZmxhZyBpcyBzcGVjaWZpZWQgdGhpcyBpcyBwb3B1bGF0ZWQgYnkKPiArCSAqIHRoZSB1c2VyIHdp dGggdGhlIEdUVCBvZmZzZXQgYXQgd2hpY2ggdGhpcyBvYmplY3Qgd2lsbCBiZSBwaW5uZWQuCj4g KwkgKiBXaGVuIHRoZSBJOTE1X0VYRUNfTk9fUkVMT0MgZmxhZyBpcyBzcGVjaWZpZWQgdGhpcyBt dXN0IGNvbnRhaW4gdGhlCj4gKwkgKiBwcmVzdW1lZF9vZmZzZXQgb2YgdGhlIG9iamVjdC4KPiAr CSAqIER1cmluZyBleGVjYnVmZmVyMiB0aGUga2VybmVsIHBvcHVsYXRlcyBpdCB3aXRoIHRoZSB2 YWx1ZSBvZiB0aGUKPiArCSAqIGN1cnJlbnQgR1RUIG9mZnNldCBvZiB0aGUgb2JqZWN0LCBmb3Ig ZnV0dXJlIHByZXN1bWVkX29mZnNldCB3cml0ZXMuCj4gICAJICovCj4gICAJX191NjQgb2Zmc2V0 Owo+Cj4gQEAgLTY5MSw3ICs2OTYsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0 MiB7Cj4gICAjZGVmaW5lIEVYRUNfT0JKRUNUX05FRURTX0dUVAkoMTw8MSkKPiAgICNkZWZpbmUg RVhFQ19PQkpFQ1RfV1JJVEUJKDE8PDIpCj4gICAjZGVmaW5lIEVYRUNfT0JKRUNUX1NVUFBPUlRT XzQ4Ql9BRERSRVNTICgxPDwzKQo+IC0jZGVmaW5lIF9fRVhFQ19PQkpFQ1RfVU5LTk9XTl9GTEFH UyAtKEVYRUNfT0JKRUNUX1NVUFBPUlRTXzQ4Ql9BRERSRVNTPDwxKQo+ICsjZGVmaW5lIEVYRUNf T0JKRUNUX1BJTk5FRAkoMTw8NCkKPiArI2RlZmluZSBfX0VYRUNfT0JKRUNUX1VOS05PV05fRkxB R1MgLShFWEVDX09CSkVDVF9QSU5ORUQ8PDEpCj4gICAJX191NjQgZmxhZ3M7Cj4KPiAgIAlfX3U2 NCByc3ZkMTsKPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=