From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: Re: [PATCH 10/10] drm/i915: Make all plane disables use 'update_plane' (v2) Date: Tue, 02 Dec 2014 17:14:03 +0200 Message-ID: <547DD73B.50802@gmail.com> References: <1417477218-9519-1-git-send-email-matthew.d.roper@intel.com> <1417477218-9519-10-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id DB7596F03F for ; Tue, 2 Dec 2014 07:29:04 -0800 (PST) In-Reply-To: <1417477218-9519-10-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 T24gMTIvMDIvMjAxNCAwMTo0MCBBTSwgTWF0dCBSb3BlciB3cm90ZToKPiBJZiB3ZSBleHRlbmQg dGhlIGNvbW1pdF9wbGFuZSBoYW5kbGVycyBmb3IgZWFjaCBwbGFuZSB0eXBlIHRvIGJlIGFibGUg dG8KPiBoYW5kbGUgZmI9MCwgdGhlbiB3ZSBjYW4gZWFzaWx5IGltcGxlbWVudCBwbGFuZSBkaXNh YmxlIHZpYSB0aGUKPiB1cGRhdGVfcGxhbmUgaGFuZGxlci4gIFRoZSBjdXJzb3IgcGxhbmUgYWxy ZWFkeSB3b3JrcyB0aGlzIHdheSwgYW5kIHRoaXMKPiBpcyB0aGUgZGlyZWN0aW9uIHdlIG5lZWQg dG8gZ28gdG8gaW50ZWdyYXRlIHdpdGggdGhlIGF0b21pYyBwbGFuZQo+IGhhbmRsZXIuICBXZSBj YW4gbm93IGtpbGwgb2ZmIHRoZSB0eXBlLXNwZWNpZmljIGRpc2FibGUgZnVuY3Rpb25zLCBhcwo+ IHdlbGwgYXMgdGhlIHJlZHVuZGFudCBpbnRlbF9wbGFuZV9kaXNhYmxlKCkgKG5vdCB0byBiZSBj b25mdXNlZCB3aXRoCj4gaW50ZWxfZGlzYWJsZV9wbGFuZSgpKS4KPiAKPiBOb3RlIHRoYXQgcHJl cGFyZV9wbGFuZV9mYigpIG9ubHkgZ2V0cyBjYWxsZWQgYXMgcGFydCBvZiB1cGRhdGVfcGxhbmUK PiB3aGVuIGZiIT1OVUxMIChieSBkZXNpZ24sIHRvIG1hdGNoIHRoZSBzZW1hbnRpY3Mgb2YgdGhl IGF0b21pYyBwbGFuZQo+IGhlbHBlcnMpOyB0aGlzIG1lYW5zIHRoYXQgb3VyIGNvbW1pdF9wbGFu ZSBoYW5kbGVycyBuZWVkIHRvIGhhbmRsZSB0aGUKPiBmcm9udGJ1ZmZlciB0cmFja2luZyBmb3Ig dGhlIGRpc2FibGUgY2FzZSwgZXZlbiB0aG91Z2ggdGhleSBkb24ndCBoYW5kbGUKPiBpdCBmb3Ig bm9ybWFsIHVwZGF0ZXMuCj4gCj4gdjI6Cj4gICAtIERyb3AgYW4gdW5uZWNlc3NhcnkgY3J0YyBh Y2Nlc3MgY2hhbmdlIChBbmRlcikKPiAgIC0gQ2hhbmdlIEJVR19PTiB0byBXQVJOX09OIChBbmRl ci9EYW5pZWwpCj4gCj4gU2lnbmVkLW9mZi1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVy QGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyB8IDEwMSArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAgNzEgKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCj4gICAz IGZpbGVzIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDExMyBkZWxldGlvbnMoLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggZDEzMDE1Yy4uZDE5N2JiYiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNDA2MCw3ICs0MDYw LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9wbGFuZXMoc3RydWN0IGRybV9jcnRjICpj cnRjKQo+ICAgCWRybV9mb3JfZWFjaF9sZWdhY3lfcGxhbmUocGxhbmUsICZkZXYtPm1vZGVfY29u ZmlnLnBsYW5lX2xpc3QpIHsKPiAgIAkJaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFu ZSk7Cj4gICAJCWlmIChpbnRlbF9wbGFuZS0+cGlwZSA9PSBwaXBlKQo+IC0JCQlpbnRlbF9wbGFu ZV9kaXNhYmxlKCZpbnRlbF9wbGFuZS0+YmFzZSk7Cj4gKwkJCXBsYW5lLT5mdW5jcy0+ZGlzYWJs ZV9wbGFuZShwbGFuZSk7Cj4gICAJfQo+ICAgfQo+ICAgCj4gQEAgLTExNjA1LDQzICsxMTYwNSw2 IEBAIHN0YXRpYyB2b2lkIGludGVsX3NoYXJlZF9kcGxsX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiAgIAlCVUdfT04oZGV2X3ByaXYtPm51bV9zaGFyZWRfZHBsbCA+IEk5MTVfTlVNX1BM TFMpOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyBpbnQKPiAtaW50ZWxfcHJpbWFyeV9wbGFuZV9kaXNh YmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gcGxhbmUtPmRldjsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwo+IC0K PiAtCWlmICghcGxhbmUtPmZiKQo+IC0JCXJldHVybiAwOwo+IC0KPiAtCUJVR19PTighcGxhbmUt PmNydGMpOwo+IC0KPiAtCWludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBsYW5lLT5jcnRjKTsK PiAtCj4gLQkvKgo+IC0JICogRXZlbiB0aG91Z2ggd2UgY2hlY2tlZCBwbGFuZS0+ZmIgYWJvdmUs IGl0J3Mgc3RpbGwgcG9zc2libGUgdGhhdAo+IC0JICogdGhlIHByaW1hcnkgcGxhbmUgaGFzIGJl ZW4gaW1wbGljaXRseSBkaXNhYmxlZCBiZWNhdXNlIHRoZSBjcnRjCj4gLQkgKiBjb29yZGluYXRl cyBnaXZlbiB3ZXJlbid0IHZpc2libGUsIG9yIGJlY2F1c2Ugd2UgZGV0ZWN0ZWQKPiAtCSAqIHRo YXQgaXQgd2FzIDEwMCUgY292ZXJlZCBieSBhIHNwcml0ZSBwbGFuZS4gIE9yLCB0aGUgQ1JUQyBt YXkgYmUKPiAtCSAqIG9mZiBhbmQgd2UndmUgc2V0IGEgZmIsIGJ1dCBoYXZlbid0IGFjdHVhbGx5 IHR1cm5lZCBvbiB0aGUgQ1JUQyB5ZXQuCj4gLQkgKiBJbiBlaXRoZXIgY2FzZSwgd2UgbmVlZCB0 byB1bnBpbiB0aGUgRkIgYW5kIGxldCB0aGUgZmIgcG9pbnRlciBnZXQKPiAtCSAqIHVwZGF0ZWQs IGJ1dCBvdGhlcndpc2Ugd2UgZG9uJ3QgbmVlZCB0byB0b3VjaCB0aGUgaGFyZHdhcmUuCj4gLQkg Ki8KPiAtCWlmIChpbnRlbF9jcnRjLT5wcmltYXJ5X2VuYWJsZWQpIHsKPiAtCQlpbnRlbF9jcnRj X3dhaXRfZm9yX3BlbmRpbmdfZmxpcHMocGxhbmUtPmNydGMpOwo+IC0JCWludGVsX2Rpc2FibGVf cHJpbWFyeV9od19wbGFuZShwbGFuZSwgcGxhbmUtPmNydGMpOwo+IC0JfQo+IC0KPiAtCW11dGV4 X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiAtCWk5MTVfZ2VtX3RyYWNrX2ZiKGludGVsX2Zi X29iaihwbGFuZS0+ZmIpLCBOVUxMLAo+IC0JCQkgIElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlko aW50ZWxfY3J0Yy0+cGlwZSkpOwo+IC0JaW50ZWxfdW5waW5fZmJfb2JqKGludGVsX2ZiX29iaihw bGFuZS0+ZmIpKTsKPiAtCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+IC0JcGxh bmUtPmZiID0gTlVMTDsKPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAgIC8qKgo+ICAgICog aW50ZWxfcHJlcGFyZV9wbGFuZV9mYiAtIFByZXBhcmUgZmIgZm9yIHVzYWdlIG9uIHBsYW5lCj4g ICAgKiBAcGxhbmU6IGRybSBwbGFuZSB0byBwcmVwYXJlIGZvcgo+IEBAIC0xMTc0NSwxMCArMTE3 MDgsMTIgQEAgaW50ZWxfY2hlY2tfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+ICAgCj4gLQlpbnRlbF9jcnRjX3dh aXRfZm9yX3BlbmRpbmdfZmxpcHMoY3J0Yyk7Cj4gLQlpZiAoaW50ZWxfY3J0Y19oYXNfcGVuZGlu Z19mbGlwKGNydGMpKSB7Cj4gLQkJRFJNX0VSUk9SKCJwaXBlIGlzIHN0aWxsIGJ1c3kgd2l0aCBh biBvbGQgcGFnZWZsaXBcbiIpOwo+IC0JCXJldHVybiAtRUJVU1k7Cj4gKwlpZiAocGxhbmUtPmNy dGMpIHsKPiArCQlpbnRlbF9jcnRjX3dhaXRfZm9yX3BlbmRpbmdfZmxpcHMocGxhbmUtPmNydGMp Owo+ICsJCWlmIChpbnRlbF9jcnRjX2hhc19wZW5kaW5nX2ZsaXAocGxhbmUtPmNydGMpKSB7Cj4g KwkJCURSTV9FUlJPUigicGlwZSBpcyBzdGlsbCBidXN5IHdpdGggYW4gb2xkIHBhZ2VmbGlwXG4i KTsKPiArCQkJcmV0dXJuIC1FQlVTWTsKPiArCQl9CgpDYW4gd2UgZ2V0IGhlcmUgd2l0aCBhIE5V TEwgcGxhbmUtPmNydGMgZm9yIHRoZSBkaXNhYmxlIGNhc2U/IEF0IGxlYXN0IGludGVsX2Rpc2Fi bGVfcGxhbmUoKSBiYWlscyBvdXQgaW4gdGhhdCBjYXNlLiBCdXQgYW55d2F5LCBkb2Vzbid0IHNl ZW0gaGFybWZ1bC4KCj4gICAJfQo+ICAgCj4gICAJcmV0dXJuIDA7Cj4gQEAgLTExNzYzLDEyICsx MTcyOCwyMyBAQCBpbnRlbF9jb21taXRfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKPiAgIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAgCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAtCWVu dW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKPiAgIAlzdHJ1Y3QgaW50ZWxfcGxhbmUg KmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwo+ICAgCXN0cnVjdCBkcm1fcmVj dCAqc3JjID0gJnN0YXRlLT5zcmM7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IGludGVsX3BsYW5lLT5w aXBlOwo+ICAgCj4gLQljcnRjLT5wcmltYXJ5LT5mYiA9IGZiOwo+ICsJaWYgKCFmYikgewo+ICsJ CS8qCj4gKwkJICogJ3ByZXBhcmUnIGlzIG5ldmVyIGNhbGxlZCB3aGVuIHBsYW5lIGlzIGJlaW5n IGRpc2FibGVkLCBzbwo+ICsJCSAqIHdlIG5lZWQgdG8gaGFuZGxlIGZyb250YnVmZmVyIHRyYWNr aW5nIGhlcmUKPiArCQkgKi8KPiArCQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4g KwkJaTkxNV9nZW1fdHJhY2tfZmIoaW50ZWxfZmJfb2JqKHBsYW5lLT5mYiksIE5VTEwsCj4gKwkJ CQkgIElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkocGlwZSkpOwo+ICsJCW11dGV4X3VubG9jaygm ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsJfQo+ICsKPiArCXBsYW5lLT5mYiA9IGZiOwo+ICAgCWNy dGMtPnggPSBzcmMtPngxID4+IDE2Owo+ICAgCWNydGMtPnkgPSBzcmMtPnkxID4+IDE2Owo+ICAg Cj4gQEAgLTExODI2LDcgKzExODAyLDcgQEAgaW50ZWxfY29tbWl0X3ByaW1hcnlfcGxhbmUoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gICAJCQkgKiBleHBsaWNpdGx5IGRpc2FibGVzIHRoZSBw bGFuZSBieSBwYXNzaW5nIGZiPTAKPiAgIAkJCSAqIGJlY2F1c2UgcGxhbmUtPmZiIHN0aWxsIGdl dHMgc2V0IGFuZCBwaW5uZWQuCj4gICAJCQkgKi8KPiAtCQkJaW50ZWxfZGlzYWJsZV9wcmltYXJ5 X2h3X3BsYW5lKHBsYW5lLCBjcnRjKTsKPiArCQkJaW50ZWxfZGlzYWJsZV9wcmltYXJ5X2h3X3Bs YW5lKHBsYW5lLCBwbGFuZS0+Y3J0Yyk7CgpEaWQgeW91IG1lYW4gdG8gcmVtb3ZlIHRoaXMgaHVu az8gSSdtIGZpbmUgZWl0aGVyIHdheSwganVzdCB3YW50ZWQgdG8gCm1ha2Ugc3VyZSBJIGRpZG4n dCBtaXNzIGFueXRoaW5nLCBzaW5jZSBpdCBzZWVtcyB0byBtZSB0aGF0IHBsYW5lLT5jcnRjIAph bmQgY3J0YyBzaG91bGQgYWx3YXlzIGhhdmUgdGhlIHNhbWUgdmFsdWUgaGVyZS4KCj4gICAJCX0K PiAgIAo+ICAgCQlpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwKGRldiwgSU5URUxfRlJPTlRCVUZGRVJf UFJJTUFSWShwaXBlKSk7Cj4gQEAgLTExODk3LDYgKzExODczLDI1IEBAIGludGVsX3VwZGF0ZV9w bGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAg CXJldHVybiAwOwo+ICAgfQo+ICAgCj4gKy8qKgo+ICsgKiBpbnRlbF9kaXNhYmxlX3BsYW5lIC0g ZGlzYWJsZSBhIHBsYW5lCj4gKyAqIEBwbGFuZTogcGxhbmUgdG8gZGlzYWJsZQo+ICsgKgo+ICsg KiBHZW5lcmFsIGRpc2FibGUgaGFuZGxlciBmb3IgYWxsIHBsYW5lIHR5cGVzLgo+ICsgKi8KPiAr aW50Cj4gK2ludGVsX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCj4gK3sK PiArCWlmICghcGxhbmUtPmZiKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWlmKFdBUk5fT04oIXBs YW5lLT5jcnRjKSkKCk1pc3Npbmcgc3BhY2UgY2hhcmFjdGVyLiBXaXRoIHRoaXMgYW5kIHRoZSBj b21tZW50cyB0byBwYXRjaCA3IGZpeGVkLCBmZWVsIGZyZWUgdG8gdXNlCgooZm9yIHRoZSBzZXJp ZXMpIFJldmlld2VkLWJ5OiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPGFuZGVyLmNvbnNl bHZhbi5kZS5vbGl2ZWlyYUBpbnRlbC5jb20+CgpBbmRlcgoKPiArCQlyZXR1cm4gLUVJTlZBTDsK PiArCj4gKwlyZXR1cm4gcGxhbmUtPmZ1bmNzLT51cGRhdGVfcGxhbmUocGxhbmUsIHBsYW5lLT5j cnRjLCBOVUxMLAo+ICsJCQkJCSAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCk7Cj4gK30KPiArCj4g ICAvKiBDb21tb24gZGVzdHJ1Y3Rpb24gZnVuY3Rpb24gZm9yIGJvdGggcHJpbWFyeSBhbmQgY3Vy c29yIHBsYW5lcyAqLwo+ICAgc3RhdGljIHZvaWQgaW50ZWxfcGxhbmVfZGVzdHJveShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSkKPiAgIHsKPiBAQCAtMTE5MDcsNyArMTE5MDIsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9wbGFuZV9kZXN0cm95KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+ICAgCj4g ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyBpbnRlbF9wcmltYXJ5X3BsYW5l X2Z1bmNzID0gewo+ICAgCS51cGRhdGVfcGxhbmUgPSBpbnRlbF91cGRhdGVfcGxhbmUsCj4gLQku ZGlzYWJsZV9wbGFuZSA9IGludGVsX3ByaW1hcnlfcGxhbmVfZGlzYWJsZSwKPiArCS5kaXNhYmxl X3BsYW5lID0gaW50ZWxfZGlzYWJsZV9wbGFuZSwKPiAgIAkuZGVzdHJveSA9IGludGVsX3BsYW5l X2Rlc3Ryb3ksCj4gICAJLnNldF9wcm9wZXJ0eSA9IGludGVsX3BsYW5lX3NldF9wcm9wZXJ0eQo+ ICAgfTsKPiBAQCAtMTE5NjIsMTggKzExOTU3LDYgQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUg KmludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICB9 Cj4gICAKPiAgIHN0YXRpYyBpbnQKPiAtaW50ZWxfY3Vyc29yX3BsYW5lX2Rpc2FibGUoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUpCj4gLXsKPiAtCWlmICghcGxhbmUtPmZiKQo+IC0JCXJldHVybiAw Owo+IC0KPiAtCUJVR19PTighcGxhbmUtPmNydGMpOwo+IC0KPiAtCXJldHVybiBwbGFuZS0+ZnVu Y3MtPnVwZGF0ZV9wbGFuZShwbGFuZSwgcGxhbmUtPmNydGMsIE5VTEwsCj4gLQkJCQkJICAwLCAw LCAwLCAwLCAwLCAwLCAwLCAwKTsKPiAtfQo+IC0KPiAtc3RhdGljIGludAo+ICAgaW50ZWxfY2hl Y2tfY3Vyc29yX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAgCQkJIHN0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpCj4gICB7Cj4gQEAgLTEyMDk3LDcgKzEyMDgwLDcgQEAg dXBkYXRlOgo+ICAgCj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyBpbnRl bF9jdXJzb3JfcGxhbmVfZnVuY3MgPSB7Cj4gICAJLnVwZGF0ZV9wbGFuZSA9IGludGVsX3VwZGF0 ZV9wbGFuZSwKPiAtCS5kaXNhYmxlX3BsYW5lID0gaW50ZWxfY3Vyc29yX3BsYW5lX2Rpc2FibGUs Cj4gKwkuZGlzYWJsZV9wbGFuZSA9IGludGVsX2Rpc2FibGVfcGxhbmUsCj4gICAJLmRlc3Ryb3kg PSBpbnRlbF9wbGFuZV9kZXN0cm95LAo+ICAgCS5zZXRfcHJvcGVydHkgPSBpbnRlbF9wbGFuZV9z ZXRfcHJvcGVydHksCj4gICB9Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggZjdi NjYxOS4uNTNiNjk2ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTEwMjAs NiArMTAyMCw3IEBAIGludCBpbnRlbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIAkJICAgICAgIHVuc2lnbmVkIGludCBjcnRj X3csIHVuc2lnbmVkIGludCBjcnRjX2gsCj4gICAJCSAgICAgICB1aW50MzJfdCBzcmNfeCwgdWlu dDMyX3Qgc3JjX3ksCj4gICAJCSAgICAgICB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gp Owo+ICtpbnQgaW50ZWxfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSk7Cj4g ICAKPiAgIC8qIGludGVsX2RwX21zdC5jICovCj4gICBpbnQgaW50ZWxfZHBfbXN0X2VuY29kZXJf aW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwgaW50IGNvbm5f aWQpOwo+IEBAIC0xMjAxLDcgKzEyMDIsNiBAQCBpbnQgaW50ZWxfcGxhbmVfc2V0X3Byb3BlcnR5 KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAgCQkJICAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5 ICpwcm9wLAo+ICAgCQkJICAgICB1aW50NjRfdCB2YWwpOwo+ICAgaW50IGludGVsX3BsYW5lX3Jl c3RvcmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpOwo+IC12b2lkIGludGVsX3BsYW5lX2Rpc2Fi bGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpOwo+ICAgaW50IGludGVsX3Nwcml0ZV9zZXRfY29s b3JrZXkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAkJCSAgICAgIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPiAgIGludCBpbnRlbF9zcHJpdGVfZ2V0X2NvbG9y a2V5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfc3ByaXRlLmMKPiBpbmRleCBiZmQ1MjcwLi5iYzU4MzRiIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBAQCAtMTEwOSw3ICsxMTA5LDEyIEBAIGludGVsX2NoZWNr X3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgIAljb25zdCBzdHJ1Y3Qg ZHJtX3JlY3QgKmNsaXAgPSAmc3RhdGUtPmNsaXA7Cj4gICAJaW50IGhzY2FsZSwgdnNjYWxlOwo+ ICAgCWludCBtYXhfc2NhbGUsIG1pbl9zY2FsZTsKPiAtCWludCBwaXhlbF9zaXplID0gZHJtX2Zv cm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7Cj4gKwlpbnQgcGl4ZWxfc2l6ZTsK PiArCj4gKwlpZiAoIWZiKSB7Cj4gKwkJc3RhdGUtPnZpc2libGUgPSBmYWxzZTsKPiArCQlyZXR1 cm4gMDsKPiArCX0KPiAgIAo+ICAgCS8qIERvbid0IG1vZGlmeSBhbm90aGVyIHBpcGUncyBwbGFu ZSAqLwo+ICAgCWlmIChpbnRlbF9wbGFuZS0+cGlwZSAhPSBpbnRlbF9jcnRjLT5waXBlKSB7Cj4g QEAgLTEyMzIsNiArMTIzNyw3IEBAIGludGVsX2NoZWNrX3Nwcml0ZV9wbGFuZShzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwKPiAgIAkJaWYgKHNyY193IDwgMyB8fCBzcmNfaCA8IDMpCj4gICAJCQlz dGF0ZS0+dmlzaWJsZSA9IGZhbHNlOwo+ICAgCj4gKwkJcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRf cGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwo+ICAgCQl3aWR0aF9ieXRlcyA9ICgoc3Jj X3ggKiBwaXhlbF9zaXplKSAmIDYzKSArCj4gICAJCQkJCXNyY193ICogcGl4ZWxfc2l6ZTsKPiAg IAo+IEBAIC0xMjc2LDYgKzEyODIsMTcgQEAgaW50ZWxfY29tbWl0X3Nwcml0ZV9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgIAlib29sIHByaW1hcnlfZW5hYmxlZDsKPiAgIAo+ICAg CS8qCj4gKwkgKiAncHJlcGFyZScgaXMgbmV2ZXIgY2FsbGVkIHdoZW4gcGxhbmUgaXMgYmVpbmcg ZGlzYWJsZWQsIHNvIHdlIG5lZWQKPiArCSAqIHRvIGhhbmRsZSBmcm9udGJ1ZmZlciB0cmFja2lu ZyBoZXJlCj4gKwkgKi8KPiArCWlmICghZmIpIHsKPiArCQltdXRleF9sb2NrKCZkZXYtPnN0cnVj dF9tdXRleCk7Cj4gKwkJaTkxNV9nZW1fdHJhY2tfZmIoaW50ZWxfZmJfb2JqKHBsYW5lLT5mYiks IE5VTEwsCj4gKwkJCQkgIElOVEVMX0ZST05UQlVGRkVSX1NQUklURShwaXBlKSk7Cj4gKwkJbXV0 ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gKwl9Cj4gKwo+ICsJLyoKPiAgIAkgKiBJ ZiB0aGUgc3ByaXRlIGlzIGNvbXBsZXRlbHkgY292ZXJpbmcgdGhlIHByaW1hcnkgcGxhbmUsCj4g ICAJICogd2UgY2FuIGRpc2FibGUgdGhlIHByaW1hcnkgYW5kIHNhdmUgcG93ZXIuCj4gICAJICov Cj4gQEAgLTEzMjcsNTAgKzEzNDQsNiBAQCBpbnRlbF9jb21taXRfc3ByaXRlX3BsYW5lKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAgCX0KPiAgIH0KPiAgIAo+IC1zdGF0aWMgaW50Cj4gLWlu dGVsX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCj4gLXsKPiAtCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2Owo+IC0Jc3RydWN0IGludGVsX3BsYW5lICpp bnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKPiAtCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjOwo+IC0JZW51bSBwaXBlIHBpcGU7Cj4gLQo+IC0JaWYgKCFwbGFuZS0+ZmIp Cj4gLQkJcmV0dXJuIDA7Cj4gLQo+IC0JaWYgKFdBUk5fT04oIXBsYW5lLT5jcnRjKSkKPiAtCQly ZXR1cm4gLUVJTlZBTDsKPiAtCj4gLQlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhwbGFuZS0+ Y3J0Yyk7Cj4gLQlwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAtCj4gLQlpZiAoaW50ZWxfY3J0 Yy0+YWN0aXZlKSB7Cj4gLQkJYm9vbCBwcmltYXJ5X3dhc19lbmFibGVkID0gaW50ZWxfY3J0Yy0+ cHJpbWFyeV9lbmFibGVkOwo+IC0KPiAtCQlpbnRlbF9jcnRjLT5wcmltYXJ5X2VuYWJsZWQgPSB0 cnVlOwo+IC0KPiAtCQlpbnRlbF9wbGFuZS0+ZGlzYWJsZV9wbGFuZShwbGFuZSwgcGxhbmUtPmNy dGMpOwo+IC0KPiAtCQlpZiAoIXByaW1hcnlfd2FzX2VuYWJsZWQgJiYgaW50ZWxfY3J0Yy0+cHJp bWFyeV9lbmFibGVkKQo+IC0JCQlpbnRlbF9wb3N0X2VuYWJsZV9wcmltYXJ5KHBsYW5lLT5jcnRj KTsKPiAtCX0KPiAtCj4gLQlpZiAoaW50ZWxfcGxhbmUtPm9iaikgewo+IC0JCWlmIChpbnRlbF9j cnRjLT5hY3RpdmUpCj4gLQkJCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXYsIGludGVsX3BsYW5l LT5waXBlKTsKPiAtCj4gLQkJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+IC0JCWlu dGVsX3VucGluX2ZiX29iaihpbnRlbF9wbGFuZS0+b2JqKTsKPiAtCQlpOTE1X2dlbV90cmFja19m YihpbnRlbF9wbGFuZS0+b2JqLCBOVUxMLAo+IC0JCQkJICBJTlRFTF9GUk9OVEJVRkZFUl9TUFJJ VEUocGlwZSkpOwo+IC0JCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+IC0KPiAt CQlpbnRlbF9wbGFuZS0+b2JqID0gTlVMTDsKPiAtCX0KPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+ IC0KPiAgIHN0YXRpYyB2b2lkIGludGVsX2Rlc3Ryb3lfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUpCj4gICB7Cj4gICAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2lu dGVsX3BsYW5lKHBsYW5lKTsKPiBAQCAtMTQ3OCwxNCArMTQ1MSw2IEBAIGludCBpbnRlbF9wbGFu ZV9yZXN0b3JlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+ICAgCQkJCSAgaW50ZWxfcGxhbmUt PnNyY193LCBpbnRlbF9wbGFuZS0+c3JjX2gpOwo+ICAgfQo+ICAgCj4gLXZvaWQgaW50ZWxfcGxh bmVfZGlzYWJsZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPiAtewo+IC0JaWYgKCFwbGFuZS0+ Y3J0YyB8fCAhcGxhbmUtPmZiKQo+IC0JCXJldHVybjsKPiAtCj4gLQlpbnRlbF9kaXNhYmxlX3Bs YW5lKHBsYW5lKTsKPiAtfQo+IC0KPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1 bmNzIGludGVsX3BsYW5lX2Z1bmNzID0gewo+ICAgCS51cGRhdGVfcGxhbmUgPSBpbnRlbF91cGRh dGVfcGxhbmUsCj4gICAJLmRpc2FibGVfcGxhbmUgPSBpbnRlbF9kaXNhYmxlX3BsYW5lLAo+IAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK