From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= Subject: [PATCH v2 2/8] drm/i915/guc: Move GuC workqueue allocations outside of the mutex Date: Wed, 13 Dec 2017 13:50:40 +0100 Message-ID: <20171213125046.1735-2-michal.winiarski@intel.com> References: <20171213125046.1735-1-michal.winiarski@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 68D636E458 for ; Wed, 13 Dec 2017 12:51:51 +0000 (UTC) In-Reply-To: <20171213125046.1735-1-michal.winiarski@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhpcyBnZXRzIHJpZCBvZiB0aGUgZm9sbG93aW5nIGxvY2tkZXAgc3BsYXQ6Cgo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV0FSTklORzogcG9z c2libGUgY2lyY3VsYXIgbG9ja2luZyBkZXBlbmRlbmN5IGRldGVjdGVkCjQuMTUuMC1yYzItQ0kt UGF0Y2h3b3JrXzc0MjgrICMxIE5vdCB0YWludGVkCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkZWJ1Z2ZzX3Rlc3QvMTM1MSBpcyB0cnlpbmcg dG8gYWNxdWlyZSBsb2NrOgogKCZkZXYtPnN0cnVjdF9tdXRleCl7Ky4rLn0sIGF0OiBbPDAwMDAw MDAwOWQ5MGQxYTM+XSBpOTE1X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZSsweDQ3LzB4MTMwIFtp OTE1XQoKYnV0IHRhc2sgaXMgYWxyZWFkeSBob2xkaW5nIGxvY2s6CiAoJm1tLT5tbWFwX3NlbSl7 KysrK30sIGF0OiBbPDAwMDAwMDAwNWRmMDFjMWU+XSBfX2RvX3BhZ2VfZmF1bHQrMHgxMDYvMHg1 NjAKCndoaWNoIGxvY2sgYWxyZWFkeSBkZXBlbmRzIG9uIHRoZSBuZXcgbG9jay4KCnRoZSBleGlz dGluZyBkZXBlbmRlbmN5IGNoYWluIChpbiByZXZlcnNlIG9yZGVyKSBpczoKCi0+ICM2ICgmbW0t Pm1tYXBfc2VtKXsrKysrfToKICAgICAgIF9fbWlnaHRfZmF1bHQrMHg2My8weDkwCiAgICAgICBf Y29weV90b191c2VyKzB4MWUvMHg3MAogICAgICAgZmlsbGRpcisweDhjLzB4ZjAKICAgICAgIGRj YWNoZV9yZWFkZGlyKzB4ZWIvMHgxNjAKICAgICAgIGl0ZXJhdGVfZGlyKzB4ZTYvMHgxNTAKICAg ICAgIFN5U19nZXRkZW50cysweGEwLzB4MTMwCiAgICAgICBlbnRyeV9TWVNDQUxMXzY0X2Zhc3Rw YXRoKzB4MWMvMHg4OQoKLT4gIzUgKCZzYi0+c190eXBlLT5pX211dGV4X2tleSM1KXsrKysrfToK ICAgICAgIGxvY2tyZWZfZ2V0KzB4OS8weDIwCgotPiAjNCAoKGNvbXBsZXRpb24pJnJlcS5kb25l KXsrLisufToKICAgICAgIHdhaXRfZm9yX2NvbW1vbisweDU0LzB4MjEwCiAgICAgICBkZXZ0bXBm c19jcmVhdGVfbm9kZSsweDEzMC8weDE1MAogICAgICAgZGV2aWNlX2FkZCsweDVhZC8weDVlMAog ICAgICAgZGV2aWNlX2NyZWF0ZV9ncm91cHNfdmFyZ3MrMHhkNC8weGUwCiAgICAgICBkZXZpY2Vf Y3JlYXRlKzB4MzUvMHg0MAogICAgICAgbXNyX2RldmljZV9jcmVhdGUrMHgyMi8weDQwCiAgICAg ICBjcHVocF9pbnZva2VfY2FsbGJhY2srMHhjNS8weGJmMAogICAgICAgY3B1aHBfdGhyZWFkX2Z1 bisweDE2Ny8weDIxMAogICAgICAgc21wYm9vdF90aHJlYWRfZm4rMHgxN2YvMHgyNzAKICAgICAg IGt0aHJlYWQrMHgxNzMvMHgxYjAKICAgICAgIHJldF9mcm9tX2ZvcmsrMHgyNC8weDMwCgotPiAj MyAoY3B1aHBfc3RhdGUtdXApeysuKy59OgogICAgICAgY3B1aHBfaXNzdWVfY2FsbCsweDEzMi8w eDFjMAogICAgICAgX19jcHVocF9zZXR1cF9zdGF0ZV9jcHVzbG9ja2VkKzB4MTJmLzB4MmEwCiAg ICAgICBfX2NwdWhwX3NldHVwX3N0YXRlKzB4M2EvMHg1MAogICAgICAgcGFnZV93cml0ZWJhY2tf aW5pdCsweDNhLzB4NWMKICAgICAgIHN0YXJ0X2tlcm5lbCsweDM5My8weDNlMgogICAgICAgc2Vj b25kYXJ5X3N0YXJ0dXBfNjQrMHhhNS8weGIwCgotPiAjMiAoY3B1aHBfc3RhdGVfbXV0ZXgpeysu Ky59OgogICAgICAgX19tdXRleF9sb2NrKzB4ODEvMHg5YjAKICAgICAgIF9fY3B1aHBfc2V0dXBf c3RhdGVfY3B1c2xvY2tlZCsweDRiLzB4MmEwCiAgICAgICBfX2NwdWhwX3NldHVwX3N0YXRlKzB4 M2EvMHg1MAogICAgICAgcGFnZV9hbGxvY19pbml0KzB4MWYvMHgyNgogICAgICAgc3RhcnRfa2Vy bmVsKzB4MTM5LzB4M2UyCiAgICAgICBzZWNvbmRhcnlfc3RhcnR1cF82NCsweGE1LzB4YjAKCi0+ ICMxIChjcHVfaG90cGx1Z19sb2NrLnJ3X3NlbSl7KysrK306CiAgICAgICBjcHVzX3JlYWRfbG9j aysweDM0LzB4YTAKICAgICAgIGFwcGx5X3dvcmtxdWV1ZV9hdHRycysweGQvMHg0MAogICAgICAg X19hbGxvY193b3JrcXVldWVfa2V5KzB4MmM3LzB4NGUxCiAgICAgICBpbnRlbF9ndWNfc3VibWlz c2lvbl9pbml0KzB4MTBjLzB4NjUwIFtpOTE1XQogICAgICAgaW50ZWxfdWNfaW5pdF9odysweDI5 ZS8weDQ2MCBbaTkxNV0KICAgICAgIGk5MTVfZ2VtX2luaXRfaHcrMHhjYS8weDI5MCBbaTkxNV0K ICAgICAgIGk5MTVfZ2VtX2luaXQrMHgxMTUvMHgzYTAgW2k5MTVdCiAgICAgICBpOTE1X2RyaXZl cl9sb2FkKzB4OWE4LzB4MTZjMCBbaTkxNV0KICAgICAgIGk5MTVfcGNpX3Byb2JlKzB4MmUvMHg5 MCBbaTkxNV0KICAgICAgIHBjaV9kZXZpY2VfcHJvYmUrMHg5Yy8weDEyMAogICAgICAgZHJpdmVy X3Byb2JlX2RldmljZSsweDJhMy8weDQ4MAogICAgICAgX19kcml2ZXJfYXR0YWNoKzB4ZDkvMHhl MAogICAgICAgYnVzX2Zvcl9lYWNoX2RldisweDU3LzB4OTAKICAgICAgIGJ1c19hZGRfZHJpdmVy KzB4MTY4LzB4MjYwCiAgICAgICBkcml2ZXJfcmVnaXN0ZXIrMHg1Mi8weGMwCiAgICAgICBkb19v bmVfaW5pdGNhbGwrMHgzOS8weDE1MAogICAgICAgZG9faW5pdF9tb2R1bGUrMHg1Ni8weDFlZgog ICAgICAgbG9hZF9tb2R1bGUrMHgyMzFjLzB4MmQ3MAogICAgICAgU3lTX2Zpbml0X21vZHVsZSsw eGE1LzB4ZTAKICAgICAgIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxYy8weDg5CgotPiAj MCAoJmRldi0+c3RydWN0X211dGV4KXsrLisufToKICAgICAgIGxvY2tfYWNxdWlyZSsweGFmLzB4 MjAwCiAgICAgICBfX211dGV4X2xvY2srMHg4MS8weDliMAogICAgICAgaTkxNV9tdXRleF9sb2Nr X2ludGVycnVwdGlibGUrMHg0Ny8weDEzMCBbaTkxNV0KICAgICAgIGk5MTVfZ2VtX2ZhdWx0KzB4 MjAxLzB4NzYwIFtpOTE1XQogICAgICAgX19kb19mYXVsdCsweDE1LzB4NzAKICAgICAgIF9faGFu ZGxlX21tX2ZhdWx0KzB4ODViLzB4ZTQwCiAgICAgICBoYW5kbGVfbW1fZmF1bHQrMHgxNGYvMHgy ZjAKICAgICAgIF9fZG9fcGFnZV9mYXVsdCsweDJkMS8weDU2MAogICAgICAgcGFnZV9mYXVsdCsw eDIyLzB4MzAKCm90aGVyIGluZm8gdGhhdCBtaWdodCBoZWxwIHVzIGRlYnVnIHRoaXM6CgpDaGFp biBleGlzdHMgb2Y6CiAgJmRldi0+c3RydWN0X211dGV4IC0tPiAmc2ItPnNfdHlwZS0+aV9tdXRl eF9rZXkjNSAtLT4gJm1tLT5tbWFwX3NlbQoKIFBvc3NpYmxlIHVuc2FmZSBsb2NraW5nIHNjZW5h cmlvOgoKICAgICAgIENQVTAgICAgICAgICAgICAgICAgICAgIENQVTEKICAgICAgIC0tLS0gICAg ICAgICAgICAgICAgICAgIC0tLS0KICBsb2NrKCZtbS0+bW1hcF9zZW0pOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbG9jaygmc2ItPnNfdHlwZS0+aV9tdXRleF9rZXkjNSk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NrKCZtbS0+bW1hcF9zZW0pOwogIGxvY2soJmRl di0+c3RydWN0X211dGV4KTsKCiAqKiogREVBRExPQ0sgKioqCgoxIGxvY2sgaGVsZCBieSBkZWJ1 Z2ZzX3Rlc3QvMTM1MToKICMwOiAgKCZtbS0+bW1hcF9zZW0peysrKyt9LCBhdDogWzwwMDAwMDAw MDVkZjAxYzFlPl0gX19kb19wYWdlX2ZhdWx0KzB4MTA2LzB4NTYwCgpzdGFjayBiYWNrdHJhY2U6 CkNQVTogMiBQSUQ6IDEzNTEgQ29tbTogZGVidWdmc190ZXN0IE5vdCB0YWludGVkIDQuMTUuMC1y YzItQ0ktUGF0Y2h3b3JrXzc0MjgrICMxCkhhcmR3YXJlIG5hbWU6ICAgICAgICAgICAgICAgICAg L05VQzZpNVNZQiwgQklPUyBTWVNLTGkzNS44NkEuMDA1Ny4yMDE3LjAxMTkuMTc1OCAwMS8xOS8y MDE3CkNhbGwgVHJhY2U6CiBkdW1wX3N0YWNrKzB4NWYvMHg4NgogcHJpbnRfY2lyY3VsYXJfYnVn KzB4MjMwLzB4M2IwCiBjaGVja19wcmV2X2FkZCsweDQzOS8weDdiMAogPyBsb2NrZGVwX2luaXRf bWFwX2Nyb3NzbG9jaysweDIwLzB4MjAKID8gdW53aW5kX2dldF9yZXR1cm5fYWRkcmVzcysweDE2 LzB4MzAKID8gX19sb2NrX2FjcXVpcmUrMHgxMzg1LzB4MTVhMAogX19sb2NrX2FjcXVpcmUrMHgx Mzg1LzB4MTVhMAogbG9ja19hY3F1aXJlKzB4YWYvMHgyMDAKID8gaTkxNV9tdXRleF9sb2NrX2lu dGVycnVwdGlibGUrMHg0Ny8weDEzMCBbaTkxNV0KIF9fbXV0ZXhfbG9jaysweDgxLzB4OWIwCiA/ IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKzB4NDcvMHgxMzAgW2k5MTVdCiA/IGk5MTVf bXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKzB4NDcvMHgxMzAgW2k5MTVdCiA/IGk5MTVfbXV0ZXhf bG9ja19pbnRlcnJ1cHRpYmxlKzB4NDcvMHgxMzAgW2k5MTVdCiBpOTE1X211dGV4X2xvY2tfaW50 ZXJydXB0aWJsZSsweDQ3LzB4MTMwIFtpOTE1XQogPyBfX3BtX3J1bnRpbWVfcmVzdW1lKzB4NGYv MHg4MAogaTkxNV9nZW1fZmF1bHQrMHgyMDEvMHg3NjAgW2k5MTVdCiBfX2RvX2ZhdWx0KzB4MTUv MHg3MAogX19oYW5kbGVfbW1fZmF1bHQrMHg4NWIvMHhlNDAKIGhhbmRsZV9tbV9mYXVsdCsweDE0 Zi8weDJmMAogX19kb19wYWdlX2ZhdWx0KzB4MmQxLzB4NTYwCiBwYWdlX2ZhdWx0KzB4MjIvMHgz MApSSVA6IDAwMzM6MHg3Zjk4ZDZmNDkxMTYKUlNQOiAwMDJiOjAwMDA3ZmZkNmZmYzMyNzggRUZM QUdTOiAwMDAxMDI4MwpSQVg6IDAwMDA3Zjk4ZDM5YTJiYzAgUkJYOiAwMDAwMDAwMDAwMDAwMDAw IFJDWDogMDAwMDAwMDAwMDAwMTY4MApSRFg6IDAwMDAwMDAwMDAwMDE2ODAgUlNJOiAwMDAwN2Zm ZDZmZmMzNDAwIFJESTogMDAwMDdmOThkMzlhMmJjMApSQlA6IDAwMDA3ZmZkNmZmYzMzYTAgUjA4 OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDVhMApSMTA6IDAwMDA1NWU4NDdj MmE4MzAgUjExOiAwMDAwMDAwMDAwMDAwMDAyIFIxMjogMDAwMDAwMDAwMDAwMDAwMQpSMTM6IDAw MDA1NWU4NDdjMWQwNDAgUjE0OiAwMDAwN2ZmZDZmZmMzNDAwIFIxNTogMDAwMDdmOThkNjc1MmJh MAoKdjI6IEluaXQgcHJlZW1wdF93b3JrIHVuY29uZGl0aW9uYWxseSAoQ2hyaXMpCgpUZXN0Y2Fz ZTogaWd0L2RlYnVnZnNfdGVzdC9yZWFkX2FsbF9lbnRyaWVzClNpZ25lZC1vZmYtYnk6IE1pY2hh xYIgV2luaWFyc2tpIDxtaWNoYWwud2luaWFyc2tpQGludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNv biA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMu bGFodGluZW5AbGludXguaW50ZWwuY29tPgpDYzogTWljaGFsIFdhamRlY3prbyA8bWljaGFsLndh amRlY3prb0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAg ICAgICAgICAgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAg ICAgICAgfCAgNCArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmMgICAgICAgICAg ICB8IDU3ICsrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWMuaCAgICAgICAgICAgIHwgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Vj X2xvZy5jICAgICAgICB8IDIzIC0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2d1Y19zdWJtaXNzaW9uLmMgfCA3MCArKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uaCB8ICAyICsKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3VjLmMgICAgICAgICAgICAgfCAyNiArKysrKysrKysrKwogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuaCAgICAgICAgICAgICB8ICAyICsKIDkgZmlsZXMg Y2hhbmdlZCwgMTEwIGluc2VydGlvbnMoKyksIDc3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5jCmluZGV4IDcyMWNjY2UxODMyZi4uMjg1YzhiMjM4YmZmIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMKQEAgLTYyMSw2ICs2MjEsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9maW5p KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpOTE1X2dlbV9jb250ZXh0c19m aW5pKGRldl9wcml2KTsKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4 KTsKIAorCWludGVsX3VjX2Zpbmlfd3EoZGV2X3ByaXYpOwogCWk5MTVfZ2VtX2NsZWFudXBfdXNl cnB0cihkZXZfcHJpdik7CiAKIAlpOTE1X2dlbV9kcmFpbl9mcmVlZF9vYmplY3RzKGRldl9wcml2 KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDhjM2Q4MDE2OTZiNy4uNGIyY2E0M2E2MTBm IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTUxNjAsNiArNTE2MCwxMCBAQCBpbnQgaTkx NV9nZW1faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKHJldCkK IAkJcmV0dXJuIHJldDsKIAorCXJldCA9IGludGVsX3VjX2luaXRfd3EoZGV2X3ByaXYpOworCWlm IChyZXQpCisJCXJldHVybiByZXQ7CisKIAkvKiBUaGlzIGlzIGp1c3QgYSBzZWN1cml0eSBibGFu a2V0IHRvIHBsYWNhdGUgZHJhZ29ucy4KIAkgKiBPbiBzb21lIHN5c3RlbXMsIHdlIHZlcnkgc3Bv cmFkaWNhbGx5IG9ic2VydmUgdGhhdCB0aGUgZmlyc3QgVExCcwogCSAqIHVzZWQgYnkgdGhlIENT IG1heSBiZSBzdGFsZSwgZGVzcGl0ZSB1cyBwb2tpbmcgdGhlIFRMQiByZXNldC4gSWYKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZ3VjLmMKaW5kZXggOTJlZDIyZjM4ZmM0Li4zYzZiZjVhMzRjM2MgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2d1Yy5jCkBAIC02OSw2ICs2OSw2MyBAQCB2b2lkIGludGVsX2d1Y19p bml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIAlndWMtPm5vdGlmeSA9IGdlbjhfZ3Vj X3JhaXNlX2lycTsKIH0KIAoraW50IGludGVsX2d1Y19pbml0X3dxKHN0cnVjdCBpbnRlbF9ndWMg Kmd1YykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndWNfdG9faTkx NShndWMpOworCisJLyoKKwkgKiBHdUMgbG9nIGJ1ZmZlciBmbHVzaCB3b3JrIGl0ZW0gaGFzIHRv IGRvIHJlZ2lzdGVyIGFjY2VzcyB0bworCSAqIHNlbmQgdGhlIGFjayB0byBHdUMgYW5kIHRoaXMg d29yayBpdGVtLCBpZiBub3Qgc3luY2VkIGJlZm9yZQorCSAqIHN1c3BlbmQsIGNhbiBwb3RlbnRp YWxseSBnZXQgZXhlY3V0ZWQgYWZ0ZXIgdGhlIEdGWCBkZXZpY2UgaXMKKwkgKiBzdXNwZW5kZWQu CisJICogQnkgbWFya2luZyB0aGUgV1EgYXMgZnJlZXphYmxlLCB3ZSBkb24ndCBoYXZlIHRvIGJv dGhlciBhYm91dAorCSAqIGZsdXNoaW5nIG9mIHRoaXMgd29yayBpdGVtIGZyb20gdGhlIHN1c3Bl bmQgaG9va3MsIHRoZSBwZW5kaW5nCisJICogd29yayBpdGVtIGlmIGFueSB3aWxsIGJlIGVpdGhl ciBleGVjdXRlZCBiZWZvcmUgdGhlIHN1c3BlbmQKKwkgKiBvciBzY2hlZHVsZWQgbGF0ZXIgb24g cmVzdW1lLiBUaGlzIHdheSB0aGUgaGFuZGxpbmcgb2Ygd29yaworCSAqIGl0ZW0gY2FuIGJlIGtl cHQgc2FtZSBiZXR3ZWVuIHN5c3RlbSBzdXNwZW5kICYgcnBtIHN1c3BlbmQuCisJICovCisJZ3Vj LT5sb2cucnVudGltZS5mbHVzaF93cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKCJpOTE1LWd1 Y19sb2ciLAorCQkJCQkJV1FfSElHSFBSSSB8IFdRX0ZSRUVaQUJMRSk7CisJaWYgKCFndWMtPmxv Zy5ydW50aW1lLmZsdXNoX3dxKQorCQlyZXR1cm4gLUVOT01FTTsKKworCS8qCisJICogRXZlbiB0 aG91Z2ggYm90aCBzZW5kaW5nIEd1QyBhY3Rpb24sIGFuZCBhZGRpbmcgYSBuZXcgd29ya2l0ZW0g dG8KKwkgKiBHdUMgd29ya3F1ZXVlIGFyZSBzZXJpYWxpemVkIChlYWNoIHdpdGggaXRzIG93biBs b2NraW5nKSwgc2luY2UKKwkgKiB3ZSdyZSB1c2luZyBtdXRsaXBsZSBlbmdpbmVzLCBpdCdzIHBv c3NpYmxlIHRoYXQgd2UncmUgZ29pbmcgdG8KKwkgKiBpc3N1ZSBhIHByZWVtcHQgcmVxdWVzdCB3 aXRoIHR3byAob3IgbW9yZSAtIGVhY2ggZm9yIGRpZmZlcmVudAorCSAqIGVuZ2luZSkgd29ya2l0 ZW1zIGluIEd1QyBxdWV1ZS4gSW4gdGhpcyBzaXR1YXRpb24sIEd1QyBtYXkgc3VibWl0CisJICog YWxsIG9mIHRoZW0sIHdoaWNoIHdpbGwgbWFrZSB1cyB2ZXJ5IGNvbmZ1c2VkLgorCSAqIE91ciBw cmVlbXB0aW9uIGNvbnRleHRzIG1heSBldmVuIGFscmVhZHkgYmUgY29tcGxldGUgLSBiZWZvcmUg d2UKKwkgKiBldmVuIGhhZCB0aGUgY2hhbmNlIHRvIHNlbnQgdGhlIHByZWVtcHQgYWN0aW9uIHRv IEd1QyEuIFJhdGhlcgorCSAqIHRoYW4gaW50cm9kdWNpbmcgeWV0IGFub3RoZXIgbG9jaywgd2Ug Y2FuIGp1c3QgdXNlIG9yZGVyZWQgd29ya3F1ZXVlCisJICogdG8gbWFrZSBzdXJlIHdlJ3JlIGFs d2F5cyBzZW5kaW5nIGEgc2luZ2xlIHByZWVtcHRpb24gcmVxdWVzdCB3aXRoIGEKKwkgKiBzaW5n bGUgd29ya2l0ZW0uCisJICovCisJaWYgKEhBU19MT0dJQ0FMX1JJTkdfUFJFRU1QVElPTihkZXZf cHJpdikgJiYKKwkgICAgVVNFU19HVUNfU1VCTUlTU0lPTihkZXZfcHJpdikpIHsKKwkJZ3VjLT5w cmVlbXB0X3dxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoImk5MTUtZ3VjX3ByZWVtcHQiLAor CQkJCQkJCSAgV1FfSElHSFBSSSk7CisJCWlmICghZ3VjLT5wcmVlbXB0X3dxKSB7CisJCQlkZXN0 cm95X3dvcmtxdWV1ZShndWMtPmxvZy5ydW50aW1lLmZsdXNoX3dxKTsKKwkJCXJldHVybiAtRU5P TUVNOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgaW50ZWxfZ3VjX2Zpbmlfd3Eo c3RydWN0IGludGVsX2d1YyAqZ3VjKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGd1Y190b19pOTE1KGd1Yyk7CisKKwlpZiAoSEFTX0xPR0lDQUxfUklOR19QUkVFTVBU SU9OKGRldl9wcml2KSAmJgorCSAgICBVU0VTX0dVQ19TVUJNSVNTSU9OKGRldl9wcml2KSkKKwkJ ZGVzdHJveV93b3JrcXVldWUoZ3VjLT5wcmVlbXB0X3dxKTsKKworCWRlc3Ryb3lfd29ya3F1ZXVl KGd1Yy0+bG9nLnJ1bnRpbWUuZmx1c2hfd3EpOworfQorCiBzdGF0aWMgaW50IGd1Y19zaGFyZWRf ZGF0YV9jcmVhdGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQogewogCXN0cnVjdCBpOTE1X3ZtYSAq dm1hOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAppbmRleCA4MTY1OWUyMjNlMTEuLjUyODU2YTk3 NDc3ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKQEAgLTExOSw2ICsxMTksOCBAQCBzdGF0 aWMgaW5saW5lIHUzMiBndWNfZ2d0dF9vZmZzZXQoc3RydWN0IGk5MTVfdm1hICp2bWEpCiB2b2lk IGludGVsX2d1Y19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7CiB2b2lkIGludGVs X2d1Y19pbml0X3NlbmRfcmVncyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwogdm9pZCBpbnRlbF9n dWNfaW5pdF9wYXJhbXMoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKK2ludCBpbnRlbF9ndWNfaW5p dF93cShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwordm9pZCBpbnRlbF9ndWNfZmluaV93cShzdHJ1 Y3QgaW50ZWxfZ3VjICpndWMpOwogaW50IGludGVsX2d1Y19pbml0KHN0cnVjdCBpbnRlbF9ndWMg Kmd1Yyk7CiB2b2lkIGludGVsX2d1Y19maW5pKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7CiBpbnQg aW50ZWxfZ3VjX3NlbmRfbm9wKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgY29uc3QgdTMyICphY3Rp b24sIHUzMiBsZW4pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Vj X2xvZy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvZy5jCmluZGV4IDFhMmM1 ZWVkOTkyOS4uZWFlZGQ2M2UzODE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ndWNfbG9nLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvZy5j CkBAIC00MTEsMzAgKzQxMSw4IEBAIHN0YXRpYyBpbnQgZ3VjX2xvZ19ydW50aW1lX2NyZWF0ZShz dHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJZ3VjLT5sb2cucnVudGltZS5yZWxheV9jaGFuID0gZ3Vj X2xvZ19yZWxheV9jaGFuOwogCiAJSU5JVF9XT1JLKCZndWMtPmxvZy5ydW50aW1lLmZsdXNoX3dv cmssIGNhcHR1cmVfbG9nc193b3JrKTsKLQotCS8qCi0JICogR3VDIGxvZyBidWZmZXIgZmx1c2gg d29yayBpdGVtIGhhcyB0byBkbyByZWdpc3RlciBhY2Nlc3MgdG8KLQkgKiBzZW5kIHRoZSBhY2sg dG8gR3VDIGFuZCB0aGlzIHdvcmsgaXRlbSwgaWYgbm90IHN5bmNlZCBiZWZvcmUKLQkgKiBzdXNw ZW5kLCBjYW4gcG90ZW50aWFsbHkgZ2V0IGV4ZWN1dGVkIGFmdGVyIHRoZSBHRlggZGV2aWNlIGlz Ci0JICogc3VzcGVuZGVkLgotCSAqIEJ5IG1hcmtpbmcgdGhlIFdRIGFzIGZyZWV6YWJsZSwgd2Ug ZG9uJ3QgaGF2ZSB0byBib3RoZXIgYWJvdXQKLQkgKiBmbHVzaGluZyBvZiB0aGlzIHdvcmsgaXRl bSBmcm9tIHRoZSBzdXNwZW5kIGhvb2tzLCB0aGUgcGVuZGluZwotCSAqIHdvcmsgaXRlbSBpZiBh bnkgd2lsbCBiZSBlaXRoZXIgZXhlY3V0ZWQgYmVmb3JlIHRoZSBzdXNwZW5kCi0JICogb3Igc2No ZWR1bGVkIGxhdGVyIG9uIHJlc3VtZS4gVGhpcyB3YXkgdGhlIGhhbmRsaW5nIG9mIHdvcmsKLQkg KiBpdGVtIGNhbiBiZSBrZXB0IHNhbWUgYmV0d2VlbiBzeXN0ZW0gc3VzcGVuZCAmIHJwbSBzdXNw ZW5kLgotCSAqLwotCWd1Yy0+bG9nLnJ1bnRpbWUuZmx1c2hfd3EgPSBhbGxvY19vcmRlcmVkX3dv cmtxdWV1ZSgiaTkxNS1ndWNfbG9nIiwKLQkJCQkJCVdRX0hJR0hQUkkgfCBXUV9GUkVFWkFCTEUp OwotCWlmICghZ3VjLT5sb2cucnVudGltZS5mbHVzaF93cSkgewotCQlEUk1fRVJST1IoIkNvdWxk bid0IGFsbG9jYXRlIHRoZSB3cSBmb3IgR3VDIGxvZ2dpbmdcbiIpOwotCQlyZXQgPSAtRU5PTUVN OwotCQlnb3RvIGVycl9yZWxheWNoYW47Ci0JfQotCiAJcmV0dXJuIDA7CiAKLWVycl9yZWxheWNo YW46Ci0JcmVsYXlfY2xvc2UoZ3VjLT5sb2cucnVudGltZS5yZWxheV9jaGFuKTsKIGVycl92YWRk cjoKIAlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGd1Yy0+bG9nLnZtYS0+b2JqKTsKIAlndWMt PmxvZy5ydW50aW1lLmJ1Zl9hZGRyID0gTlVMTDsKQEAgLTQ1MCw3ICs0MjgsNiBAQCBzdGF0aWMg dm9pZCBndWNfbG9nX3J1bnRpbWVfZGVzdHJveShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJaWYg KCFndWNfbG9nX2hhc19ydW50aW1lKGd1YykpCiAJCXJldHVybjsKIAotCWRlc3Ryb3lfd29ya3F1 ZXVlKGd1Yy0+bG9nLnJ1bnRpbWUuZmx1c2hfd3EpOwogCXJlbGF5X2Nsb3NlKGd1Yy0+bG9nLnJ1 bnRpbWUucmVsYXlfY2hhbik7CiAJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcChndWMtPmxvZy52 bWEtPm9iaik7CiAJZ3VjLT5sb2cucnVudGltZS5idWZfYWRkciA9IE5VTEw7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYwppbmRleCBjMDIwNTYwYzM5NWUuLjhm NGIyNzRkNjZhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1 Ym1pc3Npb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lv bi5jCkBAIC0xMTg3LDU3ICsxMTg3LDE1IEBAIHN0YXRpYyB2b2lkIGd1Y19hZHNfZGVzdHJveShz dHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJaTkxNV92bWFfdW5waW5fYW5kX3JlbGVhc2UoJmd1Yy0+ YWRzX3ZtYSk7CiB9CiAKLXN0YXRpYyBpbnQgZ3VjX3ByZWVtcHRfd29ya19jcmVhdGUoc3RydWN0 IGludGVsX2d1YyAqZ3VjKQotewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGd1Y190b19pOTE1KGd1Yyk7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCWVu dW0gaW50ZWxfZW5naW5lX2lkIGlkOwotCi0JLyoKLQkgKiBFdmVuIHRob3VnaCBib3RoIHNlbmRp bmcgR3VDIGFjdGlvbiwgYW5kIGFkZGluZyBhIG5ldyB3b3JraXRlbSB0bwotCSAqIEd1QyB3b3Jr cXVldWUgYXJlIHNlcmlhbGl6ZWQgKGVhY2ggd2l0aCBpdHMgb3duIGxvY2tpbmcpLCBzaW5jZQot CSAqIHdlJ3JlIHVzaW5nIG11dGxpcGxlIGVuZ2luZXMsIGl0J3MgcG9zc2libGUgdGhhdCB3ZSdy ZSBnb2luZyB0bwotCSAqIGlzc3VlIGEgcHJlZW1wdCByZXF1ZXN0IHdpdGggdHdvIChvciBtb3Jl IC0gZWFjaCBmb3IgZGlmZmVyZW50Ci0JICogZW5naW5lKSB3b3JraXRlbXMgaW4gR3VDIHF1ZXVl LiBJbiB0aGlzIHNpdHVhdGlvbiwgR3VDIG1heSBzdWJtaXQKLQkgKiBhbGwgb2YgdGhlbSwgd2hp Y2ggd2lsbCBtYWtlIHVzIHZlcnkgY29uZnVzZWQuCi0JICogT3VyIHByZWVtcHRpb24gY29udGV4 dHMgbWF5IGV2ZW4gYWxyZWFkeSBiZSBjb21wbGV0ZSAtIGJlZm9yZSB3ZQotCSAqIGV2ZW4gaGFk IHRoZSBjaGFuY2UgdG8gc2VudCB0aGUgcHJlZW1wdCBhY3Rpb24gdG8gR3VDIS4gUmF0aGVyCi0J ICogdGhhbiBpbnRyb2R1Y2luZyB5ZXQgYW5vdGhlciBsb2NrLCB3ZSBjYW4ganVzdCB1c2Ugb3Jk ZXJlZCB3b3JrcXVldWUKLQkgKiB0byBtYWtlIHN1cmUgd2UncmUgYWx3YXlzIHNlbmRpbmcgYSBz aW5nbGUgcHJlZW1wdGlvbiByZXF1ZXN0IHdpdGggYQotCSAqIHNpbmdsZSB3b3JraXRlbS4KLQkg Ki8KLQlndWMtPnByZWVtcHRfd3EgPSBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZSgiaTkxNS1ndWNf cHJlZW1wdCIsCi0JCQkJCQkgIFdRX0hJR0hQUkkpOwotCWlmICghZ3VjLT5wcmVlbXB0X3dxKQot CQlyZXR1cm4gLUVOT01FTTsKLQotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBp ZCkgewotCQlndWMtPnByZWVtcHRfd29ya1tpZF0uZW5naW5lID0gZW5naW5lOwotCQlJTklUX1dP UksoJmd1Yy0+cHJlZW1wdF93b3JrW2lkXS53b3JrLCBpbmplY3RfcHJlZW1wdF9jb250ZXh0KTsK LQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZ3VjX3ByZWVtcHRfd29ya19kZXN0 cm95KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBndWNfdG9faTkxNShndWMpOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZTsKLQllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKLQotCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGRldl9wcml2LCBpZCkKLQkJY2FuY2VsX3dvcmtfc3luYygmZ3VjLT5wcmVlbXB0X3dvcmtb aWRdLndvcmspOwotCi0JZGVzdHJveV93b3JrcXVldWUoZ3VjLT5wcmVlbXB0X3dxKTsKLQlndWMt PnByZWVtcHRfd3EgPSBOVUxMOwotfQotCiAvKgogICogU2V0IHVwIHRoZSBtZW1vcnkgcmVzb3Vy Y2VzIHRvIGJlIHNoYXJlZCB3aXRoIHRoZSBHdUMgKHZpYSB0aGUgR0dUVCkKICAqIGF0IGZpcm13 YXJlIGxvYWRpbmcgdGltZS4KICAqLwogaW50IGludGVsX2d1Y19zdWJtaXNzaW9uX2luaXQoc3Ry dWN0IGludGVsX2d1YyAqZ3VjKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGd1Y190b19pOTE1KGd1Yyk7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwor CWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCWludCByZXQ7CiAKIAlpZiAoZ3VjLT5zdGFnZV9k ZXNjX3Bvb2wpCkBAIC0xMjU2LDIwICsxMjE0LDE4IEBAIGludCBpbnRlbF9ndWNfc3VibWlzc2lv bl9pbml0KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIAlpZiAocmV0IDwgMCkKIAkJZ290byBlcnJf c3RhZ2VfZGVzY19wb29sOwogCi0JcmV0ID0gZ3VjX3ByZWVtcHRfd29ya19jcmVhdGUoZ3VjKTsK LQlpZiAocmV0KQotCQlnb3RvIGVycl9sb2c7Ci0JR0VNX0JVR19PTighZ3VjLT5wcmVlbXB0X3dx KTsKLQogCXJldCA9IGd1Y19hZHNfY3JlYXRlKGd1Yyk7CiAJaWYgKHJldCA8IDApCi0JCWdvdG8g ZXJyX3dxOworCQlnb3RvIGVycl9sb2c7CiAJR0VNX0JVR19PTighZ3VjLT5hZHNfdm1hKTsKIAor CWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkgeworCQlndWMtPnByZWVtcHRf d29ya1tpZF0uZW5naW5lID0gZW5naW5lOworCQlJTklUX1dPUksoJmd1Yy0+cHJlZW1wdF93b3Jr W2lkXS53b3JrLCBpbmplY3RfcHJlZW1wdF9jb250ZXh0KTsKKwl9CisKIAlyZXR1cm4gMDsKIAot ZXJyX3dxOgotCWd1Y19wcmVlbXB0X3dvcmtfZGVzdHJveShndWMpOwogZXJyX2xvZzoKIAlpbnRl bF9ndWNfbG9nX2Rlc3Ryb3koZ3VjKTsKIGVycl9zdGFnZV9kZXNjX3Bvb2w6CkBAIC0xMjc5LDgg KzEyMzUsMTQgQEAgaW50IGludGVsX2d1Y19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGludGVsX2d1 YyAqZ3VjKQogCiB2b2lkIGludGVsX2d1Y19zdWJtaXNzaW9uX2Zpbmkoc3RydWN0IGludGVsX2d1 YyAqZ3VjKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGd1Y190b19p OTE1KGd1Yyk7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOworCWVudW0gaW50ZWxf ZW5naW5lX2lkIGlkOworCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKQor CQljYW5jZWxfd29ya19zeW5jKCZndWMtPnByZWVtcHRfd29ya1tpZF0ud29yayk7CisKIAlndWNf YWRzX2Rlc3Ryb3koZ3VjKTsKLQlndWNfcHJlZW1wdF93b3JrX2Rlc3Ryb3koZ3VjKTsKIAlpbnRl bF9ndWNfbG9nX2Rlc3Ryb3koZ3VjKTsKIAlndWNfc3RhZ2VfZGVzY19wb29sX2Rlc3Ryb3koZ3Vj KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNz aW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5oCmluZGV4 IDAyMWZlODVjOGY3MS4uZmIwODFjZWZlZjkzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ndWNfc3VibWlzc2lvbi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2d1Y19zdWJtaXNzaW9uLmgKQEAgLTc3LDUgKzc3LDcgQEAgaW50IGludGVsX2d1Y19zdWJt aXNzaW9uX2luaXQoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKIGludCBpbnRlbF9ndWNfc3VibWlz c2lvbl9lbmFibGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKIHZvaWQgaW50ZWxfZ3VjX3N1Ym1p c3Npb25fZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwogdm9pZCBpbnRlbF9ndWNfc3Vi bWlzc2lvbl9maW5pKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7CitpbnQgaW50ZWxfZ3VjX3ByZWVt cHRfd29ya19jcmVhdGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKTsKK3ZvaWQgaW50ZWxfZ3VjX3By ZWVtcHRfd29ya19kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7CiAKICNlbmRpZgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3VjLmMKaW5kZXggMzA0MGEwZTAwMTQyLi43ODU4NTA4MzhhNDQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfdWMuYwpAQCAtMTg4LDYgKzE4OCwzMiBAQCBzdGF0aWMgdm9pZCBndWNf ZGlzYWJsZV9jb21tdW5pY2F0aW9uKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKIAlndWMtPnNlbmQg PSBpbnRlbF9ndWNfc2VuZF9ub3A7CiB9CiAKK2ludCBpbnRlbF91Y19pbml0X3dxKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlpbnQgcmV0OworCisJaWYgKCFVU0VTX0dV QyhkZXZfcHJpdikpCisJCXJldHVybiAwOworCisJcmV0ID0gaW50ZWxfZ3VjX2luaXRfd3EoJmRl dl9wcml2LT5ndWMpOworCWlmIChyZXQpIHsKKwkJRFJNX0VSUk9SKCJDb3VsZG4ndCBhbGxvY2F0 ZSB3b3JrcXVldWVzIGZvciBHdUNcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAw OworfQorCit2b2lkIGludGVsX3VjX2Zpbmlfd3Eoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQoreworCWlmICghVVNFU19HVUMoZGV2X3ByaXYpKQorCQlyZXR1cm47CisKKwlHRU1f QlVHX09OKCFIQVNfR1VDKGRldl9wcml2KSk7CisKKwlpbnRlbF9ndWNfZmluaV93cSgmZGV2X3By aXYtPmd1Yyk7Cit9CisKIGludCBpbnRlbF91Y19pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1 YzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5oCmluZGV4IDdhNTllMjQ4NmU5ZS4uNTNlZGZlYWY1NmIw IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmgKQEAgLTMzLDYgKzMzLDggQEAgdm9pZCBpbnRlbF91 Y19pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGlu dGVsX3VjX2luaXRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9p ZCBpbnRlbF91Y19pbml0X2Z3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2 b2lkIGludGVsX3VjX2ZpbmlfZncoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsK K2ludCBpbnRlbF91Y19pbml0X3dxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 Cit2b2lkIGludGVsX3VjX2Zpbmlfd3Eoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KTsKIGludCBpbnRlbF91Y19pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dik7CiB2b2lkIGludGVsX3VjX2ZpbmlfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKIAotLSAKMi4xNC4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK