From: Ben Widawsky Subject: Re: [PATCH 6/8] drm/i915: Add bind/unbind object functions to VM Date: Tue, 3 Sep 2013 17:20:08 -0700 Message-ID: <20130904002007.GB2860@bwidawsk.net> References: <1377906241-8463-1-git-send-email-benjamin.widawsky@intel.com> <1377906241-8463-7-git-send-email-benjamin.widawsky@intel.com> <20130902124652.GR11428@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.bwidawsk.net (bwidawsk.net [166.78.191.112]) by gabe.freedesktop.org (Postfix) with ESMTP id 2936BE6B1F for ; Tue, 3 Sep 2013 17:20:19 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20130902124652.GR11428@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Ville =?utf-8?B?U3lyasOkbMOk?= Cc: Intel GFX , Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBTZXAgMDIsIDIwMTMgYXQgMDM6NDY6NTJQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIEZyaSwgQXVnIDMwLCAyMDEzIGF0IDA0OjQzOjU5UE0gLTA3MDAsIEJlbiBX aWRhd3NreSB3cm90ZToKPiA+IEZyb206IEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4K PiA+IAo+ID4gQXMgd2UgcGx1bWIgdGhlIGNvZGUgd2l0aCBtb3JlIFZNIGluZm9ybWF0aW9uLCBp dCBoYXMgYmVjb21lIG1vcmUKPiA+IG9idmlvdXMgdGhhdCB0aGUgZWFzaWVzdCB3YXkgdG8gZGVh bCB3aXRoIGJpbmQgYW5kIHVuYmluZCBpcyB0byBzaW1wbHkKPiA+IHB1dCB0aGUgZnVuY3Rpb24g cG9pbnRlcnMgaW4gdGhlIHZtLCBhbmQgbGV0IHRob3NlIGNob29zZSB0aGUgY29ycmVjdAo+ID4g d2F5IHRvIGhhbmRsZSB0aGUgcGFnZSB0YWJsZSB1cGRhdGVzLiBUaGlzIGNoYW5nZSBhbGxvd3Mg bWFueSBwbGFjZXMgaW4KPiA+IHRoZSBjb2RlIHRvIHNpbXBseSBiZSB2bS0+YmluZCwgYW5kIG5v dCBoYXZlIHRvIHdvcnJ5IGFib3V0Cj4gPiBkaXN0aW5ndWlzaGluZyBQUEdUVCB2cyBHR1RULgo+ ID4gCj4gPiBOb3RpY2UgdGhhdCB0aGlzIHBhdGNoIGhhcyBubyBpbXBhY3Qgb24gZnVuY3Rpb25h bGl0eS4gSSd2ZSBkZWNpZGVkIHRvCj4gPiBzYXZlIHRoZSBhY3R1YWwgY2hhbmdlIHVudGlsIHRo ZSBuZXh0IHBhdGNoIGJlY2F1c2UgSSB0aGluayBpdCdzIGVhc2llcgo+ID4gdG8gcmV2aWV3IHRo YXQgd2F5LiBJJ20gaGFwcHkgdG8gc3F1YXNoIHRoZSB0d28sIG9yIGxldCBEYW5pZWwgZG8gaXQg b24KPiA+IG1lcmdlLgo+ID4gCj4gPiB2MjoKPiA+IE1ha2UgZ2d0dCBoYW5kbGUgdGhlIHF1aXJr eSBhbGlhc2luZyBwcGd0dAo+ID4gQWRkIGZsYWdzIHRvIGJpbmQgb2JqZWN0IHRvIHN1cHBvcnQg YWJvdmUKPiA+IERvbid0IGV2ZXIgY2FsbCBiaW5kL3VuYmluZCBkaXJlY3RseSBmb3IgUFBHVFQg dW50aWwgd2UgaGF2ZSByZWFsLCBmdWxsCj4gPiBQUEdUVCAodXNlIE5VTExzIHRvIGFzc2VydCB0 aGlzKQo+ID4gTWFrZSBzdXJlIHdlIHJlYmluZCB0aGUgZ2d0dCBpZiB0aGVyZSBhbHJlYWR5IGlz IGEgZ2d0dCBiaW5kaW5nLiBUaGlzCj4gPiBoYXBwZW5zIG9uIHNldCBjYWNoZSBsZXZlbHMKPiA+ IFVzZSBWTUEgZm9yIGJpbmQvdW5iaW5kIChEYW5pZWwsIEJlbikKPiA+IAo+ID4gU2lnbmVkLW9m Zi1ieTogQmVuIFdpZGF3c2t5IDxiZW5AYndpZGF3c2submV0Pgo+ID4gLS0tCj4gPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgfCAgNjkgKysrKysrKysrKysrKy0tLS0tLS0t LS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgfCAxMDEgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxNDAg aW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+ID4gaW5kZXggYzllZDc3YS4uMzc3Y2E2MyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPiA+IEBAIC00NjEsNiArNDYxLDM2IEBAIGVudW0gaTkxNV9jYWNoZV9sZXZlbCB7 Cj4gPiAgCj4gPiAgdHlwZWRlZiB1aW50MzJfdCBnZW42X2d0dF9wdGVfdDsKPiA+ICAKPiA+ICsv KioKPiA+ICsgKiBBIFZNQSByZXByZXNlbnRzIGEgR0VNIEJPIHRoYXQgaXMgYm91bmQgaW50byBh biBhZGRyZXNzIHNwYWNlLiBUaGVyZWZvcmUsIGEKPiA+ICsgKiBWTUEncyBwcmVzZW5jZSBjYW5u b3QgYmUgZ3VhcmFudGVlZCBiZWZvcmUgYmluZGluZywgb3IgYWZ0ZXIgdW5iaW5kaW5nIHRoZQo+ ID4gKyAqIG9iamVjdCBpbnRvL2Zyb20gdGhlIGFkZHJlc3Mgc3BhY2UuCj4gPiArICoKPiA+ICsg KiBUbyBtYWtlIHRoaW5ncyBhcyBzaW1wbGUgYXMgcG9zc2libGUgKGllLiBubyByZWZjb3VudGlu ZyksIGEgVk1BJ3MgbGlmZXRpbWUKPiA+ICsgKiB3aWxsIGFsd2F5cyBiZSA8PSBhbiBvYmplY3Rz IGxpZmV0aW1lLiBTbyBvYmplY3QgcmVmY291bnRpbmcgc2hvdWxkIGNvdmVyIHVzLgo+ID4gKyAq Lwo+ID4gK3N0cnVjdCBpOTE1X3ZtYSB7Cj4gPiArCXN0cnVjdCBkcm1fbW1fbm9kZSBub2RlOwo+ ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwo+ID4gKwlzdHJ1Y3QgaTkxNV9h ZGRyZXNzX3NwYWNlICp2bTsKPiA+ICsKPiA+ICsJLyoqIFRoaXMgb2JqZWN0J3MgcGxhY2Ugb24g dGhlIGFjdGl2ZS9pbmFjdGl2ZSBsaXN0cyAqLwo+ID4gKwlzdHJ1Y3QgbGlzdF9oZWFkIG1tX2xp c3Q7Cj4gPiArCj4gPiArCXN0cnVjdCBsaXN0X2hlYWQgdm1hX2xpbms7IC8qIExpbmsgaW4gdGhl IG9iamVjdCdzIFZNQSBsaXN0ICovCj4gPiArCj4gPiArCS8qKiBUaGlzIHZtYSdzIHBsYWNlIGlu IHRoZSBiYXRjaGJ1ZmZlciBvciBvbiB0aGUgZXZpY3Rpb24gbGlzdCAqLwo+ID4gKwlzdHJ1Y3Qg bGlzdF9oZWFkIGV4ZWNfbGlzdDsKPiA+ICsKPiA+ICsJLyoqCj4gPiArCSAqIFVzZWQgZm9yIHBl cmZvcm1pbmcgcmVsb2NhdGlvbnMgZHVyaW5nIGV4ZWNidWZmZXIgaW5zZXJ0aW9uLgo+ID4gKwkg Ki8KPiA+ICsJc3RydWN0IGhsaXN0X25vZGUgZXhlY19ub2RlOwo+ID4gKwl1bnNpZ25lZCBsb25n IGV4ZWNfaGFuZGxlOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiAqZXhl Y19lbnRyeTsKPiA+ICsKPiA+ICt9Owo+ID4gKwo+ID4gIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3Bh Y2Ugewo+ID4gIAlzdHJ1Y3QgZHJtX21tIG1tOwo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 Owo+ID4gQEAgLTQ5OSw5ICs1MjksMTggQEAgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSB7Cj4g PiAgCS8qIEZJWE1FOiBOZWVkIGEgbW9yZSBnZW5lcmljIHJldHVybiB0eXBlICovCj4gPiAgCWdl bjZfZ3R0X3B0ZV90ICgqcHRlX2VuY29kZSkoZG1hX2FkZHJfdCBhZGRyLAo+ID4gIAkJCQkgICAg IGVudW0gaTkxNV9jYWNoZV9sZXZlbCBsZXZlbCk7Cj4gPiArCj4gPiArCS8qKiBVbm1hcCBhbiBv YmplY3QgZnJvbSBhbiBhZGRyZXNzIHNwYWNlLiBUaGlzIHVzdWFsbHkgY29uc2lzdHMgb2YKPiA+ ICsJICogc2V0dGluZyB0aGUgdmFsaWQgUFRFIGVudHJpZXMgdG8gYSByZXNlcnZlZCBzY3JhdGNo IHBhZ2UuICovCj4gPiArCXZvaWQgKCp1bmJpbmRfdm1hKShzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7 Cj4gPiAgCXZvaWQgKCpjbGVhcl9yYW5nZSkoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0s Cj4gPiAgCQkJICAgIHVuc2lnbmVkIGludCBmaXJzdF9lbnRyeSwKPiA+ICAJCQkgICAgdW5zaWdu ZWQgaW50IG51bV9lbnRyaWVzKTsKPiA+ICsJLyogTWFwIGFuIG9iamVjdCBpbnRvIGFuIGFkZHJl c3Mgc3BhY2Ugd2l0aCB0aGUgZ2l2ZW4gY2FjaGUgZmxhZ3MuICovCj4gPiArI2RlZmluZSBHTE9C QUxfQklORCAoMTw8MCkKPiA+ICsJdm9pZCAoKmJpbmRfdm1hKShzdHJ1Y3QgaTkxNV92bWEgKnZt YSwKPiA+ICsJCQkgZW51bSBpOTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAo+ID4gKwkJCSB1 MzIgZmxhZ3MpOwo+ID4gIAl2b2lkICgqaW5zZXJ0X2VudHJpZXMpKHN0cnVjdCBpOTE1X2FkZHJl c3Nfc3BhY2UgKnZtLAo+ID4gIAkJCSAgICAgICBzdHJ1Y3Qgc2dfdGFibGUgKnN0LAo+ID4gIAkJ CSAgICAgICB1bnNpZ25lZCBpbnQgZmlyc3RfZW50cnksCj4gPiBAQCAtNTQ4LDM2ICs1ODcsNiBA QCBzdHJ1Y3QgaTkxNV9od19wcGd0dCB7Cj4gPiAgCWludCAoKmVuYWJsZSkoc3RydWN0IGRybV9k ZXZpY2UgKmRldik7Cj4gPiAgfTsKPiA+ICAKPiA+IC0vKioKPiA+IC0gKiBBIFZNQSByZXByZXNl bnRzIGEgR0VNIEJPIHRoYXQgaXMgYm91bmQgaW50byBhbiBhZGRyZXNzIHNwYWNlLiBUaGVyZWZv cmUsIGEKPiA+IC0gKiBWTUEncyBwcmVzZW5jZSBjYW5ub3QgYmUgZ3VhcmFudGVlZCBiZWZvcmUg YmluZGluZywgb3IgYWZ0ZXIgdW5iaW5kaW5nIHRoZQo+ID4gLSAqIG9iamVjdCBpbnRvL2Zyb20g dGhlIGFkZHJlc3Mgc3BhY2UuCj4gPiAtICoKPiA+IC0gKiBUbyBtYWtlIHRoaW5ncyBhcyBzaW1w bGUgYXMgcG9zc2libGUgKGllLiBubyByZWZjb3VudGluZyksIGEgVk1BJ3MgbGlmZXRpbWUKPiA+ IC0gKiB3aWxsIGFsd2F5cyBiZSA8PSBhbiBvYmplY3RzIGxpZmV0aW1lLiBTbyBvYmplY3QgcmVm Y291bnRpbmcgc2hvdWxkIGNvdmVyIHVzLgo+ID4gLSAqLwo+ID4gLXN0cnVjdCBpOTE1X3ZtYSB7 Cj4gPiAtCXN0cnVjdCBkcm1fbW1fbm9kZSBub2RlOwo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqOwo+ID4gLQlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bTsKPiA+IC0K PiA+IC0JLyoqIFRoaXMgb2JqZWN0J3MgcGxhY2Ugb24gdGhlIGFjdGl2ZS9pbmFjdGl2ZSBsaXN0 cyAqLwo+ID4gLQlzdHJ1Y3QgbGlzdF9oZWFkIG1tX2xpc3Q7Cj4gPiAtCj4gPiAtCXN0cnVjdCBs aXN0X2hlYWQgdm1hX2xpbms7IC8qIExpbmsgaW4gdGhlIG9iamVjdCdzIFZNQSBsaXN0ICovCj4g PiAtCj4gPiAtCS8qKiBUaGlzIHZtYSdzIHBsYWNlIGluIHRoZSBiYXRjaGJ1ZmZlciBvciBvbiB0 aGUgZXZpY3Rpb24gbGlzdCAqLwo+ID4gLQlzdHJ1Y3QgbGlzdF9oZWFkIGV4ZWNfbGlzdDsKPiA+ IC0KPiA+IC0JLyoqCj4gPiAtCSAqIFVzZWQgZm9yIHBlcmZvcm1pbmcgcmVsb2NhdGlvbnMgZHVy aW5nIGV4ZWNidWZmZXIgaW5zZXJ0aW9uLgo+ID4gLQkgKi8KPiA+IC0Jc3RydWN0IGhsaXN0X25v ZGUgZXhlY19ub2RlOwo+ID4gLQl1bnNpZ25lZCBsb25nIGV4ZWNfaGFuZGxlOwo+ID4gLQlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiAqZXhlY19lbnRyeTsKPiA+IC0KPiA+IC19Owo+ ID4gLQo+ID4gIHN0cnVjdCBpOTE1X2N0eF9oYW5nX3N0YXRzIHsKPiA+ICAJLyogVGhpcyBjb250 ZXh0IGhhZCBiYXRjaCBwZW5kaW5nIHdoZW4gaGFuZyB3YXMgZGVjbGFyZWQgKi8KPiA+ICAJdW5z aWduZWQgYmF0Y2hfcGVuZGluZzsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4g PiBpbmRleCAyMTJmNmQ4Li5kNWE0NTgwIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2d0dC5jCj4gPiBAQCAtNTcsNiArNTcsMTEgQEAKPiA+ICAjZGVmaW5lIEhTV19XQl9FTExD X0xMQ19BR0UwCQlIU1dfQ0FDSEVBQklMSVRZX0NPTlRST0woMHhiKQo+ID4gICNkZWZpbmUgSFNX X1dUX0VMTENfTExDX0FHRTAJCUhTV19DQUNIRUFCSUxJVFlfQ09OVFJPTCgweDYpCj4gPiAgCj4g PiArc3RhdGljIHZvaWQgZ2VuNl9wcGd0dF9iaW5kX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwK PiA+ICsJCQkJZW51bSBpOTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAo+ID4gKwkJCQl1MzIg ZmxhZ3MpOwo+ID4gK3N0YXRpYyB2b2lkIGdlbjZfcHBndHRfdW5iaW5kX3ZtYShzdHJ1Y3QgaTkx NV92bWEgKnZtYSk7Cj4gPiArCj4gPiAgc3RhdGljIGdlbjZfZ3R0X3B0ZV90IHNuYl9wdGVfZW5j b2RlKGRtYV9hZGRyX3QgYWRkciwKPiA+ICAJCQkJICAgICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwg bGV2ZWwpCj4gPiAgewo+ID4gQEAgLTMzMiw3ICszMzcsOSBAQCBzdGF0aWMgaW50IGdlbjZfcHBn dHRfaW5pdChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQpCj4gPiAgCXBwZ3R0LT5iYXNlLnB0 ZV9lbmNvZGUgPSBkZXZfcHJpdi0+Z3R0LmJhc2UucHRlX2VuY29kZTsKPiA+ICAJcHBndHQtPm51 bV9wZF9lbnRyaWVzID0gR0VONl9QUEdUVF9QRF9FTlRSSUVTOwo+ID4gIAlwcGd0dC0+ZW5hYmxl ID0gZ2VuNl9wcGd0dF9lbmFibGU7Cj4gPiArCXBwZ3R0LT5iYXNlLnVuYmluZF92bWEgPSBOVUxM Owo+ID4gIAlwcGd0dC0+YmFzZS5jbGVhcl9yYW5nZSA9IGdlbjZfcHBndHRfY2xlYXJfcmFuZ2U7 Cj4gPiArCXBwZ3R0LT5iYXNlLmJpbmRfdm1hID0gTlVMTDsKPiA+ICAJcHBndHQtPmJhc2UuaW5z ZXJ0X2VudHJpZXMgPSBnZW42X3BwZ3R0X2luc2VydF9lbnRyaWVzOwo+ID4gIAlwcGd0dC0+YmFz ZS5jbGVhbnVwID0gZ2VuNl9wcGd0dF9jbGVhbnVwOwo+ID4gIAlwcGd0dC0+YmFzZS5zY3JhdGNo ID0gZGV2X3ByaXYtPmd0dC5iYXNlLnNjcmF0Y2g7Cj4gPiBAQCAtNDM5LDYgKzQ0NiwxOCBAQCB2 b2lkIGk5MTVfcHBndHRfYmluZF9vYmplY3Qoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAo+ ID4gIAkJCQkgICBjYWNoZV9sZXZlbCk7Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRpYyB2b2lkIF9f YWx3YXlzX3VudXNlZAo+ID4gK2dlbjZfcHBndHRfYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2 bWEsCj4gPiArCQkgICAgZW51bSBpOTE1X2NhY2hlX2xldmVsIGNhY2hlX2xldmVsLAo+ID4gKwkJ ICAgIHUzMiBmbGFncykKPiA+ICt7Cj4gPiArCWNvbnN0IHVuc2lnbmVkIGxvbmcgZW50cnkgPSB2 bWEtPm5vZGUuc3RhcnQgPj4gUEFHRV9TSElGVDsKPiA+ICsKPiA+ICsJV0FSTl9PTihmbGFncyk7 Cj4gPiArCj4gPiArCWdlbjZfcHBndHRfaW5zZXJ0X2VudHJpZXModm1hLT52bSwgdm1hLT5vYmot PnBhZ2VzLCBlbnRyeSwgY2FjaGVfbGV2ZWwpOwo+ID4gK30KPiA+ICsKPiA+ICB2b2lkIGk5MTVf cHBndHRfdW5iaW5kX29iamVjdChzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCj4gPiAgCQkJ ICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiA+ICB7Cj4gPiBAQCAtNDQ3 LDYgKzQ2NiwxNCBAQCB2b2lkIGk5MTVfcHBndHRfdW5iaW5kX29iamVjdChzdHJ1Y3QgaTkxNV9o d19wcGd0dCAqcHBndHQsCj4gPiAgCQkJCW9iai0+YmFzZS5zaXplID4+IFBBR0VfU0hJRlQpOwo+ ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgdm9pZCBfX2Fsd2F5c191bnVzZWQgZ2VuNl9wcGd0dF91 bmJpbmRfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ID4gK3sKPiA+ICsJY29uc3QgdW5zaWdu ZWQgbG9uZyBlbnRyeSA9IHZtYS0+bm9kZS5zdGFydCA+PiBQQUdFX1NISUZUOwo+ID4gKwo+ID4g KwlnZW42X3BwZ3R0X2NsZWFyX3JhbmdlKHZtYS0+dm0sIGVudHJ5LAo+ID4gKwkJCSAgICAgICB2 bWEtPm9iai0+YmFzZS5zaXplID4+IFBBR0VfU0hJRlQpOwo+ID4gK30KPiA+ICsKPiA+ICBleHRl cm4gaW50IGludGVsX2lvbW11X2dmeF9tYXBwZWQ7Cj4gPiAgLyogQ2VydGFpbiBHZW41IGNoaXBz ZXRzIHJlcXVpcmUgcmVxdWlyZSBpZGxpbmcgdGhlIEdQVSBiZWZvcmUKPiA+ICAgKiB1bm1hcHBp bmcgYW55dGhpbmcgZnJvbSB0aGUgR1RUIHdoZW4gVlQtZCBpcyBlbmFibGVkLgo+ID4gQEAgLTU5 Miw2ICs2MTksMTkgQEAgc3RhdGljIHZvaWQgaTkxNV9nZ3R0X2luc2VydF9lbnRyaWVzKHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ID4gIAo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMg dm9pZCBpOTE1X2dndHRfYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gPiArCQkJICAg ICAgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwKPiA+ICsJCQkgICAgICAgdTMy IHVudXNlZCkKPiA+ICt7Cj4gPiArCWNvbnN0IHVuc2lnbmVkIGxvbmcgZW50cnkgPSB2bWEtPm5v ZGUuc3RhcnQgPj4gUEFHRV9TSElGVDsKPiA+ICsJdW5zaWduZWQgaW50IGZsYWdzID0gKGNhY2hl X2xldmVsID09IEk5MTVfQ0FDSEVfTk9ORSkgPwo+ID4gKwkJQUdQX1VTRVJfTUVNT1JZIDogQUdQ X1VTRVJfQ0FDSEVEX01FTU9SWTsKPiA+ICsKPiA+ICsJQlVHX09OKCFpOTE1X2lzX2dndHQodm1h LT52bSkpOwo+ID4gKwlpbnRlbF9ndHRfaW5zZXJ0X3NnX2VudHJpZXModm1hLT5vYmotPnBhZ2Vz LCBlbnRyeSwgZmxhZ3MpOwo+ID4gKwl2bWEtPm9iai0+aGFzX2dsb2JhbF9ndHRfbWFwcGluZyA9 IDE7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyB2b2lkIGk5MTVfZ2d0dF9jbGVhcl9yYW5nZShz dHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiA+ICAJCQkJICB1bnNpZ25lZCBpbnQgZmly c3RfZW50cnksCj4gPiAgCQkJCSAgdW5zaWduZWQgaW50IG51bV9lbnRyaWVzKQo+ID4gQEAgLTU5 OSw2ICs2MzksNDYgQEAgc3RhdGljIHZvaWQgaTkxNV9nZ3R0X2NsZWFyX3JhbmdlKHN0cnVjdCBp OTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ID4gIAlpbnRlbF9ndHRfY2xlYXJfcmFuZ2UoZmlyc3Rf ZW50cnksIG51bV9lbnRyaWVzKTsKPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGljIHZvaWQgaTkxNV9n Z3R0X3VuYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gPiArewo+ID4gKwljb25zdCB1 bnNpZ25lZCBpbnQgZmlyc3QgPSB2bWEtPm5vZGUuc3RhcnQgPj4gUEFHRV9TSElGVDsKPiA+ICsJ Y29uc3QgdW5zaWduZWQgaW50IHNpemUgPSB2bWEtPm9iai0+YmFzZS5zaXplID4+IFBBR0VfU0hJ RlQ7Cj4gPiArCj4gPiArCUJVR19PTighaTkxNV9pc19nZ3R0KHZtYS0+dm0pKTsKPiA+ICsJdm1h LT5vYmotPmhhc19nbG9iYWxfZ3R0X21hcHBpbmcgPSAwOwo+ID4gKwlpbnRlbF9ndHRfY2xlYXJf cmFuZ2UoZmlyc3QsIHNpemUpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBnZW42X2dn dHRfYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gPiArCQkJICAgICAgIGVudW0gaTkx NV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwKPiA+ICsJCQkgICAgICAgdTMyIGZsYWdzKQo+ID4g K3sKPiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHZtYS0+dm0tPmRldjsKPiA+ICsJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ICsJ c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOwo+ID4gKwljb25zdCB1 bnNpZ25lZCBsb25nIGVudHJ5ID0gdm1hLT5ub2RlLnN0YXJ0ID4+IFBBR0VfU0hJRlQ7Cj4gPiAr Cj4gPiArCS8qIElmIHRoZXJlIGlzIGFuIGFsaWFzaW5nIFBQR1RULCBhbmQgdGhlIHVzZXIgZGlk bid0IGV4cGxpY2l0bHkgYXNrIGZvcgo+ID4gKwkgKiB0aGUgZ2xvYmFsLCBqdXN0IHVzZSBhbGlh c2luZyAqLwo+ID4gKwlpZiAoZGV2X3ByaXYtPm1tLmFsaWFzaW5nX3BwZ3R0ICYmICEoZmxhZ3Mg JiBHTE9CQUxfQklORCkgJiYKPiA+ICsJICAgICFvYmotPmhhc19nbG9iYWxfZ3R0X21hcHBpbmcp IHsKPiA+ICsJCWdlbjZfcHBndHRfaW5zZXJ0X2VudHJpZXMoJmRldl9wcml2LT5tbS5hbGlhc2lu Z19wcGd0dC0+YmFzZSwKPiA+ICsJCQkJCSAgdm1hLT5vYmotPnBhZ2VzLCBlbnRyeSwgY2FjaGVf bGV2ZWwpOwo+ID4gKwkJdm1hLT5vYmotPmhhc19hbGlhc2luZ19wcGd0dF9tYXBwaW5nID0gMTsK PiA+ICsJCXJldHVybjsKPiA+ICsJfQo+ID4gKwo+ID4gKwlnZW42X2dndHRfaW5zZXJ0X2VudHJp ZXModm1hLT52bSwgb2JqLT5wYWdlcywgZW50cnksIGNhY2hlX2xldmVsKTsKPiA+ICsJb2JqLT5o YXNfZ2xvYmFsX2d0dF9tYXBwaW5nID0gMTsKPiA+ICsKPiA+ICsJLyogSWYgcHV0IHRoZSBtYXBw aW5nIGluIHRoZSBhbGlhc2luZyBQUEdUVCBhcyB3ZWxsIGFzIEdsb2JhbCBpZiB3ZSBoYXZlCj4g PiArCSAqIGFsaWFzaW5nLCBidXQgdGhlIHVzZXIgcmVxdWVzdGVkIGdsb2JhbC4gKi8KPiA+ICsJ aWYgKGRldl9wcml2LT5tbS5hbGlhc2luZ19wcGd0dCkgewo+ID4gKwkJZ2VuNl9wcGd0dF9pbnNl cnRfZW50cmllcygmZGV2X3ByaXYtPm1tLmFsaWFzaW5nX3BwZ3R0LT5iYXNlLAo+ID4gKwkJCQkJ ICB2bWEtPm9iai0+cGFnZXMsIGVudHJ5LCBjYWNoZV9sZXZlbCk7Cj4gPiArCQl2bWEtPm9iai0+ aGFzX2FsaWFzaW5nX3BwZ3R0X21hcHBpbmcgPSAxOwo+ID4gKwl9Cj4gPiArfQo+IAo+IFRoZXJl J3MgYSBiaXQgb2YgZHVwbGljYXRpb24gaGVyZS4gSG93IGFib3V0IHRoaXM6Cj4gewo+IAlpZiAo IWFsaWFzaW5nX3BwZ3R0IHx8Cj4gCSAgICBmbGFncyAmIEdMT0JBTF9CSU5EIHx8Cj4gCSAgICBo YXNfZ2d0dF9tYXBwaW5nIHsKPiAJCWdlbjZfcHBndHRfaW5zZXJ0X2VudHJpZXMoKQogICAgICAg ICAgICAgICAgXiBJJ2xsIGFzc3VtZSB5b3UgbWVhbnQgZ2d0dAo+IAkJaGFzX2dsb2JhbF9ndHRf bWFwcGluZyA9IHRydWU7Cj4gCX0KPiAKPiAJaWYgKGFsaWFzaW5nX3BwZ3R0KSB7Cj4gCQlwcGd0 dF9pbnNlcnQKPiAJCWhhc19hbGlhc2luZ19wcGd0dF9tYXBwaW5nID0gdHJ1ZTsKPiAJfQo+IH0K ClRoaXMgbG9va3MgbGlrZSBhbiBpbXByb3ZlbWVudCB0byBtZS4gQ29uc2lkZXIgaXQgZG9uZS4K Cj4gCj4gTm90IHN1cmUgaWYgdGhpcyB3YXMgdGhlIHNhbWUgdGhpbmcgdGhhdCBib3RoZXJlZCBD aHJpcy4KPiAKPiA+ICAKPiA+ICB2b2lkIGk5MTVfZ2VtX2d0dF9iaW5kX29iamVjdChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ID4gIAkJCSAgICAgIGVudW0gaTkxNV9jYWNoZV9s ZXZlbCBjYWNoZV9sZXZlbCkKPiA+IEBAIC02MjcsNiArNzA3LDIzIEBAIHZvaWQgaTkxNV9nZW1f Z3R0X3VuYmluZF9vYmplY3Qoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiA+ICAJ b2JqLT5oYXNfZ2xvYmFsX2d0dF9tYXBwaW5nID0gMDsKPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGlj IHZvaWQgZ2VuNl9nZ3R0X3VuYmluZF92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gPiArewo+ ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gdm1hLT52bS0+ZGV2Owo+ID4gKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gKwljb25z dCB1bnNpZ25lZCBsb25nIGVudHJ5ID0gdm1hLT5ub2RlLnN0YXJ0ID4+IFBBR0VfU0hJRlQ7Cj4g PiArCj4gPiArCWdlbjZfZ2d0dF9jbGVhcl9yYW5nZSh2bWEtPnZtLCBlbnRyeSwKPiA+ICsJCQkg ICAgICB2bWEtPm9iai0+YmFzZS5zaXplID4+IFBBR0VfU0hJRlQpOwo+ID4gKwl2bWEtPm9iai0+ aGFzX2dsb2JhbF9ndHRfbWFwcGluZyA9IDA7Cj4gPiArCWlmIChkZXZfcHJpdi0+bW0uYWxpYXNp bmdfcHBndHQgJiYgdm1hLT5vYmotPmhhc19hbGlhc2luZ19wcGd0dF9tYXBwaW5nKSB7Cj4gPiAr CQlnZW42X3BwZ3R0X2NsZWFyX3JhbmdlKCZkZXZfcHJpdi0+bW0uYWxpYXNpbmdfcHBndHQtPmJh c2UsCj4gPiArCQkJCSAgICAgICBlbnRyeSwKPiA+ICsJCQkJICAgICAgIHZtYS0+b2JqLT5iYXNl LnNpemUgPj4gUEFHRV9TSElGVCk7Cj4gPiArCQl2bWEtPm9iai0+aGFzX2FsaWFzaW5nX3BwZ3R0 X21hcHBpbmcgPSAwOwo+ID4gKwl9Cj4gPiArfQo+IAo+IGdlbjZfZ2d0dF9iaW5kX3ZtYSgpIG1p Z2h0IG5vdCBoYXZlIGFkZGVkIHRoZSBnZ3R0IG1hcHBpbmcsIHNvIEkKPiBzdXBwb3NlIHlvdSBz aG91bGQgY2hlY2sgaGFzX2dsb2JhbF9ndHRfbWFwcGluZyB0byBhdm9pZCB1c2VsZXNzCj4gd29y ay4gQWxzbyB0aGUgZGV2X3ByaXYtPm1tLmFsaWFzaW5nX3BwZ3R0IGNoZWNrIGlzIGEgYml0Cj4g cG9pbnRsZXNzIGFzIHRoZXJlJ3Mgbm8gd2F5IGhhc19hbGlhc2luZ19wcGd0dF9tYXBwaW5nIHdv dWxkIGJlCj4gc2V0IHRoZW4gaWYgdGhlcmUncyBubyBhbGlhc2luZyBwcGd0dC4KPiAKCkdvb2Qg cG9pbnRzIGZvciBib3RoLiBIb3BlZnVsbHkgY2hhbmdpbmcgdGhlIGZpcnN0IG9uZSBkb2Vzbid0 IGV4cG9zZQphbnkgcHJlLWV4aXN0aW5nIGJ1Z3MuCgo+ID4gKwo+ID4gIHZvaWQgaTkxNV9nZW1f Z3R0X2ZpbmlzaF9vYmplY3Qoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiA+ICB7 Cj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmJhc2UuZGV2Owo+ID4gQEAgLTg2 MCw3ICs5NTcsOSBAQCBzdGF0aWMgaW50IGdlbjZfZ21jaF9wcm9iZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ID4gIAkJRFJNX0VSUk9SKCJTY3JhdGNoIHNldHVwIGZhaWxlZFxuIik7Cj4gPiAg Cj4gPiAgCWRldl9wcml2LT5ndHQuYmFzZS5jbGVhcl9yYW5nZSA9IGdlbjZfZ2d0dF9jbGVhcl9y YW5nZTsKPiA+ICsJZGV2X3ByaXYtPmd0dC5iYXNlLnVuYmluZF92bWEgPSBnZW42X2dndHRfdW5i aW5kX3ZtYTsKPiA+ICAJZGV2X3ByaXYtPmd0dC5iYXNlLmluc2VydF9lbnRyaWVzID0gZ2VuNl9n Z3R0X2luc2VydF9lbnRyaWVzOwo+ID4gKwlkZXZfcHJpdi0+Z3R0LmJhc2UuYmluZF92bWEgPSBn ZW42X2dndHRfYmluZF92bWE7Cj4gPiAgCj4gPiAgCXJldHVybiByZXQ7Cj4gPiAgfQo+ID4gQEAg LTg5Miw3ICs5OTEsOSBAQCBzdGF0aWMgaW50IGk5MTVfZ21jaF9wcm9iZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ID4gIAo+ID4gIAlkZXZfcHJpdi0+Z3R0LmRvX2lkbGVfbWFwcyA9IG5lZWRz X2lkbGVfbWFwcyhkZXZfcHJpdi0+ZGV2KTsKPiA+ICAJZGV2X3ByaXYtPmd0dC5iYXNlLmNsZWFy X3JhbmdlID0gaTkxNV9nZ3R0X2NsZWFyX3JhbmdlOwo+ID4gKwlkZXZfcHJpdi0+Z3R0LmJhc2Uu dW5iaW5kX3ZtYSA9IGk5MTVfZ2d0dF91bmJpbmRfdm1hOwo+ID4gIAlkZXZfcHJpdi0+Z3R0LmJh c2UuaW5zZXJ0X2VudHJpZXMgPSBpOTE1X2dndHRfaW5zZXJ0X2VudHJpZXM7Cj4gPiArCWRldl9w cml2LT5ndHQuYmFzZS5iaW5kX3ZtYSA9IGk5MTVfZ2d0dF9iaW5kX3ZtYTsKPiA+ICAKPiA+ICAJ cmV0dXJuIDA7Cj4gPiAgfQo+ID4gLS0gCj4gPiAxLjguNAo+ID4gCj4gPiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdAo+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+IAo+IC0tIAo+IFZp bGxlIFN5cmrDpGzDpAo+IEludGVsIE9UQwoKLS0gCkJlbiBXaWRhd3NreSwgSW50ZWwgT3BlbiBT b3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK