From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kahola Subject: Re: [PATCH 3/4] drm/i915: Do not acquire crtc state to check clock during modeset, v3. Date: Tue, 15 Dec 2015 12:22:40 +0200 Message-ID: <1450174960.3137.6.camel@sorvi> References: <1448360945-5723-1-git-send-email-maarten.lankhorst@linux.intel.com> <1448360945-5723-4-git-send-email-maarten.lankhorst@linux.intel.com> Reply-To: mika.kahola@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 540856E488 for ; Tue, 15 Dec 2015 02:22:03 -0800 (PST) In-Reply-To: <1448360945-5723-4-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyMDE1LTExLTI0IGF0IDExOjI5ICswMTAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToKPiBQYXJhbGxlbCBtb2Rlc2V0cyBhcmUgc3RpbGwgbm90IGFsbG93ZWQsIGJ1dCB0aGlzIHdp bGwgYWxsb3cgdXBkYXRpbmcKPiBhIGRpZmZlcmVudCBjcnRjIGR1cmluZyBhIG1vZGVzZXQgaWYg dGhlIGNsb2NrIGlzIG5vdCBjaGFuZ2VkLgo+IAo+IEFkZGl0aW9uYWxseSB3aGVuIGFsbCBwaXBl cyBhcmUgRFBNUyBvZmYgdGhlIGNkY2xrIHdpbGwgYmUgbG93ZXJlZAo+IHRvIHRoZSBtaW5pbXVt IGFsbG93ZWQuCj4gCj4gQ2hhbmdlcyBzaW5jZSB2MToKPiAtIEFkZCBkZXZfcHJpdi0+YWN0aXZl X2NydGNzIGZvciB0cmFja2luZyB3aGljaCBjcnRjcyBhcmUgYWN0aXZlLgo+IC0gUmVuYW1lIG1p bl9jZGNsayB0byBtaW5fcGl4Y2xrIGFuZCBtb3ZlIHRvIGRldl9wcml2Lgo+IC0gQWRkIGEgYWN0 aXZlX2NydGNzIG1hc2sgd2hpY2ggaXMgdXBkYXRlZCBhdG9taWNhbGx5Lgo+IC0gQWRkIGludGVs X2F0b21pY19zdGF0ZS0+bW9kZXNldCB3aGljaCBpcyBzZXQgb24gbW9kZXNldHMuCj4gLSBDb21t aXQgbmV3IHBpeGNsay9hY3RpdmVfY3J0Y3MgcmlnaHQgYWZ0ZXIgc3RhdGUgc3dhcC4KPiBDaGFu Z2VzIHNpbmNlIHYyOgo+IC0gTWFrZSB0aGUgY2hhbmdlcyByZWxhdGVkIHRvIG1heF9waXhlbF9y YXRlIGNhbGN1bGF0aW9ucyBtb3JlIHJlYWRhYmxlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0 ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICAgNSArKwo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyAgfCAgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTM5ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAgNyArLQo+ ICA0IGZpbGVzIGNoYW5nZWQsIDExMiBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBhMzI1NzFmMGQwMTguLmM3Yjc2YzJlOGUw OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0xODIxLDggKzE4MjEsMTMgQEAg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ICAJc3RydWN0IGludGVsX3BpcGVfY3JjIHBpcGVf Y3JjW0k5MTVfTUFYX1BJUEVTXTsKPiAgI2VuZGlmCj4gIAo+ICsJLyogZHBsbCBhbmQgY2RjbGsg c3RhdGUgaXMgcHJvdGVjdGVkIGJ5IGNvbm5lY3Rpb25fbXV0ZXggKi8KPiAgCWludCBudW1fc2hh cmVkX2RwbGw7Cj4gIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgc2hhcmVkX2RwbGxzW0k5MTVf TlVNX1BMTFNdOwo+ICsKPiArCXVuc2lnbmVkIGludCBhY3RpdmVfY3J0Y3M7Cj4gKwl1bnNpZ25l ZCBpbnQgbWluX3BpeGNsa1tJOTE1X01BWF9QSVBFU107Cj4gKwo+ICAJaW50IGRwaW9fcGh5X2lv c2ZfcG9ydFtJOTE1X05VTV9QSFlTX1ZMVl07Cj4gIAo+ICAJc3RydWN0IGk5MTVfd29ya2Fyb3Vu ZHMgd29ya2Fyb3VuZHM7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKPiBpbmRleCA2 NDNmMzQyZGUzM2IuLmM0ZWFkYmM5MjhiNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hdG9taWMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0 b21pYy5jCj4gQEAgLTMwNiw1ICszMDYsNSBAQCB2b2lkIGludGVsX2F0b21pY19zdGF0ZV9jbGVh cihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqcykKPiAgewo+ICAJc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUocyk7Cj4gIAlkcm1fYXRvbWlj X3N0YXRlX2RlZmF1bHRfY2xlYXIoJnN0YXRlLT5iYXNlKTsKPiAtCXN0YXRlLT5kcGxsX3NldCA9 IGZhbHNlOwo+ICsJc3RhdGUtPmRwbGxfc2V0ID0gc3RhdGUtPm1vZGVzZXQgPSBmYWxzZTsKPiAg fQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCAzYzQ2MDM3YjZlNTUu LjE3OGEwNDJmOTE3ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBA QCAtNTk5MSwyMiArNTk5MSwzMSBAQCBzdGF0aWMgaW50IGJyb3h0b25fY2FsY19jZGNsayhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIHN0YXRpYyBpbnQgaW50ZWxfbW9kZV9t YXhfcGl4Y2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkgc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsK PiAtCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+IC0JaW50IG1heF9waXhj bGsgPSAwOwo+ICsJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19p bnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKVGhpcyBpcyBhIG5pdHBpY2sgYnV0IHdlIHNob3Vs ZCB1c2Ugbm93YWRheXMgdG9faTkxNSgpIAogCj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4g KwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gKwl1bnNpZ25lZCBtYXhfcGl4 Y2xrID0gMCwgaTsKPiArCWVudW0gcGlwZSBwaXBlOwo+ICAKPiAtCWZvcl9lYWNoX2ludGVsX2Ny dGMoZGV2LCBpbnRlbF9jcnRjKSB7Cj4gLQkJY3J0Y19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRf Y3J0Y19zdGF0ZShzdGF0ZSwgaW50ZWxfY3J0Yyk7Cj4gLQkJaWYgKElTX0VSUihjcnRjX3N0YXRl KSkKPiAtCQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7Cj4gKwltZW1jcHkoaW50ZWxfc3Rh dGUtPm1pbl9waXhjbGssIGRldl9wcml2LT5taW5fcGl4Y2xrLAo+ICsJICAgICAgIHNpemVvZihp bnRlbF9zdGF0ZS0+bWluX3BpeGNsaykpOwo+ICAKPiAtCQlpZiAoIWNydGNfc3RhdGUtPmJhc2Uu ZW5hYmxlKQo+IC0JCQljb250aW51ZTsKPiArCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUs IGNydGMsIGNydGNfc3RhdGUsIGkpIHsKPiArCQlpbnQgcGl4Y2xrID0gMDsKPiArCj4gKwkJaWYg KGNydGNfc3RhdGUtPmVuYWJsZSkKPiArCQkJcGl4Y2xrID0gY3J0Y19zdGF0ZS0+YWRqdXN0ZWRf bW9kZS5jcnRjX2Nsb2NrOwo+ICAKPiAtCQltYXhfcGl4Y2xrID0gbWF4KG1heF9waXhjbGssCj4g LQkJCQkgY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2spOwo+ICsJCWlu dGVsX3N0YXRlLT5taW5fcGl4Y2xrW2ldID0gcGl4Y2xrOwo+ICAJfQo+ICAKPiArCWlmICghaW50 ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcykKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlmb3JfZWFjaF9w aXBlKGRldl9wcml2LCBwaXBlKQo+ICsJCW1heF9waXhjbGsgPSBtYXgoaW50ZWxfc3RhdGUtPm1p bl9waXhjbGtbcGlwZV0sIG1heF9waXhjbGspOwo+ICsKPiAgCXJldHVybiBtYXhfcGl4Y2xrOwo+ ICB9Cj4gIAo+IEBAIC02MzEwLDYgKzYzMTksOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2Rp c2FibGVfbm9hdG9taWMoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJZm9yX2VhY2hfcG93ZXJf ZG9tYWluKGRvbWFpbiwgZG9tYWlucykKPiAgCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZf cHJpdiwgZG9tYWluKTsKPiAgCWludGVsX2NydGMtPmVuYWJsZWRfcG93ZXJfZG9tYWlucyA9IDA7 Cj4gKwo+ICsJZGV2X3ByaXYtPmFjdGl2ZV9jcnRjcyAmPSB+KDEgPDwgaW50ZWxfY3J0Yy0+cGlw ZSk7Cj4gKwlkZXZfcHJpdi0+bWluX3BpeGNsa1tpbnRlbF9jcnRjLT5waXBlXSA9IDA7Cj4gIH0K PiAgCj4gIC8qCj4gQEAgLTk1NTUsMjkgKzk1NjcsNDEgQEAgc3RhdGljIHZvaWQgYnJveHRvbl9t b2Rlc2V0X2NvbW1pdF9jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ ICAvKiBjb21wdXRlIHRoZSBtYXggcmF0ZSBmb3IgbmV3IGNvbmZpZ3VyYXRpb24gKi8KPiAgc3Rh dGljIGludCBpbGtfbWF4X3BpeGVsX3JhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl KQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKPiArCXN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRl KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0YXRlLT5kZXYtPmRl dl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ICsJc3RydWN0IGRybV9jcnRj X3N0YXRlICpjc3RhdGU7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsK PiAtCWludCBtYXhfcGl4ZWxfcmF0ZSA9IDA7Cj4gKwl1bnNpZ25lZCBtYXhfcGl4ZWxfcmF0ZSA9 IDAsIGk7Cj4gKwllbnVtIHBpcGUgcGlwZTsKPiAgCj4gLQlmb3JfZWFjaF9pbnRlbF9jcnRjKHN0 YXRlLT5kZXYsIGludGVsX2NydGMpIHsKPiAtCQlpbnQgcGl4ZWxfcmF0ZTsKPiArCW1lbWNweShp bnRlbF9zdGF0ZS0+bWluX3BpeGNsaywgZGV2X3ByaXYtPm1pbl9waXhjbGssCj4gKwkgICAgICAg c2l6ZW9mKGludGVsX3N0YXRlLT5taW5fcGl4Y2xrKSk7Cj4gIAo+IC0JCWNydGNfc3RhdGUgPSBp bnRlbF9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGludGVsX2NydGMpOwo+IC0JCWlmIChJ U19FUlIoY3J0Y19zdGF0ZSkpCj4gLQkJCXJldHVybiBQVFJfRVJSKGNydGNfc3RhdGUpOwo+ICsJ Zm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3N0YXRlLCBpKSB7Cj4gKwkJaW50 IHBpeGVsX3JhdGU7Cj4gIAo+IC0JCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUpCj4gKwkJ Y3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3N0YXRlKTsKPiArCQlpZiAoIWNydGNf c3RhdGUtPmJhc2UuZW5hYmxlKSB7Cj4gKwkJCWludGVsX3N0YXRlLT5taW5fcGl4Y2xrW2ldID0g MDsKPiAgCQkJY29udGludWU7Cj4gKwkJfQo+ICAKPiAgCQlwaXhlbF9yYXRlID0gaWxrX3BpcGVf cGl4ZWxfcmF0ZShjcnRjX3N0YXRlKTsKPiAgCj4gIAkJLyogcGl4ZWwgcmF0ZSBtdXN0bid0IGV4 Y2VlZCA5NSUgb2YgY2RjbGsgd2l0aCBJUFMgb24gQkRXICovCj4gLQkJaWYgKElTX0JST0FEV0VM TChzdGF0ZS0+ZGV2KSAmJiBjcnRjX3N0YXRlLT5pcHNfZW5hYmxlZCkKPiArCQlpZiAoSVNfQlJP QURXRUxMKGRldl9wcml2KSAmJiBjcnRjX3N0YXRlLT5pcHNfZW5hYmxlZCkKPiAgCQkJcGl4ZWxf cmF0ZSA9IERJVl9ST1VORF9VUChwaXhlbF9yYXRlICogMTAwLCA5NSk7Cj4gIAo+IC0JCW1heF9w aXhlbF9yYXRlID0gbWF4KG1heF9waXhlbF9yYXRlLCBwaXhlbF9yYXRlKTsKPiArCQlpbnRlbF9z dGF0ZS0+bWluX3BpeGNsa1tpXSA9IHBpeGVsX3JhdGU7Cj4gIAl9Cj4gIAo+ICsJaWYgKCFpbnRl bF9zdGF0ZS0+YWN0aXZlX2NydGNzKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWZvcl9lYWNoX3Bp cGUoZGV2X3ByaXYsIHBpcGUpCj4gKwkJbWF4X3BpeGVsX3JhdGUgPSBtYXgoaW50ZWxfc3RhdGUt Pm1pbl9waXhjbGtbcGlwZV0sIG1heF9waXhlbF9yYXRlKTsKPiArCj4gIAlyZXR1cm4gbWF4X3Bp eGVsX3JhdGU7Cj4gIH0KPiAgCj4gQEAgLTEzMDY5LDE1ICsxMzA5MywyNyBAQCBzdGF0aWMgaW50 IGludGVsX21vZGVzZXRfYWxsX3BpcGVzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkK PiAgCj4gIHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9jaGVja3Moc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRl djsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Cj4gLQlpbnQgcmV0Owo+ICsJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3Rh dGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOwo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gc3RhdGUtPmRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJt X2NydGMgKmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gKwlp bnQgcmV0ID0gMCwgaTsKPiAgCj4gIAlpZiAoIWNoZWNrX2RpZ2l0YWxfcG9ydF9jb25mbGljdHMo c3RhdGUpKSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygicmVqZWN0aW5nIGNvbmZsaWN0aW5nIGRpZ2l0 YWwgcG9ydCBjb25maWd1cmF0aW9uXG4iKTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiAg Cj4gKwlpbnRlbF9zdGF0ZS0+bW9kZXNldCA9IHRydWU7Cj4gKwlpbnRlbF9zdGF0ZS0+YWN0aXZl X2NydGNzID0gZGV2X3ByaXYtPmFjdGl2ZV9jcnRjczsKPiArCj4gKwlmb3JfZWFjaF9jcnRjX2lu X3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4gKwkJaWYgKGNydGNfc3RhdGUt PmFjdGl2ZSkKPiArCQkJaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcyB8PSAxIDw8IGk7Cj4gKwkJ ZWxzZQo+ICsJCQlpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzICY9IH4oMSA8PCBpKTsKPiArCX0K PiArCj4gIAkvKgo+ICAJICogU2VlIGlmIHRoZSBjb25maWcgcmVxdWlyZXMgYW55IGFkZGl0aW9u YWwgcHJlcGFyYXRpb24sIGUuZy4KPiAgCSAqIHRvIGFkanVzdCBnbG9iYWwgc3RhdGUgd2l0aCBw aXBlcyBvZmYuICBXZSBuZWVkIHRvIGRvIHRoaXMKPiBAQCAtMTMxMDEsNyArMTMxMzcsNyBAQCBz dGF0aWMgaW50IGludGVsX21vZGVzZXRfY2hlY2tzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKPiAgCj4gIAlpbnRlbF9tb2Rlc2V0X2NsZWFyX3BsbHMoc3RhdGUpOwo+ICAKPiAtCWlm IChJU19IQVNXRUxMKGRldikpCj4gKwlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpCj4gIAkJcmV0 dXJuIGhhc3dlbGxfbW9kZV9zZXRfcGxhbmVzX3dvcmthcm91bmQoc3RhdGUpOwo+ICAKPiAgCXJl dHVybiAwOwo+IEBAIC0xMzMxOCwxMiArMTMzNTQsMTIgQEAgc3RhdGljIGludCBpbnRlbF9hdG9t aWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCSAgICAgICBzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIAkJCSAgICAgICBib29sIGFzeW5jKQo+ICB7Cj4gKwlz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19z dGF0ZShzdGF0ZSk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwo+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ICAJ c3RydWN0IGRybV9jcnRjICpjcnRjOwo+IC0JaW50IHJldCA9IDA7Cj4gLQlpbnQgaTsKPiAtCWJv b2wgYW55X21zID0gZmFsc2U7Cj4gKwlpbnQgcmV0ID0gMCwgaTsKPiArCWJvb2wgaHdfY2hlY2sg PSBpbnRlbF9zdGF0ZS0+bW9kZXNldDsKPiAgCj4gIAlyZXQgPSBpbnRlbF9hdG9taWNfcHJlcGFy ZV9jb21taXQoZGV2LCBzdGF0ZSwgYXN5bmMpOwo+ICAJaWYgKHJldCkgewo+IEBAIC0xMzMzNCwx MyArMTMzNzAsMTggQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gIAlkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKGRldiwgc3RhdGUp Owo+ICAJZGV2X3ByaXYtPndtLmNvbmZpZyA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSkt PndtX2NvbmZpZzsKPiAgCj4gKwlpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQpIHsKPiArCQltZW1j cHkoZGV2X3ByaXYtPm1pbl9waXhjbGssIGludGVsX3N0YXRlLT5taW5fcGl4Y2xrLAo+ICsJCSAg ICAgICBzaXplb2YoaW50ZWxfc3RhdGUtPm1pbl9waXhjbGspKTsKPiArCQlkZXZfcHJpdi0+YWN0 aXZlX2NydGNzID0gaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjczsKPiArCX0KPiArCj4gIAlmb3Jf ZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4gIAkJc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICAKPiAg CQlpZiAoIW5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpKQo+ICAJCQljb250aW51ZTsKPiAgCj4g LQkJYW55X21zID0gdHJ1ZTsKPiAgCQlpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKGludGVsX2NydGMp Owo+ICAKPiAgCQlpZiAoY3J0Y19zdGF0ZS0+YWN0aXZlKSB7Cj4gQEAgLTEzMzU1LDcgKzEzMzk2 LDcgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gIAkgKiB1cGRhdGUgdGhlIHRoZSBvdXRwdXQgY29uZmlndXJhdGlvbi4gKi8KPiAgCWlu dGVsX21vZGVzZXRfdXBkYXRlX2NydGNfc3RhdGUoc3RhdGUpOwo+ICAKPiAtCWlmIChhbnlfbXMp IHsKPiArCWlmIChpbnRlbF9zdGF0ZS0+bW9kZXNldCkgewo+ICAJCWludGVsX3NoYXJlZF9kcGxs X2NvbW1pdChzdGF0ZSk7Cj4gIAo+ICAJCWRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9sZWdhY3lf bW9kZXNldF9zdGF0ZShzdGF0ZS0+ZGV2LCBzdGF0ZSk7Cj4gQEAgLTEzMzgyLDcgKzEzNDIzLDcg QEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gIAkJCXB1dF9kb21haW5zID0gbW9kZXNldF9nZXRfY3J0Y19wb3dlcl9kb21haW5zKGNydGMp Owo+ICAKPiAgCQkJLyogbWFrZSBzdXJlIGludGVsX21vZGVzZXRfY2hlY2tfc3RhdGUgcnVucyAq Lwo+IC0JCQlhbnlfbXMgPSB0cnVlOwo+ICsJCQlod19jaGVjayA9IHRydWU7Cj4gIAkJfQo+ICAK PiAgCQlpZiAoIW1vZGVzZXQpCj4gQEAgLTEzNDA5LDcgKzEzNDUwLDcgQEAgc3RhdGljIGludCBp bnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlkcm1fYXRvbWlj X2hlbHBlcl9jbGVhbnVwX3BsYW5lcyhkZXYsIHN0YXRlKTsKPiAgCW11dGV4X3VubG9jaygmZGV2 LT5zdHJ1Y3RfbXV0ZXgpOwo+ICAKPiAtCWlmIChhbnlfbXMpCj4gKwlpZiAoaHdfY2hlY2spCj4g IAkJaW50ZWxfbW9kZXNldF9jaGVja19zdGF0ZShkZXYsIHN0YXRlKTsKPiAgCj4gIAlkcm1fYXRv bWljX3N0YXRlX2ZyZWUoc3RhdGUpOwo+IEBAIC0xNTQxNywxNiArMTU0NTgsMzYgQEAgc3RhdGlj IHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gIAlpbnQgaTsKPiAg Cj4gKwlkZXZfcHJpdi0+YWN0aXZlX2NydGNzID0gMDsKPiArCj4gIAlmb3JfZWFjaF9pbnRlbF9j cnRjKGRldiwgY3J0Yykgewo+IC0JCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0 YXRlKCZjcnRjLT5iYXNlLCBjcnRjLT5iYXNlLnN0YXRlKTsKPiAtCQltZW1zZXQoY3J0Yy0+Y29u ZmlnLCAwLCBzaXplb2YoKmNydGMtPmNvbmZpZykpOwo+IC0JCWNydGMtPmNvbmZpZy0+YmFzZS5j cnRjID0gJmNydGMtPmJhc2U7Cj4gKwkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUgPSBjcnRjLT5jb25maWc7Cj4gKwkJaW50IHBpeGNsayA9IDA7Cj4gIAo+IC0JCWNydGMtPmFj dGl2ZSA9IGRldl9wcml2LT5kaXNwbGF5LmdldF9waXBlX2NvbmZpZyhjcnRjLAo+IC0JCQkJCQkJ CSBjcnRjLT5jb25maWcpOwo+ICsJCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0 YXRlKCZjcnRjLT5iYXNlLCAmY3J0Y19zdGF0ZS0+YmFzZSk7Cj4gKwkJbWVtc2V0KGNydGNfc3Rh dGUsIDAsIHNpemVvZigqY3J0Y19zdGF0ZSkpOwo+ICsJCWNydGNfc3RhdGUtPmJhc2UuY3J0YyA9 ICZjcnRjLT5iYXNlOwo+ICAKPiAtCQljcnRjLT5iYXNlLnN0YXRlLT5hY3RpdmUgPSBjcnRjLT5h Y3RpdmU7Cj4gLQkJY3J0Yy0+YmFzZS5lbmFibGVkID0gY3J0Yy0+YWN0aXZlOwo+ICsJCWNydGNf c3RhdGUtPmJhc2UuYWN0aXZlID0gY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUgPQo+ICsJCQlkZXZf cHJpdi0+ZGlzcGxheS5nZXRfcGlwZV9jb25maWcoY3J0YywgY3J0Y19zdGF0ZSk7Cj4gKwo+ICsJ CWNydGMtPmJhc2UuZW5hYmxlZCA9IGNydGNfc3RhdGUtPmJhc2UuZW5hYmxlOwo+ICsJCWNydGMt PmFjdGl2ZSA9IGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlOwo+ICsKPiArCQlpZiAoY3J0Y19zdGF0 ZS0+YmFzZS5hY3RpdmUpIHsKPiArCQkJZGV2X3ByaXYtPmFjdGl2ZV9jcnRjcyB8PSAxIDw8IGNy dGMtPnBpcGU7Cj4gKwo+ICsJCQlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewo+ICsJCQkJ cGl4Y2xrID0gaWxrX3BpcGVfcGl4ZWxfcmF0ZShjcnRjX3N0YXRlKTsKPiArCj4gKwkJCQkvKiBw aXhlbCByYXRlIG11c3RuJ3QgZXhjZWVkIDk1JSBvZiBjZGNsayB3aXRoIElQUyBvbiBCRFcgKi8K PiArCQkJCWlmIChjcnRjX3N0YXRlLT5pcHNfZW5hYmxlZCkKPiArCQkJCQlwaXhjbGsgPSBESVZf Uk9VTkRfVVAocGl4Y2xrICogMTAwLCA5NSk7Cj4gKwkJCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihk ZXZfcHJpdikgfHwgSVNfVkFMTEVZVklFVyhkZXZfcHJpdikpCj4gKwkJCQlwaXhjbGsgPSBjcnRj X3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKV2hhdCBoYXBwZW5zIHdpdGgg dGhlIG90aGVyIHBsYXRmb3Jtcz8KCj4gKwkJfQo+ICsKPiArCQlkZXZfcHJpdi0+bWluX3BpeGNs a1tjcnRjLT5waXBlXSA9IHBpeGNsazsKPiAgCj4gIAkJcmVhZG91dF9wbGFuZV9zdGF0ZShjcnRj KTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCA0ZGZjYTU4ZDM3YmYuLjhj ZmM1OTlmZDQxMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTI0Niw3ICsy NDYsMTIgQEAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSB7Cj4gIAlzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSBiYXNlOwo+ICAKPiAgCXVuc2lnbmVkIGludCBjZGNsazsKPiAtCWJvb2wgZHBsbF9z ZXQ7Cj4gKwo+ICsJYm9vbCBkcGxsX3NldCwgbW9kZXNldDsKPiArCj4gKwl1bnNpZ25lZCBpbnQg YWN0aXZlX2NydGNzOwo+ICsJdW5zaWduZWQgaW50IG1pbl9waXhjbGtbSTkxNV9NQVhfUElQRVNd Owo+ICsKPiAgCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9jb25maWcgc2hhcmVkX2RwbGxbSTkx NV9OVU1fUExMU107Cj4gIAlzdHJ1Y3QgaW50ZWxfd21fY29uZmlnIHdtX2NvbmZpZzsKPiAgfTsK Ci0tIApNaWthIEthaG9sYSAtIEludGVsIE9UQwoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK