From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 6/9] drm/i915: Use intel state as much as possible in wm code Date: Mon, 24 Jun 2019 19:07:05 +0300 Message-ID: <20190624160705.GW5942@intel.com> References: <20190620214613.14481-1-maarten.lankhorst@linux.intel.com> <20190620214613.14481-7-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4C30489CC1 for ; Mon, 24 Jun 2019 16:07:09 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190620214613.14481-7-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 T24gVGh1LCBKdW4gMjAsIDIwMTkgYXQgMTE6NDY6MTBQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gSW5zdGVhZCBvZiBkaXJlY3RseSByZWZlcmVuY2luZyBkcm1fY3J0Y19zdGF0 ZSwgY29udmVydCB0bwo+IGludGVsX2N0Y19zdGF0ZSBhbmQgdXNlIHRoZSBiYXNlIHN0cnVjdC4g VGhpcyBpcyB1c2VmdWwgd2hlbiB3ZSdyZQo+IG1ha2luZyB0aGUgc3BsaXQgYmV0d2VlbiB1YXBp IGFuZCBodyBzdGF0ZSwgYW5kIGFsc28gbWFrZXMgdGhlCj4gY29kZSBzbGlnaHRseSBtb3JlIHJl YWRhYmxlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxh bmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMgfCAxMTIgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KPiAgMSBmaWxl IGNoYW5nZWQsIDUwIGluc2VydGlvbnMoKyksIDYyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uYwo+IGluZGV4IDQxMTZkZTJhNzdmZC4uYWZhMDY5ZjBkYzcwIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTM4NTcsOCArMzg1Nyw4IEBAIHNrbF9kZGJfZ2V0 X3BpcGVfYWxsb2NhdGlvbl9saW1pdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3N0YXRlLT5iYXNlLnN0YXRl Owo+ICAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9h dG9taWNfc3RhdGUoc3RhdGUpOwo+ICAJc3RydWN0IGRybV9jcnRjICpmb3JfY3J0YyA9IGNzdGF0 ZS0+YmFzZS5jcnRjOwo+IC0JY29uc3Qgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRl Owo+IC0JY29uc3Qgc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ICsJY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gKwljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YzsKPiAgCXUzMiBwaXBlX3dpZHRoID0gMCwgdG90YWxfd2lkdGggPSAwLCB3aWR0aF9iZWZvcmVf cGlwZSA9IDA7Cj4gIAllbnVtIHBpcGUgZm9yX3BpcGUgPSB0b19pbnRlbF9jcnRjKGZvcl9jcnRj KS0+cGlwZTsKPiAgCXUxNiBkZGJfc2l6ZTsKPiBAQCAtMzkwMSwxNiArMzkwMSwxNiBAQCBza2xf ZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiAgCSAqIGZyYW1lYnVmZmVyLCBTbyBpbnN0ZWFkIG9mIGFsbG9jYXRpbmcgRERC IGVxdWFsbHkgYW1vbmcgcGlwZXMKPiAgCSAqIGRpc3RyaWJ1dGUgRERCIGJhc2VkIG9uIHJlc29s dXRpb24vd2lkdGggb2YgdGhlIGRpc3BsYXkuCj4gIAkgKi8KPiAtCWZvcl9lYWNoX25ld19jcnRj X2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4gKwlmb3JfZWFjaF9uZXdf aW50ZWxfY3J0Y19pbl9zdGF0ZShpbnRlbF9zdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewo+ ICAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlOwo+ICAJCWlu dCBoZGlzcGxheSwgdmRpc3BsYXk7Cj4gIAkJZW51bSBwaXBlIHBpcGU7Cj4gIAo+IC0JCWlmICgh Y3J0Y19zdGF0ZS0+ZW5hYmxlKQo+ICsJCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUpCj4g IAkJCWNvbnRpbnVlOwo+ICAKPiAtCQlwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZTsK PiAtCQlhZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmFkanVzdGVkX21vZGU7Cj4gKwkJcGlw ZSA9IGNydGMtPnBpcGU7Cj4gKwkJYWRqdXN0ZWRfbW9kZSA9ICZjcnRjX3N0YXRlLT5iYXNlLmFk anVzdGVkX21vZGU7CgpUaG9zZSB0d28gY291bGQgYmUgZG9uZSB3aGVuIGRlY2xhcmluZyB0aGUg dmFyaWFibGVzLgoKPiAgCQlkcm1fbW9kZV9nZXRfaHZfdGltaW5nKGFkanVzdGVkX21vZGUsICZo ZGlzcGxheSwgJnZkaXNwbGF5KTsKPiAgCQl0b3RhbF93aWR0aCArPSBoZGlzcGxheTsKPiAgCj4g QEAgLTQxMzksMTEgKzQxMzksOSBAQCBpbnQgc2tsX2NoZWNrX3BpcGVfbWF4X3BpeGVsX3JhdGUo c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gIAkJCQkgIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoaW50ZWxfY3J0Yy0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGRybV9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlID0gJmNzdGF0ZS0+YmFzZTsKPiAtCXN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPnN0YXRlOwo+ICsJc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlID0gY3N0YXRlLT5iYXNlLnN0YXRlOwo+ICAJc3RydWN0IGRybV9wbGFuZSAqcGxh bmU7Cj4gLQljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3RhdGU7Cj4gLQlzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgKmludGVsX3BzdGF0ZTsKPiArCWNvbnN0IHN0cnVjdCBkcm1fcGxh bmVfc3RhdGUgKmRybV9wc3RhdGU7Cj4gIAlpbnQgY3J0Y19jbG9jaywgZG90Y2xrOwo+ICAJdTMy IHBpcGVfbWF4X3BpeGVsX3JhdGU7Cj4gIAl1aW50X2ZpeGVkXzE2XzE2X3QgcGlwZV9kb3duc2Nh bGU7Cj4gQEAgLTQxNTIsMjIgKzQxNTAsMjEgQEAgaW50IHNrbF9jaGVja19waXBlX21heF9waXhl bF9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+ICAJaWYgKCFjc3RhdGUtPmJh c2UuZW5hYmxlKQo+ICAJCXJldHVybiAwOwo+ICAKPiAtCWRybV9hdG9taWNfY3J0Y19zdGF0ZV9m b3JfZWFjaF9wbGFuZV9zdGF0ZShwbGFuZSwgcHN0YXRlLCBjcnRjX3N0YXRlKSB7Cj4gKwlkcm1f YXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hfcGxhbmVfc3RhdGUocGxhbmUsIGRybV9wc3RhdGUs ICZjc3RhdGUtPmJhc2UpIHsKPiAgCQl1aW50X2ZpeGVkXzE2XzE2X3QgcGxhbmVfZG93bnNjYWxl Owo+ICAJCXVpbnRfZml4ZWRfMTZfMTZfdCBmcF85X2Rpdl84ID0gZGl2X2ZpeGVkMTYoOSwgOCk7 Cj4gIAkJaW50IGJwcDsKPiArCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBzdGF0 ZSA9Cj4gKwkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9wc3RhdGUpOwo+ICAKPiAtCQlpZiAo IWludGVsX3dtX3BsYW5lX3Zpc2libGUoY3N0YXRlLAo+IC0JCQkJCSAgICB0b19pbnRlbF9wbGFu ZV9zdGF0ZShwc3RhdGUpKSkKPiArCQlpZiAoIWludGVsX3dtX3BsYW5lX3Zpc2libGUoY3N0YXRl LCBwc3RhdGUpKQo+ICAJCQljb250aW51ZTsKPiAgCj4gLQkJaWYgKFdBUk5fT04oIXBzdGF0ZS0+ ZmIpKQo+ICsJCWlmIChXQVJOX09OKCFwc3RhdGUtPmJhc2UuZmIpKQo+ICAJCQlyZXR1cm4gLUVJ TlZBTDsKPiAgCj4gLQkJaW50ZWxfcHN0YXRlID0gdG9faW50ZWxfcGxhbmVfc3RhdGUocHN0YXRl KTsKPiAtCQlwbGFuZV9kb3duc2NhbGUgPSBza2xfcGxhbmVfZG93bnNjYWxlX2Ftb3VudChjc3Rh dGUsCj4gLQkJCQkJCQkgICAgIGludGVsX3BzdGF0ZSk7Cj4gLQkJYnBwID0gcHN0YXRlLT5mYi0+ Zm9ybWF0LT5jcHBbMF0gKiA4Owo+ICsJCXBsYW5lX2Rvd25zY2FsZSA9IHNrbF9wbGFuZV9kb3du c2NhbGVfYW1vdW50KGNzdGF0ZSwgcHN0YXRlKTsKPiArCQlicHAgPSBwc3RhdGUtPmJhc2UuZmIt PmZvcm1hdC0+Y3BwWzBdICogODsKPiAgCQlpZiAoYnBwID09IDY0KQo+ICAJCQlwbGFuZV9kb3du c2NhbGUgPSBtdWxfZml4ZWQxNihwbGFuZV9kb3duc2NhbGUsCj4gIAkJCQkJCSAgICAgIGZwXzlf ZGl2XzgpOwo+IEBAIC00MTc4LDcgKzQxNzUsNyBAQCBpbnQgc2tsX2NoZWNrX3BpcGVfbWF4X3Bp eGVsX3JhdGUoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gIAo+ICAJcGlwZV9kb3du c2NhbGUgPSBtdWxfZml4ZWQxNihwaXBlX2Rvd25zY2FsZSwgbWF4X2Rvd25zY2FsZSk7Cj4gIAo+ IC0JY3J0Y19jbG9jayA9IGNydGNfc3RhdGUtPmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKPiAr CWNydGNfY2xvY2sgPSBjc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwo+ICAJ ZG90Y2xrID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKS0+Y2RjbGsubG9naWNhbC5jZGNs azsKPiAgCj4gIAlpZiAoSVNfR0VNSU5JTEFLRShkZXZfcHJpdikgfHwgSU5URUxfR0VOKGRldl9w cml2KSA+PSAxMCkKPiBAQCAtNDE5NiwxMSArNDE5MywxMCBAQCBpbnQgc2tsX2NoZWNrX3BpcGVf bWF4X3BpeGVsX3JhdGUoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gIAo+ICBzdGF0 aWMgdTY0Cj4gIHNrbF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNzdGF0ZSwKPiAtCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVf c3RhdGUgKmludGVsX3BzdGF0ZSwKPiArCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVf c3RhdGUgKnBzdGF0ZSwKPiAgCQkJICAgICBjb25zdCBpbnQgcGxhbmUpCgpIbW0uIERpZG4ndCBJ IHJlbmFtZSB0aGF0ICdwbGFuZScgdG8gJ2NvbG9yX3BsYW5lJz8gTWF5YmUgaXQgd2FzIHNvbWUK b3RoZXIgaW5zdGFuY2UsIG9yIHRoZSBwYXRjaCBuZXZlciBnb3QgaW4uIEFueXdheXMgSSdkIGxp a2UgdG8gc2VlIHRoYXQKZG9uZSBhbmQgdGhlbiB3ZSBjYW4gdXNlICdwbGFuZScgZm9yIHRoZSBp bnRlbF9wbGFuZS4KCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPQo+ IC0JCXRvX2ludGVsX3BsYW5lKGludGVsX3BzdGF0ZS0+YmFzZS5wbGFuZSk7Cj4gKwlzdHJ1Y3Qg aW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocHN0YXRlLT5iYXNlLnBs YW5lKTsKPiAgCXUzMiBkYXRhX3JhdGU7Cj4gIAl1MzIgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwo+ ICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7Cj4gQEAgLTQyMDgsMTAgKzQyMDQsMTAgQEAg c2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3N0YXRlLAo+ICAJdWludF9maXhlZF8xNl8xNl90IGRvd25fc2NhbGVfYW1vdW50Owo+ICAJ dTY0IHJhdGU7Cj4gIAo+IC0JaWYgKCFpbnRlbF9wc3RhdGUtPmJhc2UudmlzaWJsZSkKPiArCWlm ICghcHN0YXRlLT5iYXNlLnZpc2libGUpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IC0JZmIgPSBpbnRl bF9wc3RhdGUtPmJhc2UuZmI7Cj4gKwlmYiA9IHBzdGF0ZS0+YmFzZS5mYjsKPiAgCWZvcm1hdCA9 IGZiLT5mb3JtYXQtPmZvcm1hdDsKPiAgCj4gIAlpZiAoaW50ZWxfcGxhbmUtPmlkID09IFBMQU5F X0NVUlNPUikKPiBAQCAtNDIyNCw4ICs0MjIwLDggQEAgc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFf cmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAJICogdGhlIDkw LzI3MCBkZWdyZWUgcGxhbmUgcm90YXRpb24gY2FzZXMgKHRvIG1hdGNoIHRoZQo+ICAJICogR1RU IG1hcHBpbmcpLCBoZW5jZSBubyBuZWVkIHRvIGFjY291bnQgZm9yIHJvdGF0aW9uIGhlcmUuCj4g IAkgKi8KPiAtCXdpZHRoID0gZHJtX3JlY3Rfd2lkdGgoJmludGVsX3BzdGF0ZS0+YmFzZS5zcmMp ID4+IDE2Owo+IC0JaGVpZ2h0ID0gZHJtX3JlY3RfaGVpZ2h0KCZpbnRlbF9wc3RhdGUtPmJhc2Uu c3JjKSA+PiAxNjsKPiArCXdpZHRoID0gZHJtX3JlY3Rfd2lkdGgoJnBzdGF0ZS0+YmFzZS5zcmMp ID4+IDE2Owo+ICsJaGVpZ2h0ID0gZHJtX3JlY3RfaGVpZ2h0KCZwc3RhdGUtPmJhc2Uuc3JjKSA+ PiAxNjsKPiAgCj4gIAkvKiBVViBwbGFuZSBkb2VzIDEvMiBwaXhlbCBzdWItc2FtcGxpbmcgKi8K PiAgCWlmIChwbGFuZSA9PSAxICYmIGlzX3BsYW5hcl95dXZfZm9ybWF0KGZvcm1hdCkpIHsKPiBA QCAtNDIzNSw3ICs0MjMxLDcgQEAgc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAKPiAgCWRhdGFfcmF0ZSA9IHdpZHRo ICogaGVpZ2h0Owo+ICAKPiAtCWRvd25fc2NhbGVfYW1vdW50ID0gc2tsX3BsYW5lX2Rvd25zY2Fs ZV9hbW91bnQoY3N0YXRlLCBpbnRlbF9wc3RhdGUpOwo+ICsJZG93bl9zY2FsZV9hbW91bnQgPSBz a2xfcGxhbmVfZG93bnNjYWxlX2Ftb3VudChjc3RhdGUsIHBzdGF0ZSk7Cj4gIAo+ICAJcmF0ZSA9 IG11bF9yb3VuZF91cF91MzJfZml4ZWQxNihkYXRhX3JhdGUsIGRvd25fc2NhbGVfYW1vdW50KTsK PiAgCj4gQEAgLTQyNDQsMzUgKzQyNDAsMzIgQEAgc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0 ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICB9Cj4gIAo+ICBzdGF0 aWMgdTY0Cj4gLXNrbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICppbnRlbF9jc3RhdGUsCj4gK3NrbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9y YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCj4gIAkJCQkgdTY0ICpwbGFuZV9k YXRhX3JhdGUsCj4gIAkJCQkgdTY0ICp1dl9wbGFuZV9kYXRhX3JhdGUpCj4gIHsKPiAtCXN0cnVj dCBkcm1fY3J0Y19zdGF0ZSAqY3N0YXRlID0gJmludGVsX2NzdGF0ZS0+YmFzZTsKPiAtCXN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNzdGF0ZS0+c3RhdGU7Cj4gKwlzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjc3RhdGUtPmJhc2Uuc3RhdGU7CgpzL2NzdGF0ZS9jcnRj X3N0YXRlLyBldGMuIG1pZ2h0IGJlIG5pY2UgaW4gYSBidW5jaCBvZiB0aGVzZSBmdW5jdGlvbnMu CgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KCj4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiAtCWNvbnN0IHN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgKnBzdGF0ZTsKPiArCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKmRy bV9wc3RhdGU7Cj4gIAl1NjQgdG90YWxfZGF0YV9yYXRlID0gMDsKPiAgCj4gIAlpZiAoV0FSTl9P Tighc3RhdGUpKQo+ICAJCXJldHVybiAwOwo+ICAKPiAgCS8qIENhbGN1bGF0ZSBhbmQgY2FjaGUg ZGF0YSByYXRlIGZvciBlYWNoIHBsYW5lICovCj4gLQlkcm1fYXRvbWljX2NydGNfc3RhdGVfZm9y X2VhY2hfcGxhbmVfc3RhdGUocGxhbmUsIHBzdGF0ZSwgY3N0YXRlKSB7Cj4gKwlkcm1fYXRvbWlj X2NydGNfc3RhdGVfZm9yX2VhY2hfcGxhbmVfc3RhdGUocGxhbmUsIGRybV9wc3RhdGUsICZjc3Rh dGUtPmJhc2UpIHsKPiAgCQllbnVtIHBsYW5lX2lkIHBsYW5lX2lkID0gdG9faW50ZWxfcGxhbmUo cGxhbmUpLT5pZDsKPiArCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBzdGF0ZSA9 Cj4gKwkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9wc3RhdGUpOwo+ICAJCXU2NCByYXRlOwo+ IC0JCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqaW50ZWxfcHN0YXRlID0KPiAtCQkJ dG9faW50ZWxfcGxhbmVfc3RhdGUocHN0YXRlKTsKPiAgCj4gIAkJLyogcGFja2VkL3kgKi8KPiAt CQlyYXRlID0gc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShpbnRlbF9jc3RhdGUsCj4gLQkJ CQkJCSAgICBpbnRlbF9wc3RhdGUsIDApOwo+ICsJCXJhdGUgPSBza2xfcGxhbmVfcmVsYXRpdmVf ZGF0YV9yYXRlKGNzdGF0ZSwgcHN0YXRlLCAwKTsKPiAgCQlwbGFuZV9kYXRhX3JhdGVbcGxhbmVf aWRdID0gcmF0ZTsKPiAgCQl0b3RhbF9kYXRhX3JhdGUgKz0gcmF0ZTsKPiAgCj4gIAkJLyogdXYt cGxhbmUgKi8KPiAtCQlyYXRlID0gc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShpbnRlbF9j c3RhdGUsCj4gLQkJCQkJCSAgICBpbnRlbF9wc3RhdGUsIDEpOwo+ICsJCXJhdGUgPSBza2xfcGxh bmVfcmVsYXRpdmVfZGF0YV9yYXRlKGNzdGF0ZSwgcHN0YXRlLCAxKTsKPiAgCQl1dl9wbGFuZV9k YXRhX3JhdGVbcGxhbmVfaWRdID0gcmF0ZTsKPiAgCQl0b3RhbF9kYXRhX3JhdGUgKz0gcmF0ZTsK PiAgCX0KPiBAQCAtNDI4MSwyOCArNDI3NCwyNSBAQCBza2xfZ2V0X3RvdGFsX3JlbGF0aXZlX2Rh dGFfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3N0YXRlLAo+ICB9Cj4gIAo+ ICBzdGF0aWMgdTY0Cj4gLWljbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICppbnRlbF9jc3RhdGUsCj4gK2ljbF9nZXRfdG90YWxfcmVsYXRpdmVf ZGF0YV9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCj4gIAkJCQkgdTY0ICpw bGFuZV9kYXRhX3JhdGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3N0YXRlID0g JmludGVsX2NzdGF0ZS0+YmFzZTsKPiAtCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9 IGNzdGF0ZS0+c3RhdGU7Cj4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiAtCWNvbnN0IHN0 cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0ZTsKPiArCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKmRybV9wc3RhdGU7Cj4gIAl1NjQgdG90YWxfZGF0YV9yYXRlID0gMDsKPiAgCj4gLQlp ZiAoV0FSTl9PTighc3RhdGUpKQo+ICsJaWYgKFdBUk5fT04oIWNzdGF0ZS0+YmFzZS5zdGF0ZSkp Cj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJLyogQ2FsY3VsYXRlIGFuZCBjYWNoZSBkYXRhIHJhdGUg Zm9yIGVhY2ggcGxhbmUgKi8KPiAtCWRybV9hdG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFjaF9wbGFu ZV9zdGF0ZShwbGFuZSwgcHN0YXRlLCBjc3RhdGUpIHsKPiAtCQljb25zdCBzdHJ1Y3QgaW50ZWxf cGxhbmVfc3RhdGUgKmludGVsX3BzdGF0ZSA9Cj4gLQkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBz dGF0ZSk7Cj4gKwlkcm1fYXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hfcGxhbmVfc3RhdGUocGxh bmUsIGRybV9wc3RhdGUsICZjc3RhdGUtPmJhc2UpIHsKPiArCQljb25zdCBzdHJ1Y3QgaW50ZWxf cGxhbmVfc3RhdGUgKnBzdGF0ZSA9Cj4gKwkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9wc3Rh dGUpOwo+ICAJCWVudW0gcGxhbmVfaWQgcGxhbmVfaWQgPSB0b19pbnRlbF9wbGFuZShwbGFuZSkt PmlkOwo+ICAJCXU2NCByYXRlOwo+ICAKPiAtCQlpZiAoIWludGVsX3BzdGF0ZS0+bGlua2VkX3Bs YW5lKSB7Cj4gLQkJCXJhdGUgPSBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGludGVsX2Nz dGF0ZSwKPiAtCQkJCQkJCSAgICBpbnRlbF9wc3RhdGUsIDApOwo+ICsJCWlmICghcHN0YXRlLT5s aW5rZWRfcGxhbmUpIHsKPiArCQkJcmF0ZSA9IHNrbF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUo Y3N0YXRlLCBwc3RhdGUsIDApOwo+ICAJCQlwbGFuZV9kYXRhX3JhdGVbcGxhbmVfaWRdID0gcmF0 ZTsKPiAgCQkJdG90YWxfZGF0YV9yYXRlICs9IHJhdGU7Cj4gIAkJfSBlbHNlIHsKPiBAQCAtNDMx NSwxOCArNDMwNSwxNiBAQCBpY2xfZ2V0X3RvdGFsX3JlbGF0aXZlX2RhdGFfcmF0ZShzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3N0YXRlLAo+ICAJCQkgKiBOVUxMIGlmIHdlIHRyeSBn ZXRfbmV3X3BsYW5lX3N0YXRlKCksIHNvIHdlCj4gIAkJCSAqIGFsd2F5cyBjYWxjdWxhdGUgZnJv bSB0aGUgbWFzdGVyLgo+ICAJCQkgKi8KPiAtCQkJaWYgKGludGVsX3BzdGF0ZS0+c2xhdmUpCj4g KwkJCWlmIChwc3RhdGUtPnNsYXZlKQo+ICAJCQkJY29udGludWU7Cj4gIAo+ICAJCQkvKiBZIHBs YW5lIHJhdGUgaXMgY2FsY3VsYXRlZCBvbiB0aGUgc2xhdmUgKi8KPiAtCQkJcmF0ZSA9IHNrbF9w bGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUoaW50ZWxfY3N0YXRlLAo+IC0JCQkJCQkJICAgIGludGVs X3BzdGF0ZSwgMCk7Cj4gLQkJCXlfcGxhbmVfaWQgPSBpbnRlbF9wc3RhdGUtPmxpbmtlZF9wbGFu ZS0+aWQ7Cj4gKwkJCXJhdGUgPSBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGNzdGF0ZSwg cHN0YXRlLCAwKTsKPiArCQkJeV9wbGFuZV9pZCA9IHBzdGF0ZS0+bGlua2VkX3BsYW5lLT5pZDsK PiAgCQkJcGxhbmVfZGF0YV9yYXRlW3lfcGxhbmVfaWRdID0gcmF0ZTsKPiAgCQkJdG90YWxfZGF0 YV9yYXRlICs9IHJhdGU7Cj4gIAo+IC0JCQlyYXRlID0gc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFf cmF0ZShpbnRlbF9jc3RhdGUsCj4gLQkJCQkJCQkgICAgaW50ZWxfcHN0YXRlLCAxKTsKPiArCQkJ cmF0ZSA9IHNrbF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUoY3N0YXRlLCBwc3RhdGUsIDEpOwo+ ICAJCQlwbGFuZV9kYXRhX3JhdGVbcGxhbmVfaWRdID0gcmF0ZTsKPiAgCQkJdG90YWxfZGF0YV9y YXRlICs9IHJhdGU7Cj4gIAkJfQo+IEBAIC01MDk1LDkgKzUwODMsOCBAQCBzdGF0aWMgaW50IHNr bF9idWlsZF9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCj4gIHsKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3N0YXRlLT5iYXNl LmNydGMtPmRldik7Cj4gIAlzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd20gPSAmY3N0YXRlLT53 bS5za2wub3B0aW1hbDsKPiAtCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9ICZj c3RhdGUtPmJhc2U7Cj4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiAtCWNvbnN0IHN0cnVj dCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0ZTsKPiArCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3Rh dGUgKmRybV9wc3RhdGU7Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCS8qCj4gQEAgLTUxMDYsMTQgKzUw OTMsMTUgQEAgc3RhdGljIGludCBza2xfYnVpbGRfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3N0YXRlKQo+ICAJICovCj4gIAltZW1zZXQocGlwZV93bS0+cGxhbmVzLCAwLCBzaXpl b2YocGlwZV93bS0+cGxhbmVzKSk7Cj4gIAo+IC0JZHJtX2F0b21pY19jcnRjX3N0YXRlX2Zvcl9l YWNoX3BsYW5lX3N0YXRlKHBsYW5lLCBwc3RhdGUsIGNydGNfc3RhdGUpIHsKPiAtCQljb25zdCBz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKmludGVsX3BzdGF0ZSA9Cj4gLQkJCQkJCXRvX2ludGVs X3BsYW5lX3N0YXRlKHBzdGF0ZSk7Cj4gKwlkcm1fYXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hf cGxhbmVfc3RhdGUocGxhbmUsIGRybV9wc3RhdGUsCj4gKwkJCQkJCSAgICZjc3RhdGUtPmJhc2Up IHsKPiArCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBzdGF0ZSA9Cj4gKwkJCXRv X2ludGVsX3BsYW5lX3N0YXRlKGRybV9wc3RhdGUpOwo+ICAKPiAgCQlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+PSAxMSkKPiAtCQkJcmV0ID0gaWNsX2J1aWxkX3BsYW5lX3dtKGNzdGF0ZSwgaW50 ZWxfcHN0YXRlKTsKPiArCQkJcmV0ID0gaWNsX2J1aWxkX3BsYW5lX3dtKGNzdGF0ZSwgcHN0YXRl KTsKPiAgCQllbHNlCj4gLQkJCXJldCA9IHNrbF9idWlsZF9wbGFuZV93bShjc3RhdGUsIGludGVs X3BzdGF0ZSk7Cj4gKwkJCXJldCA9IHNrbF9idWlsZF9wbGFuZV93bShjc3RhdGUsIHBzdGF0ZSk7 Cj4gIAkJaWYgKHJldCkKPiAgCQkJcmV0dXJuIHJldDsKPiAgCX0KPiAtLSAKPiAyLjIwLjEKPiAK PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVs LWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0t IApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4