From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: Re: [PATCH 02/13] drm/i915: Move rotation from intel_plane to intel_plane_state Date: Wed, 21 Jan 2015 12:03:32 +0200 Message-ID: <54BF7974.6040807@gmail.com> References: <1421726266-31941-1-git-send-email-matthew.d.roper@intel.com> <1421726266-31941-3-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id C62217200C for ; Wed, 21 Jan 2015 02:03:34 -0800 (PST) In-Reply-To: <1421726266-31941-3-git-send-email-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMDEvMjAvMjAxNSAwNTo1NyBBTSwgTWF0dCBSb3BlciB3cm90ZToKPiBSdW50aW1lIHN0YXRl IHRoYXQgY2FuIGJlIG1hbmlwdWxhdGVkIHZpYSBwcm9wZXJ0aWVzIHNob3VsZCBub3cgZ28gaW4K PiBpbnRlbF9wbGFuZV9zdGF0ZSBpbnN0ZWFkIHNvIHRoYXQgaXQgY2FuIGJlIHRyYWNrZWQgYXMg cGFydCBvZiBhbiBhdG9taWMKPiB0cmFuc2FjdGlvbi4KPgo+IFNpZ25lZC1vZmYtYnk6IE1hdHQg Um9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAzNiArKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8IDEwICsr KysrKysrKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jICAgICB8ICA0ICsr Ky0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICB8IDMzICsrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLQo+ICAgNCBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRp b25zKCspLCAyNyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPiBpbmRleCBjNWNiY2Q3Li43ODYzNDE0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+IEBAIC0yNDM1LDYgKzI0MzUsOCBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0 ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIHsKPiAgIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnN0YXRlID0KPiArCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShjcnRjLT5wcmltYXJ5LT5zdGF0 ZSk7Cj4gICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNy dGMpOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4gICAJaW50IHBsYW5l ID0gaW50ZWxfY3J0Yy0+cGxhbmU7Cj4gQEAgLTI1MzIsNyArMjUzNCw3IEBAIHN0YXRpYyB2b2lk IGk5eHhfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAgCQlp bnRlbF9jcnRjLT5kc3BhZGRyX29mZnNldCA9IGxpbmVhcl9vZmZzZXQ7Cj4gICAJfQo+Cj4gLQlp ZiAodG9faW50ZWxfcGxhbmUoY3J0Yy0+cHJpbWFyeSktPnJvdGF0aW9uID09IEJJVChEUk1fUk9U QVRFXzE4MCkpIHsKPiArCWlmIChzdGF0ZS0+cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgw KSkgewo+ICAgCQlkc3BjbnRyIHw9IERJU1BQTEFORV9ST1RBVEVfMTgwOwo+Cj4gICAJCXggKz0g KGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9zcmNfdyAtIDEpOwo+IEBAIC0yNTY4LDYgKzI1NzAs OCBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCj4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiAg IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ ICAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsK PiArCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUgPQo+ICsJCXRvX2ludGVsX3BsYW5l X3N0YXRlKGNydGMtPnByaW1hcnktPnN0YXRlKTsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqOwo+ICAgCWludCBwbGFuZSA9IGludGVsX2NydGMtPnBsYW5lOwo+ICAgCXVuc2ln bmVkIGxvbmcgbGluZWFyX29mZnNldDsKPiBAQCAtMjYzNCw3ICsyNjM4LDcgQEAgc3RhdGljIHZv aWQgaXJvbmxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ ICAgCQkJCQkgICAgICAgcGl4ZWxfc2l6ZSwKPiAgIAkJCQkJICAgICAgIGZiLT5waXRjaGVzWzBd KTsKPiAgIAlsaW5lYXJfb2Zmc2V0IC09IGludGVsX2NydGMtPmRzcGFkZHJfb2Zmc2V0Owo+IC0J aWYgKHRvX2ludGVsX3BsYW5lKGNydGMtPnByaW1hcnkpLT5yb3RhdGlvbiA9PSBCSVQoRFJNX1JP VEFURV8xODApKSB7Cj4gKwlpZiAoc3RhdGUtPnJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4 MCkpIHsKPiAgIAkJZHNwY250ciB8PSBESVNQUExBTkVfUk9UQVRFXzE4MDsKPgo+ICAgCQlpZiAo IUlTX0hBU1dFTEwoZGV2KSAmJiAhSVNfQlJPQURXRUxMKGRldikpIHsKPiBAQCAtMjY3Myw2ICsy Njc3LDggQEAgc3RhdGljIHZvaWQgc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCj4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsK PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl Owo+ICAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj KTsKPiArCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUgPQo+ICsJCXRvX2ludGVsX3Bs YW5lX3N0YXRlKGNydGMtPnByaW1hcnktPnN0YXRlKTsKPiAgIAlzdHJ1Y3QgaW50ZWxfZnJhbWVi dWZmZXIgKmludGVsX2ZiOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4g ICAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+IEBAIC0yNzMxLDcgKzI3MzcsNyBAQCBz dGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKPiAgIAl9Cj4KPiAgIAlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1BMQU5FX0dBTU1BX0RJ U0FCTEU7Cj4gLQlpZiAodG9faW50ZWxfcGxhbmUoY3J0Yy0+cHJpbWFyeSktPnJvdGF0aW9uID09 IEJJVChEUk1fUk9UQVRFXzE4MCkpCj4gKwlpZiAoc3RhdGUtPnJvdGF0aW9uID09IEJJVChEUk1f Uk9UQVRFXzE4MCkpCj4gICAJCXBsYW5lX2N0bCB8PSBQTEFORV9DVExfUk9UQVRFXzE4MDsKPgo+ ICAgCUk5MTVfV1JJVEUoUExBTkVfQ1RMKHBpcGUsIDApLCBwbGFuZV9jdGwpOwo+IEBAIC04MjE2 LDYgKzgyMjIsOCBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9jdXJzb3Ioc3RydWN0IGRybV9j cnRjICpjcnRjLCB1MzIgYmFzZSkKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ ZGV2Owo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7Cj4gICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRj KGNydGMpOwo+ICsJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSA9Cj4gKwkJdG9faW50 ZWxfcGxhbmVfc3RhdGUoY3J0Yy0+Y3Vyc29yLT5zdGF0ZSk7Cj4gICAJaW50IHBpcGUgPSBpbnRl bF9jcnRjLT5waXBlOwo+ICAgCXVpbnQzMl90IGNudGw7Cj4KPiBAQCAtODI0Miw3ICs4MjUwLDcg QEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfY3Vyc29yKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywg dTMyIGJhc2UpCj4gICAJCQljbnRsIHw9IENVUlNPUl9QSVBFX0NTQ19FTkFCTEU7Cj4gICAJfQo+ Cj4gLQlpZiAodG9faW50ZWxfcGxhbmUoY3J0Yy0+Y3Vyc29yKS0+cm90YXRpb24gPT0gQklUKERS TV9ST1RBVEVfMTgwKSkKPiArCWlmIChzdGF0ZS0+cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVf MTgwKSkKPiAgIAkJY250bCB8PSBDVVJTT1JfUk9UQVRFXzE4MDsKPgo+ICAgCWlmIChpbnRlbF9j cnRjLT5jdXJzb3JfY250bCAhPSBjbnRsKSB7Cj4gQEAgLTgyNjUsNiArODI3Myw4IEBAIHN0YXRp YyB2b2lkIGludGVsX2NydGNfdXBkYXRlX2N1cnNvcihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4g ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiAgIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAgCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiArCXN0cnVjdCBpbnRl bF9wbGFuZV9zdGF0ZSAqc3RhdGUgPQo+ICsJCXRvX2ludGVsX3BsYW5lX3N0YXRlKGNydGMtPmN1 cnNvci0+c3RhdGUpOwo+ICAgCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAgIAlpbnQg eCA9IGNydGMtPmN1cnNvcl94Owo+ICAgCWludCB5ID0gY3J0Yy0+Y3Vyc29yX3k7Cj4gQEAgLTgz MDMsOCArODMxMyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydGNfdXBkYXRlX2N1cnNvcihzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCj4gICAJSTkxNV9XUklURShDVVJQT1MocGlwZSksIHBvcyk7Cj4K PiAgIAkvKiBJTEsrIGRvIHRoaXMgYXV0b21hZ2ljYWxseSAqLwo+IC0JaWYgKEhBU19HTUNIX0RJ U1BMQVkoZGV2KSAmJgo+IC0JCXRvX2ludGVsX3BsYW5lKGNydGMtPmN1cnNvciktPnJvdGF0aW9u ID09IEJJVChEUk1fUk9UQVRFXzE4MCkpIHsKPiArCWlmIChIQVNfR01DSF9ESVNQTEFZKGRldikg JiYgc3RhdGUtPnJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4MCkpIHsKPiAgIAkJYmFzZSAr PSAoaW50ZWxfY3J0Yy0+Y3Vyc29yX2hlaWdodCAqCj4gICAJCQlpbnRlbF9jcnRjLT5jdXJzb3Jf d2lkdGggLSAxKSAqIDQ7Cj4gICAJfQo+IEBAIC0xMTc1Niw3ICsxMTc2NSw2IEBAIGludGVsX2No ZWNrX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgIAlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMgPSBzdGF0ZS0+YmFzZS5jcnRjOwo+ICAgCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjOwo+IC0Jc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2lu dGVsX3BsYW5lKHBsYW5lKTsKPiAgIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRl LT5iYXNlLmZiOwo+ICAgCXN0cnVjdCBkcm1fcmVjdCAqZGVzdCA9ICZzdGF0ZS0+ZHN0Owo+ICAg CXN0cnVjdCBkcm1fcmVjdCAqc3JjID0gJnN0YXRlLT5zcmM7Cj4gQEAgLTExNzkwLDcgKzExNzk4 LDcgQEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK PiAgIAkJaWYgKGludGVsX2NydGMtPnByaW1hcnlfZW5hYmxlZCAmJgo+ICAgCQkgICAgSU5URUxf SU5GTyhkZXYpLT5nZW4gPD0gNCAmJiAhSVNfRzRYKGRldikgJiYKPiAgIAkJICAgIGRldl9wcml2 LT5mYmMucGxhbmUgPT0gaW50ZWxfY3J0Yy0+cGxhbmUgJiYKPiAtCQkgICAgaW50ZWxfcGxhbmUt PnJvdGF0aW9uICE9IEJJVChEUk1fUk9UQVRFXzApKSB7Cj4gKwkJICAgIHN0YXRlLT5yb3RhdGlv biAhPSBCSVQoRFJNX1JPVEFURV8wKSkgewo+ICAgCQkJaW50ZWxfY3J0Yy0+YXRvbWljLmRpc2Fi bGVfZmJjID0gdHJ1ZTsKPiAgIAkJfQo+Cj4gQEAgLTExOTc0LDYgKzExOTgyLDcgQEAgc3RhdGlj IHN0cnVjdCBkcm1fcGxhbmUgKmludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gICAJCQkJCQkgICAgaW50IHBpcGUpCj4gICB7Cj4gICAJc3RydWN0IGlu dGVsX3BsYW5lICpwcmltYXJ5Owo+ICsJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZTsK PiAgIAljb25zdCB1aW50MzJfdCAqaW50ZWxfcHJpbWFyeV9mb3JtYXRzOwo+ICAgCWludCBudW1f Zm9ybWF0czsKPgo+IEBAIC0xMTk4NiwxMiArMTE5OTUsMTMgQEAgc3RhdGljIHN0cnVjdCBkcm1f cGxhbmUgKmludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gICAJCWtmcmVlKHByaW1hcnkpOwo+ICAgCQlyZXR1cm4gTlVMTDsKPiAgIAl9Cj4gKwlzdGF0 ZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKHByaW1hcnktPmJhc2Uuc3RhdGUpOwo+Cj4gICAJcHJp bWFyeS0+Y2FuX3NjYWxlID0gZmFsc2U7Cj4gICAJcHJpbWFyeS0+bWF4X2Rvd25zY2FsZSA9IDE7 Cj4gICAJcHJpbWFyeS0+cGlwZSA9IHBpcGU7Cj4gICAJcHJpbWFyeS0+cGxhbmUgPSBwaXBlOwo+ IC0JcHJpbWFyeS0+cm90YXRpb24gPSBCSVQoRFJNX1JPVEFURV8wKTsKPiArCXN0YXRlLT5yb3Rh dGlvbiA9IEJJVChEUk1fUk9UQVRFXzApOwoKSSdtIHRoaW5raW5nIGl0IHdvdWxkIGJlIGJldHRl ciB0byBzcGxpdCB0aGUgcGFydCBvZiAKaW50ZWxfcGxhbmVfZHVwbGljYXRlX3N0YXRlKCkgdGhh dCBhbGxvY2F0ZXMgdGhlIHN0YXRlIGludG8gYSBzZXBhcmF0ZSAKZnVuY3Rpb24gYW5kIGRvIHRo aXMgdGhlcmUuIFRoYXQgd2F5IHRoZXJlIGlzIGEgY2xlYXIgcGxhY2UgdG8gCmluaXRpYWxpemUg c3RhdGUgZGVmYXVsdCB2YWx1ZXMgbGlrZSB0aGlzLgoKQW5kZXIKCgoKPiAgIAlwcmltYXJ5LT5j aGVja19wbGFuZSA9IGludGVsX2NoZWNrX3ByaW1hcnlfcGxhbmU7Cj4gICAJcHJpbWFyeS0+Y29t bWl0X3BsYW5lID0gaW50ZWxfY29tbWl0X3ByaW1hcnlfcGxhbmU7Cj4gICAJaWYgKEhBU19GQkMo ZGV2KSAmJiBJTlRFTF9JTkZPKGRldiktPmdlbiA8IDQpCj4gQEAgLTEyMDE5LDcgKzEyMDI5LDcg QEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCWlmIChkZXYtPm1vZGVfY29uZmlnLnJvdGF0aW9u X3Byb3BlcnR5KQo+ICAgCQkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJnByaW1hcnktPmJh c2UuYmFzZSwKPiAgIAkJCQlkZXYtPm1vZGVfY29uZmlnLnJvdGF0aW9uX3Byb3BlcnR5LAo+IC0J CQkJcHJpbWFyeS0+cm90YXRpb24pOwo+ICsJCQkJc3RhdGUtPnJvdGF0aW9uKTsKPiAgIAl9Cj4K PiAgIAlkcm1fcGxhbmVfaGVscGVyX2FkZCgmcHJpbWFyeS0+YmFzZSwgJmludGVsX3BsYW5lX2hl bHBlcl9mdW5jcyk7Cj4gQEAgLTEyMTQ3LDYgKzEyMTU3LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1f cGxhbmUgKmludGVsX2N1cnNvcl9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiAgIAkJCQkJCSAgIGludCBwaXBlKQo+ICAgewo+ICAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqY3Vy c29yOwo+ICsJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZTsKPgo+ICAgCWN1cnNvciA9 IGt6YWxsb2Moc2l6ZW9mKCpjdXJzb3IpLCBHRlBfS0VSTkVMKTsKPiAgIAlpZiAoY3Vyc29yID09 IE5VTEwpCj4gQEAgLTEyMTU3LDEyICsxMjE2OCwxMyBAQCBzdGF0aWMgc3RydWN0IGRybV9wbGFu ZSAqaW50ZWxfY3Vyc29yX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAg CQlrZnJlZShjdXJzb3IpOwo+ICAgCQlyZXR1cm4gTlVMTDsKPiAgIAl9Cj4gKwlzdGF0ZSA9IHRv X2ludGVsX3BsYW5lX3N0YXRlKGN1cnNvci0+YmFzZS5zdGF0ZSk7Cj4KPiAgIAljdXJzb3ItPmNh bl9zY2FsZSA9IGZhbHNlOwo+ICAgCWN1cnNvci0+bWF4X2Rvd25zY2FsZSA9IDE7Cj4gICAJY3Vy c29yLT5waXBlID0gcGlwZTsKPiAgIAljdXJzb3ItPnBsYW5lID0gcGlwZTsKPiAtCWN1cnNvci0+ cm90YXRpb24gPSBCSVQoRFJNX1JPVEFURV8wKTsKPiArCXN0YXRlLT5yb3RhdGlvbiA9IEJJVChE Uk1fUk9UQVRFXzApOwo+ICAgCWN1cnNvci0+Y2hlY2tfcGxhbmUgPSBpbnRlbF9jaGVja19jdXJz b3JfcGxhbmU7Cj4gICAJY3Vyc29yLT5jb21taXRfcGxhbmUgPSBpbnRlbF9jb21taXRfY3Vyc29y X3BsYW5lOwo+Cj4gQEAgLTEyMTgxLDcgKzEyMTkzLDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxh bmUgKmludGVsX2N1cnNvcl9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAg IAkJaWYgKGRldi0+bW9kZV9jb25maWcucm90YXRpb25fcHJvcGVydHkpCj4gICAJCQlkcm1fb2Jq ZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY3Vyc29yLT5iYXNlLmJhc2UsCj4gICAJCQkJZGV2LT5tb2Rl X2NvbmZpZy5yb3RhdGlvbl9wcm9wZXJ0eSwKPiAtCQkJCWN1cnNvci0+cm90YXRpb24pOwo+ICsJ CQkJc3RhdGUtPnJvdGF0aW9uKTsKPiAgIAl9Cj4KPiAgIAlkcm1fcGxhbmVfaGVscGVyX2FkZCgm Y3Vyc29yLT5iYXNlLCAmaW50ZWxfcGxhbmVfaGVscGVyX2Z1bmNzKTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+IGluZGV4IGM4YzBiN2YuLjkxOGNjZTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+IEBAIC0yNTAsNiArMjUwLDkgQEAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRl IHsKPiAgIAlzdHJ1Y3QgZHJtX3JlY3QgY2xpcDsKPiAgIAlib29sIHZpc2libGU7Cj4KPiArCS8q IEludGVsLXNwZWNpZmljIHBsYW5lIHByb3BlcnRpZXMgKi8KPiArCXVuc2lnbmVkIGludCByb3Rh dGlvbjsKPiArCj4gICAJLyoKPiAgIAkgKiB1c2VkIG9ubHkgZm9yIHNwcml0ZSBwbGFuZXMgdG8g ZGV0ZXJtaW5lIHdoZW4gdG8gaW1wbGljaXRseQo+ICAgCSAqIGVuYWJsZS9kaXNhYmxlIHRoZSBw cmltYXJ5IHBsYW5lCj4gQEAgLTUwOSw3ICs1MTIsNiBAQCBzdHJ1Y3QgaW50ZWxfcGxhbmUgewo+ ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4gICAJYm9vbCBjYW5fc2NhbGU7 Cj4gICAJaW50IG1heF9kb3duc2NhbGU7Cj4gLQl1bnNpZ25lZCBpbnQgcm90YXRpb247Cj4KPiAg IAkvKiBTaW5jZSB3ZSBuZWVkIHRvIGNoYW5nZSB0aGUgd2F0ZXJtYXJrcyBiZWZvcmUvYWZ0ZXIK PiAgIAkgKiBlbmFibGluZy9kaXNhYmxpbmcgdGhlIHBsYW5lcywgd2UgbmVlZCB0byBzdG9yZSB0 aGUgcGFyYW1ldGVycyBoZXJlCj4gQEAgLTUxOCw2ICs1MjAsMTIgQEAgc3RydWN0IGludGVsX3Bs YW5lIHsKPiAgIAkgKi8KPiAgIAlzdHJ1Y3QgaW50ZWxfcGxhbmVfd21fcGFyYW1ldGVycyB3bTsK Pgo+ICsJLyoKPiArCSAqIE5PVEU6IERvIG5vdCBwbGFjZSBuZXcgcGxhbmUgc3RhdGUgZmllbGRz IGhlcmUgKGUuZy4sIHdoZW4gYWRkaW5nCj4gKwkgKiBuZXcgcGxhbmUgcHJvcGVydGllcykuICBO ZXcgcnVudGltZSBzdGF0ZSBzaG91bGQgbm93IGJlIHBsYWNlZCBpbgo+ICsJICogdGhlIGludGVs X3BsYW5lX3N0YXRlIHN0cnVjdHVyZSBhbmQgYWNjZXNzZWQgdmlhIGRybV9wbGFuZS0+c3RhdGUu Cj4gKwkgKi8KPiArCj4gICAJdm9pZCAoKnVwZGF0ZV9wbGFuZSkoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCj4gICAJCQkgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIAkJCSAgICAgc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2ZiYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiBpbmRl eCA1YjFkN2M0Li4zZTg3NDU0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2ZiYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiBAQCAt NDk2LDYgKzQ5Niw3IEBAIHZvaWQgaW50ZWxfZmJjX3VwZGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7Cj4gICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gTlVMTCwgKnRtcF9jcnRjOwo+ICAg CXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwo+ICsJc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlICpwcmltYXJ5X3N0YXRlOwo+ICAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwo+ICAg CXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4gICAJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGU7Cj4gQEAgLTU0MCw2ICs1NDEsNyBAQCB2b2lkIGlu dGVsX2ZiY191cGRhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAl9Cj4KPiAgIAlpbnRl bF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiArCXByaW1hcnlfc3RhdGUgPSB0b19pbnRl bF9wbGFuZV9zdGF0ZShjcnRjLT5wcmltYXJ5LT5zdGF0ZSk7Cj4gICAJZmIgPSBjcnRjLT5wcmlt YXJ5LT5mYjsKPiAgIAlvYmogPSBpbnRlbF9mYl9vYmooZmIpOwo+ICAgCWFkanVzdGVkX21vZGUg PSAmaW50ZWxfY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gQEAgLTU5NSw3ICs1 OTcsNyBAQCB2b2lkIGludGVsX2ZiY191cGRhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAg IAkJZ290byBvdXRfZGlzYWJsZTsKPiAgIAl9Cj4gICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2Vu IDw9IDQgJiYgIUlTX0c0WChkZXYpICYmCj4gLQkgICAgdG9faW50ZWxfcGxhbmUoY3J0Yy0+cHJp bWFyeSktPnJvdGF0aW9uICE9IEJJVChEUk1fUk9UQVRFXzApKSB7Cj4gKwkgICAgcHJpbWFyeV9z dGF0ZS0+cm90YXRpb24gIT0gQklUKERSTV9ST1RBVEVfMCkpIHsKPiAgIAkJaWYgKHNldF9ub19m YmNfcmVhc29uKGRldl9wcml2LCBGQkNfVU5TVVBQT1JURURfTU9ERSkpCj4gICAJCQlEUk1fREVC VUdfS01TKCJSb3RhdGlvbiB1bnN1cHBvcnRlZCwgZGlzYWJsaW5nXG4iKTsKPiAgIAkJZ290byBv dXRfZGlzYWJsZTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3By aXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IGluZGV4IDBhNjA5 NGUuLjE0MGM1YjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3By aXRlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IEBAIC0x ODcsNiArMTg3LDggQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxh bmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZHJtX3BsYW5lLT5kZXY7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPiAgIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0g dG9faW50ZWxfcGxhbmUoZHJtX3BsYW5lKTsKPiArCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAq c3RhdGUgPQo+ICsJCXRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9wbGFuZS0+c3RhdGUpOwo+ICAg CWNvbnN0IGludCBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7Cj4gICAJY29uc3QgaW50IHBsYW5l ID0gaW50ZWxfcGxhbmUtPnBsYW5lICsgMTsKPiAgIAl1MzIgcGxhbmVfY3RsLCBzdHJpZGU7Cj4g QEAgLTI1Niw3ICsyNTgsNyBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRy bV9wbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAgCWRlZmF1bHQ6Cj4gICAJCUJVRygp Owo+ICAgCX0KPiAtCWlmIChpbnRlbF9wbGFuZS0+cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVf MTgwKSkKPiArCWlmIChzdGF0ZS0+cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkKPiAg IAkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9ST1RBVEVfMTgwOwo+Cj4gICAJcGxhbmVfY3RsIHw9 IFBMQU5FX0NUTF9FTkFCTEU7Cj4gQEAgLTQwNyw2ICs0MDksNyBAQCB2bHZfdXBkYXRlX3BsYW5l KHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAgCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkcGxhbmUtPmRldjsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAgCXN0cnVjdCBpbnRlbF9w bGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShkcGxhbmUpOwo+ICsJc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICpzdGF0ZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKGRwbGFuZS0+c3Rh dGUpOwo+ICAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjKTsKPiAgIAlpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOwo+ICAgCWludCBwbGFuZSA9 IGludGVsX3BsYW5lLT5wbGFuZTsKPiBAQCAtNDkzLDcgKzQ5Niw3IEBAIHZsdl91cGRhdGVfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqZHBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gICAJ CQkJCQkJZmItPnBpdGNoZXNbMF0pOwo+ICAgCWxpbmVhcl9vZmZzZXQgLT0gc3Byc3VyZl9vZmZz ZXQ7Cj4KPiAtCWlmIChpbnRlbF9wbGFuZS0+cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgw KSkgewo+ICsJaWYgKHN0YXRlLT5yb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7Cj4g ICAJCXNwcmN0bCB8PSBTUF9ST1RBVEVfMTgwOwo+Cj4gICAJCXggKz0gc3JjX3c7Cj4gQEAgLTYw OCw2ICs2MTEsNyBAQCBpdmJfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5l LT5kZXY7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPiAgIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxf cGxhbmUocGxhbmUpOwo+ICsJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSA9IHRvX2lu dGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSk7Cj4gICAJc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICAgCWludCBwaXBlID0gaW50ZWxfcGxh bmUtPnBpcGU7Cj4gICAJdTMyIHNwcmN0bCwgc3Byc2NhbGUgPSAwOwo+IEBAIC02ODQsNyArNjg4 LDcgQEAgaXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRy bV9jcnRjICpjcnRjLAo+ICAgCQkJCQkgICAgICAgcGl4ZWxfc2l6ZSwgZmItPnBpdGNoZXNbMF0p Owo+ICAgCWxpbmVhcl9vZmZzZXQgLT0gc3Byc3VyZl9vZmZzZXQ7Cj4KPiAtCWlmIChpbnRlbF9w bGFuZS0+cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewo+ICsJaWYgKHN0YXRlLT5y b3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7Cj4gICAJCXNwcmN0bCB8PSBTUFJJVEVf Uk9UQVRFXzE4MDsKPgo+ICAgCQkvKiBIU1cgYW5kIEJEVyBkb2VzIHRoaXMgYXV0b21hZ2ljYWxs eSBpbiBoYXJkd2FyZSAqLwo+IEBAIC04MTMsNiArODE3LDcgQEAgaWxrX3VwZGF0ZV9wbGFuZShz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAgCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2Owo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gICAJc3RydWN0IGludGVsX3BsYW5l ICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKPiArCXN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqc3RhdGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUpOwo+ ICAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsK PiAgIAlpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOwo+ICAgCXVuc2lnbmVkIGxvbmcgZHZz c3VyZl9vZmZzZXQsIGxpbmVhcl9vZmZzZXQ7Cj4gQEAgLTg4NCw3ICs4ODksNyBAQCBpbGtfdXBk YXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMs Cj4gICAJCQkJCSAgICAgICBwaXhlbF9zaXplLCBmYi0+cGl0Y2hlc1swXSk7Cj4gICAJbGluZWFy X29mZnNldCAtPSBkdnNzdXJmX29mZnNldDsKPgo+IC0JaWYgKGludGVsX3BsYW5lLT5yb3RhdGlv biA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7Cj4gKwlpZiAoc3RhdGUtPnJvdGF0aW9uID09IEJJ VChEUk1fUk9UQVRFXzE4MCkpIHsKPiAgIAkJZHZzY250ciB8PSBEVlNfUk9UQVRFXzE4MDsKPgo+ ICAgCQl4ICs9IHNyY193Owo+IEBAIC0xMTI1LDcgKzExMzAsNyBAQCBpbnRlbF9jaGVja19zcHJp dGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gICAJbWluX3NjYWxlID0gaW50ZWxf cGxhbmUtPmNhbl9zY2FsZSA/IDEgOiAoMSA8PCAxNik7Cj4KPiAgIAlkcm1fcmVjdF9yb3RhdGUo c3JjLCBmYi0+d2lkdGggPDwgMTYsIGZiLT5oZWlnaHQgPDwgMTYsCj4gLQkJCWludGVsX3BsYW5l LT5yb3RhdGlvbik7Cj4gKwkJCXN0YXRlLT5yb3RhdGlvbik7Cj4KPiAgIAloc2NhbGUgPSBkcm1f cmVjdF9jYWxjX2hzY2FsZV9yZWxheGVkKHNyYywgZHN0LCBtaW5fc2NhbGUsIG1heF9zY2FsZSk7 Cj4gICAJQlVHX09OKGhzY2FsZSA8IDApOwo+IEBAIC0xMTY2LDcgKzExNzEsNyBAQCBpbnRlbF9j aGVja19zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gICAJCQkJICAgICBk cm1fcmVjdF9oZWlnaHQoZHN0KSAqIHZzY2FsZSAtIGRybV9yZWN0X2hlaWdodChzcmMpKTsKPgo+ ICAgCQlkcm1fcmVjdF9yb3RhdGVfaW52KHNyYywgZmItPndpZHRoIDw8IDE2LCBmYi0+aGVpZ2h0 IDw8IDE2LAo+IC0JCQkJICAgIGludGVsX3BsYW5lLT5yb3RhdGlvbik7Cj4gKwkJCQkgICAgc3Rh dGUtPnJvdGF0aW9uKTsKPgo+ICAgCQkvKiBzYW5pdHkgY2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBz cmMgdmlld3BvcnQgd2Fzbid0IGVubGFyZ2VkICovCj4gICAJCVdBUk5fT04oc3JjLT54MSA8IChp bnQpIHN0YXRlLT5iYXNlLnNyY194IHx8Cj4gQEAgLTEzNjcsNyArMTM3Miw3IEBAIGludCBpbnRl bF9wbGFuZV9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gICAJCQkgICAg IHVpbnQ2NF90IHZhbCkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUt PmRldjsKPiAtCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFu ZShwbGFuZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlID0gdG9faW50ZWxf cGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKTsKPiAgIAl1aW50NjRfdCBvbGRfdmFsOwo+ICAgCWlu dCByZXQgPSAtRU5PRU5UOwo+Cj4gQEAgLTEzNzYsMTQgKzEzODEsMTQgQEAgaW50IGludGVsX3Bs YW5lX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgIAkJaWYgKGh3ZWln aHQzMih2YWwgJiAweGYpICE9IDEpCj4gICAJCQlyZXR1cm4gLUVJTlZBTDsKPgo+IC0JCWlmIChp bnRlbF9wbGFuZS0+cm90YXRpb24gPT0gdmFsKQo+ICsJCWlmIChzdGF0ZS0+cm90YXRpb24gPT0g dmFsKQo+ICAgCQkJcmV0dXJuIDA7Cj4KPiAtCQlvbGRfdmFsID0gaW50ZWxfcGxhbmUtPnJvdGF0 aW9uOwo+IC0JCWludGVsX3BsYW5lLT5yb3RhdGlvbiA9IHZhbDsKPiArCQlvbGRfdmFsID0gc3Rh dGUtPnJvdGF0aW9uOwo+ICsJCXN0YXRlLT5yb3RhdGlvbiA9IHZhbDsKPiAgIAkJcmV0ID0gaW50 ZWxfcGxhbmVfcmVzdG9yZShwbGFuZSk7Cj4gICAJCWlmIChyZXQpCj4gLQkJCWludGVsX3BsYW5l LT5yb3RhdGlvbiA9IG9sZF92YWw7Cj4gKwkJCXN0YXRlLT5yb3RhdGlvbiA9IG9sZF92YWw7Cj4g ICAJfQo+Cj4gICAJcmV0dXJuIHJldDsKPiBAQCAtMTQ1Nyw2ICsxNDYyLDcgQEAgaW50Cj4gICBp bnRlbF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlLCBp bnQgcGxhbmUpCj4gICB7Cj4gICAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZTsKPiAr CXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGU7Cj4gICAJdW5zaWduZWQgbG9uZyBwb3Nz aWJsZV9jcnRjczsKPiAgIAljb25zdCB1aW50MzJfdCAqcGxhbmVfZm9ybWF0czsKPiAgIAlpbnQg bnVtX3BsYW5lX2Zvcm1hdHM7Cj4gQEAgLTE0NzUsNiArMTQ4MSw3IEBAIGludGVsX3BsYW5lX2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSkKPiAg IAkJa2ZyZWUoaW50ZWxfcGxhbmUpOwo+ICAgCQlyZXR1cm4gLUVOT01FTTsKPiAgIAl9Cj4gKwlz dGF0ZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKGludGVsX3BsYW5lLT5iYXNlLnN0YXRlKTsKPgo+ ICAgCXN3aXRjaCAoSU5URUxfSU5GTyhkZXYpLT5nZW4pIHsKPiAgIAljYXNlIDU6Cj4gQEAgLTE1 NDUsNyArMTU1Miw3IEBAIGludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg ZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSkKPgo+ICAgCWludGVsX3BsYW5lLT5waXBlID0gcGlw ZTsKPiAgIAlpbnRlbF9wbGFuZS0+cGxhbmUgPSBwbGFuZTsKPiAtCWludGVsX3BsYW5lLT5yb3Rh dGlvbiA9IEJJVChEUk1fUk9UQVRFXzApOwo+ICsJc3RhdGUtPnJvdGF0aW9uID0gQklUKERSTV9S T1RBVEVfMCk7Cj4gICAJaW50ZWxfcGxhbmUtPmNoZWNrX3BsYW5lID0gaW50ZWxfY2hlY2tfc3By aXRlX3BsYW5lOwo+ICAgCWludGVsX3BsYW5lLT5jb21taXRfcGxhbmUgPSBpbnRlbF9jb21taXRf c3ByaXRlX3BsYW5lOwo+ICAgCXBvc3NpYmxlX2NydGNzID0gKDEgPDwgcGlwZSk7Cj4gQEAgLTE1 NjcsNyArMTU3NCw3IEBAIGludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg ZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSkKPiAgIAlpZiAoZGV2LT5tb2RlX2NvbmZpZy5yb3Rh dGlvbl9wcm9wZXJ0eSkKPiAgIAkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmludGVsX3Bs YW5lLT5iYXNlLmJhc2UsCj4gICAJCQkJCSAgIGRldi0+bW9kZV9jb25maWcucm90YXRpb25fcHJv cGVydHksCj4gLQkJCQkJICAgaW50ZWxfcGxhbmUtPnJvdGF0aW9uKTsKPiArCQkJCQkgICBzdGF0 ZS0+cm90YXRpb24pOwo+Cj4gICAJZHJtX3BsYW5lX2hlbHBlcl9hZGQoJmludGVsX3BsYW5lLT5i YXNlLCAmaW50ZWxfcGxhbmVfaGVscGVyX2Z1bmNzKTsKPgo+CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=