From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH] drm/i915: Fix up the vma aliasing ppgtt binding Date: Tue, 21 Apr 2015 16:29:04 +0300 Message-ID: <87383t1ufz.fsf@gaia.fi.intel.com> References: <1429025727-15380-12-git-send-email-daniel.vetter@ffwll.ch> <1429545845-15179-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 175FF6E16A for ; Tue, 21 Apr 2015 06:29:50 -0700 (PDT) In-Reply-To: <1429545845-15179-1-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel Graphics Development Cc: Daniel Vetter , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org RGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4gd3JpdGVzOgoKPiBDdXJyZW50 bHkgd2UgaGF2ZSB0aGUgcHJvYmxlbSB0aGF0IHRoZSBkZWNpc2lvbiB3aGV0aGVyIHB0ZXMgbmVl ZCB0bwo+IGJlIChyZSl3cml0dGVuIGlzIHNwbGF0dGVyZWQgYWxsIG92ZXIgdGhlIGNvZGViYXNl LiBNb3ZlIGFsbCB0aGF0IGludG8KPiBpOTE1X3ZtYV9iaW5kLiBUaGlzIG5lZWRzIGEgZmV3IGNo YW5nZXM6Cj4gLSBKdXN0IHJldXNlIHRoZSBQSU5fKiBmbGFncyBmb3IgaTkxNV92bWFfYmluZCBh bmQgZG8gdGhlIGNvbnZlcnNpb24KPiAgIHRvIHZtYS0+Ym91bmQgaW4gdGhlcmUgdG8gYXZvaWQg ZHVwbGljYXRpbmcgdGhlIGNvbnZlcnNpb24gY29kZSBhbGwKPiAgIG92ZXIuCj4gLSBXZSBuZWVk IHRvIG1ha2UgYmluZGluZyBmb3IgRVhFQ0JVRiAoaS5lLiBwaWNrIGFsaWFzaW5nIHBwZ3R0IGlm Cj4gICBhcm91bmQpIGV4cGxpY2l0LCBhZGQgUElOX1VTRVIgZm9yIHRoYXQuCj4gLSBUd28gY2Fs bGVycyB3YW50IHRvIHVwZGF0ZSBwdGVzLCBnaXZlIHRoZW0gYSBQSU5fVVBEQVRFIGZvciB0aGF0 Lgo+Cj4gT2YgY291cnNlIHdlIHN0aWxsIHdhbnQgdG8gYXZvaWQgZG91YmxlLWJpbmRpbmcsIGJ1 dCB0aGF0IHNob3VsZCBiZQo+IHRha2VuIGNhcmUgb2Y6Cj4gLSBBIHBwZ3R0IHZtYSB3aWxsIG9u bHkgZXZlciBzZWUgUElOX1VTRVIsIHNvIG5vIGlzc3VlIHdpdGgKPiAgIGRvdWJsZS1iaW5kaW5n Lgo+IC0gQSBnZ3R0IHZtYSB3aXRoIGFsaWFzaW5nIHBwZ3R0IG5lZWRzIGJvdGggdHlwZXMgb2Yg YmluZGluZywgYW5kIHdlCj4gICB0cmFjayB0aGF0IHByb3Blcmx5IG5vdy4KPiAtIEEgZ2d0dCB2 bWEgd2l0aG91dCBhbGlhc2luZyBwcGd0dCBjb3VsZCBiZSBib3VuZCB0d2ljZS4gSW4gdGhlCj4g ICBsb3dlci1sZXZlbCAtPmJpbmRfdm1hIGZ1bmN0aW9ucyBoZW5jZSB1bmNvbmRpdGlvbmFsbHkg c2V0Cj4gICBHTE9CQUxfQklORCB3aGVuIHdyaXRpbmcgdGhlIGdndHQgcHRlcy4KPgo+IFRoZXJl J3Mgc3RpbGwgYSBiaXQgcm9vbSBmb3IgY2xlYW51cCwgYnV0IHRoYXQncyBmb3IgZm9sbG93LXVw Cj4gcGF0Y2hlcy4KPgo+IHYyOiBGaXh1cCBmdW1ibGVzLgo+Cj4gdjM6IHMvUElOX0VYRUNCVUYv UElOX1VTRVIvIGZvciBjbGVhcmVyIG1lYW5pbmcsIHN1Z2dlc3RlZCBieSBDaHJpcy4KPgo+IENj OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBTaWduZWQtb2ZmLWJ5 OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KClJldmlld2VkLWJ5OiBN aWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGludGVsLmNvbT4KCj4gLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8IDExICsrKy0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8IDExICsrLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8ICA3ICsrLS0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgICAgIHwgNjUgKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tCj4gIDQgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgNTQgZGVs ZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA0N2JlNGE1N2U2YTku LjgwYWZiZTNhZDY2OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0yNjQwLDEw ICsyNjQwLDEzIEBAIHZvaWQgaTkxNV9pbml0X3ZtKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiAgdm9pZCBpOTE1X2dlbV9mcmVlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKm9iaik7Cj4gIHZvaWQgaTkxNV9nZW1fdm1hX2Rlc3Ryb3koc3RydWN0IGk5MTVfdm1hICp2 bWEpOwo+ICAKPiAtI2RlZmluZSBQSU5fTUFQUEFCTEUgMHgxCj4gLSNkZWZpbmUgUElOX05PTkJM T0NLIDB4Mgo+IC0jZGVmaW5lIFBJTl9HTE9CQUwgMHg0Cj4gLSNkZWZpbmUgUElOX09GRlNFVF9C SUFTIDB4OAo+ICsvKiBGbGFncyB1c2VkIGJ5IHBpbi9iaW5kJmZyaWVuZHMuICovCj4gKyNkZWZp bmUgUElOX01BUFBBQkxFCSgxPDwwKQo+ICsjZGVmaW5lIFBJTl9OT05CTE9DSwkoMTw8MSkKPiAr I2RlZmluZSBQSU5fR0xPQkFMCSgxPDwyKQo+ICsjZGVmaW5lIFBJTl9PRkZTRVRfQklBUwkoMTw8 MykKPiArI2RlZmluZSBQSU5fVVNFUgkoMTw8NCkKPiArI2RlZmluZSBQSU5fVVBEQVRFCSgxPDw1 KQo+ICAjZGVmaW5lIFBJTl9PRkZTRVRfTUFTSyAofjQwOTUpCj4gIGludCBfX211c3RfY2hlY2sK PiAgaTkxNV9nZW1fb2JqZWN0X3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDEwZTg3M2M4OTU3Zi4uMDQ3NjI5YjA4Njk3 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTM1NTcsOCArMzU1Nyw3IEBAIHNl YXJjaF9mcmVlOgo+ICAJCWdvdG8gZXJyX3JlbW92ZV9ub2RlOwo+ICAKPiAgCXRyYWNlX2k5MTVf dm1hX2JpbmQodm1hLCBmbGFncyk7Cj4gLQlyZXQgPSBpOTE1X3ZtYV9iaW5kKHZtYSwgb2JqLT5j YWNoZV9sZXZlbCwKPiAtCQkJICAgIGZsYWdzICYgUElOX0dMT0JBTCA/IEdMT0JBTF9CSU5EIDog MCk7Cj4gKwlyZXQgPSBpOTE1X3ZtYV9iaW5kKHZtYSwgb2JqLT5jYWNoZV9sZXZlbCwgZmxhZ3Mp Owo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIGVycl9maW5pc2hfZ3R0Owo+ICAKPiBAQCAtMzc4NCw3 ICszNzgzLDcgQEAgaW50IGk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfbGV2ZWwoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZtYSwgJm9i ai0+dm1hX2xpc3QsIHZtYV9saW5rKQo+ICAJCQlpZiAoZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2 bWEtPm5vZGUpKSB7Cj4gIAkJCQlyZXQgPSBpOTE1X3ZtYV9iaW5kKHZtYSwgY2FjaGVfbGV2ZWws Cj4gLQkJCQkJCSAgICB2bWEtPmJvdW5kICYgR0xPQkFMX0JJTkQpOwo+ICsJCQkJCQkgICAgUElO X1VQREFURSk7Cj4gIAkJCQlpZiAocmV0KQo+ICAJCQkJCXJldHVybiByZXQ7Cj4gIAkJCX0KPiBA QCAtNDE4NywxMCArNDE4Niw4IEBAIGk5MTVfZ2VtX29iamVjdF9kb19waW4oc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCQkJCQkJIGZsYWdzKTsKPiAgCQlpZiAoSVNfRVJSKHZt YSkpCj4gIAkJCXJldHVybiBQVFJfRVJSKHZtYSk7Cj4gLQl9Cj4gLQo+IC0JaWYgKGZsYWdzICYg UElOX0dMT0JBTCAmJiAhKHZtYS0+Ym91bmQgJiBHTE9CQUxfQklORCkpIHsKPiAtCQlyZXQgPSBp OTE1X3ZtYV9iaW5kKHZtYSwgb2JqLT5jYWNoZV9sZXZlbCwgR0xPQkFMX0JJTkQpOwo+ICsJfSBl bHNlIHsKPiArCQlyZXQgPSBpOTE1X3ZtYV9iaW5kKHZtYSwgb2JqLT5jYWNoZV9sZXZlbCwgZmxh Z3MpOwo+ICAJCWlmIChyZXQpCj4gIAkJCXJldHVybiByZXQ7Cj4gIAl9Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+IGluZGV4IDdmNjlhYTgyMDQ1OC4uY2Zk YzhjNjA3M2FhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4 ZWNidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYwo+IEBAIC00MDAsMTAgKzQwMCw5IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfcmVsb2NhdGVf ZW50cnkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCSAqIHBpcGVfY29udHJv bCB3cml0ZXMgYmVjYXVzZSB0aGUgZ3B1IGRvZXNuJ3QgcHJvcGVybHkgcmVkaXJlY3QgdGhlbQo+ ICAJICogdGhyb3VnaCB0aGUgcHBndHQgZm9yIG5vbl9zZWN1cmUgYmF0Y2hidWZmZXJzLiAqLwo+ ICAJaWYgKHVubGlrZWx5KElTX0dFTjYoZGV2KSAmJgo+IC0JICAgIHJlbG9jLT53cml0ZV9kb21h aW4gPT0gSTkxNV9HRU1fRE9NQUlOX0lOU1RSVUNUSU9OICYmCj4gLQkgICAgISh0YXJnZXRfdm1h LT5ib3VuZCAmIEdMT0JBTF9CSU5EKSkpIHsKPiArCSAgICByZWxvYy0+d3JpdGVfZG9tYWluID09 IEk5MTVfR0VNX0RPTUFJTl9JTlNUUlVDVElPTikpIHsKPiAgCQlyZXQgPSBpOTE1X3ZtYV9iaW5k KHRhcmdldF92bWEsIHRhcmdldF9pOTE1X29iai0+Y2FjaGVfbGV2ZWwsCj4gLQkJCQkgICAgR0xP QkFMX0JJTkQpOwo+ICsJCQkJICAgIFBJTl9HTE9CQUwpOwo+ICAJCWlmIChXQVJOX09OQ0UocmV0 LCAiVW5leHBlY3RlZCBmYWlsdXJlIHRvIGJpbmQgdGFyZ2V0IFZNQSEiKSkKPiAgCQkJcmV0dXJu IHJldDsKPiAgCX0KPiBAQCAtNTg1LDcgKzU4NCw3IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfcmVz ZXJ2ZV92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gIAl1aW50NjRfdCBmbGFnczsKPiAgCWlu dCByZXQ7Cj4gIAo+IC0JZmxhZ3MgPSAwOwo+ICsJZmxhZ3MgPSBQSU5fVVNFUjsKPiAgCWlmIChl bnRyeS0+ZmxhZ3MgJiBFWEVDX09CSkVDVF9ORUVEU19HVFQpCj4gIAkJZmxhZ3MgfD0gUElOX0dM T0JBTDsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBpbmRleCA0ZTJjYWVm ODM3NzIuLjllMDYxODBlMjA2ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5j Cj4gQEAgLTE3NDgsMTUgKzE3NDgsNyBAQCB2b2lkIGk5MTVfZ2VtX3Jlc3RvcmVfZ3R0X21hcHBp bmdzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQlpOTE1 X2dlbV9jbGZsdXNoX29iamVjdChvYmosIG9iai0+cGluX2Rpc3BsYXkpOwo+IC0JCS8qIFRoZSBi aW5kX3ZtYSBjb2RlIHRyaWVzIHRvIGJlIHNtYXJ0IGFib3V0IHRyYWNraW5nIG1hcHBpbmdzLgo+ IC0JCSAqIFVuZm9ydHVuYXRlbHkgYWJvdmUsIHdlJ3ZlIGp1c3Qgd2lwZWQgb3V0IHRoZSBtYXBw aW5ncwo+IC0JCSAqIHdpdGhvdXQgdGVsbGluZyBvdXIgb2JqZWN0IGFib3V0IGl0LiBTbyB3ZSBu ZWVkIHRvIGZha2UgaXQuCj4gLQkJICoKPiAtCQkgKiBCaW5kIGlzIG5vdCBleHBlY3RlZCB0byBm YWlsIHNpbmNlIHRoaXMgaXMgb25seSBjYWxsZWQgb24KPiAtCQkgKiByZXN1bWUgYW5kIGFzc3Vt cHRpb24gaXMgYWxsIHJlcXVpcmVtZW50cyBleGlzdCBhbHJlYWR5Lgo+IC0JCSAqLwo+IC0JCXZt YS0+Ym91bmQgJj0gfkdMT0JBTF9CSU5EOwo+IC0JCVdBUk5fT04oaTkxNV92bWFfYmluZCh2bWEs IG9iai0+Y2FjaGVfbGV2ZWwsIEdMT0JBTF9CSU5EKSk7Cj4gKwkJV0FSTl9PTihpOTE1X3ZtYV9i aW5kKHZtYSwgb2JqLT5jYWNoZV9sZXZlbCwgUElOX1VQREFURSkpOwo+ICAJfQo+ICAKPiAgCj4g QEAgLTE5NTcsNyArMTk0OSw4IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2d0dF9iaW5kX3ZtYShzdHJ1 Y3QgaTkxNV92bWEgKnZtYSwKPiAgCj4gIAlCVUdfT04oIWk5MTVfaXNfZ2d0dCh2bWEtPnZtKSk7 Cj4gIAlpbnRlbF9ndHRfaW5zZXJ0X3NnX2VudHJpZXModm1hLT5nZ3R0X3ZpZXcucGFnZXMsIGVu dHJ5LCBmbGFncyk7Cj4gLQl2bWEtPmJvdW5kID0gR0xPQkFMX0JJTkQ7Cj4gKwo+ICsJdm1hLT5i b3VuZCB8PSBHTE9CQUxfQklORDsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgaTkxNV9nZ3R0X2Ns ZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+IEBAIC0xOTc2LDcgKzE5 NjksNiBAQCBzdGF0aWMgdm9pZCBpOTE1X2dndHRfdW5iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEg KnZtYSkKPiAgCWNvbnN0IHVuc2lnbmVkIGludCBzaXplID0gdm1hLT5vYmotPmJhc2Uuc2l6ZSA+ PiBQQUdFX1NISUZUOwo+ICAKPiAgCUJVR19PTighaTkxNV9pc19nZ3R0KHZtYS0+dm0pKTsKPiAt CXZtYS0+Ym91bmQgPSAwOwo+ICAJaW50ZWxfZ3R0X2NsZWFyX3JhbmdlKGZpcnN0LCBzaXplKTsK PiAgfQo+ICAKPiBAQCAtMTk5NywzNSArMTk4OSwxOSBAQCBzdGF0aWMgdm9pZCBnZ3R0X2JpbmRf dm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLAo+ICAJaWYgKGk5MTVfaXNfZ2d0dCh2bWEtPnZtKSkK PiAgCQlwYWdlcyA9IHZtYS0+Z2d0dF92aWV3LnBhZ2VzOwo+ICAKPiAtCS8qIElmIHRoZXJlIGlz IG5vIGFsaWFzaW5nIFBQR1RULCBvciB0aGUgY2FsbGVyIG5lZWRzIGEgZ2xvYmFsIG1hcHBpbmcs Cj4gLQkgKiBvciB3ZSBoYXZlIGEgZ2xvYmFsIG1hcHBpbmcgYWxyZWFkeSBidXQgdGhlIGNhY2hl YWJpbGl0eSBmbGFncyBoYXZlCj4gLQkgKiBjaGFuZ2VkLCBzZXQgdGhlIGdsb2JhbCBQVEVzLgo+ IC0JICoKPiAtCSAqIElmIHRoZXJlIGlzIGFuIGFsaWFzaW5nIFBQR1RUIGl0IGlzIGFuZWNkb3Rh bGx5IGZhc3Rlciwgc28gdXNlIHRoYXQKPiAtCSAqIGluc3RlYWQgaWYgbm9uZSBvZiB0aGUgYWJv dmUgaG9sZCB0cnVlLgo+IC0JICoKPiAtCSAqIE5COiBBIGdsb2JhbCBtYXBwaW5nIHNob3VsZCBv bmx5IGJlIG5lZWRlZCBmb3Igc3BlY2lhbCByZWdpb25zIGxpa2UKPiAtCSAqICJndHQgbWFwcGFi bGUiLCBTTkIgZXJyYXRhLCBvciBpZiBzcGVjaWZpZWQgdmlhIHNwZWNpYWwgZXhlY2J1Zgo+IC0J ICogZmxhZ3MuIEF0IGFsbCBvdGhlciB0aW1lcywgdGhlIEdQVSB3aWxsIHVzZSB0aGUgYWxpYXNp bmcgUFBHVFQuCj4gLQkgKi8KPiAgCWlmICghZGV2X3ByaXYtPm1tLmFsaWFzaW5nX3BwZ3R0IHx8 IGZsYWdzICYgR0xPQkFMX0JJTkQpIHsKPiAtCQlpZiAoISh2bWEtPmJvdW5kICYgR0xPQkFMX0JJ TkQpIHx8Cj4gLQkJICAgIChjYWNoZV9sZXZlbCAhPSBvYmotPmNhY2hlX2xldmVsKSkgewo+IC0J CQl2bWEtPnZtLT5pbnNlcnRfZW50cmllcyh2bWEtPnZtLCBwYWdlcywKPiAtCQkJCQkJdm1hLT5u b2RlLnN0YXJ0LAo+IC0JCQkJCQljYWNoZV9sZXZlbCwgcHRlX2ZsYWdzKTsKPiAtCQkJdm1hLT5i b3VuZCB8PSBHTE9CQUxfQklORDsKPiAtCQl9Cj4gKwkJdm1hLT52bS0+aW5zZXJ0X2VudHJpZXMo dm1hLT52bSwgcGFnZXMsCj4gKwkJCQkJdm1hLT5ub2RlLnN0YXJ0LAo+ICsJCQkJCWNhY2hlX2xl dmVsLCBwdGVfZmxhZ3MpOwo+ICsKPiArCQl2bWEtPmJvdW5kIHw9IEdMT0JBTF9CSU5EOwo+ICAJ fQo+ICAKPiAtCWlmIChkZXZfcHJpdi0+bW0uYWxpYXNpbmdfcHBndHQgJiYKPiAtCSAgICAoISh2 bWEtPmJvdW5kICYgTE9DQUxfQklORCkgfHwKPiAtCSAgICAgKGNhY2hlX2xldmVsICE9IG9iai0+ Y2FjaGVfbGV2ZWwpKSkgewo+ICsJaWYgKGRldl9wcml2LT5tbS5hbGlhc2luZ19wcGd0dCAmJiBm bGFncyAmIExPQ0FMX0JJTkQpIHsKPiAgCQlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqYXBwZ3R0ID0g ZGV2X3ByaXYtPm1tLmFsaWFzaW5nX3BwZ3R0Owo+ICAJCWFwcGd0dC0+YmFzZS5pbnNlcnRfZW50 cmllcygmYXBwZ3R0LT5iYXNlLCBwYWdlcywKPiAgCQkJCQkgICAgdm1hLT5ub2RlLnN0YXJ0LAo+ ICAJCQkJCSAgICBjYWNoZV9sZXZlbCwgcHRlX2ZsYWdzKTsKPiAtCQl2bWEtPmJvdW5kIHw9IExP Q0FMX0JJTkQ7Cj4gIAl9Cj4gIH0KPiAgCj4gQEAgLTIwNDAsMTYgKzIwMTYsMTQgQEAgc3RhdGlj IHZvaWQgZ2d0dF91bmJpbmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ICAJCQkJICAgICB2 bWEtPm5vZGUuc3RhcnQsCj4gIAkJCQkgICAgIG9iai0+YmFzZS5zaXplLAo+ICAJCQkJICAgICB0 cnVlKTsKPiAtCQl2bWEtPmJvdW5kICY9IH5HTE9CQUxfQklORDsKPiAgCX0KPiAgCj4gLQlpZiAo dm1hLT5ib3VuZCAmIExPQ0FMX0JJTkQpIHsKPiArCWlmIChkZXZfcHJpdi0+bW0uYWxpYXNpbmdf cHBndHQgJiYgdm1hLT5ib3VuZCAmIExPQ0FMX0JJTkQpIHsKPiAgCQlzdHJ1Y3QgaTkxNV9od19w cGd0dCAqYXBwZ3R0ID0gZGV2X3ByaXYtPm1tLmFsaWFzaW5nX3BwZ3R0Owo+ICAJCWFwcGd0dC0+ YmFzZS5jbGVhcl9yYW5nZSgmYXBwZ3R0LT5iYXNlLAo+ICAJCQkJCSB2bWEtPm5vZGUuc3RhcnQs Cj4gIAkJCQkJIG9iai0+YmFzZS5zaXplLAo+ICAJCQkJCSB0cnVlKTsKPiAtCQl2bWEtPmJvdW5k ICY9IH5MT0NBTF9CSU5EOwo+ICAJfQo+ICB9Cj4gIAo+IEBAIC0yODM5LDYgKzI4MTMsNyBAQCBp OTE1X2dldF9nZ3R0X3ZtYV9wYWdlcyhzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiAgaW50IGk5MTVf dm1hX2JpbmQoc3RydWN0IGk5MTVfdm1hICp2bWEsIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNo ZV9sZXZlbCwKPiAgCQkgIHUzMiBmbGFncykKPiAgewo+ICsJdTMyIGJpbmRfZmxhZ3MgPSAwOwo+ ICAJaW50IHJldDsKPiAgCj4gIAlpZiAodm1hLT52bS0+YWxsb2NhdGVfdmFfcmFuZ2UpIHsKPiBA QCAtMjg1NSwxMiArMjgzMCwyNCBAQCBpbnQgaTkxNV92bWFfYmluZChzdHJ1Y3QgaTkxNV92bWEg KnZtYSwgZW51bSBpOTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAo+ICAKPiAgCWlmIChpOTE1 X2lzX2dndHQodm1hLT52bSkpIHsKPiAgCQlyZXQgPSBpOTE1X2dldF9nZ3R0X3ZtYV9wYWdlcyh2 bWEpOwo+IC0KPiAgCQlpZiAocmV0KQo+IC0JCQlyZXR1cm4gcmV0Owo+ICsJCQlyZXR1cm4gMDsK PiAgCX0KPiAgCj4gLQl2bWEtPnZtLT5iaW5kX3ZtYSh2bWEsIGNhY2hlX2xldmVsLCBmbGFncyk7 Cj4gKwlpZiAoZmxhZ3MgJiBQSU5fR0xPQkFMKQo+ICsJCWJpbmRfZmxhZ3MgfD0gR0xPQkFMX0JJ TkQ7Cj4gKwlpZiAoZmxhZ3MgJiBQSU5fVVNFUikKPiArCQliaW5kX2ZsYWdzIHw9IExPQ0FMX0JJ TkQ7Cj4gKwo+ICsJaWYgKGZsYWdzICYgUElOX1VQREFURSkKPiArCQliaW5kX2ZsYWdzIHw9IHZt YS0+Ym91bmQ7Cj4gKwllbHNlCj4gKwkJYmluZF9mbGFncyAmPSB+dm1hLT5ib3VuZDsKPiArCj4g KwlpZiAoYmluZF9mbGFncykKPiArCQl2bWEtPnZtLT5iaW5kX3ZtYSh2bWEsIGNhY2hlX2xldmVs LCBiaW5kX2ZsYWdzKTsKPiArCj4gKwl2bWEtPmJvdW5kIHw9IGJpbmRfZmxhZ3M7Cj4gIAo+ICAJ cmV0dXJuIDA7Cj4gIH0KPiAtLSAKPiAxLjkuMwo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK