From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH libdrm] amdgpu: add a function to create amdgpu bo internally (v2) Date: Thu, 9 Aug 2018 13:57:25 +0200 Message-ID: <35176dcb-248b-632c-39fd-4bd9fbd47901@gmail.com> References: <1533806952-11227-1-git-send-email-Jerry.Zhang@amd.com> Reply-To: christian.koenig-5C7GfCeVMHo@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1533806952-11227-1-git-send-email-Jerry.Zhang-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US 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: Junwei Zhang , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Qiang.Yu-5C7GfCeVMHo@public.gmane.org, christian.koenig-5C7GfCeVMHo@public.gmane.org QW0gMDkuMDguMjAxOCB1bSAxMToyOSBzY2hyaWViIEp1bndlaSBaaGFuZzoKPiBhIGhlbHBlciBm dW5jdGlvbiB0byBjcmVhdGUgYW5kIGluaXRpYWxpemUgYW1kZ3B1IGJvCj4KPiB2MjogdXBkYXRl IGVycm9yIGhhbmRsaW5nOiBhZGQgbGFiZWwgYW5kIGZyZWUgYm8KPgo+IFNpZ25lZC1vZmYtYnk6 IEp1bndlaSBaaGFuZyA8SmVycnkuWmhhbmdAYW1kLmNvbT4KPiAtLS0KPiAgIGFtZGdwdS9hbWRn cHVfYm8uYyB8IDE4NiArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQsIDg5IGluc2VydGlvbnMoKyksIDk3IGRlbGV0 aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2FtZGdwdS9hbWRncHVfYm8uYyBiL2FtZGdwdS9hbWRn cHVfYm8uYwo+IGluZGV4IGI3OTBlOWIuLmE2MDg4MjAgMTAwNjQ0Cj4gLS0tIGEvYW1kZ3B1L2Ft ZGdwdV9iby5jCj4gKysrIGIvYW1kZ3B1L2FtZGdwdV9iby5jCj4gQEAgLTQ4LDExICs0OCwzMiBA QCBzdGF0aWMgdm9pZCBhbWRncHVfY2xvc2Vfa21zX2hhbmRsZShhbWRncHVfZGV2aWNlX2hhbmRs ZSBkZXYsCj4gICAJZHJtSW9jdGwoZGV2LT5mZCwgRFJNX0lPQ1RMX0dFTV9DTE9TRSwgJmFyZ3Mp Owo+ICAgfQo+ICAgCj4gK3N0YXRpYyBpbnQgYW1kZ3B1X2JvX2NyZWF0ZShhbWRncHVfZGV2aWNl X2hhbmRsZSBkZXYsCj4gKwkJCSAgICB1aW50NjRfdCBzaXplLAo+ICsJCQkgICAgdWludDMyX3Qg aGFuZGxlLAo+ICsJCQkgICAgYW1kZ3B1X2JvX2hhbmRsZSAqYnVmX2hhbmRsZSkKPiArewo+ICsJ c3RydWN0IGFtZGdwdV9ibyAqYm87Cj4gKwlpbnQgciA9IDA7Cj4gKwo+ICsJYm8gPSBjYWxsb2Mo MSwgc2l6ZW9mKHN0cnVjdCBhbWRncHVfYm8pKTsKPiArCWlmICghYm8pCj4gKwkJcmV0dXJuIC1F Tk9NRU07Cj4gKwo+ICsJYXRvbWljX3NldCgmYm8tPnJlZmNvdW50LCAxKTsKPiArCWJvLT5kZXYg PSBkZXY7Cj4gKwliby0+YWxsb2Nfc2l6ZSA9IHNpemU7Cj4gKwliby0+aGFuZGxlID0gaGFuZGxl Owo+ICsJcHRocmVhZF9tdXRleF9pbml0KCZiby0+Y3B1X2FjY2Vzc19tdXRleCwgTlVMTCk7Cj4g Kwo+ICsJKmJ1Zl9oYW5kbGUgPSBibzsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICAgaW50IGFt ZGdwdV9ib19hbGxvYyhhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4gICAJCSAgICBzdHJ1Y3Qg YW1kZ3B1X2JvX2FsbG9jX3JlcXVlc3QgKmFsbG9jX2J1ZmZlciwKPiAgIAkJICAgIGFtZGdwdV9i b19oYW5kbGUgKmJ1Zl9oYW5kbGUpCj4gICB7Cj4gLQlzdHJ1Y3QgYW1kZ3B1X2JvICpibzsKPiAg IAl1bmlvbiBkcm1fYW1kZ3B1X2dlbV9jcmVhdGUgYXJnczsKPiAgIAl1bnNpZ25lZCBoZWFwID0g YWxsb2NfYnVmZmVyLT5wcmVmZXJyZWRfaGVhcDsKPiAgIAlpbnQgciA9IDA7Cj4gQEAgLTYxLDE0 ICs4Miw2IEBAIGludCBhbWRncHVfYm9fYWxsb2MoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAo+ ICAgCWlmICghKGhlYXAgJiAoQU1ER1BVX0dFTV9ET01BSU5fR1RUIHwgQU1ER1BVX0dFTV9ET01B SU5fVlJBTSkpKQo+ICAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgIAo+IC0JYm8gPSBjYWxsb2MoMSwg c2l6ZW9mKHN0cnVjdCBhbWRncHVfYm8pKTsKPiAtCWlmICghYm8pCj4gLQkJcmV0dXJuIC1FTk9N RU07Cj4gLQo+IC0JYXRvbWljX3NldCgmYm8tPnJlZmNvdW50LCAxKTsKPiAtCWJvLT5kZXYgPSBk ZXY7Cj4gLQliby0+YWxsb2Nfc2l6ZSA9IGFsbG9jX2J1ZmZlci0+YWxsb2Nfc2l6ZTsKPiAtCj4g ICAJbWVtc2V0KCZhcmdzLCAwLCBzaXplb2YoYXJncykpOwo+ICAgCWFyZ3MuaW4uYm9fc2l6ZSA9 IGFsbG9jX2J1ZmZlci0+YWxsb2Nfc2l6ZTsKPiAgIAlhcmdzLmluLmFsaWdubWVudCA9IGFsbG9j X2J1ZmZlci0+cGh5c19hbGlnbm1lbnQ7Cj4gQEAgLTgwLDI0ICs5MywyMyBAQCBpbnQgYW1kZ3B1 X2JvX2FsbG9jKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKPiAgIAkvKiBBbGxvY2F0ZSB0aGUg YnVmZmVyIHdpdGggdGhlIHByZWZlcnJlZCBoZWFwLiAqLwo+ICAgCXIgPSBkcm1Db21tYW5kV3Jp dGVSZWFkKGRldi0+ZmQsIERSTV9BTURHUFVfR0VNX0NSRUFURSwKPiAgIAkJCQkmYXJncywgc2l6 ZW9mKGFyZ3MpKTsKPiArCWlmIChyKQo+ICsJCWdvdG8gb3V0Owo+ICsKPiArCXIgPSBhbWRncHVf Ym9fY3JlYXRlKGRldiwgYWxsb2NfYnVmZmVyLT5hbGxvY19zaXplLCBhcmdzLm91dC5oYW5kbGUs Cj4gKwkJCSAgICAgYnVmX2hhbmRsZSk7Cj4gICAJaWYgKHIpIHsKPiAtCQlmcmVlKGJvKTsKPiAt CQlyZXR1cm4gcjsKPiArCQlhbWRncHVfY2xvc2Vfa21zX2hhbmRsZShkZXYsIGFyZ3Mub3V0Lmhh bmRsZSk7Cj4gKwkJZ290byBvdXQ7Cj4gICAJfQo+ICAgCj4gLQliby0+aGFuZGxlID0gYXJncy5v dXQuaGFuZGxlOwo+IC0KPiAtCXB0aHJlYWRfbXV0ZXhfbG9jaygmYm8tPmRldi0+Ym9fdGFibGVf bXV0ZXgpOwo+IC0JciA9IGhhbmRsZV90YWJsZV9pbnNlcnQoJmJvLT5kZXYtPmJvX2hhbmRsZXMs IGJvLT5oYW5kbGUsIGJvKTsKPiAtCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZiby0+ZGV2LT5ib190 YWJsZV9tdXRleCk7Cj4gLQo+IC0JcHRocmVhZF9tdXRleF9pbml0KCZiby0+Y3B1X2FjY2Vzc19t dXRleCwgTlVMTCk7Cj4gLQo+ICsJcHRocmVhZF9tdXRleF9sb2NrKCZkZXYtPmJvX3RhYmxlX211 dGV4KTsKPiArCXIgPSBoYW5kbGVfdGFibGVfaW5zZXJ0KCZkZXYtPmJvX2hhbmRsZXMsICgqYnVm X2hhbmRsZSktPmhhbmRsZSwKPiArCQkJCSpidWZfaGFuZGxlKTsKPiArCXB0aHJlYWRfbXV0ZXhf dW5sb2NrKCZkZXYtPmJvX3RhYmxlX211dGV4KTsKPiAgIAlpZiAocikKPiAtCQlhbWRncHVfYm9f ZnJlZShibyk7Cj4gLQllbHNlCj4gLQkJKmJ1Zl9oYW5kbGUgPSBibzsKPiAtCj4gKwkJYW1kZ3B1 X2JvX2ZyZWUoKmJ1Zl9oYW5kbGUpOwo+ICtvdXQ6Cj4gICAJcmV0dXJuIHI7Cj4gICB9Cj4gICAK PiBAQCAtMjU2LDcgKzI2OCw5IEBAIGludCBhbWRncHVfYm9faW1wb3J0KGFtZGdwdV9kZXZpY2Vf aGFuZGxlIGRldiwKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2dlbV9vcGVuIG9wZW5fYXJnID0ge307 Cj4gICAJc3RydWN0IGFtZGdwdV9ibyAqYm8gPSBOVUxMOwo+IC0JaW50IHI7Cj4gKwl1aW50MzJf dCBoYW5kbGUgPSAwLCBmbGlua19uYW1lID0gMDsKPiArCXVpbnQ2NF90IGFsbG9jX3NpemUgPSAw Owo+ICsJaW50IHIgPSAwOwo+ICAgCWludCBkbWFfZmQ7Cj4gICAJdWludDY0X3QgZG1hX2J1Zl9z aXplID0gMDsKPiAgIAo+IEBAIC0yNjYsMjIgKzI4MCwxOCBAQCBpbnQgYW1kZ3B1X2JvX2ltcG9y dChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4gICAKPiAgIAkvKiBDb252ZXJ0IGEgRE1BIGJ1 ZiBoYW5kbGUgdG8gYSBLTVMgaGFuZGxlIG5vdy4gKi8KPiAgIAlpZiAodHlwZSA9PSBhbWRncHVf Ym9faGFuZGxlX3R5cGVfZG1hX2J1Zl9mZCkgewo+IC0JCXVpbnQzMl90IGhhbmRsZTsKPiAgIAkJ b2ZmX3Qgc2l6ZTsKPiAgIAo+ICAgCQkvKiBHZXQgYSBLTVMgaGFuZGxlLiAqLwo+ICAgCQlyID0g ZHJtUHJpbWVGRFRvSGFuZGxlKGRldi0+ZmQsIHNoYXJlZF9oYW5kbGUsICZoYW5kbGUpOwo+IC0J CWlmIChyKSB7Cj4gLQkJCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZkZXYtPmJvX3RhYmxlX211dGV4 KTsKPiAtCQkJcmV0dXJuIHI7Cj4gLQkJfQo+ICsJCWlmIChyKQo+ICsJCQlnb3RvIHVubG9jazsK PiAgIAo+ICAgCQkvKiBRdWVyeSB0aGUgYnVmZmVyIHNpemUuICovCj4gICAJCXNpemUgPSBsc2Vl ayhzaGFyZWRfaGFuZGxlLCAwLCBTRUVLX0VORCk7Cj4gICAJCWlmIChzaXplID09IChvZmZfdCkt MSkgewo+IC0JCQlwdGhyZWFkX211dGV4X3VubG9jaygmZGV2LT5ib190YWJsZV9tdXRleCk7Cj4g LQkJCWFtZGdwdV9jbG9zZV9rbXNfaGFuZGxlKGRldiwgaGFuZGxlKTsKPiAtCQkJcmV0dXJuIC1l cnJubzsKPiArCQkJciA9IC1lcnJubzsKPiArCQkJZ290byB1bmxvY2s7Cj4gICAJCX0KPiAgIAkJ bHNlZWsoc2hhcmVkX2hhbmRsZSwgMCwgU0VFS19TRVQpOwo+ICAgCj4gQEAgLTMyMCw1OCArMzMw LDMyIEBAIGludCBhbWRncHVfYm9faW1wb3J0KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKPiAg IAkJcmV0dXJuIDA7Cj4gICAJfQo+ICAgCj4gLQlibyA9IGNhbGxvYygxLCBzaXplb2Yoc3RydWN0 IGFtZGdwdV9ibykpOwo+IC0JaWYgKCFibykgewo+IC0JCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZk ZXYtPmJvX3RhYmxlX211dGV4KTsKPiAtCQlpZiAodHlwZSA9PSBhbWRncHVfYm9faGFuZGxlX3R5 cGVfZG1hX2J1Zl9mZCkgewo+IC0JCQlhbWRncHVfY2xvc2Vfa21zX2hhbmRsZShkZXYsIHNoYXJl ZF9oYW5kbGUpOwo+IC0JCX0KPiAtCQlyZXR1cm4gLUVOT01FTTsKPiAtCX0KPiAtCj4gICAJLyog T3BlbiB0aGUgaGFuZGxlLiAqLwo+ICAgCXN3aXRjaCAodHlwZSkgewo+ICAgCWNhc2UgYW1kZ3B1 X2JvX2hhbmRsZV90eXBlX2dlbV9mbGlua19uYW1lOgo+ICAgCQlvcGVuX2FyZy5uYW1lID0gc2hh cmVkX2hhbmRsZTsKPiAgIAkJciA9IGRybUlvY3RsKGRldi0+ZmxpbmtfZmQsIERSTV9JT0NUTF9H RU1fT1BFTiwgJm9wZW5fYXJnKTsKPiAtCQlpZiAocikgewo+IC0JCQlmcmVlKGJvKTsKPiAtCQkJ cHRocmVhZF9tdXRleF91bmxvY2soJmRldi0+Ym9fdGFibGVfbXV0ZXgpOwo+IC0JCQlyZXR1cm4g cjsKPiAtCQl9Cj4gKwkJaWYgKHIpCj4gKwkJCWdvdG8gdW5sb2NrOwo+ICAgCj4gLQkJYm8tPmhh bmRsZSA9IG9wZW5fYXJnLmhhbmRsZTsKPiArCQlmbGlua19uYW1lID0gc2hhcmVkX2hhbmRsZTsK PiArCQloYW5kbGUgPSBvcGVuX2FyZy5oYW5kbGU7Cj4gKwkJYWxsb2Nfc2l6ZSA9IG9wZW5fYXJn LnNpemU7Cj4gICAJCWlmIChkZXYtPmZsaW5rX2ZkICE9IGRldi0+ZmQpIHsKPiAtCQkJciA9IGRy bVByaW1lSGFuZGxlVG9GRChkZXYtPmZsaW5rX2ZkLCBiby0+aGFuZGxlLCBEUk1fQ0xPRVhFQywg JmRtYV9mZCk7Cj4gLQkJCWlmIChyKSB7Cj4gLQkJCQlmcmVlKGJvKTsKPiAtCQkJCXB0aHJlYWRf bXV0ZXhfdW5sb2NrKCZkZXYtPmJvX3RhYmxlX211dGV4KTsKPiAtCQkJCXJldHVybiByOwo+IC0J CQl9Cj4gLQkJCXIgPSBkcm1QcmltZUZEVG9IYW5kbGUoZGV2LT5mZCwgZG1hX2ZkLCAmYm8tPmhh bmRsZSApOwo+IC0KPiArCQkJciA9IGRybVByaW1lSGFuZGxlVG9GRChkZXYtPmZsaW5rX2ZkLCBo YW5kbGUsCj4gKwkJCQkJICAgICAgIERSTV9DTE9FWEVDLCAmZG1hX2ZkKTsKPiArCQkJaWYgKHIp Cj4gKwkJCQlnb3RvIHVubG9jazsKCldoZXJlIGlzIHRoZSB0ZW1wb3JhcnkgaGFuZGxlIGNsb3Nl ZCBoZXJlPwoKPiArCQkJciA9IGRybVByaW1lRkRUb0hhbmRsZShkZXYtPmZkLCBkbWFfZmQsICZo YW5kbGUpOwo+ICAgCQkJY2xvc2UoZG1hX2ZkKTsKPiAtCj4gLQkJCWlmIChyKSB7Cj4gLQkJCQlm cmVlKGJvKTsKPiAtCQkJCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZkZXYtPmJvX3RhYmxlX211dGV4 KTsKPiAtCQkJCXJldHVybiByOwo+IC0JCQl9Cj4gLQkJfQo+IC0JCWJvLT5mbGlua19uYW1lID0g c2hhcmVkX2hhbmRsZTsKPiAtCQliby0+YWxsb2Nfc2l6ZSA9IG9wZW5fYXJnLnNpemU7Cj4gLQkJ ciA9IGhhbmRsZV90YWJsZV9pbnNlcnQoJmRldi0+Ym9fZmxpbmtfbmFtZXMsIHNoYXJlZF9oYW5k bGUsCj4gLQkJCQkJYm8pOwo+IC0JCWlmIChyKSB7Cj4gLQkJCXB0aHJlYWRfbXV0ZXhfdW5sb2Nr KCZkZXYtPmJvX3RhYmxlX211dGV4KTsKPiAtCQkJYW1kZ3B1X2JvX2ZyZWUoYm8pOwo+IC0JCQly ZXR1cm4gcjsKPiArCQkJaWYgKHIpCj4gKwkJCQlnb3RvIHVubG9jazsKPiAgIAkJfQo+ICAgCQli cmVhazsKPiAgIAo+ICAgCWNhc2UgYW1kZ3B1X2JvX2hhbmRsZV90eXBlX2RtYV9idWZfZmQ6Cj4g LQkJYm8tPmhhbmRsZSA9IHNoYXJlZF9oYW5kbGU7Cj4gLQkJYm8tPmFsbG9jX3NpemUgPSBkbWFf YnVmX3NpemU7Cj4gKwkJaGFuZGxlID0gc2hhcmVkX2hhbmRsZTsKPiArCQlhbGxvY19zaXplID0g ZG1hX2J1Zl9zaXplOwo+ICAgCQlicmVhazsKPiAgIAo+ICAgCWNhc2UgYW1kZ3B1X2JvX2hhbmRs ZV90eXBlX2ttczoKPiBAQCAtMzgwLDE2ICszNjQsMzIgQEAgaW50IGFtZGdwdV9ib19pbXBvcnQo YW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAo+ICAgCX0KPiAgIAo+ICAgCS8qIEluaXRpYWxpemUg aXQuICovCj4gLQlhdG9taWNfc2V0KCZiby0+cmVmY291bnQsIDEpOwo+IC0JYm8tPmRldiA9IGRl djsKPiAtCXB0aHJlYWRfbXV0ZXhfaW5pdCgmYm8tPmNwdV9hY2Nlc3NfbXV0ZXgsIE5VTEwpOwo+ ICsJciA9IGFtZGdwdV9ib19jcmVhdGUoZGV2LCBhbGxvY19zaXplLCBoYW5kbGUsICZibyk7Cj4g KwlpZiAocikKPiArCQlnb3RvIHVubG9jazsKPiAgIAo+IC0JaGFuZGxlX3RhYmxlX2luc2VydCgm ZGV2LT5ib19oYW5kbGVzLCBiby0+aGFuZGxlLCBibyk7Cj4gLQlwdGhyZWFkX211dGV4X3VubG9j aygmZGV2LT5ib190YWJsZV9tdXRleCk7Cj4gKwlpZiAoZmxpbmtfbmFtZSkgewo+ICsJCXIgPSBo YW5kbGVfdGFibGVfaW5zZXJ0KCZkZXYtPmJvX2ZsaW5rX25hbWVzLCBmbGlua19uYW1lLAo+ICsJ CQkJCWJvKTsKPiArCQlpZiAocikKPiArCQkJZ290byBib19mcmVlOwoKVGhhdCBsb29rcyBidWdn eSB0byBtZS4gV2hlcmUgaXMgYm8tPmZsaW5rX25hbWUgYXNzaWduZWQgaW4gdGhpcyBjYXNlPwoK PiArCX0KPiArCXIgPSBoYW5kbGVfdGFibGVfaW5zZXJ0KCZkZXYtPmJvX2hhbmRsZXMsIGJvLT5o YW5kbGUsIGJvKTsKPiArCWlmIChyKQo+ICsJCWdvdG8gYm9fZnJlZTsKPiAgIAo+ICAgCW91dHB1 dC0+YnVmX2hhbmRsZSA9IGJvOwo+ICAgCW91dHB1dC0+YWxsb2Nfc2l6ZSA9IGJvLT5hbGxvY19z aXplOwo+ICsJcHRocmVhZF9tdXRleF91bmxvY2soJmRldi0+Ym9fdGFibGVfbXV0ZXgpOwo+ICAg CXJldHVybiAwOwo+ICsKPiArYm9fZnJlZToKPiArCWFtZGdwdV9ib19mcmVlKGJvKTsKPiArdW5s b2NrOgo+ICsJcHRocmVhZF9tdXRleF91bmxvY2soJmRldi0+Ym9fdGFibGVfbXV0ZXgpOwo+ICsJ aWYgKHR5cGUgPT0gYW1kZ3B1X2JvX2hhbmRsZV90eXBlX2RtYV9idWZfZmQgJiYgaGFuZGxlKQo+ ICsJCWFtZGdwdV9jbG9zZV9rbXNfaGFuZGxlKGRldiwgaGFuZGxlKTsKCkkgd291bGQgc3RpbGwg cHJlZmVyIGEgc2VwYXJhdGUgbGFiZWwgdG8gY2xvc2UgdG8gaGFuZGxlIGluc3RlYWQgb2YgdGhp cyAKdGVzdC4KCkNhdXNlIHRvIG1lIGl0IGxvb2tzIGxpa2Ugd2UgY291bGQgbm93IGNsb3NlIHRo ZSBoYW5kbGUgYWNjaWRlbnRhbGx5IHR3aWNlLgoKUmVnYXJkcywKQ2hyaXN0aWFuLgoKPiArCXJl dHVybiByOwo+ICAgfQo+ICAgCj4gICBpbnQgYW1kZ3B1X2JvX2ZyZWUoYW1kZ3B1X2JvX2hhbmRs ZSBidWZfaGFuZGxlKQo+IEBAIC01NzQsNyArNTc0LDYgQEAgaW50IGFtZGdwdV9jcmVhdGVfYm9f ZnJvbV91c2VyX21lbShhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4gICAJCQkJICAgIGFtZGdw dV9ib19oYW5kbGUgKmJ1Zl9oYW5kbGUpCj4gICB7Cj4gICAJaW50IHI7Cj4gLQlzdHJ1Y3QgYW1k Z3B1X2JvICpibzsKPiAgIAlzdHJ1Y3QgZHJtX2FtZGdwdV9nZW1fdXNlcnB0ciBhcmdzOwo+ICAg Cj4gICAJYXJncy5hZGRyID0gKHVpbnRwdHJfdCljcHU7Cj4gQEAgLTU4NCwyOCArNTgzLDIxIEBA IGludCBhbWRncHVfY3JlYXRlX2JvX2Zyb21fdXNlcl9tZW0oYW1kZ3B1X2RldmljZV9oYW5kbGUg ZGV2LAo+ICAgCXIgPSBkcm1Db21tYW5kV3JpdGVSZWFkKGRldi0+ZmQsIERSTV9BTURHUFVfR0VN X1VTRVJQVFIsCj4gICAJCQkJJmFyZ3MsIHNpemVvZihhcmdzKSk7Cj4gICAJaWYgKHIpCj4gLQkJ cmV0dXJuIHI7Cj4gLQo+IC0JYm8gPSBjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBhbWRncHVfYm8p KTsKPiAtCWlmICghYm8pCj4gLQkJcmV0dXJuIC1FTk9NRU07Cj4gLQo+IC0JYXRvbWljX3NldCgm Ym8tPnJlZmNvdW50LCAxKTsKPiAtCWJvLT5kZXYgPSBkZXY7Cj4gLQliby0+YWxsb2Nfc2l6ZSA9 IHNpemU7Cj4gLQliby0+aGFuZGxlID0gYXJncy5oYW5kbGU7Cj4gLQo+IC0JcHRocmVhZF9tdXRl eF9sb2NrKCZiby0+ZGV2LT5ib190YWJsZV9tdXRleCk7Cj4gLQlyID0gaGFuZGxlX3RhYmxlX2lu c2VydCgmYm8tPmRldi0+Ym9faGFuZGxlcywgYm8tPmhhbmRsZSwgYm8pOwo+IC0JcHRocmVhZF9t dXRleF91bmxvY2soJmJvLT5kZXYtPmJvX3RhYmxlX211dGV4KTsKPiArCQlnb3RvIG91dDsKPiAg IAo+IC0JcHRocmVhZF9tdXRleF9pbml0KCZiby0+Y3B1X2FjY2Vzc19tdXRleCwgTlVMTCk7Cj4g KwlyID0gYW1kZ3B1X2JvX2NyZWF0ZShkZXYsIHNpemUsIGFyZ3MuaGFuZGxlLCBidWZfaGFuZGxl KTsKPiArCWlmIChyKSB7Cj4gKwkJYW1kZ3B1X2Nsb3NlX2ttc19oYW5kbGUoZGV2LCBhcmdzLmhh bmRsZSk7Cj4gKwkJZ290byBvdXQ7Cj4gKwl9Cj4gICAKPiArCXB0aHJlYWRfbXV0ZXhfbG9jaygm ZGV2LT5ib190YWJsZV9tdXRleCk7Cj4gKwlyID0gaGFuZGxlX3RhYmxlX2luc2VydCgmZGV2LT5i b19oYW5kbGVzLCAoKmJ1Zl9oYW5kbGUpLT5oYW5kbGUsCj4gKwkJCQkqYnVmX2hhbmRsZSk7Cj4g KwlwdGhyZWFkX211dGV4X3VubG9jaygmZGV2LT5ib190YWJsZV9tdXRleCk7Cj4gICAJaWYgKHIp Cj4gLQkJYW1kZ3B1X2JvX2ZyZWUoYm8pOwo+IC0JZWxzZQo+IC0JCSpidWZfaGFuZGxlID0gYm87 Cj4gLQo+ICsJCWFtZGdwdV9ib19mcmVlKCpidWZfaGFuZGxlKTsKPiArb3V0Ogo+ICAgCXJldHVy biByOwo+ICAgfQo+ICAgCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK