From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 05/23] drm: Add local 'plane' variable for primary/cursor planes Date: Mon, 26 Mar 2018 22:49:06 +0200 Message-ID: <20180326204906.GC14155@phenom.ffwll.local> References: <20180322152313.6561-1-ville.syrjala@linux.intel.com> <20180322152313.6561-6-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id F3AEC89AD2 for ; Mon, 26 Mar 2018 20:49:10 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id o23so6777364wmf.0 for ; Mon, 26 Mar 2018 13:49:10 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180322152313.6561-6-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville Syrjala Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBNYXIgMjIsIDIwMTggYXQgMDU6MjI6NTVQTSArMDIwMCwgVmlsbGUgU3lyamFsYSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IAo+IE1ha2UgdGhlIGNvZGUgYSBiaXQgbW9yZSByZWFkYWJsZSBieSBzdG9yaW5nIHRo ZSBwbGFuZSBwb2ludGVyIGluIGEKPiBsb2NhbCB2YXJpYWJsZSByYXRoZXIgdGhhbiBoYXZpbmcg dG8gZG8gY3J0Yy0+e3ByaW1hcnksY3Vyc29yfSBhbGwgdGhlCj4gdGltZS4KPiAKPiBTaWduZWQt b2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyAgfCAzMiArKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMgfCAzMiArKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDM3IGluc2Vy dGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4gaW5kZXggN2E5NzNh ZGE3MTk1Li44NTUyZWQ0MTkwNTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9j cnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwo+IEBAIC00MDIsNiArNDAy LDcgQEAgaW50IGRybV9tb2RlX2dldGNydGMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgewo+ ICAJc3RydWN0IGRybV9tb2RlX2NydGMgKmNydGNfcmVzcCA9IGRhdGE7Cj4gIAlzdHJ1Y3QgZHJt X2NydGMgKmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiAgCj4gIAlpZiAoIWRy bV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfTU9ERVNFVCkpCj4gIAkJcmV0dXJuIC1F SU5WQUw7Cj4gQEAgLTQxMCwyMSArNDExLDIzIEBAIGludCBkcm1fbW9kZV9nZXRjcnRjKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gIAlpZiAoIWNydGMpCj4gIAkJcmV0dXJuIC1FTk9FTlQ7Cj4g IAo+ICsJcGxhbmUgPSBjcnRjLT5wcmltYXJ5Owo+ICsKPiAgCWNydGNfcmVzcC0+Z2FtbWFfc2l6 ZSA9IGNydGMtPmdhbW1hX3NpemU7Cj4gIAo+IC0JZHJtX21vZGVzZXRfbG9jaygmY3J0Yy0+cHJp bWFyeS0+bXV0ZXgsIE5VTEwpOwo+IC0JaWYgKGNydGMtPnByaW1hcnktPnN0YXRlICYmIGNydGMt PnByaW1hcnktPnN0YXRlLT5mYikKPiAtCQljcnRjX3Jlc3AtPmZiX2lkID0gY3J0Yy0+cHJpbWFy eS0+c3RhdGUtPmZiLT5iYXNlLmlkOwo+IC0JZWxzZSBpZiAoIWNydGMtPnByaW1hcnktPnN0YXRl ICYmIGNydGMtPnByaW1hcnktPmZiKQo+IC0JCWNydGNfcmVzcC0+ZmJfaWQgPSBjcnRjLT5wcmlt YXJ5LT5mYi0+YmFzZS5pZDsKPiArCWRybV9tb2Rlc2V0X2xvY2soJnBsYW5lLT5tdXRleCwgTlVM TCk7Cj4gKwlpZiAocGxhbmUtPnN0YXRlICYmIHBsYW5lLT5zdGF0ZS0+ZmIpCj4gKwkJY3J0Y19y ZXNwLT5mYl9pZCA9IHBsYW5lLT5zdGF0ZS0+ZmItPmJhc2UuaWQ7Cj4gKwllbHNlIGlmICghcGxh bmUtPnN0YXRlICYmIHBsYW5lLT5mYikKPiArCQljcnRjX3Jlc3AtPmZiX2lkID0gcGxhbmUtPmZi LT5iYXNlLmlkOwo+ICAJZWxzZQo+ICAJCWNydGNfcmVzcC0+ZmJfaWQgPSAwOwo+ICAKPiAtCWlm IChjcnRjLT5wcmltYXJ5LT5zdGF0ZSkgewo+IC0JCWNydGNfcmVzcC0+eCA9IGNydGMtPnByaW1h cnktPnN0YXRlLT5zcmNfeCA+PiAxNjsKPiAtCQljcnRjX3Jlc3AtPnkgPSBjcnRjLT5wcmltYXJ5 LT5zdGF0ZS0+c3JjX3kgPj4gMTY7Cj4gKwlpZiAocGxhbmUtPnN0YXRlKSB7Cj4gKwkJY3J0Y19y ZXNwLT54ID0gcGxhbmUtPnN0YXRlLT5zcmNfeCA+PiAxNjsKPiArCQljcnRjX3Jlc3AtPnkgPSBw bGFuZS0+c3RhdGUtPnNyY195ID4+IDE2Owo+ICAJfQo+IC0JZHJtX21vZGVzZXRfdW5sb2NrKCZj cnRjLT5wcmltYXJ5LT5tdXRleCk7Cj4gKwlkcm1fbW9kZXNldF91bmxvY2soJnBsYW5lLT5tdXRl eCk7Cj4gIAo+ICAJZHJtX21vZGVzZXRfbG9jaygmY3J0Yy0+bXV0ZXgsIE5VTEwpOwo+ICAJaWYg KGNydGMtPnN0YXRlKSB7Cj4gQEAgLTU1NCw2ICs1NTcsNyBAQCBpbnQgZHJtX21vZGVfc2V0Y3J0 YyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAJc3RydWN0IGRybV9tb2Rl X2NvbmZpZyAqY29uZmlnID0gJmRldi0+bW9kZV9jb25maWc7Cj4gIAlzdHJ1Y3QgZHJtX21vZGVf Y3J0YyAqY3J0Y19yZXEgPSBkYXRhOwo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ICsJc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqKmNvbm5lY3Rv cl9zZXQgPSBOVUxMLCAqY29ubmVjdG9yOwo+ICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIg PSBOVUxMOwo+ICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSBOVUxMOwo+IEBAIC01 ODAsNiArNTg0LDggQEAgaW50IGRybV9tb2RlX3NldGNydGMoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKCkNvdWxkIGRvIHRoZSBzYW1lIGZvciBzZXRjb25maWdfaW50ZXJuYWwn cyB0bXAtPnByaW1hcnksIGlmIHlvdSdyZSBib3JlZC4KCj4gIAl9Cj4gIAlEUk1fREVCVUdfS01T KCJbQ1JUQzolZDolc11cbiIsIGNydGMtPmJhc2UuaWQsIGNydGMtPm5hbWUpOwo+ICAKPiArCXBs YW5lID0gY3J0Yy0+cHJpbWFyeTsKPiArCj4gIAltdXRleF9sb2NrKCZjcnRjLT5kZXYtPm1vZGVf Y29uZmlnLm11dGV4KTsKPiAgCWRybV9tb2Rlc2V0X2FjcXVpcmVfaW5pdCgmY3R4LCBEUk1fTU9E RVNFVF9BQ1FVSVJFX0lOVEVSUlVQVElCTEUpOwo+ICByZXRyeToKPiBAQCAtNTkwLDEyICs1OTYs MTIgQEAgaW50IGRybV9tb2RlX3NldGNydGMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAq ZGF0YSwKPiAgCQkvKiBJZiB3ZSBoYXZlIGEgbW9kZSB3ZSBuZWVkIGEgZnJhbWVidWZmZXIuICov Cj4gIAkJLyogSWYgd2UgcGFzcyAtMSwgc2V0IHRoZSBtb2RlIHdpdGggdGhlIGN1cnJlbnRseSBi b3VuZCBmYiAqLwo+ICAJCWlmIChjcnRjX3JlcS0+ZmJfaWQgPT0gLTEpIHsKPiAtCQkJaWYgKCFj cnRjLT5wcmltYXJ5LT5mYikgewo+ICsJCQlpZiAoIXBsYW5lLT5mYikgewo+ICAJCQkJRFJNX0RF QlVHX0tNUygiQ1JUQyBkb2Vzbid0IGhhdmUgY3VycmVudCBGQlxuIik7Cj4gIAkJCQlyZXQgPSAt RUlOVkFMOwo+ICAJCQkJZ290byBvdXQ7Cj4gIAkJCX0KPiAtCQkJZmIgPSBjcnRjLT5wcmltYXJ5 LT5mYjsKPiArCQkJZmIgPSBwbGFuZS0+ZmI7Cj4gIAkJCS8qIE1ha2UgcmVmY291bnRpbmcgc3lt bWV0cmljIHdpdGggdGhlIGxvb2t1cCBwYXRoLiAqLwo+ICAJCQlkcm1fZnJhbWVidWZmZXJfZ2V0 KGZiKTsKPiAgCQl9IGVsc2Ugewo+IEBAIC02MjcsOCArNjMzLDggQEAgaW50IGRybV9tb2RlX3Nl dGNydGMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgCQkgKiBtYXRjaCBy ZWFsIGhhcmR3YXJlIGNhcGFiaWxpdGllcy4gU2tpcCB0aGUgY2hlY2sgaW4gdGhhdAo+ICAJCSAq IGNhc2UuCj4gIAkJICovCj4gLQkJaWYgKCFjcnRjLT5wcmltYXJ5LT5mb3JtYXRfZGVmYXVsdCkg ewo+IC0JCQlyZXQgPSBkcm1fcGxhbmVfY2hlY2tfcGl4ZWxfZm9ybWF0KGNydGMtPnByaW1hcnks Cj4gKwkJaWYgKCFwbGFuZS0+Zm9ybWF0X2RlZmF1bHQpIHsKPiArCQkJcmV0ID0gZHJtX3BsYW5l X2NoZWNrX3BpeGVsX2Zvcm1hdChwbGFuZSwKPiAgCQkJCQkJCSAgIGZiLT5mb3JtYXQtPmZvcm1h dCwKPiAgCQkJCQkJCSAgIGZiLT5tb2RpZmllcik7Cj4gIAkJCWlmIChyZXQpIHsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9w bGFuZS5jCj4gaW5kZXggNmQyYTZlNDI4YTNlLi4zOGUyYTYyOGJmYTIgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9w bGFuZS5jCj4gQEAgLTc1Niw2ICs3NTYsNyBAQCBzdGF0aWMgaW50IGRybV9tb2RlX2N1cnNvcl91 bml2ZXJzYWwoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCQkJICAgICBzdHJ1Y3QgZHJtX21v ZGVzZXRfYWNxdWlyZV9jdHggKmN0eCkKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNydGMtPmRldjsKPiArCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gY3J0Yy0+Y3Vyc29yOwo+ ICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBOVUxMOwo+ICAJc3RydWN0IGRybV9tb2Rl X2ZiX2NtZDIgZmJyZXEgPSB7Cj4gIAkJLndpZHRoID0gcmVxLT53aWR0aCwKPiBAQCAtNzY5LDgg Kzc3MCw4IEBAIHN0YXRpYyBpbnQgZHJtX21vZGVfY3Vyc29yX3VuaXZlcnNhbChzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCj4gIAl1aW50MzJfdCBzcmNfdyA9IDAsIHNyY19oID0gMDsKPiAgCWludCBy ZXQgPSAwOwo+ICAKPiAtCUJVR19PTighY3J0Yy0+Y3Vyc29yKTsKPiAtCVdBUk5fT04oY3J0Yy0+ Y3Vyc29yLT5jcnRjICE9IGNydGMgJiYgY3J0Yy0+Y3Vyc29yLT5jcnRjICE9IE5VTEwpOwo+ICsJ QlVHX09OKCFwbGFuZSk7Cj4gKwlXQVJOX09OKHBsYW5lLT5jcnRjICE9IGNydGMgJiYgcGxhbmUt PmNydGMgIT0gTlVMTCk7Cj4gIAo+ICAJLyoKPiAgCSAqIE9idGFpbiBmYiB3ZSdsbCBiZSB1c2lu ZyAoZWl0aGVyIG5ldyBvciBleGlzdGluZykgYW5kIHRha2UgYW4gZXh0cmEKPiBAQCAtNzkwLDcg Kzc5MSw3IEBAIHN0YXRpYyBpbnQgZHJtX21vZGVfY3Vyc29yX3VuaXZlcnNhbChzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCj4gIAkJCWZiID0gTlVMTDsKPiAgCQl9Cj4gIAl9IGVsc2Ugewo+IC0JCWZi ID0gY3J0Yy0+Y3Vyc29yLT5mYjsKPiArCQlmYiA9IHBsYW5lLT5mYjsKPiAgCQlpZiAoZmIpCj4g IAkJCWRybV9mcmFtZWJ1ZmZlcl9nZXQoZmIpOwo+ICAJfQo+IEBAIC04MTAsNyArODExLDcgQEAg c3RhdGljIGludCBkcm1fbW9kZV9jdXJzb3JfdW5pdmVyc2FsKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKPiAgCQlzcmNfaCA9IGZiLT5oZWlnaHQgPDwgMTY7Cj4gIAl9Cj4gIAo+IC0JcmV0ID0gX19z ZXRwbGFuZV9pbnRlcm5hbChjcnRjLT5jdXJzb3IsIGNydGMsIGZiLAo+ICsJcmV0ID0gX19zZXRw bGFuZV9pbnRlcm5hbChwbGFuZSwgY3J0YywgZmIsCj4gIAkJCQkgIGNydGNfeCwgY3J0Y195LCBj cnRjX3csIGNydGNfaCwKPiAgCQkJCSAgMCwgMCwgc3JjX3csIHNyY19oLCBjdHgpOwo+ICAKPiBA QCAtOTMxLDYgKzkzMiw3IEBAIGludCBkcm1fbW9kZV9wYWdlX2ZsaXBfaW9jdGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiAgewo+ICAJc3RydWN0IGRybV9tb2RlX2NydGNfcGFnZV9mbGlwX3Rh cmdldCAqcGFnZV9mbGlwID0gZGF0YTsKPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiArCXN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBO VUxMOwo+ICAJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZSA9IE5VTEw7Cj4gIAl1 MzIgdGFyZ2V0X3ZibGFuayA9IHBhZ2VfZmxpcC0+c2VxdWVuY2U7Cj4gQEAgLTk1OSw2ICs5NjEs OCBAQCBpbnQgZHJtX21vZGVfcGFnZV9mbGlwX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gIAlpZiAoIWNydGMpCj4gIAkJcmV0dXJuIC1FTk9FTlQ7Cj4gIAo+ICsJcGxhbmUgPSBjcnRj LT5wcmltYXJ5Owo+ICsKPiAgCWlmIChjcnRjLT5mdW5jcy0+cGFnZV9mbGlwX3RhcmdldCkgewo+ ICAJCXUzMiBjdXJyZW50X3ZibGFuazsKPiAgCQlpbnQgcjsKPiBAQCAtMTAwMywxMSArMTAwNywx MSBAQCBpbnQgZHJtX21vZGVfcGFnZV9mbGlwX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gIAlyZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZjcnRjLT5tdXRleCwgJmN0eCk7Cj4gIAlpZiAo cmV0KQo+ICAJCWdvdG8gb3V0Owo+IC0JcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmY3J0Yy0+cHJp bWFyeS0+bXV0ZXgsICZjdHgpOwo+ICsJcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmcGxhbmUtPm11 dGV4LCAmY3R4KTsKPiAgCWlmIChyZXQpCj4gIAkJZ290byBvdXQ7Cj4gIAo+IC0JaWYgKGNydGMt PnByaW1hcnktPmZiID09IE5VTEwpIHsKPiArCWlmIChwbGFuZS0+ZmIgPT0gTlVMTCkgewo+ICAJ CS8qIFRoZSBmcmFtZWJ1ZmZlciBpcyBjdXJyZW50bHkgdW5ib3VuZCwgcHJlc3VtYWJseQo+ICAJ CSAqIGR1ZSB0byBhIGhvdHBsdWcgZXZlbnQsIHRoYXQgdXNlcnNwYWNlIGhhcyBub3QKPiAgCQkg KiB5ZXQgZGlzY292ZXJlZC4KPiBAQCAtMTAyMyw3ICsxMDI3LDcgQEAgaW50IGRybV9tb2RlX3Bh Z2VfZmxpcF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJfQo+ICAKPiAgCWlmIChj cnRjLT5zdGF0ZSkgewo+IC0JCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlID0g Y3J0Yy0+cHJpbWFyeS0+c3RhdGU7Cj4gKwkJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAq c3RhdGUgPSBwbGFuZS0+c3RhdGU7Cj4gIAo+ICAJCXJldCA9IGRybV9mcmFtZWJ1ZmZlcl9jaGVj a19zcmNfY29vcmRzKHN0YXRlLT5zcmNfeCwKPiAgCQkJCQkJICAgICAgIHN0YXRlLT5zcmNfeSwK PiBAQCAtMTAzNiw3ICsxMDQwLDcgQEAgaW50IGRybV9tb2RlX3BhZ2VfZmxpcF9pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIG91dDsKPiAgCj4gLQlp ZiAoY3J0Yy0+cHJpbWFyeS0+ZmItPmZvcm1hdCAhPSBmYi0+Zm9ybWF0KSB7Cj4gKwlpZiAocGxh bmUtPmZiLT5mb3JtYXQgIT0gZmItPmZvcm1hdCkgewo+ICAJCURSTV9ERUJVR19LTVMoIlBhZ2Ug ZmxpcCBpcyBub3QgYWxsb3dlZCB0byBjaGFuZ2UgZnJhbWUgYnVmZmVyIGZvcm1hdC5cbiIpOwo+ ICAJCXJldCA9IC1FSU5WQUw7Cj4gIAkJZ290byBvdXQ7Cj4gQEAgLTEwNjAsNyArMTA2NCw3IEBA IGludCBkcm1fbW9kZV9wYWdlX2ZsaXBfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAg CQl9Cj4gIAl9Cj4gIAo+IC0JY3J0Yy0+cHJpbWFyeS0+b2xkX2ZiID0gY3J0Yy0+cHJpbWFyeS0+ ZmI7Cj4gKwlwbGFuZS0+b2xkX2ZiID0gcGxhbmUtPmZiOwo+ICAJaWYgKGNydGMtPmZ1bmNzLT5w YWdlX2ZsaXBfdGFyZ2V0KQo+ICAJCXJldCA9IGNydGMtPmZ1bmNzLT5wYWdlX2ZsaXBfdGFyZ2V0 KGNydGMsIGZiLCBlLAo+ICAJCQkJCQkgICAgcGFnZV9mbGlwLT5mbGFncywKPiBAQCAtMTA3Myw5 ICsxMDc3LDkgQEAgaW50IGRybV9tb2RlX3BhZ2VfZmxpcF9pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ICAJCWlmIChwYWdlX2ZsaXAtPmZsYWdzICYgRFJNX01PREVfUEFHRV9GTElQX0VW RU5UKQo+ICAJCQlkcm1fZXZlbnRfY2FuY2VsX2ZyZWUoZGV2LCAmZS0+YmFzZSk7Cj4gIAkJLyog S2VlcCB0aGUgb2xkIGZiLCBkb24ndCB1bnJlZiBpdC4gKi8KPiAtCQljcnRjLT5wcmltYXJ5LT5v bGRfZmIgPSBOVUxMOwo+ICsJCXBsYW5lLT5vbGRfZmIgPSBOVUxMOwo+ICAJfSBlbHNlIHsKPiAt CQljcnRjLT5wcmltYXJ5LT5mYiA9IGZiOwo+ICsJCXBsYW5lLT5mYiA9IGZiOwo+ICAJCS8qIFVu cmVmIG9ubHkgdGhlIG9sZCBmcmFtZWJ1ZmZlci4gKi8KPiAgCQlmYiA9IE5VTEw7Cj4gIAl9Cj4g QEAgLTEwODMsOSArMTA4Nyw5IEBAIGludCBkcm1fbW9kZV9wYWdlX2ZsaXBfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiAgb3V0Ogo+ICAJaWYgKGZiKQo+ICAJCWRybV9mcmFtZWJ1ZmZl cl9wdXQoZmIpOwo+IC0JaWYgKGNydGMtPnByaW1hcnktPm9sZF9mYikKPiAtCQlkcm1fZnJhbWVi dWZmZXJfcHV0KGNydGMtPnByaW1hcnktPm9sZF9mYik7Cj4gLQljcnRjLT5wcmltYXJ5LT5vbGRf ZmIgPSBOVUxMOwo+ICsJaWYgKHBsYW5lLT5vbGRfZmIpCj4gKwkJZHJtX2ZyYW1lYnVmZmVyX3B1 dChwbGFuZS0+b2xkX2ZiKTsKPiArCXBsYW5lLT5vbGRfZmIgPSBOVUxMOwo+ICAKClJldmlld2Vk LWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgoKPiAgCWlmIChyZXQg PT0gLUVERUFETEspIHsKPiAgCQlyZXQgPSBkcm1fbW9kZXNldF9iYWNrb2ZmKCZjdHgpOwo+IC0t IAo+IDIuMTYuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENv cnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=