From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC 2/2] drm/i915: Clean-up PPGTT on context destruction Date: Fri, 13 Feb 2015 10:51:36 +0100 Message-ID: <20150213095136.GI24485@phenom.ffwll.local> References: <1423771502-9766-1-git-send-email-rafael.barbalho@intel.com> <1423771502-9766-3-git-send-email-rafael.barbalho@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by gabe.freedesktop.org (Postfix) with ESMTP id 35CCC6E46D for ; Fri, 13 Feb 2015 01:50:41 -0800 (PST) Received: by mail-wi0-f182.google.com with SMTP id l15so10050482wiw.3 for ; Fri, 13 Feb 2015 01:50:40 -0800 (PST) Content-Disposition: inline In-Reply-To: <1423771502-9766-3-git-send-email-rafael.barbalho@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: rafael.barbalho@intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBGZWIgMTIsIDIwMTUgYXQgMDg6MDU6MDJQTSArMDAwMCwgcmFmYWVsLmJhcmJhbGhv QGludGVsLmNvbSB3cm90ZToKPiBGcm9tOiBSYWZhZWwgQmFyYmFsaG8gPHJhZmFlbC5iYXJiYWxo b0BpbnRlbC5jb20+Cj4gCj4gV2l0aCBmdWxsIFBQR1RUIGVuYWJsZWQgYW4gb2JqZWN0J3MgVk1B IGVudHJ5IGludG8gYSBQUEdUVCBWTSBuZWVkcyB0byBiZQo+IGNsZWFuZWQgdXAgc28gdGhhdCB0 aGUgUFBHVFQgUERFICYgUFRFIGFsbG9jYXRpb25zIGNhbiBiZSBmcmVlZC4KPiAKPiBUaGlzIHBy b2JsZW0gb25seSBzaG93cyB1cCB3aXRoIGZ1bGwgUFBHVFQgYmVjYXVzZSBhbiBvYmplY3QncyBW TUEgaXMKPiBvbmx5IGNsZWFuZWQtdXAgd2hlbiB0aGUgb2JqZWN0IGlzIGRlc3Ryb3llZC4gSG93 ZXZlciwgaWYgdGhlIG9iamVjdCBoYXMKPiBiZWVuIHNoYXJlZCBiZXR3ZWVuIG11bHRpcGxlIHBy b2Nlc3NlcyB0aGlzIG1heSBub3QgaGFwcGVuLCB3aGljaCBsZWFkcyB0bwo+IHJlZmVyZW5jZXMg dG8gdGhlIFBQR1RUIHN0aWxsIGJlaW5nIGtlcHQgdGhlIG9iamVjdCB3YXMgc2hhcmVkLgo+IAo+ IFVuZGVyIGFuZHJvaWQgdGhlIHNoYXJpbmcgb2YgR0VNIG9iamVjdHMgaXMgYSBmYWlybHkgY29t bW9uIG9wZXJhdGlvbiwgdGh1cwo+IHRoZSBjbGVhbi11cCBoYXMgdG8gYmUgbW9yZSBhZ3Jlc3Np dmUuCj4gCj4gU2lnbmVkLW9mZi1ieTogUmFmYWVsIEJhcmJhbGhvIDxyYWZhZWwuYmFyYmFsaG9A aW50ZWwuY29tPgo+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+Cj4gQ2M6IEpv biBCbG9vbWZpZWxkIDxqb24uYmxvb21maWVsZEBpbnRlbC5jb20+CgpTbyB3aGVuIHdlJ3ZlIG1l cmdlZCB0aGlzIHdlIGlpcmMgdGFsa2VkIGFib3V0IHRoaXMgaXNzdWUgYW5kIGRlY2lkZWQgdGhh dAp0aGUgc2hyaW5rZXIgc2hvdWxkIGJlIGdvb2QgZW5vdWdoIGluIGNsZWFuaW5nIHVwIHRoZSBj cmFwIGZyb20gc2hhcmVkCm9iamVjdHMuIE5vdCBhIHByZXR0eSBzb2x1dGlvbiwgYnV0IGl0IHNo b3VsZCBoYXZlIHdvcmtlZC4KCklzIHRoaXMgYWdhaW4gdGhlIGxvd21lbW9yeSBraWxsZXIgd3Jl YWtpbmcgaGF2b2Mgd2l0aCBvdXIgaTkxNSBzaHJpbmtlciwKb3IgaXMgdGhlcmUgc29tZXRoaW5n IGVsc2UgZ29pbmcgb24/IEFuZCBkbyB5b3UgaGF2ZSBzb21lIGlndCB0ZXN0Y2FzZSBmb3IKdGhp cz8gSWYgc2hhcmluZyBpcyBhbGwgdGhhdCdzIHJlcXVpcmVkIHRoZSBmb2xsb3dpbmcgc2hvdWxk IGRvIHRoZSB0cmljazoKMS4gYWxsb2NhdGUgb2JqCjIuIGNyZWF0ZSBuZXcgY29udGV4dAozLiBk byBkdW1teSBleGVjYnVmIHdpdGggdGhhdCBvYmogdG8gbWFwIGl0IGludG8gdGhlIHBwZ3R0CjQu IGZyZWUgY29udGV4dAo1LiBnb3RvIDIgb2Z0ZW4gZW5vdWdoIHRvIE9PTQoKVGhlIHNocmlua2Vy IHNob3VsZCBldmVudHVhbGx5IGtpY2sgaW4gYW5kIGNsZWFuIHVwLCBidXQgbWF5YmUgSSdtIHdy b25nCmFib3V0IHRoYXQgLi4uCgpPbmUgdGhpbmcgSSd2ZSB0aG91Z2h0IG9mIGlzIHRoYXQgaWYg dGhlIHNoYXJlZCBvYmplY3QgaXMgcGlubmVkIGFzIGEKc2Nhbm91dCBidWZmZXIgdGhlbiB0aGUg c2hyaW5rZXIgd29uJ3QgdG91Y2ggaXQuIEJ1dCBub3Qgc3VyZSB3aGV0aGVyIHlvdQpjYW4gYWN0 dWFsbHkgZG8gdGhpcyB0byBlbmQgdXAgd2l0aCBhIHN0YWJsZSBsZWFrIC0gYWZ0ZXIgZWFjaCBw YWdlZmxpcAp0aGUgc2hyaW5rZXIgZXZpY3QgdGhlIHZtYS9vYmogZm9yIHRoaXMgZXZlbnR1YWxs eS4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICB8ICA3 ICsrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgfCAgMiAr LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgfCA0MyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmggICAgIHwgIDcgKysrKysrCj4gIDQgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9u cygrKSwgNSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCA2 MGI4YmQxLi5lNTA5ZDg5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTQ1Mjks MTEgKzQ1MjksMTIgQEAgdm9pZCBpOTE1X2dlbV92bWFfZGVzdHJveShzdHJ1Y3QgaTkxNV92bWEg KnZtYSkKPiAgCQlyZXR1cm47Cj4gIAo+ICAJdm0gPSB2bWEtPnZtOwo+ICsJbGlzdF9kZWwoJnZt YS0+dm1hX2xpbmspOwo+ICAKPiAtCWlmICghaTkxNV9pc19nZ3R0KHZtKSkKPiArCWlmICghaTkx NV9pc19nZ3R0KHZtKSkgewo+ICsJCWxpc3RfZGVsKCZ2bWEtPnZtX2xpbmspOwo+ICAJCWk5MTVf cHBndHRfcHV0KGk5MTVfdm1fdG9fcHBndHQodm0pKTsKPiAtCj4gLQlsaXN0X2RlbCgmdm1hLT52 bWFfbGluayk7Cj4gKwl9Cj4gIAo+ICAJa2ZyZWUodm1hKTsKPiAgfQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiBpbmRleCBhNTIyMWQ4Li40MzE5YTkzIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+IEBAIC0xNDAsNyArMTQwLDcg QEAgdm9pZCBpOTE1X2dlbV9jb250ZXh0X2ZyZWUoc3RydWN0IGtyZWYgKmN0eF9yZWYpCj4gIAlp ZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKQo+ICAJCWludGVsX2xyX2NvbnRleHRfZnJlZShjdHgp Owo+ICAKPiAtCWk5MTVfcHBndHRfcHV0KGN0eC0+cHBndHQpOwo+ICsJaTkxNV9wcGd0dF9kZXN0 cm95KGN0eC0+cHBndHQpOwo+ICAKPiAgCWlmIChjdHgtPmxlZ2FjeV9od19jdHgucmNzX3N0YXRl KQo+ICAJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZjdHgtPmxlZ2FjeV9od19jdHgucmNz X3N0YXRlLT5iYXNlKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IGluZGV4IDZm NDEwY2YuLjllZjJmNjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IEBA IC0xMDk3LDYgKzEwOTcsNyBAQCBzdGF0aWMgaW50IF9faHdfcHBndHRfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQpCj4gIAllbHNlCj4gIAkJ QlVHKCk7Cj4gIH0KPiArCj4gIGludCBpOTE1X3BwZ3R0X2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IEBAIC0xMTA4LDYgKzEx MDksOCBAQCBpbnQgaTkxNV9wcGd0dF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVj dCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCkKPiAgCQlkcm1fbW1faW5pdCgmcHBndHQtPmJhc2UubW0s IHBwZ3R0LT5iYXNlLnN0YXJ0LAo+ICAJCQkgICAgcHBndHQtPmJhc2UudG90YWwpOwo+ICAJCWk5 MTVfaW5pdF92bShkZXZfcHJpdiwgJnBwZ3R0LT5iYXNlKTsKPiArCj4gKwkJSU5JVF9MSVNUX0hF QUQoJnBwZ3R0LT52bWFfbGlzdCk7Cj4gIAl9Cj4gIAo+ICAJcmV0dXJuIHJldDsKPiBAQCAtMTE3 NywxNCArMTE4MCw0OSBAQCB2b2lkICBpOTE1X3BwZ3R0X3JlbGVhc2Uoc3RydWN0IGtyZWYgKmty ZWYpCj4gIAkvKiB2bWFzIHNob3VsZCBhbHJlYWR5IGJlIHVuYm91bmQgKi8KPiAgCVdBUk5fT04o IWxpc3RfZW1wdHkoJnBwZ3R0LT5iYXNlLmFjdGl2ZV9saXN0KSk7Cj4gIAlXQVJOX09OKCFsaXN0 X2VtcHR5KCZwcGd0dC0+YmFzZS5pbmFjdGl2ZV9saXN0KSk7Cj4gKwlXQVJOX09OKCFsaXN0X2Vt cHR5KCZwcGd0dC0+dm1hX2xpc3QpKTsKPiAgCj4gIAlsaXN0X2RlbCgmcHBndHQtPmJhc2UuZ2xv YmFsX2xpbmspOwo+ICAJZHJtX21tX3Rha2Vkb3duKCZwcGd0dC0+YmFzZS5tbSk7Cj4gIAo+ICAJ cHBndHQtPmJhc2UuY2xlYW51cCgmcHBndHQtPmJhc2UpOwo+ICsKPiAgCWtmcmVlKHBwZ3R0KTsK PiAgfQo+ICAKPiArdm9pZAo+ICtpOTE1X3BwZ3R0X2Rlc3Ryb3koc3RydWN0IGk5MTVfaHdfcHBn dHQgKnBwZ3R0KQoKVGhpcyBpcyBtaXNuYW1lZCBzaW5jZSB3aGF0IGl0IHJlYWxseSBkb2VzIGlz IHVuYmluZCBldmVyeXRoaW5nIGFuZCB0aGVuCmRyb3AgdGhlIHJlZmVyZW5jZS4gVW5iaW5kaW5n IGV2ZXJ5dGhpbmcgaXMgYWxyZWFkeSBpbXBsZW1lbnRlZCBhcwppOTE1X2dlbV9ldmljdF92bS4K CkFsc28gdW5jb25kaXRpb25hbGx5IGV2aWN0aW5nIHRoZSBlbnRpcmUgdm0gdXBvbiBjb250ZXh0 IGRlc3RydWN0aW9uIG1lYW5zCndlIGVzc2VudGlhbGx5IGFzc3VtZSBhIDE6MSBsaW5rIGJldHdl ZW4gY3R4IGFuZCBwcGd0dC4gV2hpY2ggaXMgY3VycmVudGx5CnRydWUgYnV0IHdpbGwgY2hhbmdl IHdpdGggdGhlIGludGVyZmFjZXMgcGxhbm5lZCBmb3IgYnVmZmVyZWQgc3ZtLgoKSSB0aGluayB3 ZSBuZWVkIGEgbmV3IGN0eF91c2VfY291bnQgYmVzaWRlcyB0aGUgcG9pbnRlciByZWZjb3VudCB0 aGF0IHdlCmluYy9kZWMgb24gY29udGV4dCBkZXNjdHJ1Y3Rpb24uIEFuZCB0aGVuIHdlIG9ubHkg Y2FsbCBldmljdF92bSB3aGVuIHRoYXQKZHJvcHMgdG8gMC4KCj4gK3sKPiArCXN0cnVjdCBpOTE1 X3ZtYSAqdm1hLCAqdG1wOwo+ICsJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm07Cj4gKwlp bnQgcmV0Owo+ICsKPiArCWlmICghcHBndHQpCj4gKwkJcmV0dXJuOwo+ICsKPiArCXZtID0gJnBw Z3R0LT5iYXNlOwo+ICsKPiArCS8qCj4gKwkgKiBJZiB0aGlzIGZpcmVzIGl0IG1lYW5zIHRoYXQg dGhlIGNvbnRleHQgcmVmZXJlbmNlIGNvdW50aW5nIHdlbnQKPiArCSAqIGF3cnkuCj4gKwkgKi8K PiArCVdBUk5fT04oIWxpc3RfZW1wdHkoJnBwZ3R0LT5iYXNlLmFjdGl2ZV9saXN0KSk7Cj4gKwo+ ICsJaWYgKCFsaXN0X2VtcHR5KCZwcGd0dC0+dm1hX2xpc3QpKQo+ICsJCWxpc3RfZm9yX2VhY2hf ZW50cnlfc2FmZSh2bWEsIHRtcCwgJnBwZ3R0LT52bWFfbGlzdCwgdm1fbGluaykgewo+ICsJCQlX QVJOX09OKHZtYS0+cGluX2NvdW50ICE9IDApOwo+ICsJCQkvKgo+ICsJCQkgKiBUaGUgb2JqZWN0 IHNob3VsZCBiZSBpbmFjdGl2ZSBhdCB0aGlzIHBvaW50LCB0aHVzCj4gKwkJCSAqIGl0cyBwaW5f Y291bnQgc2hvdWxkIGJlIDAuIFdlIHdpbGwgemVybyBpdCBhbnl3YXkKPiArCQkJICogbWFrZSBz dXJlIHRoYXQgdGhlIHVuYmluZCBjYWxsIHN1Y2NlZWRzLgo+ICsJCQkgKi8KPiArCQkJdm1hLT5w aW5fY291bnQgPSAwOwo+ICsJCQlyZXQgPSBpOTE1X3ZtYV91bmJpbmQodm1hKTsKPiArCQl9Cj4g Kwo+ICsJaTkxNV9wcGd0dF9wdXQocHBndHQpOwoKSW1vIHRoaXMgc2hvdWxkIGJlIG1vdmVkIGJh Y2sgaW50byB0aGUgY3R4IGRlc3RydWN0aW9uIGNvZGUsIGhpZGluZyBpdApsaWVrIHRoaXMgbWFr ZXMgYXVkaXRpbmcgdGhlIHJlZmNvdW50aW5nIGEgbG90IGhhcmRlci4gRXNwZWNpYWxseSBpZiB0 aGUKd3JhcHBpbmcgZnVuY3Rpb24gZG9lc24ndCB1c2UgdGhlIG1hZ2ljIGdldC9wdXQgd29yZHMg dXNlZCBmb3IKcmVmY291bnRpbmcuCgpDaGVlcnMsIERhbmllbAoKPiArfQo+ICsKPiAgc3RhdGlj IHZvaWQKPiAgcHBndHRfYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gIAkgICAgICAg ZW51bSBpOTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAo+IEBAIC0yMTA5LDYgKzIxNDcsNyBA QCBzdGF0aWMgc3RydWN0IGk5MTVfdm1hICpfX2k5MTVfZ2VtX3ZtYV9jcmVhdGUoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPiAg Cj4gIAlJTklUX0xJU1RfSEVBRCgmdm1hLT52bWFfbGluayk7Cj4gKwlJTklUX0xJU1RfSEVBRCgm dm1hLT52bV9saW5rKTsKCldlIGhhdmUgdGhhdCBhbHJlYWR5LCByaWdodCBiZWxvdyA7LSkKCkNo ZWVycywgRGFuaWVsCgo+ICAJSU5JVF9MSVNUX0hFQUQoJnZtYS0+bW1fbGlzdCk7Cj4gIAlJTklU X0xJU1RfSEVBRCgmdm1hLT5leGVjX2xpc3QpOwo+ICAJdm1hLT52bSA9IHZtOwo+IEBAIC0yMTQy LDggKzIxODEsMTAgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3ZtYSAqX19pOTE1X2dlbV92bWFfY3Jl YXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gIAlpZiAoaTkxNV9pc19nZ3R0 KHZtKSkKPiAgCQlsaXN0X2FkZCgmdm1hLT52bWFfbGluaywgJm9iai0+dm1hX2xpc3QpOwo+ICAJ ZWxzZSB7Cj4gKwkJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0gaTkxNV92bV90b19wcGd0 dCh2bSk7Cj4gIAkJbGlzdF9hZGRfdGFpbCgmdm1hLT52bWFfbGluaywgJm9iai0+dm1hX2xpc3Qp Owo+IC0JCWk5MTVfcHBndHRfZ2V0KGk5MTVfdm1fdG9fcHBndHQodm0pKTsKPiArCQlpOTE1X3Bw Z3R0X2dldChwcGd0dCk7Cj4gKwkJbGlzdF9hZGRfdGFpbCgmdm1hLT52bV9saW5rLCAmcHBndHQt PnZtYV9saXN0KTsKPiAgCX0KPiAgCj4gIAlyZXR1cm4gdm1hOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5oCj4gaW5kZXggZDVjMTRhZi4uMzIzYmJjNiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5oCj4gQEAgLTEyOCw2ICsxMjgsOCBAQCBzdHJ1Y3QgaTkxNV92bWEg ewo+ICAKPiAgCXN0cnVjdCBsaXN0X2hlYWQgdm1hX2xpbms7IC8qIExpbmsgaW4gdGhlIG9iamVj dCdzIFZNQSBsaXN0ICovCj4gIAo+ICsJc3RydWN0IGxpc3RfaGVhZCB2bV9saW5rOyAvKiBMaW5r IGluIHRoZSBWTSdzIFZNQSBsaXN0ICovCj4gKwo+ICAJLyoqIFRoaXMgdm1hJ3MgcGxhY2UgaW4g dGhlIGJhdGNoYnVmZmVyIG9yIG9uIHRoZSBldmljdGlvbiBsaXN0ICovCj4gIAlzdHJ1Y3QgbGlz dF9oZWFkIGV4ZWNfbGlzdDsKPiAgCj4gQEAgLTE0OSw2ICsxNTEsNyBAQCBzdHJ1Y3QgaTkxNV92 bWEgewo+ICAJICogSW4gdGhlIHdvcnN0IGNhc2UgdGhpcyBpcyAxICsgMSArIDEgKyAyKjIgPSA3 LiBUaGF0IHdvdWxkIGZpdCBpbnRvIDMKPiAgCSAqIGJpdHMgd2l0aCBhYnNvbHV0ZWx5IG5vIGhl YWRyb29tLiBTbyB1c2UgNCBiaXRzLiAqLwo+ICAJdW5zaWduZWQgaW50IHBpbl9jb3VudDo0Owo+ ICsKPiAgI2RlZmluZSBEUk1fSTkxNV9HRU1fT0JKRUNUX01BWF9QSU5fQ09VTlQgMHhmCj4gIAo+ ICAJLyoqIFVubWFwIGFuIG9iamVjdCBmcm9tIGFuIGFkZHJlc3Mgc3BhY2UuIFRoaXMgdXN1YWxs eSBjb25zaXN0cyBvZgo+IEBAIC0yNjIsNiArMjY1LDggQEAgc3RydWN0IGk5MTVfaHdfcHBndHQg ewo+ICAKPiAgCXN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJpdjsKPiAgCj4g KwlzdHJ1Y3QgbGlzdF9oZWFkIHZtYV9saXN0Owo+ICsKPiAgCWludCAoKmVuYWJsZSkoc3RydWN0 IGk5MTVfaHdfcHBndHQgKnBwZ3R0KTsKPiAgCWludCAoKnN3aXRjaF9tbSkoc3RydWN0IGk5MTVf aHdfcHBndHQgKnBwZ3R0LAo+ICAJCQkgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Cj4g QEAgLTI4MCw2ICsyODUsOCBAQCBpbnQgaTkxNV9wcGd0dF9pbml0X2h3KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpOwo+ICB2b2lkIGk5MTVfcHBndHRfcmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3JlZik7 Cj4gIHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICppOTE1X3BwZ3R0X2NyZWF0ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ICAJCQkJCXN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZwcml2KTsK PiArdm9pZCBpOTE1X3BwZ3R0X2Rlc3Ryb3koc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0KTsK PiArCj4gIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X3BwZ3R0X2dldChzdHJ1Y3QgaTkxNV9od19w cGd0dCAqcHBndHQpCj4gIHsKPiAgCWlmIChwcGd0dCkKPiAtLSAKPiAyLjMuMAo+IAoKLS0gCkRh bmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCis0MSAoMCkg NzkgMzY1IDU3IDQ4IC0gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK