From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= Subject: Re: [PATCH 1/2] drm/radeon: Move pinning the BO back to radeon_crtc_page_flip() Date: Wed, 02 Jul 2014 13:42:15 +0200 Message-ID: <53B3F017.300@vodafone.de> References: <1404273327-4465-2-git-send-email-michel@daenzer.net> <1404295812-4040-1-git-send-email-michel@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from pegasos-out.vodafone.de (pegasos-out.vodafone.de [80.84.1.38]) by gabe.freedesktop.org (Postfix) with ESMTP id 062846E595 for ; Wed, 2 Jul 2014 04:42:29 -0700 (PDT) In-Reply-To: <1404295812-4040-1-git-send-email-michel@daenzer.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?B?TWljaGVsIETDpG56ZXI=?= , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QW0gMDIuMDcuMjAxNCAxMjoxMCwgc2NocmllYiBNaWNoZWwgRMOkbnplcjoKPiBGcm9tOiBNaWNo ZWwgRMOkbnplciA8bWljaGVsLmRhZW56ZXJAYW1kLmNvbT4KPgo+IEFzIHdlbGwgYXMgZW5hYmxp bmcgdGhlIHZibGFuayBpbnRlcnJ1cHQuIFRoZXNlIHNob3VsZG4ndCB0YWtlIGFueQo+IHNpZ25p ZmljYW50IGFtb3VudCBvZiB0aW1lLCBidXQgYXQgbGVhc3QgcGlubmluZyB0aGUgQk8gaGFzIGFj dHVhbGx5IGJlZW4KPiBzZWVuIHRvIGZhaWwgaW4gcHJhY3RpY2UgYmVmb3JlLCBpbiB3aGljaCBj YXNlIHdlIG5lZWQgdG8gbGV0IHVzZXJzcGFjZQo+IGtub3cgYWJvdXQgaXQuCj4KPiBTaWduZWQt b2ZmLWJ5OiBNaWNoZWwgRMOkbnplciA8bWljaGVsLmRhZW56ZXJAYW1kLmNvbT4KCkJvdGggcGF0 Y2hlcyBhcmUgUmV2aWV3ZWQtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdA YW1kLmNvbT4KCj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oICAgICAg ICAgfCAgIDIgLQo+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jIHwg MTc0ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4gICAyIGZpbGVzIGNoYW5nZWQs IDg4IGluc2VydGlvbnMoKyksIDg4IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bi5oCj4gaW5kZXggMTlhODU1MS4uZGJlMzljOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24u aAo+IEBAIC02ODIsMTAgKzY4Miw4IEBAIHN0cnVjdCByYWRlb25fZmxpcF93b3JrIHsKPiAgIAlz dHJ1Y3QgcmFkZW9uX2RldmljZQkJKnJkZXY7Cj4gICAJaW50CQkJCWNydGNfaWQ7Cj4gICAJdWlu dDY0X3QJCQliYXNlOwo+IC0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlcgkJKmZiOwo+ICAgCXN0cnVj dCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmV2ZW50Owo+ICAgCXN0cnVjdCByYWRlb25fYm8J CSpvbGRfcmJvOwo+IC0Jc3RydWN0IHJhZGVvbl9ibwkJKm5ld19yYm87Cj4gICAJc3RydWN0IHJh ZGVvbl9mZW5jZQkJKmZlbmNlOwo+ICAgfTsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9kaXNwbGF5LmMKPiBpbmRleCAyNzQyZWRkLi44MmFlOWUzIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYwo+IEBAIC0zNDMsMTEgKzM0Myw2IEBAIHN0YXRp YyB2b2lkIHJhZGVvbl9mbGlwX3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKl9fd29yaykK PiAgIAlzdHJ1Y3QgcmFkZW9uX2NydGMgKnJhZGVvbl9jcnRjID0gcmRldi0+bW9kZV9pbmZvLmNy dGNzW3dvcmstPmNydGNfaWRdOwo+ICAgCj4gICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJnJh ZGVvbl9jcnRjLT5iYXNlOwo+IC0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSB3b3JrLT5m YjsKPiAtCj4gLQl1aW50MzJfdCB0aWxpbmdfZmxhZ3MsIHBpdGNoX3BpeGVsczsKPiAtCXVpbnQ2 NF90IGJhc2U7Cj4gLQo+ICAgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gICAJaW50IHI7Cj4gICAK PiBAQCAtMzY4LDI2ICszNjMsODcgQEAgc3RhdGljIHZvaWQgcmFkZW9uX2ZsaXBfd29ya19mdW5j KHN0cnVjdCB3b3JrX3N0cnVjdCAqX193b3JrKQo+ICAgCQkJcmFkZW9uX2ZlbmNlX3VucmVmKCZ3 b3JrLT5mZW5jZSk7Cj4gICAJfQo+ICAgCj4gKwkvKiBXZSBib3Jyb3cgdGhlIGV2ZW50IHNwaW4g bG9jayBmb3IgcHJvdGVjdGluZyBmbGlwX3N0YXR1cyAqLwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUo JmNydGMtPmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwo+ICsJcmFkZW9uX2NydGMtPmZsaXBfc3Rh dHVzID0gUkFERU9OX0ZMSVBfUkVBRFk7Cj4gKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjcnRj LT5kZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKPiArCXVwX3JlYWQoJnJkZXYtPmV4Y2x1c2l2ZV9s b2NrKTsKPiArCj4gKwlyZXR1cm47Cj4gKwo+ICtjbGVhbnVwOgo+ICsJZHJtX2dlbV9vYmplY3Rf dW5yZWZlcmVuY2VfdW5sb2NrZWQoJndvcmstPm9sZF9yYm8tPmdlbV9iYXNlKTsKPiArCXJhZGVv bl9mZW5jZV91bnJlZigmd29yay0+ZmVuY2UpOwo+ICsJa2ZyZWUod29yayk7Cj4gKwl1cF9yZWFk KCZyZGV2LT5leGNsdXNpdmVfbG9jayk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgcmFkZW9uX2Ny dGNfcGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiArCQkJCSBzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiwKPiArCQkJCSBzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpl dmVudCwKPiArCQkJCSB1aW50MzJfdCBwYWdlX2ZsaXBfZmxhZ3MpCj4gK3sKPiArCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gKwlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl diA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgcmFkZW9uX2NydGMgKnJhZGVvbl9jcnRj ID0gdG9fcmFkZW9uX2NydGMoY3J0Yyk7Cj4gKwlzdHJ1Y3QgcmFkZW9uX2ZyYW1lYnVmZmVyICpv bGRfcmFkZW9uX2ZiOwo+ICsJc3RydWN0IHJhZGVvbl9mcmFtZWJ1ZmZlciAqbmV3X3JhZGVvbl9m YjsKPiArCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOwo+ICsJc3RydWN0IHJhZGVvbl9mbGlw X3dvcmsgKndvcms7Cj4gKwlzdHJ1Y3QgcmFkZW9uX2JvICpuZXdfcmJvOwo+ICsJdWludDMyX3Qg dGlsaW5nX2ZsYWdzLCBwaXRjaF9waXhlbHM7Cj4gKwl1aW50NjRfdCBiYXNlOwo+ICsJdW5zaWdu ZWQgbG9uZyBmbGFnczsKPiArCWludCByOwo+ICsKPiArCXdvcmsgPSBremFsbG9jKHNpemVvZiAq d29yaywgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAod29yayA9PSBOVUxMKQo+ICsJCXJldHVybiAtRU5P TUVNOwo+ICsKPiArCUlOSVRfV09SSygmd29yay0+ZmxpcF93b3JrLCByYWRlb25fZmxpcF93b3Jr X2Z1bmMpOwo+ICsJSU5JVF9XT1JLKCZ3b3JrLT51bnBpbl93b3JrLCByYWRlb25fdW5waW5fd29y a19mdW5jKTsKPiArCj4gKwl3b3JrLT5yZGV2ID0gcmRldjsKPiArCXdvcmstPmNydGNfaWQgPSBy YWRlb25fY3J0Yy0+Y3J0Y19pZDsKPiArCXdvcmstPmV2ZW50ID0gZXZlbnQ7Cj4gKwo+ICsJLyog c2NoZWR1bGUgdW5waW4gb2YgdGhlIG9sZCBidWZmZXIgKi8KPiArCW9sZF9yYWRlb25fZmIgPSB0 b19yYWRlb25fZnJhbWVidWZmZXIoY3J0Yy0+cHJpbWFyeS0+ZmIpOwo+ICsJb2JqID0gb2xkX3Jh ZGVvbl9mYi0+b2JqOwo+ICsKPiArCS8qIHRha2UgYSByZWZlcmVuY2UgdG8gdGhlIG9sZCBvYmpl Y3QgKi8KPiArCWRybV9nZW1fb2JqZWN0X3JlZmVyZW5jZShvYmopOwo+ICsJd29yay0+b2xkX3Ji byA9IGdlbV90b19yYWRlb25fYm8ob2JqKTsKPiArCj4gKwluZXdfcmFkZW9uX2ZiID0gdG9fcmFk ZW9uX2ZyYW1lYnVmZmVyKGZiKTsKPiArCW9iaiA9IG5ld19yYWRlb25fZmItPm9iajsKPiArCW5l d19yYm8gPSBnZW1fdG9fcmFkZW9uX2JvKG9iaik7Cj4gKwo+ICsJc3Bpbl9sb2NrKCZuZXdfcmJv LT50Ym8uYmRldi0+ZmVuY2VfbG9jayk7Cj4gKwlpZiAobmV3X3Jiby0+dGJvLnN5bmNfb2JqKQo+ ICsJCXdvcmstPmZlbmNlID0gcmFkZW9uX2ZlbmNlX3JlZihuZXdfcmJvLT50Ym8uc3luY19vYmop Owo+ICsJc3Bpbl91bmxvY2soJm5ld19yYm8tPnRiby5iZGV2LT5mZW5jZV9sb2NrKTsKPiArCj4g ICAJLyogcGluIHRoZSBuZXcgYnVmZmVyICovCj4gLQlEUk1fREVCVUdfRFJJVkVSKCJmbGlwLWlv Y3RsKCkgY3VyX2ZibyA9ICVwLCBjdXJfYmJvID0gJXBcbiIsCj4gLQkJCSB3b3JrLT5vbGRfcmJv LCB3b3JrLT5uZXdfcmJvKTsKPiArCURSTV9ERUJVR19EUklWRVIoImZsaXAtaW9jdGwoKSBjdXJf cmJvID0gJXAsIG5ld19yYm8gPSAlcFxuIiwKPiArCQkJIHdvcmstPm9sZF9yYm8sIG5ld19yYm8p Owo+ICAgCj4gLQlyID0gcmFkZW9uX2JvX3Jlc2VydmUod29yay0+bmV3X3JibywgZmFsc2UpOwo+ ICsJciA9IHJhZGVvbl9ib19yZXNlcnZlKG5ld19yYm8sIGZhbHNlKTsKPiAgIAlpZiAodW5saWtl bHkociAhPSAwKSkgewo+ICAgCQlEUk1fRVJST1IoImZhaWxlZCB0byByZXNlcnZlIG5ldyByYm8g YnVmZmVyIGJlZm9yZSBmbGlwXG4iKTsKPiAgIAkJZ290byBjbGVhbnVwOwo+ICAgCX0KPiAgIAkv KiBPbmx5IDI3IGJpdCBvZmZzZXQgZm9yIGxlZ2FjeSBDUlRDICovCj4gLQlyID0gcmFkZW9uX2Jv X3Bpbl9yZXN0cmljdGVkKHdvcmstPm5ld19yYm8sIFJBREVPTl9HRU1fRE9NQUlOX1ZSQU0sCj4g KwlyID0gcmFkZW9uX2JvX3Bpbl9yZXN0cmljdGVkKG5ld19yYm8sIFJBREVPTl9HRU1fRE9NQUlO X1ZSQU0sCj4gICAJCQkJICAgICBBU0lDX0lTX0FWSVZPKHJkZXYpID8gMCA6IDEgPDwgMjcsICZi YXNlKTsKPiAgIAlpZiAodW5saWtlbHkociAhPSAwKSkgewo+IC0JCXJhZGVvbl9ib191bnJlc2Vy dmUod29yay0+bmV3X3Jibyk7Cj4gKwkJcmFkZW9uX2JvX3VucmVzZXJ2ZShuZXdfcmJvKTsKPiAg IAkJciA9IC1FSU5WQUw7Cj4gICAJCURSTV9FUlJPUigiZmFpbGVkIHRvIHBpbiBuZXcgcmJvIGJ1 ZmZlciBiZWZvcmUgZmxpcFxuIik7Cj4gICAJCWdvdG8gY2xlYW51cDsKPiAgIAl9Cj4gLQlyYWRl b25fYm9fZ2V0X3RpbGluZ19mbGFncyh3b3JrLT5uZXdfcmJvLCAmdGlsaW5nX2ZsYWdzLCBOVUxM KTsKPiAtCXJhZGVvbl9ib191bnJlc2VydmUod29yay0+bmV3X3Jibyk7Cj4gKwlyYWRlb25fYm9f Z2V0X3RpbGluZ19mbGFncyhuZXdfcmJvLCAmdGlsaW5nX2ZsYWdzLCBOVUxMKTsKPiArCXJhZGVv bl9ib191bnJlc2VydmUobmV3X3Jibyk7Cj4gICAKPiAgIAlpZiAoIUFTSUNfSVNfQVZJVk8ocmRl dikpIHsKPiAgIAkJLyogY3J0YyBvZmZzZXQgaXMgZnJvbSBkaXNwbGF5IGJhc2UgYWRkciBub3Qg RkIgbG9jYXRpb24gKi8KPiBAQCAtNDI0LDYgKzQ4MCw3IEBAIHN0YXRpYyB2b2lkIHJhZGVvbl9m bGlwX3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKl9fd29yaykKPiAgIAkJfQo+ICAgCQli YXNlICY9IH43Owo+ICAgCX0KPiArCXdvcmstPmJhc2UgPSBiYXNlOwo+ICAgCj4gICAJciA9IGRy bV92YmxhbmtfZ2V0KGNydGMtPmRldiwgcmFkZW9uX2NydGMtPmNydGNfaWQpOwo+ICAgCWlmIChy KSB7Cj4gQEAgLTQzMyw4MyArNDkwLDEyIEBAIHN0YXRpYyB2b2lkIHJhZGVvbl9mbGlwX3dvcmtf ZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKl9fd29yaykKPiAgIAo+ICAgCS8qIFdlIGJvcnJvdyB0 aGUgZXZlbnQgc3BpbiBsb2NrIGZvciBwcm90ZWN0aW5nIGZsaXBfd29yayAqLwo+ICAgCXNwaW5f bG9ja19pcnFzYXZlKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKPiAtCXdvcmstPmJh c2UgPSBiYXNlOwo+IC0JcmFkZW9uX2NydGMtPmZsaXBfc3RhdHVzID0gUkFERU9OX0ZMSVBfUkVB RFk7Cj4gLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2ssIGZs YWdzKTsKPiAtCXVwX3JlYWQoJnJkZXYtPmV4Y2x1c2l2ZV9sb2NrKTsKPiAtCj4gLQlyZXR1cm47 Cj4gLQo+IC1wZmxpcF9jbGVhbnVwOgo+IC0JaWYgKHVubGlrZWx5KHJhZGVvbl9ib19yZXNlcnZl KHdvcmstPm5ld19yYm8sIGZhbHNlKSAhPSAwKSkgewo+IC0JCURSTV9FUlJPUigiZmFpbGVkIHRv IHJlc2VydmUgbmV3IHJibyBpbiBlcnJvciBwYXRoXG4iKTsKPiAtCQlnb3RvIGNsZWFudXA7Cj4g LQl9Cj4gLQlpZiAodW5saWtlbHkocmFkZW9uX2JvX3VucGluKHdvcmstPm5ld19yYm8pICE9IDAp KSB7Cj4gLQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gdW5waW4gbmV3IHJibyBpbiBlcnJvciBwYXRo XG4iKTsKPiAtCX0KPiAtCXJhZGVvbl9ib191bnJlc2VydmUod29yay0+bmV3X3Jibyk7Cj4gLQo+ IC1jbGVhbnVwOgo+IC0JZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQoJndvcmst Pm9sZF9yYm8tPmdlbV9iYXNlKTsKPiAtCXJhZGVvbl9mZW5jZV91bnJlZigmd29yay0+ZmVuY2Up Owo+IC0Ja2ZyZWUod29yayk7Cj4gLQl1cF9yZWFkKCZyZGV2LT5leGNsdXNpdmVfbG9jayk7Cj4g LX0KPiAtCj4gLXN0YXRpYyBpbnQgcmFkZW9uX2NydGNfcGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKPiAtCQkJCSBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAtCQkJCSBzdHJ1 Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudCwKPiAtCQkJCSB1aW50MzJfdCBwYWdl X2ZsaXBfZmxhZ3MpCj4gLXsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7 Cj4gLQlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlz dHJ1Y3QgcmFkZW9uX2NydGMgKnJhZGVvbl9jcnRjID0gdG9fcmFkZW9uX2NydGMoY3J0Yyk7Cj4g LQlzdHJ1Y3QgcmFkZW9uX2ZyYW1lYnVmZmVyICpvbGRfcmFkZW9uX2ZiOwo+IC0Jc3RydWN0IHJh ZGVvbl9mcmFtZWJ1ZmZlciAqbmV3X3JhZGVvbl9mYjsKPiAtCXN0cnVjdCBkcm1fZ2VtX29iamVj dCAqb2JqOwo+IC0Jc3RydWN0IHJhZGVvbl9mbGlwX3dvcmsgKndvcms7Cj4gLQl1bnNpZ25lZCBs b25nIGZsYWdzOwo+IC0KPiAtCXdvcmsgPSBremFsbG9jKHNpemVvZiAqd29yaywgR0ZQX0tFUk5F TCk7Cj4gLQlpZiAod29yayA9PSBOVUxMKQo+IC0JCXJldHVybiAtRU5PTUVNOwo+IC0KPiAtCUlO SVRfV09SSygmd29yay0+ZmxpcF93b3JrLCByYWRlb25fZmxpcF93b3JrX2Z1bmMpOwo+IC0JSU5J VF9XT1JLKCZ3b3JrLT51bnBpbl93b3JrLCByYWRlb25fdW5waW5fd29ya19mdW5jKTsKPiAtCj4g LQl3b3JrLT5yZGV2ID0gcmRldjsKPiAtCXdvcmstPmNydGNfaWQgPSByYWRlb25fY3J0Yy0+Y3J0 Y19pZDsKPiAtCXdvcmstPmZiID0gZmI7Cj4gLQl3b3JrLT5ldmVudCA9IGV2ZW50Owo+IC0KPiAt CS8qIHNjaGVkdWxlIHVucGluIG9mIHRoZSBvbGQgYnVmZmVyICovCj4gLQlvbGRfcmFkZW9uX2Zi ID0gdG9fcmFkZW9uX2ZyYW1lYnVmZmVyKGNydGMtPnByaW1hcnktPmZiKTsKPiAtCW9iaiA9IG9s ZF9yYWRlb25fZmItPm9iajsKPiAtCj4gLQkvKiB0YWtlIGEgcmVmZXJlbmNlIHRvIHRoZSBvbGQg b2JqZWN0ICovCj4gLQlkcm1fZ2VtX29iamVjdF9yZWZlcmVuY2Uob2JqKTsKPiAtCXdvcmstPm9s ZF9yYm8gPSBnZW1fdG9fcmFkZW9uX2JvKG9iaik7Cj4gLQo+IC0JbmV3X3JhZGVvbl9mYiA9IHRv X3JhZGVvbl9mcmFtZWJ1ZmZlcihmYik7Cj4gLQlvYmogPSBuZXdfcmFkZW9uX2ZiLT5vYmo7Cj4g LQl3b3JrLT5uZXdfcmJvID0gZ2VtX3RvX3JhZGVvbl9ibyhvYmopOwo+IC0KPiAtCXNwaW5fbG9j aygmd29yay0+bmV3X3Jiby0+dGJvLmJkZXYtPmZlbmNlX2xvY2spOwo+IC0JaWYgKHdvcmstPm5l d19yYm8tPnRiby5zeW5jX29iaikKPiAtCQl3b3JrLT5mZW5jZSA9IHJhZGVvbl9mZW5jZV9yZWYo d29yay0+bmV3X3Jiby0+dGJvLnN5bmNfb2JqKTsKPiAtCXNwaW5fdW5sb2NrKCZ3b3JrLT5uZXdf cmJvLT50Ym8uYmRldi0+ZmVuY2VfbG9jayk7Cj4gLQo+IC0JLyogV2UgYm9ycm93IHRoZSBldmVu dCBzcGluIGxvY2sgZm9yIHByb3RlY3RpbmcgZmxpcF93b3JrICovCj4gLQlzcGluX2xvY2tfaXJx c2F2ZSgmY3J0Yy0+ZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Cj4gICAKPiAgIAlpZiAocmFkZW9u X2NydGMtPmZsaXBfc3RhdHVzICE9IFJBREVPTl9GTElQX05PTkUpIHsKPiAgIAkJRFJNX0RFQlVH X0RSSVZFUigiZmxpcCBxdWV1ZTogY3J0YyBhbHJlYWR5IGJ1c3lcbiIpOwo+ICAgCQlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKPiAtCQlkcm1f Z2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZCgmd29yay0+b2xkX3Jiby0+Z2VtX2Jhc2Up Owo+IC0JCXJhZGVvbl9mZW5jZV91bnJlZigmd29yay0+ZmVuY2UpOwo+IC0JCWtmcmVlKHdvcmsp Owo+IC0JCXJldHVybiAtRUJVU1k7Cj4gKwkJciA9IC1FQlVTWTsKPiArCQlnb3RvIHBmbGlwX2Ns ZWFudXA7Cj4gICAJfQo+ICAgCXJhZGVvbl9jcnRjLT5mbGlwX3N0YXR1cyA9IFJBREVPTl9GTElQ X1BFTkRJTkc7Cj4gICAJcmFkZW9uX2NydGMtPmZsaXBfd29yayA9IHdvcms7Cj4gQEAgLTUyMCw4 ICs1MDYsMjQgQEAgc3RhdGljIGludCByYWRlb25fY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9j cnRjICpjcnRjLAo+ICAgCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNydGMtPmRldi0+ZXZlbnRf bG9jaywgZmxhZ3MpOwo+ICAgCj4gICAJcXVldWVfd29yayhyYWRlb25fY3J0Yy0+ZmxpcF9xdWV1 ZSwgJndvcmstPmZsaXBfd29yayk7Cj4gLQo+ICAgCXJldHVybiAwOwo+ICsKPiArcGZsaXBfY2xl YW51cDoKPiArCWlmICh1bmxpa2VseShyYWRlb25fYm9fcmVzZXJ2ZShuZXdfcmJvLCBmYWxzZSkg IT0gMCkpIHsKPiArCQlEUk1fRVJST1IoImZhaWxlZCB0byByZXNlcnZlIG5ldyByYm8gaW4gZXJy b3IgcGF0aFxuIik7Cj4gKwkJZ290byBjbGVhbnVwOwo+ICsJfQo+ICsJaWYgKHVubGlrZWx5KHJh ZGVvbl9ib191bnBpbihuZXdfcmJvKSAhPSAwKSkgewo+ICsJCURSTV9FUlJPUigiZmFpbGVkIHRv IHVucGluIG5ldyByYm8gaW4gZXJyb3IgcGF0aFxuIik7Cj4gKwl9Cj4gKwlyYWRlb25fYm9fdW5y ZXNlcnZlKG5ld19yYm8pOwo+ICsKPiArY2xlYW51cDoKPiArCWRybV9nZW1fb2JqZWN0X3VucmVm ZXJlbmNlX3VubG9ja2VkKCZ3b3JrLT5vbGRfcmJvLT5nZW1fYmFzZSk7Cj4gKwlyYWRlb25fZmVu Y2VfdW5yZWYoJndvcmstPmZlbmNlKTsKPiArCWtmcmVlKHdvcmspOwo+ICsKPiArCXJldHVybiBy Owo+ICAgfQo+ICAgCj4gICBzdGF0aWMgaW50CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=