From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Jerry (Junwei)" Subject: Re: [PATCH 9/9] drm/amdgpu: create an empty bo_list if no handle is provided Date: Tue, 31 Jul 2018 17:41:44 +0800 Message-ID: <5B602ED8.7010601@amd.com> References: <20180730145159.13212-1-christian.koenig@amd.com> <20180730145159.13212-9-christian.koenig@amd.com> <20180731075102.GB19005@hr-amur2> <20180731090936.GD19005@hr-amur2> <20180731092648.GA23757@hr-amur2> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180731092648.GA23757@hr-amur2> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Huang Rui , "Koenig, Christian" Cc: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" T24gMDcvMzEvMjAxOCAwNToyNiBQTSwgSHVhbmcgUnVpIHdyb3RlOgo+IE9uIFR1ZSwgSnVsIDMx LCAyMDE4IGF0IDA1OjAwOjQ2UE0gKzA4MDAsIEtvZW5pZywgQ2hyaXN0aWFuIHdyb3RlOgo+PiBB bSAzMS4wNy4yMDE4IHVtIDExOjA5IHNjaHJpZWIgSHVhbmcgUnVpOgo+Pj4gT24gVHVlLCBKdWwg MzEsIDIwMTggYXQgMTA6NTI6MDZBTSArMDIwMCwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPj4+ PiBBbSAzMS4wNy4yMDE4IHVtIDA5OjUxIHNjaHJpZWIgSHVhbmcgUnVpOgo+Pj4+PiBPbiBNb24s IEp1bCAzMCwgMjAxOCBhdCAwNDo1MTo1OVBNICswMjAwLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3Rl Ogo+Pj4+Pj4gSW5zdGVhZCBvZiBoYXZpbmcgZXh0cmEgaGFuZGxpbmcganVzdCBjcmVhdGUgYW4g ZW1wdHkgYm9fbGlzdCB3aGVuIG5vCj4+Pj4+PiBoYW5kbGUgaXMgcHJvdmlkZWQuCj4+Pj4+IFJl dmlld2VkLWJ5OiBIdWFuZyBSdWkgPHJheS5odWFuZ0BhbWQuY29tPgo+Pj4+Pgo+Pj4+PiBJbiB3 aGljaCBjYXNlLCB3aGVuIHRoZSBjb21tYW5kIGlzIGJlaW5nIHN1Ym1pdHRlZCwgdGhlcmUgaXMg bm8gYm8gbGlzdAo+Pj4+PiBoYW5kbGU/IEFsbCBCT3MgYXJlIHBlci1WTSwgbm8gc2hhcmVkIEJP Pwo+Pj4+IFllcywgZXhhY3RseS4gT3IgaW4gdGhlIGZ1dHVyZSBqdXN0IFNWTSBldGMuLi4KPj4+ Pgo+Pj4gIlNWTSIgbWVhbnMgc2luZ2xlIFZNPyBPbmx5IG9uZSB0aHJlYWQ/Cj4+Cj4+IFNoYXJl ZCBWaXJ0dWFsIE1lbW9yeSwgZS5nLiB0aGUgR1BVIHVzZXMgdGhlIHZpcnR1YWwgQ1BVIGFkZHJl c3Mgc3BhY2UuCj4+Cj4+IENhbiBiZSBpbXBsZW1lbnRlZCB1c2luZyB0aGUgQVRDIG9yIHN0YXJ0 aW5nIHdpdGggVmVnYTEwIHVzaW5nIEhNTS4KPj4KPgo+IE9oLCBJIHJlbWVtYmVyZWQgaXQgc2hv dWxkIGJlIGEgcHJvcG9zYWwgZm9yIGFwdSBzdWNoIGFzIHJhdmVuLCB5b3Uga25vdywKPiB0aGUg dnJhbSBpcyBhY3R1YWxseSBjYXJ2ZWQgb3V0IGZyb20gYSBwYXJ0IG9mIHN5c3RlbSBtZW1vcnkg aW4gcmF2ZW4uCgpUaGF0J3MgYSBmZWF0dXJlIGluIE9wZW5DTCAyLjAKClJlZ2FyZHMsCkplcnJ5 Cgo+Cj4gVGhhbmtzLAo+IFJheQo+Cj4+IFJlZ2FyZHMsCj4+IENocmlzdGlhbi4KPj4KPj4+Cj4+ PiBUaGFua3MsCj4+PiBSYXkKPj4+Cj4+Pj4gQ2hyaXN0aWFuLgo+Pj4+Cj4+Pj4+IFRoYW5rcywK Pj4+Pj4gUmF5Cj4+Pj4+Cj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxj aHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4+Pj4+PiAtLS0KPj4+Pj4+ICAgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIHwgMTExICsrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tLQo+Pj4+Pj4gICAgMSBmaWxlIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDY1 IGRlbGV0aW9ucygtKQo+Pj4+Pj4KPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9jcy5jCj4+Pj4+PiBpbmRleCAxZDcyOTJhYjJiNjIuLjUwMmI5NGZiMTE2YSAxMDA2NDQKPj4+ Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4+Pj4+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwo+Pj4+Pj4gQEAgLTU2 MSw2ICs1NjEsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19wYXJzZXJfYm9zKHN0cnVjdCBhbWRn cHVfY3NfcGFyc2VyICpwLAo+Pj4+Pj4gICAgCQkJCXVuaW9uIGRybV9hbWRncHVfY3MgKmNzKQo+ Pj4+Pj4gICAgewo+Pj4+Pj4gICAgCXN0cnVjdCBhbWRncHVfZnByaXYgKmZwcml2ID0gcC0+Zmls cC0+ZHJpdmVyX3ByaXY7Cj4+Pj4+PiArCXN0cnVjdCBhbWRncHVfdm0gKnZtID0gJmZwcml2LT52 bTsKPj4+Pj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X2JvX2xpc3RfZW50cnkgKmU7Cj4+Pj4+PiAgICAJ c3RydWN0IGxpc3RfaGVhZCBkdXBsaWNhdGVzOwo+Pj4+Pj4gICAgCXN0cnVjdCBhbWRncHVfYm8g KmdkczsKPj4+Pj4+IEBAIC01ODAsMTMgKzU4MSwxNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19w YXJzZXJfYm9zKHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwLAo+Pj4+Pj4gICAgCQkJCSAgICAg ICAmcC0+Ym9fbGlzdCk7Cj4+Pj4+PiAgICAJCWlmIChyKQo+Pj4+Pj4gICAgCQkJcmV0dXJuIHI7 Cj4+Pj4+PiArCX0gZWxzZSBpZiAoIXAtPmJvX2xpc3QpIHsKPj4+Pj4+ICsJCS8qIENyZWF0ZSBh IGVtcHR5IGJvX2xpc3Qgd2hlbiBubyBoYW5kbGUgaXMgcHJvdmlkZWQgKi8KPj4+Pj4+ICsJCXIg PSBhbWRncHVfYm9fbGlzdF9jcmVhdGUocC0+YWRldiwgcC0+ZmlscCwgTlVMTCwgMCwKPj4+Pj4+ ICsJCQkJCSAgJnAtPmJvX2xpc3QpOwo+Pj4+Pj4gKwkJaWYgKHIpCj4+Pj4+PiArCQkJcmV0dXJu IHI7Cj4+Pj4+PiAgICAJfQo+Pj4+Pj4gLQlpZiAocC0+Ym9fbGlzdCkgewo+Pj4+Pj4gLQkJYW1k Z3B1X2JvX2xpc3RfZ2V0X2xpc3QocC0+Ym9fbGlzdCwgJnAtPnZhbGlkYXRlZCk7Cj4+Pj4+PiAt CQlpZiAocC0+Ym9fbGlzdC0+Zmlyc3RfdXNlcnB0ciAhPSBwLT5ib19saXN0LT5udW1fZW50cmll cykKPj4+Pj4+IC0JCQlwLT5tbiA9IGFtZGdwdV9tbl9nZXQocC0+YWRldiwgQU1ER1BVX01OX1RZ UEVfR0ZYKTsKPj4+Pj4+IC0JfQo+Pj4+Pj4gKwlhbWRncHVfYm9fbGlzdF9nZXRfbGlzdChwLT5i b19saXN0LCAmcC0+dmFsaWRhdGVkKTsKPj4+Pj4+ICsJaWYgKHAtPmJvX2xpc3QtPmZpcnN0X3Vz ZXJwdHIgIT0gcC0+Ym9fbGlzdC0+bnVtX2VudHJpZXMpCj4+Pj4+PiArCQlwLT5tbiA9IGFtZGdw dV9tbl9nZXQocC0+YWRldiwgQU1ER1BVX01OX1RZUEVfR0ZYKTsKPj4+Pj4+ICAgIAlJTklUX0xJ U1RfSEVBRCgmZHVwbGljYXRlcyk7Cj4+Pj4+PiAgICAJYW1kZ3B1X3ZtX2dldF9wZF9ibygmZnBy aXYtPnZtLCAmcC0+dmFsaWRhdGVkLCAmcC0+dm1fcGQpOwo+Pj4+Pj4gQEAgLTYwNSwxMCArNjEw LDYgQEAgc3RhdGljIGludCBhbWRncHVfY3NfcGFyc2VyX2JvcyhzdHJ1Y3QgYW1kZ3B1X2NzX3Bh cnNlciAqcCwKPj4+Pj4+ICAgIAkJCWdvdG8gZXJyb3JfZnJlZV9wYWdlczsKPj4+Pj4+ICAgIAkJ fQo+Pj4+Pj4gLQkJLyogV2l0aG91dCBhIEJPIGxpc3Qgd2UgZG9uJ3QgaGF2ZSB1c2VycHRyIEJP cyAqLwo+Pj4+Pj4gLQkJaWYgKCFwLT5ib19saXN0KQo+Pj4+Pj4gLQkJCWJyZWFrOwo+Pj4+Pj4g LQo+Pj4+Pj4gICAgCQlJTklUX0xJU1RfSEVBRCgmbmVlZF9wYWdlcyk7Cj4+Pj4+PiAgICAJCWFt ZGdwdV9ib19saXN0X2Zvcl9lYWNoX3VzZXJwdHJfZW50cnkoZSwgcC0+Ym9fbGlzdCkgewo+Pj4+ Pj4gICAgCQkJc3RydWN0IGFtZGdwdV9ibyAqYm8gPSBlLT5yb2JqOwo+Pj4+Pj4gQEAgLTcwMywy MSArNzA0LDEyIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3BhcnNlcl9ib3Moc3RydWN0IGFtZGdw dV9jc19wYXJzZXIgKnAsCj4+Pj4+PiAgICAJYW1kZ3B1X2NzX3JlcG9ydF9tb3ZlZF9ieXRlcyhw LT5hZGV2LCBwLT5ieXRlc19tb3ZlZCwKPj4+Pj4+ICAgIAkJCQkgICAgIHAtPmJ5dGVzX21vdmVk X3Zpcyk7Cj4+Pj4+PiAtCWlmIChwLT5ib19saXN0KSB7Cj4+Pj4+PiAtCQlzdHJ1Y3QgYW1kZ3B1 X3ZtICp2bSA9ICZmcHJpdi0+dm07Cj4+Pj4+PiAtCQlzdHJ1Y3QgYW1kZ3B1X2JvX2xpc3RfZW50 cnkgKmU7Cj4+Pj4+PiArCWdkcyA9IHAtPmJvX2xpc3QtPmdkc19vYmo7Cj4+Pj4+PiArCWd3cyA9 IHAtPmJvX2xpc3QtPmd3c19vYmo7Cj4+Pj4+PiArCW9hID0gcC0+Ym9fbGlzdC0+b2Ffb2JqOwo+ Pj4+Pj4gLQkJZ2RzID0gcC0+Ym9fbGlzdC0+Z2RzX29iajsKPj4+Pj4+IC0JCWd3cyA9IHAtPmJv X2xpc3QtPmd3c19vYmo7Cj4+Pj4+PiAtCQlvYSA9IHAtPmJvX2xpc3QtPm9hX29iajsKPj4+Pj4+ IC0KPj4+Pj4+IC0JCWFtZGdwdV9ib19saXN0X2Zvcl9lYWNoX2VudHJ5KGUsIHAtPmJvX2xpc3Qp Cj4+Pj4+PiAtCQkJZS0+Ym9fdmEgPSBhbWRncHVfdm1fYm9fZmluZCh2bSwgZS0+cm9iaik7Cj4+ Pj4+PiAtCX0gZWxzZSB7Cj4+Pj4+PiAtCQlnZHMgPSBwLT5hZGV2LT5nZHMuZ2RzX2dmeF9ibzsK Pj4+Pj4+IC0JCWd3cyA9IHAtPmFkZXYtPmdkcy5nd3NfZ2Z4X2JvOwo+Pj4+Pj4gLQkJb2EgPSBw LT5hZGV2LT5nZHMub2FfZ2Z4X2JvOwo+Pj4+Pj4gLQl9Cj4+Pj4+PiArCWFtZGdwdV9ib19saXN0 X2Zvcl9lYWNoX2VudHJ5KGUsIHAtPmJvX2xpc3QpCj4+Pj4+PiArCQllLT5ib192YSA9IGFtZGdw dV92bV9ib19maW5kKHZtLCBlLT5yb2JqKTsKPj4+Pj4+ICAgIAlpZiAoZ2RzKSB7Cj4+Pj4+PiAg ICAJCXAtPmpvYi0+Z2RzX2Jhc2UgPSBhbWRncHVfYm9fZ3B1X29mZnNldChnZHMpOwo+Pj4+Pj4g QEAgLTc0NSwxNSArNzM3LDEzIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3BhcnNlcl9ib3Moc3Ry dWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsCj4+Pj4+PiAgICBlcnJvcl9mcmVlX3BhZ2VzOgo+Pj4+ Pj4gLQlpZiAocC0+Ym9fbGlzdCkgewo+Pj4+Pj4gLQkJYW1kZ3B1X2JvX2xpc3RfZm9yX2VhY2hf dXNlcnB0cl9lbnRyeShlLCBwLT5ib19saXN0KSB7Cj4+Pj4+PiAtCQkJaWYgKCFlLT51c2VyX3Bh Z2VzKQo+Pj4+Pj4gLQkJCQljb250aW51ZTsKPj4+Pj4+ICsJYW1kZ3B1X2JvX2xpc3RfZm9yX2Vh Y2hfdXNlcnB0cl9lbnRyeShlLCBwLT5ib19saXN0KSB7Cj4+Pj4+PiArCQlpZiAoIWUtPnVzZXJf cGFnZXMpCj4+Pj4+PiArCQkJY29udGludWU7Cj4+Pj4+PiAtCQkJcmVsZWFzZV9wYWdlcyhlLT51 c2VyX3BhZ2VzLAo+Pj4+Pj4gLQkJCQkgICAgICBlLT5yb2JqLT50Ym8udHRtLT5udW1fcGFnZXMp Owo+Pj4+Pj4gLQkJCWt2ZnJlZShlLT51c2VyX3BhZ2VzKTsKPj4+Pj4+IC0JCX0KPj4+Pj4+ICsJ CXJlbGVhc2VfcGFnZXMoZS0+dXNlcl9wYWdlcywKPj4+Pj4+ICsJCQkgICAgICBlLT5yb2JqLT50 Ym8udHRtLT5udW1fcGFnZXMpOwo+Pj4+Pj4gKwkJa3ZmcmVlKGUtPnVzZXJfcGFnZXMpOwo+Pj4+ Pj4gICAgCX0KPj4+Pj4+ICAgIAlyZXR1cm4gcjsKPj4+Pj4+IEBAIC04MTUsOSArODA1LDEwIEBA IHN0YXRpYyB2b2lkIGFtZGdwdV9jc19wYXJzZXJfZmluaShzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNl ciAqcGFyc2VyLCBpbnQgZXJyb3IsCj4+Pj4+PiAgICBzdGF0aWMgaW50IGFtZGdwdV9ib192bV91 cGRhdGVfcHRlKHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwKQo+Pj4+Pj4gICAgewo+Pj4+Pj4g LQlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHAtPmFkZXY7Cj4+Pj4+PiAgICAJc3RydWN0 IGFtZGdwdV9mcHJpdiAqZnByaXYgPSBwLT5maWxwLT5kcml2ZXJfcHJpdjsKPj4+Pj4+ICsJc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBwLT5hZGV2Owo+Pj4+Pj4gICAgCXN0cnVjdCBhbWRn cHVfdm0gKnZtID0gJmZwcml2LT52bTsKPj4+Pj4+ICsJc3RydWN0IGFtZGdwdV9ib19saXN0X2Vu dHJ5ICplOwo+Pj4+Pj4gICAgCXN0cnVjdCBhbWRncHVfYm9fdmEgKmJvX3ZhOwo+Pj4+Pj4gICAg CXN0cnVjdCBhbWRncHVfYm8gKmJvOwo+Pj4+Pj4gICAgCWludCByOwo+Pj4+Pj4gQEAgLTg1MCwz MSArODQxLDI2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2JvX3ZtX3VwZGF0ZV9wdGUoc3RydWN0IGFt ZGdwdV9jc19wYXJzZXIgKnApCj4+Pj4+PiAgICAJCQlyZXR1cm4gcjsKPj4+Pj4+ICAgIAl9Cj4+ Pj4+PiAtCWlmIChwLT5ib19saXN0KSB7Cj4+Pj4+PiAtCQlzdHJ1Y3QgYW1kZ3B1X2JvX2xpc3Rf ZW50cnkgKmU7Cj4+Pj4+PiAtCj4+Pj4+PiAtCQlhbWRncHVfYm9fbGlzdF9mb3JfZWFjaF9lbnRy eShlLCBwLT5ib19saXN0KSB7Cj4+Pj4+PiAtCQkJc3RydWN0IGRtYV9mZW5jZSAqZjsKPj4+Pj4+ IC0KPj4+Pj4+IC0JCQkvKiBpZ25vcmUgZHVwbGljYXRlcyAqLwo+Pj4+Pj4gLQkJCWJvID0gZS0+ cm9iajsKPj4+Pj4+IC0JCQlpZiAoIWJvKQo+Pj4+Pj4gLQkJCQljb250aW51ZTsKPj4+Pj4+ICsJ YW1kZ3B1X2JvX2xpc3RfZm9yX2VhY2hfZW50cnkoZSwgcC0+Ym9fbGlzdCkgewo+Pj4+Pj4gKwkJ c3RydWN0IGRtYV9mZW5jZSAqZjsKPj4+Pj4+IC0JCQlib192YSA9IGUtPmJvX3ZhOwo+Pj4+Pj4g LQkJCWlmIChib192YSA9PSBOVUxMKQo+Pj4+Pj4gLQkJCQljb250aW51ZTsKPj4+Pj4+ICsJCS8q IGlnbm9yZSBkdXBsaWNhdGVzICovCj4+Pj4+PiArCQlibyA9IGUtPnJvYmo7Cj4+Pj4+PiArCQlp ZiAoIWJvKQo+Pj4+Pj4gKwkJCWNvbnRpbnVlOwo+Pj4+Pj4gLQkJCXIgPSBhbWRncHVfdm1fYm9f dXBkYXRlKGFkZXYsIGJvX3ZhLCBmYWxzZSk7Cj4+Pj4+PiAtCQkJaWYgKHIpCj4+Pj4+PiAtCQkJ CXJldHVybiByOwo+Pj4+Pj4gKwkJYm9fdmEgPSBlLT5ib192YTsKPj4+Pj4+ICsJCWlmIChib192 YSA9PSBOVUxMKQo+Pj4+Pj4gKwkJCWNvbnRpbnVlOwo+Pj4+Pj4gLQkJCWYgPSBib192YS0+bGFz dF9wdF91cGRhdGU7Cj4+Pj4+PiAtCQkJciA9IGFtZGdwdV9zeW5jX2ZlbmNlKGFkZXYsICZwLT5q b2ItPnN5bmMsIGYsIGZhbHNlKTsKPj4+Pj4+IC0JCQlpZiAocikKPj4+Pj4+IC0JCQkJcmV0dXJu IHI7Cj4+Pj4+PiAtCQl9Cj4+Pj4+PiArCQlyID0gYW1kZ3B1X3ZtX2JvX3VwZGF0ZShhZGV2LCBi b192YSwgZmFsc2UpOwo+Pj4+Pj4gKwkJaWYgKHIpCj4+Pj4+PiArCQkJcmV0dXJuIHI7Cj4+Pj4+ PiArCQlmID0gYm9fdmEtPmxhc3RfcHRfdXBkYXRlOwo+Pj4+Pj4gKwkJciA9IGFtZGdwdV9zeW5j X2ZlbmNlKGFkZXYsICZwLT5qb2ItPnN5bmMsIGYsIGZhbHNlKTsKPj4+Pj4+ICsJCWlmIChyKQo+ Pj4+Pj4gKwkJCXJldHVybiByOwo+Pj4+Pj4gICAgCX0KPj4+Pj4+ICAgIAlyID0gYW1kZ3B1X3Zt X2hhbmRsZV9tb3ZlZChhZGV2LCB2bSk7Cj4+Pj4+PiBAQCAtODg5LDkgKzg3NSw3IEBAIHN0YXRp YyBpbnQgYW1kZ3B1X2JvX3ZtX3VwZGF0ZV9wdGUoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAp Cj4+Pj4+PiAgICAJaWYgKHIpCj4+Pj4+PiAgICAJCXJldHVybiByOwo+Pj4+Pj4gLQlpZiAoYW1k Z3B1X3ZtX2RlYnVnICYmIHAtPmJvX2xpc3QpIHsKPj4+Pj4+IC0JCXN0cnVjdCBhbWRncHVfYm9f bGlzdF9lbnRyeSAqZTsKPj4+Pj4+IC0KPj4+Pj4+ICsJaWYgKGFtZGdwdV92bV9kZWJ1Zykgewo+ Pj4+Pj4gICAgCQkvKiBJbnZhbGlkYXRlIGFsbCBCT3MgdG8gdGVzdCBmb3IgdXNlcnNwYWNlIGJ1 Z3MgKi8KPj4+Pj4+ICAgIAkJYW1kZ3B1X2JvX2xpc3RfZm9yX2VhY2hfZW50cnkoZSwgcC0+Ym9f bGlzdCkgewo+Pj4+Pj4gICAgCQkJLyogaWdub3JlIGR1cGxpY2F0ZXMgKi8KPj4+Pj4+IEBAIC0x MjE3LDIyICsxMjAxLDE5IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3N1Ym1pdChzdHJ1Y3QgYW1k Z3B1X2NzX3BhcnNlciAqcCwKPj4+Pj4+ICAgIAlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSBw LT5yaW5nOwo+Pj4+Pj4gICAgCXN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICplbnRpdHkgPSAmcC0+ Y3R4LT5yaW5nc1tyaW5nLT5pZHhdLmVudGl0eTsKPj4+Pj4+ICAgIAllbnVtIGRybV9zY2hlZF9w cmlvcml0eSBwcmlvcml0eTsKPj4+Pj4+ICsJc3RydWN0IGFtZGdwdV9ib19saXN0X2VudHJ5ICpl Owo+Pj4+Pj4gICAgCXN0cnVjdCBhbWRncHVfam9iICpqb2I7Cj4+Pj4+PiAgICAJdWludDY0X3Qg c2VxOwo+Pj4+Pj4gICAgCWludCByOwo+Pj4+Pj4gICAgCWFtZGdwdV9tbl9sb2NrKHAtPm1uKTsK Pj4+Pj4+IC0JaWYgKHAtPmJvX2xpc3QpIHsKPj4+Pj4+IC0JCXN0cnVjdCBhbWRncHVfYm9fbGlz dF9lbnRyeSAqZTsKPj4+Pj4+ICsJYW1kZ3B1X2JvX2xpc3RfZm9yX2VhY2hfdXNlcnB0cl9lbnRy eShlLCBwLT5ib19saXN0KSB7Cj4+Pj4+PiArCQlzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IGUtPnJv Ymo7Cj4+Pj4+PiAtCQlhbWRncHVfYm9fbGlzdF9mb3JfZWFjaF91c2VycHRyX2VudHJ5KGUsIHAt PmJvX2xpc3QpIHsKPj4+Pj4+IC0JCQlzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IGUtPnJvYmo7Cj4+ Pj4+PiAtCj4+Pj4+PiAtCQkJaWYgKGFtZGdwdV90dG1fdHRfdXNlcnB0cl9uZWVkc19wYWdlcyhi by0+dGJvLnR0bSkpIHsKPj4+Pj4+IC0JCQkJYW1kZ3B1X21uX3VubG9jayhwLT5tbik7Cj4+Pj4+ PiAtCQkJCXJldHVybiAtRVJFU1RBUlRTWVM7Cj4+Pj4+PiAtCQkJfQo+Pj4+Pj4gKwkJaWYgKGFt ZGdwdV90dG1fdHRfdXNlcnB0cl9uZWVkc19wYWdlcyhiby0+dGJvLnR0bSkpIHsKPj4+Pj4+ICsJ CQlhbWRncHVfbW5fdW5sb2NrKHAtPm1uKTsKPj4+Pj4+ICsJCQlyZXR1cm4gLUVSRVNUQVJUU1lT Owo+Pj4+Pj4gICAgCQl9Cj4+Pj4+PiAgICAJfQo+Pj4+Pj4gLS0KPj4+Pj4+IDIuMTQuMQo+Pj4+ Pj4KPj4+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4+Pj4+PiBhbWQtZ2Z4IG1haWxpbmcgbGlzdAo+Pj4+Pj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPj4+Pj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vYW1kLWdmeAo+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCj4+Pj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QKPj4+PiBhbWQtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwo+Pj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vYW1kLWdmeAo+Pgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QKPiBhbWQtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vYW1kLWdmeAo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=