From mboxrd@z Thu Jan 1 00:00:00 1970 From: Huang Rui Subject: Re: [PATCH 5/5] drm/amdgpu: fix shadow BO restoring Date: Mon, 17 Sep 2018 17:10:00 +0800 Message-ID: <20180917090901.GD25456@hr-amur2> References: <20180914134257.2196-1-christian.koenig@amd.com> <20180914134257.2196-5-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180914134257.2196-5-christian.koenig-5C7GfCeVMHo@public.gmane.org> 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: Christian =?iso-8859-1?Q?K=F6nig?= Cc: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org T24gRnJpLCBTZXAgMTQsIDIwMTggYXQgMDM6NDI6NTdQTSArMDIwMCwgQ2hyaXN0aWFuIEvDtm5p ZyB3cm90ZToKPiBEb24ndCBncmFiIHRoZSByZXNlcnZhdGlvbiBsb2NrIGFueSBtb3JlIGFuZCBz aW1wbGlmeSB0aGUgaGFuZGxpbmcgcXVpdGUKPiBhIGJpdC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBD aHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4gLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyB8IDEwOSArKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2Jq ZWN0LmMgfCAgNDYgKysrKy0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9vYmplY3QuaCB8ICAgOCArLS0KPiAgMyBmaWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25z KCspLCAxMjAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kZXZpY2UuYwo+IGluZGV4IDg5OTM0MmM2ZGZhZC4uMWNiYzM3Mjk2NGY4IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+IEBAIC0yOTU0LDU0 ICsyOTU0LDYgQEAgc3RhdGljIGludCBhbWRncHVfZGV2aWNlX2lwX3Bvc3Rfc29mdF9yZXNldChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC0vKioK PiAtICogYW1kZ3B1X2RldmljZV9yZWNvdmVyX3ZyYW1fZnJvbV9zaGFkb3cgLSByZXN0b3JlIHNo YWRvd2VkIFZSQU0gYnVmZmVycwo+IC0gKgo+IC0gKiBAYWRldjogYW1kZ3B1X2RldmljZSBwb2lu dGVyCj4gLSAqIEByaW5nOiBhbWRncHVfcmluZyBmb3IgdGhlIGVuZ2luZSBoYW5kbGluZyB0aGUg YnVmZmVyIG9wZXJhdGlvbnMKPiAtICogQGJvOiBhbWRncHVfYm8gYnVmZmVyIHdob3NlIHNoYWRv dyBpcyBiZWluZyByZXN0b3JlZAo+IC0gKiBAZmVuY2U6IGRtYV9mZW5jZSBhc3NvY2lhdGVkIHdp dGggdGhlIG9wZXJhdGlvbgo+IC0gKgo+IC0gKiBSZXN0b3JlcyB0aGUgVlJBTSBidWZmZXIgY29u dGVudHMgZnJvbSB0aGUgc2hhZG93IGluIEdUVC4gIFVzZWQgdG8KPiAtICogcmVzdG9yZSB0aGlu Z3MgbGlrZSBHUFVWTSBwYWdlIHRhYmxlcyBhZnRlciBhIEdQVSByZXNldCB3aGVyZQo+IC0gKiB0 aGUgY29udGVudHMgb2YgVlJBTSBtaWdodCBiZSBsb3N0Lgo+IC0gKiBSZXR1cm5zIDAgb24gc3Vj Y2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+IC0gKi8KPiAtc3RhdGljIGlu dCBhbWRncHVfZGV2aWNlX3JlY292ZXJfdnJhbV9mcm9tX3NoYWRvdyhzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwKPiAtCQkJCQkJICBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCj4gLQkJCQkJ CSAgc3RydWN0IGFtZGdwdV9ibyAqYm8sCj4gLQkJCQkJCSAgc3RydWN0IGRtYV9mZW5jZSAqKmZl bmNlKQo+IC17Cj4gLQl1aW50MzJfdCBkb21haW47Cj4gLQlpbnQgcjsKPiAtCj4gLQlpZiAoIWJv LT5zaGFkb3cpCj4gLQkJcmV0dXJuIDA7Cj4gLQo+IC0JciA9IGFtZGdwdV9ib19yZXNlcnZlKGJv LCB0cnVlKTsKPiAtCWlmIChyKQo+IC0JCXJldHVybiByOwo+IC0JZG9tYWluID0gYW1kZ3B1X21l bV90eXBlX3RvX2RvbWFpbihiby0+dGJvLm1lbS5tZW1fdHlwZSk7Cj4gLQkvKiBpZiBibyBoYXMg YmVlbiBldmljdGVkLCB0aGVuIG5vIG5lZWQgdG8gcmVjb3ZlciAqLwo+IC0JaWYgKGRvbWFpbiA9 PSBBTURHUFVfR0VNX0RPTUFJTl9WUkFNKSB7Cj4gLQkJciA9IGFtZGdwdV9ib192YWxpZGF0ZShi by0+c2hhZG93KTsKPiAtCQlpZiAocikgewo+IC0JCQlEUk1fRVJST1IoImJvIHZhbGlkYXRlIGZh aWxlZCFcbiIpOwo+IC0JCQlnb3RvIGVycjsKPiAtCQl9Cj4gLQo+IC0JCXIgPSBhbWRncHVfYm9f cmVzdG9yZV9mcm9tX3NoYWRvdyhhZGV2LCByaW5nLCBibywKPiAtCQkJCQkJIE5VTEwsIGZlbmNl LCB0cnVlKTsKPiAtCQlpZiAocikgewo+IC0JCQlEUk1fRVJST1IoInJlY292ZXIgcGFnZSB0YWJs ZSBmYWlsZWQhXG4iKTsKPiAtCQkJZ290byBlcnI7Cj4gLQkJfQo+IC0JfQo+IC1lcnI6Cj4gLQlh bWRncHVfYm9fdW5yZXNlcnZlKGJvKTsKPiAtCXJldHVybiByOwo+IC19Cj4gLQo+ICAvKioKPiAg ICogYW1kZ3B1X2RldmljZV9yZWNvdmVyX3ZyYW0gLSBSZWNvdmVyIHNvbWUgVlJBTSBjb250ZW50 cwo+ICAgKgo+IEBAIC0zMDEwLDE2ICsyOTYyLDE1IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Rldmlj ZV9yZWNvdmVyX3ZyYW1fZnJvbV9zaGFkb3coc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4g ICAqIFJlc3RvcmVzIHRoZSBjb250ZW50cyBvZiBWUkFNIGJ1ZmZlcnMgZnJvbSB0aGUgc2hhZG93 cyBpbiBHVFQuICBVc2VkIHRvCj4gICAqIHJlc3RvcmUgdGhpbmdzIGxpa2UgR1BVVk0gcGFnZSB0 YWJsZXMgYWZ0ZXIgYSBHUFUgcmVzZXQgd2hlcmUKPiAgICogdGhlIGNvbnRlbnRzIG9mIFZSQU0g bWlnaHQgYmUgbG9zdC4KPiAtICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIDEgb24gZmFpbHVyZS4K PiArICoKPiArICogUmV0dXJuczoKPiArICogMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBj b2RlIG9uIGZhaWx1cmUuCj4gICAqLwo+ICBzdGF0aWMgaW50IGFtZGdwdV9kZXZpY2VfcmVjb3Zl cl92cmFtKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICB7Cj4gLQlzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmcgPSBhZGV2LT5tbWFuLmJ1ZmZlcl9mdW5jc19yaW5nOwo+IC0Jc3RydWN0IGFt ZGdwdV9ibyAqYm8sICp0bXA7Cj4gIAlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IE5VTEwsICpu ZXh0ID0gTlVMTDsKPiAtCWxvbmcgciA9IDE7Cj4gLQlpbnQgaSA9IDA7Cj4gLQlsb25nIHRtbzsK PiArCXN0cnVjdCBhbWRncHVfYm8gKnNoYWRvdzsKPiArCWxvbmcgciA9IDEsIHRtbzsKPiAgCj4g IAlpZiAoYW1kZ3B1X3NyaW92X3J1bnRpbWUoYWRldikpCj4gIAkJdG1vID0gbXNlY3NfdG9famlm Zmllcyg4MDAwKTsKPiBAQCAtMzAyOCw0NCArMjk3OSw0MCBAQCBzdGF0aWMgaW50IGFtZGdwdV9k ZXZpY2VfcmVjb3Zlcl92cmFtKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAKPiAgCURS TV9JTkZPKCJyZWNvdmVyIHZyYW0gYm8gZnJvbSBzaGFkb3cgc3RhcnRcbiIpOwo+ICAJbXV0ZXhf bG9jaygmYWRldi0+c2hhZG93X2xpc3RfbG9jayk7Cj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3Nh ZmUoYm8sIHRtcCwgJmFkZXYtPnNoYWRvd19saXN0LCBzaGFkb3dfbGlzdCkgewo+IC0JCW5leHQg PSBOVUxMOwo+IC0JCWFtZGdwdV9kZXZpY2VfcmVjb3Zlcl92cmFtX2Zyb21fc2hhZG93KGFkZXYs IHJpbmcsIGJvLCAmbmV4dCk7Cj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHNoYWRvdywgJmFkZXYt PnNoYWRvd19saXN0LCBzaGFkb3dfbGlzdCkgewo+ICsKPiArCQkvKiBObyBuZWVkIHRvIHJlY292 ZXIgYW4gZXZpY3RlZCBCTyAqLwo+ICsJCWlmIChzaGFkb3ctPnRiby5tZW0ubWVtX3R5cGUgIT0g VFRNX1BMX1RUIHx8Cj4gKwkJICAgIHNoYWRvdy0+cGFyZW50LT50Ym8ubWVtLm1lbV90eXBlICE9 IFRUTV9QTF9WUkFNKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJciA9IGFtZGdwdV9ib19yZXN0 b3JlX3NoYWRvdyhzaGFkb3csICZuZXh0KTsKPiArCQlpZiAocikKPiArCQkJYnJlYWs7Cj4gKwo+ ICAJCWlmIChmZW5jZSkgewo+ICAJCQlyID0gZG1hX2ZlbmNlX3dhaXRfdGltZW91dChmZW5jZSwg ZmFsc2UsIHRtbyk7Cj4gLQkJCWlmIChyID09IDApCj4gLQkJCQlwcl9lcnIoIndhaXQgZmVuY2Ug JXBbJWRdIHRpbWVvdXRcbiIsIGZlbmNlLCBpKTsKPiAtCQkJZWxzZSBpZiAociA8IDApCj4gLQkJ CQlwcl9lcnIoIndhaXQgZmVuY2UgJXBbJWRdIGludGVycnVwdGVkXG4iLCBmZW5jZSwgaSk7Cj4g LQkJCWlmIChyIDwgMSkgewo+IC0JCQkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7Cj4gLQkJCQlmZW5j ZSA9IG5leHQ7Cj4gKwkJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwo+ICsJCQlmZW5jZSA9IG5leHQ7 Cj4gKwkJCWlmIChyIDw9IDApCj4gIAkJCQlicmVhazsKPiAtCQkJfQo+IC0JCQlpKys7Cj4gKwkJ fSBlbHNlIHsKPiArCQkJZmVuY2UgPSBuZXh0Owo+ICAJCX0KPiAtCj4gLQkJZG1hX2ZlbmNlX3B1 dChmZW5jZSk7Cj4gLQkJZmVuY2UgPSBuZXh0Owo+ICAJfQo+ICAJbXV0ZXhfdW5sb2NrKCZhZGV2 LT5zaGFkb3dfbGlzdF9sb2NrKTsKPiAgCj4gLQlpZiAoZmVuY2UpIHsKPiAtCQlyID0gZG1hX2Zl bmNlX3dhaXRfdGltZW91dChmZW5jZSwgZmFsc2UsIHRtbyk7Cj4gLQkJaWYgKHIgPT0gMCkKPiAt CQkJcHJfZXJyKCJ3YWl0IGZlbmNlICVwWyVkXSB0aW1lb3V0XG4iLCBmZW5jZSwgaSk7Cj4gLQkJ ZWxzZSBpZiAociA8IDApCj4gLQkJCXByX2Vycigid2FpdCBmZW5jZSAlcFslZF0gaW50ZXJydXB0 ZWRcbiIsIGZlbmNlLCBpKTsKPiAtCj4gLQl9Cj4gKwlpZiAoZmVuY2UpCj4gKwkJdG1vID0gZG1h X2ZlbmNlX3dhaXRfdGltZW91dChmZW5jZSwgZmFsc2UsIHRtbyk7Cj4gIAlkbWFfZmVuY2VfcHV0 KGZlbmNlKTsKPiAgCj4gLQlpZiAociA+IDApCj4gLQkJRFJNX0lORk8oInJlY292ZXIgdnJhbSBi byBmcm9tIHNoYWRvdyBkb25lXG4iKTsKPiAtCWVsc2UKPiArCWlmIChyIDw9IDAgfHwgdG1vIDw9 IDApIHsKPiAgCQlEUk1fRVJST1IoInJlY292ZXIgdnJhbSBibyBmcm9tIHNoYWRvdyBmYWlsZWRc biIpOwo+ICsJCXJldHVybiAtRUlPOwo+ICsJfQo+ICAKPiAtCXJldHVybiAociA+IDApID8gMCA6 IDE7Cj4gKwlEUk1fSU5GTygicmVjb3ZlciB2cmFtIGJvIGZyb20gc2hhZG93IGRvbmVcbiIpOwo+ ICsJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gIC8qKgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfb2JqZWN0LmMKPiBpbmRleCA2NTBjNDVjODk2ZjAuLmNhOGEwYjdhNWFjMyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKPiBAQCAtNTQ3 LDcgKzU0Nyw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2JvX2NyZWF0ZV9zaGFkb3coc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsCj4gIAlpZiAoIXIpIHsKPiAgCQliby0+c2hhZG93LT5wYXJlbnQg PSBhbWRncHVfYm9fcmVmKGJvKTsKPiAgCQltdXRleF9sb2NrKCZhZGV2LT5zaGFkb3dfbGlzdF9s b2NrKTsKPiAtCQlsaXN0X2FkZF90YWlsKCZiby0+c2hhZG93X2xpc3QsICZhZGV2LT5zaGFkb3df bGlzdCk7Cj4gKwkJbGlzdF9hZGRfdGFpbCgmYm8tPnNoYWRvdy0+c2hhZG93X2xpc3QsICZhZGV2 LT5zaGFkb3dfbGlzdCk7Cj4gIAkJbXV0ZXhfdW5sb2NrKCZhZGV2LT5zaGFkb3dfbGlzdF9sb2Nr KTsKPiAgCX0KPiAgCj4gQEAgLTY3OSwxMyArNjc5LDEwIEBAIGludCBhbWRncHVfYm9fdmFsaWRh dGUoc3RydWN0IGFtZGdwdV9ibyAqYm8pCj4gIH0KPiAgCj4gIC8qKgo+IC0gKiBhbWRncHVfYm9f cmVzdG9yZV9mcm9tX3NoYWRvdyAtIHJlc3RvcmUgYW4gJmFtZGdwdV9ibyBidWZmZXIgb2JqZWN0 Cj4gLSAqIEBhZGV2OiBhbWRncHUgZGV2aWNlIG9iamVjdAo+IC0gKiBAcmluZzogYW1kZ3B1X3Jp bmcgZm9yIHRoZSBlbmdpbmUgaGFuZGxpbmcgdGhlIGJ1ZmZlciBvcGVyYXRpb25zCj4gLSAqIEBi bzogJmFtZGdwdV9ibyBidWZmZXIgdG8gYmUgcmVzdG9yZWQKPiAtICogQHJlc3Y6IHJlc2VydmF0 aW9uIG9iamVjdCB3aXRoIGVtYmVkZGVkIGZlbmNlCj4gKyAqIGFtZGdwdV9ib19yZXN0b3JlX3No YWRvdyAtIHJlc3RvcmUgYW4gJmFtZGdwdV9ibyBzaGFkb3cKPiArICoKPiArICogQHNoYWRvdzog JmFtZGdwdV9ibyBzaGFkb3cgdG8gYmUgcmVzdG9yZWQKPiAgICogQGZlbmNlOiBkbWFfZmVuY2Ug YXNzb2NpYXRlZCB3aXRoIHRoZSBvcGVyYXRpb24KPiAtICogQGRpcmVjdDogd2hldGhlciB0byBz dWJtaXQgdGhlIGpvYiBkaXJlY3RseQo+ICAgKgo+ICAgKiBDb3BpZXMgYSBidWZmZXIgb2JqZWN0 J3Mgc2hhZG93IGNvbnRlbnQgYmFjayB0byB0aGUgb2JqZWN0Lgo+ICAgKiBUaGlzIGlzIHVzZWQg Zm9yIHJlY292ZXJpbmcgYSBidWZmZXIgZnJvbSBpdHMgc2hhZG93IGluIGNhc2Ugb2YgYSBncHUK PiBAQCAtNjk0LDM2ICs2OTEsMTkgQEAgaW50IGFtZGdwdV9ib192YWxpZGF0ZShzdHJ1Y3QgYW1k Z3B1X2JvICpibykKPiAgICogUmV0dXJuczoKPiAgICogMCBmb3Igc3VjY2VzcyBvciBhIG5lZ2F0 aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiAgICovCj4gLWludCBhbWRncHVfYm9fcmVzdG9y ZV9mcm9tX3NoYWRvdyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiAtCQkJCSAgc3RydWN0 IGFtZGdwdV9yaW5nICpyaW5nLAo+IC0JCQkJICBzdHJ1Y3QgYW1kZ3B1X2JvICpibywKPiAtCQkJ CSAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdiwKPiAtCQkJCSAgc3RydWN0IGRtYV9m ZW5jZSAqKmZlbmNlLAo+IC0JCQkJICBib29sIGRpcmVjdCkKPiAraW50IGFtZGdwdV9ib19yZXN0 b3JlX3NoYWRvdyhzdHJ1Y3QgYW1kZ3B1X2JvICpzaGFkb3csIHN0cnVjdCBkbWFfZmVuY2UgKipm ZW5jZSkKPiAgCj4gIHsKPiAtCXN0cnVjdCBhbWRncHVfYm8gKnNoYWRvdyA9IGJvLT5zaGFkb3c7 Cj4gLQl1aW50NjRfdCBib19hZGRyLCBzaGFkb3dfYWRkcjsKPiAtCWludCByOwo+IC0KPiAtCWlm ICghc2hhZG93KQo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0KPiAtCWJvX2FkZHIgPSBhbWRncHVf Ym9fZ3B1X29mZnNldChibyk7Cj4gLQlzaGFkb3dfYWRkciA9IGFtZGdwdV9ib19ncHVfb2Zmc2V0 KGJvLT5zaGFkb3cpOwo+IC0KPiAtCXIgPSByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFy ZWQoYm8tPnRiby5yZXN2KTsKPiAtCWlmIChyKQo+IC0JCWdvdG8gZXJyOwo+ICsJc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYgPSBhbWRncHVfdHRtX2FkZXYoc2hhZG93LT50Ym8uYmRldik7Cj4g KwlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSBhZGV2LT5tbWFuLmJ1ZmZlcl9mdW5jc19yaW5n Owo+ICsJdWludDY0X3Qgc2hhZG93X2FkZHIsIHBhcmVudF9hZGRyOwo+ICAKCk1heSBJIGtub3cg d2h5IHdvbid0IG5lZWQgdGhlIHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZCgpIGhl cmU/IElzCml0IGJlY2F1c2Ugd2Ugb25seSBjb3B5IGJ1ZmZlciBmcm9tIHNoYWRvdyBwYXJlbnQg Ym8gaW5zdGVhZCBvZiBvcmlnbmFsIGJvPwoKVGhhbmtzLApSYXkKCj4gLQlyID0gYW1kZ3B1X2Nv cHlfYnVmZmVyKHJpbmcsIHNoYWRvd19hZGRyLCBib19hZGRyLAo+IC0JCQkgICAgICAgYW1kZ3B1 X2JvX3NpemUoYm8pLCByZXN2LCBmZW5jZSwKPiAtCQkJICAgICAgIGRpcmVjdCwgZmFsc2UpOwo+ IC0JaWYgKCFyKQo+IC0JCWFtZGdwdV9ib19mZW5jZShibywgKmZlbmNlLCB0cnVlKTsKPiArCXNo YWRvd19hZGRyID0gYW1kZ3B1X2JvX2dwdV9vZmZzZXQoc2hhZG93KTsKPiArCXBhcmVudF9hZGRy ID0gYW1kZ3B1X2JvX2dwdV9vZmZzZXQoc2hhZG93LT5wYXJlbnQpOwo+ICAKPiAtZXJyOgo+IC0J cmV0dXJuIHI7Cj4gKwlyZXR1cm4gYW1kZ3B1X2NvcHlfYnVmZmVyKHJpbmcsIHNoYWRvd19hZGRy LCBwYXJlbnRfYWRkciwKPiArCQkJCSAgYW1kZ3B1X2JvX3NpemUoc2hhZG93KSwgTlVMTCwgZmVu Y2UsCj4gKwkJCQkgIHRydWUsIGZhbHNlKTsKPiAgfQo+ICAKPiAgLyoqCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuaAo+IGluZGV4IDY0MzM3ZmYyYWQ2My4uN2Qz MzEyZDBkYTExIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9vYmplY3QuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmpl Y3QuaAo+IEBAIC0yNzMsMTIgKzI3Myw4IEBAIGludCBhbWRncHVfYm9fYmFja3VwX3RvX3NoYWRv dyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiAgCQkJICAgICAgIHN0cnVjdCByZXNlcnZh dGlvbl9vYmplY3QgKnJlc3YsCj4gIAkJCSAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2Us IGJvb2wgZGlyZWN0KTsKPiAgaW50IGFtZGdwdV9ib192YWxpZGF0ZShzdHJ1Y3QgYW1kZ3B1X2Jv ICpibyk7Cj4gLWludCBhbWRncHVfYm9fcmVzdG9yZV9mcm9tX3NoYWRvdyhzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwKPiAtCQkJCSAgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAo+IC0JCQkJ ICBzdHJ1Y3QgYW1kZ3B1X2JvICpibywKPiAtCQkJCSAgc3RydWN0IHJlc2VydmF0aW9uX29iamVj dCAqcmVzdiwKPiAtCQkJCSAgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlLAo+IC0JCQkJICBib29s IGRpcmVjdCk7Cj4gK2ludCBhbWRncHVfYm9fcmVzdG9yZV9zaGFkb3coc3RydWN0IGFtZGdwdV9i byAqc2hhZG93LAo+ICsJCQkgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSk7Cj4gIHVpbnQz Ml90IGFtZGdwdV9ib19nZXRfcHJlZmVycmVkX3Bpbl9kb21haW4oc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsCj4gIAkJCQkJICAgIHVpbnQzMl90IGRvbWFpbik7Cj4gIAo+IC0tIAo+IDIuMTQu MQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g YW1kLWdmeCBtYWlsaW5nIGxpc3QKPiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxp bmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK