From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 4/5] drm/i915/gen11: Start distinguishing 'phy' from 'port' Date: Thu, 20 Jun 2019 19:01:31 -0700 Message-ID: <20190621020132.1164-5-matthew.d.roper@intel.com> References: <20190621020132.1164-1-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5A9E36E7EF for ; Fri, 21 Jun 2019 02:02:04 +0000 (UTC) In-Reply-To: <20190621020132.1164-1-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: intel-gfx@lists.freedesktop.org Cc: Lucas De Marchi List-Id: intel-gfx@lists.freedesktop.org T3VyIHBhc3QgRERJLWJhc2VkIEludGVsIHBsYXRmb3JtcyBoYXZlIGhhZCBhIGZpeGVkIERESTwt PlBIWSBtYXBwaW5nLgpCZWNhdXNlIG9mIHRoaXMsIGJvdGggdGhlIGJzcGVjIGRvY3VtZW50YXRp b24gYW5kIG91ciBpOTE1IGNvZGUgaGFzIHVzZWQKdGhlIHRlcm0gInBvcnQiIHdoZW4gdGFsa2lu ZyBhYm91dCBlaXRoZXIgRERJJ3Mgb3IgUEhZJ3M7IGl0IHdhcyBhbHdheXMKZWFzeSB0byB0ZWxs IHdoYXQgdGVybXMgbGlrZSAiUG9ydCBBIiB3ZXJlIHJlZmVycmluZyB0byBmcm9tIHRoZQpjb250 ZXh0LgoKVW5mb3J0dW5hdGVseSB0aGlzIGlzIHN0YXJ0aW5nIHRvIGJyZWFrIGRvd24gbm93IHRo YXQgRUhMIGFsbG93cyBQSFktQQp0byBiZSBkcml2ZW4gYnkgZWl0aGVyIERESS1BIG9yIERESS1E LiAgSXMgYSBzZXR1cCB3aXRoIERESS1EIGRyaXZpbmcKUEhZLUEgY29uc2lkZXJlZCAiUG9ydCBB IiBvciAiUG9ydCBEPyIgIFRoZSBhbnN3ZXIgZGVwZW5kcyBvbiB3aGljaApyZWdpc3RlciB3ZSdy ZSB3b3JraW5nIHdpdGgsIGFuZCBldmVuIHRoZSBic3BlYyBkb2Vzbid0IGRvIGEgZ3JlYXQgam9i Cm9mIGNsYXJpZnlpbmcgdGhpcy4KCkxldCdzIHRyeSB0byBiZSBtb3JlIGV4cGxpY2l0IGFib3V0 IHdoZXRoZXIgd2UncmUgdGFsa2luZyBhYm91dCB0aGUgRERJCm9yIHRoZSBQSFkgb24gZ2VuMTEr IGJ5IHVzaW5nICdwb3J0JyB0byByZWZlciB0byB0aGUgRERJIGFuZCBjcmVhdGluZyBhCm5ldyAn ZW51bSBwaHknIG5hbWVzcGFjZSB0byByZWZlciB0byB0aGUgUEhZIGluIHVzZS4KCkEgZmV3IGdl bmVyYWwgbm90ZXM6CgogLSBJQ0xfUE9SVF9DT01QXyogYW5kIElDTF9QT1JUX0NMXyogYmVsb25n IHRvIHRoZSBhY3R1YWwgY29tYm8gUEhZIHNvCiAgIHRoZXkgc2hvdWxkIGFsd2F5cyBiZSBwcm9n cmFtbWVkIGFjY29yZGluZyB0byB0aGUgUEhZIGluIHVzZSwKICAgcmVnYXJkbGVzcyBvZiB3aGlj aCBEREkgaXMgZHJpdmluZyBpdC4KCiAtIFRoZSBwaXBlIHBhcnQgb2YgdGhlIGhhcmR3YXJlIGV4 cGVjdHMgInBvcnQiIHRvIHJlZmVyIHRvIHRoZQogICBEREksIHNvIHJlZ2lzdGVycyBsaWtlIFRS QU5TX0NMS19TRUwgYW5kIFRSQU5TX0RESV9GVU5DX0NUTCBzaG91bGQKICAgc2V0IGJpdHMgYWNj b3JkaW5nIHRvIHRoZSBkZXNpcmVkIERESSAoZS5nLiwgRERJLUQpIHJhdGhlciB0aGFuIHRoZQog ICBQSFkgKFBIWS1BKS4KCiAtIE5vbi1waXBlIHJlZ2lzdGVycyByZWZlciB0byB0aGUgUEhZLiAg Tm90YWJseSwgRFBDTEtBX0NGR0NSMF9JQ0wKICAgbmVlZHMgdG8gc2V0IGJpdHMgYWNjb3JkaW5n IHRvIHRoZSBQSFkuCgpNb3N0IG9mIHRoZSBjaGFuZ2VzIGhlcmUgYXJlIG9uIHRoZSBjb21ibyBQ SFkgc2lkZS4gIEkgZGlkbid0IHRvdWNoIG1vc3QKb2YgdGhlIFRDIHBvcnQgY29kZSB5ZXQsIHNv IGl0IHN0aWxsIHJlZmVycyB0byBldmVyeXRoaW5nIGFzIHBvcnRzLgpUaGF0J3Mgb2theSBmb3Ig bm93IHNpbmNlIHRoZXJlJ3Mgbm8gVEMgb24gRUhMLCBidXQgd2UnbGwgcHJvYmFibHkgd2FudAp0 byBzZXBhcmF0ZSBvdXQgdGhlIERESSB2cyBQSFkgdGVybWlub2xvZ3kgZm9yIFRDIGluIHRoZSBm dXR1cmUgYXMgd2VsbAp0byBhdm9pZCBjb25mdXNpb24uCgpTdWdnZXN0ZWQtYnk6IFZpbGxlIFN5 cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpDYzogSm9zw6kgUm9iZXJ0byBk ZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+CkNjOiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2Fz LmRlbWFyY2hpQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5k LnJvcGVyQGludGVsLmNvbT4KLS0tCkx1Y2FzLCBJIGhlYXIgeW91J3JlIGdvaW5nIHRvIGJlIHBv c3RpbmcgYSBsYXJnZSBwYXRjaCBzZXJpZXMgc29vbiBhbmQgSQpzdXNwZWN0IHRoaXMgcGF0Y2gg bWF5IGNvbmZsaWN0IHdpdGggdGhhdC4gIExldCBtZSBrbm93IGlmIHlvdSB3YW50IG1lCnRvIHNp dCBvbiB0aGlzIGZvciBhIHdoaWxlLgoKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaWNs X2RzaS5jICAgICAgICB8IDE3ICsrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfYmlvcy5jICAgICB8ICA0ICstCiAuLi4vZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29t Ym9fcGh5LmMgICAgfCA5MyArKysrKysrKystLS0tLS0tLS0KIC4uLi9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9jb21ib19waHkuaCAgICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RkaS5jICAgICAgfCA5NSArKysrKysrKysrKy0tLS0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyAgfCAzNiArKysrLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuaCAgfCAxNiArKysrCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgICAgICAgfCAxMiArKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYyB8ICA4ICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgICAgICAgfCAxOCArKy0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICAgICAgfCAgNCArLQogMTEgZmlsZXMg Y2hhbmdlZCwgMTc4IGluc2VydGlvbnMoKyksIDEyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jCmluZGV4IGI4NjczZGViZjkzMi4uMjA2MzQzNWNmZjEz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYwpAQCAtNTYwLDExICs1NjAs MTMgQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX2dhdGVfY2xvY2tzKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQogCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRl bF9kc2koJmVuY29kZXItPmJhc2UpOwogCXUzMiB0bXA7CiAJZW51bSBwb3J0IHBvcnQ7CisJZW51 bSBwaHkgcGh5OwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRwbGxfbG9jayk7CiAJdG1wID0g STkxNV9SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKTsKIAlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBp bnRlbF9kc2ktPnBvcnRzKSB7Ci0JCXRtcCB8PSBEUENMS0FfQ0ZHQ1IwX0RESV9DTEtfT0ZGKHBv cnQpOworCQlwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7CisJCXRtcCB8 PSBEUENMS0FfQ0ZHQ1IwX0RESV9DTEtfT0ZGKHBoeSk7CiAJfQogCiAJSTkxNV9XUklURShEUENM S0FfQ0ZHQ1IwX0lDTCwgdG1wKTsKQEAgLTU3NywxMSArNTc5LDEzIEBAIHN0YXRpYyB2b2lkIGdl bjExX2RzaV91bmdhdGVfY2xvY2tzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCXN0 cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJh c2UpOwogCXUzMiB0bXA7CiAJZW51bSBwb3J0IHBvcnQ7CisJZW51bSBwaHkgcGh5OwogCiAJbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPmRwbGxfbG9jayk7CiAJdG1wID0gSTkxNV9SRUFEKERQQ0xLQV9D RkdDUjBfSUNMKTsKIAlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7 Ci0JCXRtcCAmPSB+RFBDTEtBX0NGR0NSMF9ERElfQ0xLX09GRihwb3J0KTsKKwkJcGh5ID0gaW50 ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIHBvcnQpOworCQl0bXAgJj0gfkRQQ0xLQV9DRkdDUjBf RERJX0NMS19PRkYocGh5KTsKIAl9CiAKIAlJOTE1X1dSSVRFKERQQ0xLQV9DRkdDUjBfSUNMLCB0 bXApOwpAQCAtNTk1LDE5ICs1OTksMjIgQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX21hcF9wbGwo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxf ZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGludGVsX3No YXJlZF9kcGxsICpwbGwgPSBjcnRjX3N0YXRlLT5zaGFyZWRfZHBsbDsKIAllbnVtIHBvcnQgcG9y dDsKKwllbnVtIHBoeSBwaHk7CiAJdTMyIHZhbDsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT5k cGxsX2xvY2spOwogCiAJdmFsID0gSTkxNV9SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKTsKIAlmb3Jf ZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Ci0JCXZhbCAmPSB+RFBDTEtB X0NGR0NSMF9ERElfQ0xLX1NFTF9NQVNLKHBvcnQpOwotCQl2YWwgfD0gRFBDTEtBX0NGR0NSMF9E RElfQ0xLX1NFTChwbGwtPmluZm8tPmlkLCBwb3J0KTsKKwkJcGh5ID0gaW50ZWxfcG9ydF90b19w aHkoZGV2X3ByaXYsIHBvcnQpOworCQl2YWwgJj0gfkRQQ0xLQV9DRkdDUjBfRERJX0NMS19TRUxf TUFTSyhwaHkpOworCQl2YWwgfD0gRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTChwbGwtPmluZm8t PmlkLCBwaHkpOwogCX0KIAlJOTE1X1dSSVRFKERQQ0xLQV9DRkdDUjBfSUNMLCB2YWwpOwogCiAJ Zm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewotCQl2YWwgJj0gfkRQ Q0xLQV9DRkdDUjBfRERJX0NMS19PRkYocG9ydCk7CisJCXBoeSA9IGludGVsX3BvcnRfdG9fcGh5 KGRldl9wcml2LCBwb3J0KTsKKwkJdmFsICY9IH5EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfT0ZGKHBo eSk7CiAJfQogCUk5MTVfV1JJVEUoRFBDTEtBX0NGR0NSMF9JQ0wsIHZhbCk7CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMKaW5kZXggMGM5ODA4MTMyZDY3Li40ZmRi YjVjMzVkODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf Ymlvcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jCkBA IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9kcF9oZWxwZXIuaD4KICNpbmNsdWRl IDxkcm0vaTkxNV9kcm0uaD4KIAorI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZGlzcGxheS5oIgog I2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZ21idXMuaCIKIAogI2luY2x1ZGUgImk5MTVfZHJ2Lmgi CkBAIC0xNzMzLDEyICsxNzM0LDEzIEBAIGluaXRfdmJ0X21pc3NpbmdfZGVmYXVsdHMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWZvciAocG9ydCA9IFBPUlRfQTsgcG9ydCA8 IEk5MTVfTUFYX1BPUlRTOyBwb3J0KyspIHsKIAkJc3RydWN0IGRkaV92YnRfcG9ydF9pbmZvICpp bmZvID0KIAkJCSZkZXZfcHJpdi0+dmJ0LmRkaV9wb3J0X2luZm9bcG9ydF07CisJCWVudW0gcGh5 IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBwb3J0KTsKIAogCQkvKgogCQkgKiBW QlQgaGFzIHRoZSBUeXBlQyBtb2RlIChuYXRpdmUsVEJUL1VTQikgYW5kIHdlIGRvbid0IHdhbnQK IAkJICogdG8gZGV0ZWN0IGl0LgogCQkgKi8KLQkJaWYgKGludGVsX3BvcnRfaXNfdGMoZGV2X3By aXYsIHBvcnQpKQorCQlpZiAoaW50ZWxfcGh5X2lzX3RjKGRldl9wcml2LCBwaHkpKQogCQkJY29u dGludWU7CiAKIAkJaW5mby0+c3VwcG9ydHNfZHZpID0gKHBvcnQgIT0gUE9SVF9BICYmIHBvcnQg IT0gUE9SVF9FKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfY29tYm9fcGh5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbWJv X3BoeS5jCmluZGV4IGRhNTkwZjFhOTk4Yi4uZjk1OTg2YTljZjc2IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbWJvX3BoeS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29tYm9fcGh5LmMKQEAgLTYsMTMgKzYsMTMgQEAK ICNpbmNsdWRlICJpbnRlbF9jb21ib19waHkuaCIKICNpbmNsdWRlICJpbnRlbF9kcnYuaCIKIAot I2RlZmluZSBmb3JfZWFjaF9jb21ib19wb3J0KF9fZGV2X3ByaXYsIF9fcG9ydCkgXAotCWZvciAo KF9fcG9ydCkgPSBQT1JUX0E7IChfX3BvcnQpIDwgSTkxNV9NQVhfUE9SVFM7IChfX3BvcnQpKysp CVwKLQkJZm9yX2VhY2hfaWYoaW50ZWxfcG9ydF9pc19jb21ib3BoeShfX2Rldl9wcml2LCBfX3Bv cnQpKQorI2RlZmluZSBmb3JfZWFjaF9jb21ib19waHkoX19kZXZfcHJpdiwgX19waHkpIFwKKwlm b3IgKChfX3BoeSkgPSBQSFlfQTsgKF9fcGh5KSA8IEk5MTVfTUFYX1BIWVM7IChfX3BoeSkrKykJ XAorCQlmb3JfZWFjaF9pZihpbnRlbF9waHlfaXNfY29tYm8oX19kZXZfcHJpdiwgX19waHkpKQog Ci0jZGVmaW5lIGZvcl9lYWNoX2NvbWJvX3BvcnRfcmV2ZXJzZShfX2Rldl9wcml2LCBfX3BvcnQp IFwKLQlmb3IgKChfX3BvcnQpID0gSTkxNV9NQVhfUE9SVFM7IChfX3BvcnQpLS0gPiBQT1JUX0E7 KSBcCi0JCWZvcl9lYWNoX2lmKGludGVsX3BvcnRfaXNfY29tYm9waHkoX19kZXZfcHJpdiwgX19w b3J0KSkKKyNkZWZpbmUgZm9yX2VhY2hfY29tYm9fcGh5X3JldmVyc2UoX19kZXZfcHJpdiwgX19w aHkpIFwKKwlmb3IgKChfX3BoeSkgPSBJOTE1X01BWF9QSFlTOyAoX19waHkpLS0gPiBQSFlfQTsp IFwKKwkJZm9yX2VhY2hfaWYoaW50ZWxfcGh5X2lzX2NvbWJvKF9fZGV2X3ByaXYsIF9fcGh5KSkK IAogZW51bSB7CiAJUFJPQ01PTl8wXzg1Vl9ET1RfMCwKQEAgLTM4LDEwICszOCw5IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgY25sX3Byb2Ntb24gewogfTsKIAogLyoKLSAqIENOTCBoYXMganVzdCBv bmUgc2V0IG9mIHJlZ2lzdGVycywgd2hpbGUgSUNMIGhhcyB0d28gc2V0czogb25lIGZvciBwb3J0 IEEgYW5kCi0gKiB0aGUgb3RoZXIgZm9yIHBvcnQgQi4gVGhlIENOTCByZWdpc3RlcnMgYXJlIGVx dWl2YWxlbnQgdG8gdGhlIElDTCBwb3J0IEEKLSAqIHJlZ2lzdGVycywgdGhhdCdzIHdoeSB3ZSBj YWxsIHRoZSBJQ0wgbWFjcm9zIGV2ZW4gdGhvdWdoIHRoZSBmdW5jdGlvbiBoYXMgQ05MCi0gKiBv biBpdHMgbmFtZS4KKyAqIENOTCBoYXMganVzdCBvbmUgc2V0IG9mIHJlZ2lzdGVycywgd2hpbGUg Z2VuMTEgaGFzIGEgc2V0IGZvciBlYWNoIGNvbWJvIFBIWS4KKyAqIFRoZSBDTkwgcmVnaXN0ZXJz IGFyZSBlcXVpdmFsZW50IHRvIHRoZSBnZW4xMSBQSFkgQSByZWdpc3RlcnMsIHRoYXQncyB3aHkg d2UKKyAqIGNhbGwgdGhlIElDTCBtYWNyb3MgZXZlbiB0aG91Z2ggdGhlIGZ1bmN0aW9uIGhhcyBD Tkwgb24gaXRzIG5hbWUuCiAgKi8KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY25sX3Byb2Ntb24gKgog Y25sX2dldF9wcm9jbW9uX3JlZl92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCBlbnVtIHBvcnQgcG9ydCkKQEAgLTE5MywyNyArMTkyLDI3IEBAIHN0YXRpYyBib29sIGlj bF9jb21ib19waHlfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB9 CiAKIHN0YXRpYyBib29sIGljbF9jb21ib19waHlfdmVyaWZ5X3N0YXRlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgICAgICAgZW51bSBwb3J0IHBvcnQpCisJCQkJICAg ICAgIGVudW0gcGh5IHBoeSkKIHsKIAlib29sIHJldDsKIAotCWlmICghaWNsX2NvbWJvX3BoeV9l bmFibGVkKGRldl9wcml2LCBwb3J0KSkKKwlpZiAoIWljbF9jb21ib19waHlfZW5hYmxlZChkZXZf cHJpdiwgcGh5KSkKIAkJcmV0dXJuIGZhbHNlOwogCi0JcmV0ID0gY25sX3ZlcmlmeV9wcm9jbW9u X3JlZl92YWx1ZXMoZGV2X3ByaXYsIHBvcnQpOworCXJldCA9IGNubF92ZXJpZnlfcHJvY21vbl9y ZWZfdmFsdWVzKGRldl9wcml2LCBwaHkpOwogCi0JaWYgKHBvcnQgPT0gUE9SVF9BKQotCQlyZXQg Jj0gY2hlY2tfcGh5X3JlZyhkZXZfcHJpdiwgcG9ydCwgSUNMX1BPUlRfQ09NUF9EVzgocG9ydCks CisJaWYgKHBoeSA9PSBQSFlfQSkKKwkJcmV0ICY9IGNoZWNrX3BoeV9yZWcoZGV2X3ByaXYsIHBo eSwgSUNMX1BPUlRfQ09NUF9EVzgocGh5KSwKIAkJCQkgICAgIElSRUZHRU4sIElSRUZHRU4pOwog Ci0JcmV0ICY9IGNoZWNrX3BoeV9yZWcoZGV2X3ByaXYsIHBvcnQsIElDTF9QT1JUX0NMX0RXNShw b3J0KSwKKwlyZXQgJj0gY2hlY2tfcGh5X3JlZyhkZXZfcHJpdiwgcGh5LCBJQ0xfUE9SVF9DTF9E VzUocGh5KSwKIAkJCSAgICAgQ0xfUE9XRVJfRE9XTl9FTkFCTEUsIENMX1BPV0VSX0RPV05fRU5B QkxFKTsKIAogCXJldHVybiByZXQ7CiB9CiAKIHZvaWQgaW50ZWxfY29tYm9fcGh5X3Bvd2VyX3Vw X2xhbmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgICAgZW51bSBw b3J0IHBvcnQsIGJvb2wgaXNfZHNpLAorCQkJCSAgICBlbnVtIHBoeSBwaHksIGJvb2wgaXNfZHNp LAogCQkJCSAgICBpbnQgbGFuZV9jb3VudCwgYm9vbCBsYW5lX3JldmVyc2FsKQogewogCXU4IGxh bmVfbWFzazsKQEAgLTI1OCwxMCArMjU3LDEwIEBAIHZvaWQgaW50ZWxfY29tYm9fcGh5X3Bvd2Vy X3VwX2xhbmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJfQogCX0KIAot CXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9DTF9EVzEwKHBvcnQpKTsKKwl2YWwgPSBJOTE1X1JF QUQoSUNMX1BPUlRfQ0xfRFcxMChwaHkpKTsKIAl2YWwgJj0gflBXUl9ET1dOX0xOX01BU0s7CiAJ dmFsIHw9IGxhbmVfbWFzayA8PCBQV1JfRE9XTl9MTl9TSElGVDsKLQlJOTE1X1dSSVRFKElDTF9Q T1JUX0NMX0RXMTAocG9ydCksIHZhbCk7CisJSTkxNV9XUklURShJQ0xfUE9SVF9DTF9EVzEwKHBo eSksIHZhbCk7CiB9CiAKIHN0YXRpYyB1MzIgZWhsX2NvbWJvX3BoeV9hX211eChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSwgdTMyIHZhbCkKQEAgLTI5MiwxNCArMjkxLDE0IEBAIHN0YXRp YyB1MzIgZWhsX2NvbWJvX3BoeV9hX211eChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwg dTMyIHZhbCkKIAogc3RhdGljIHZvaWQgaWNsX2NvbWJvX3BoeXNfaW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JZW51bSBwb3J0IHBvcnQ7CisJZW51bSBwaHkgcGh5 OwogCi0JZm9yX2VhY2hfY29tYm9fcG9ydChkZXZfcHJpdiwgcG9ydCkgeworCWZvcl9lYWNoX2Nv bWJvX3BoeShkZXZfcHJpdiwgcGh5KSB7CiAJCXUzMiB2YWw7CiAKLQkJaWYgKGljbF9jb21ib19w aHlfdmVyaWZ5X3N0YXRlKGRldl9wcml2LCBwb3J0KSkgewotCQkJRFJNX0RFQlVHX0RSSVZFUigi UG9ydCAlYyBjb21ibyBQSFkgYWxyZWFkeSBlbmFibGVkLCB3b24ndCByZXByb2dyYW0gaXQuXG4i LAotCQkJCQkgcG9ydF9uYW1lKHBvcnQpKTsKKwkJaWYgKGljbF9jb21ib19waHlfdmVyaWZ5X3N0 YXRlKGRldl9wcml2LCBwaHkpKSB7CisJCQlEUk1fREVCVUdfRFJJVkVSKCJDb21ibyBQSFkgJWMg YWxyZWFkeSBlbmFibGVkLCB3b24ndCByZXByb2dyYW0gaXQuXG4iLAorCQkJCQkgcG9ydF9uYW1l KHBoeSkpOwogCQkJY29udGludWU7CiAJCX0KIApAQCAtMzA4LDcgKzMwNyw3IEBAIHN0YXRpYyB2 b2lkIGljbF9jb21ib19waHlzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogCQkgKiByZWdpc3RlciBmb3IgaXQgYW5kIG5vIG5lZWQgdG8gcHJvZ3JhbSB0aGUKIAkJICog REVfSU9fQ09NUF9QV1JfRE9XTiBzZXR0aW5nIG9uIFBIWSBDLgogCQkgKi8KLQkJaWYgKHBvcnQg IT0gUE9SVF9DKSB7CisJCWlmIChwaHkgIT0gUEhZX0MpIHsKIAkJCS8qCiAJCQkgKiBFSEwncyBj b21ibyBQSFkgQSBjYW4gYmUgaG9va2VkIHVwIHRvIGVpdGhlciBhbgogCQkJICogZXh0ZXJuYWwg ZGlzcGxheSAodmlhIERESS1EKSBvciBhbiBpbnRlcm5hbCBkaXNwbGF5CkBAIC0zMTgsNTcgKzMx Nyw1NyBAQCBzdGF0aWMgdm9pZCBpY2xfY29tYm9fcGh5c19pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAkJCSAqIGluZGljYXRlcyB0aGUgcHJlc2VuY2Ugb2YgYW55ICJp bnRlcm5hbCIgY2hpbGQKIAkJCSAqIGRldmljZXMuCiAJCQkgKi8KLQkJCXZhbCA9IEk5MTVfUkVB RChJQ0xfUEhZX01JU0MocG9ydCkpOwotCQkJaWYgKElTX0VMS0hBUlRMQUtFKGRldl9wcml2KSAm JiBwb3J0ID09IFBPUlRfQSkKKwkJCXZhbCA9IEk5MTVfUkVBRChJQ0xfUEhZX01JU0MocGh5KSk7 CisJCQlpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpICYmIHBoeSA9PSBQSFlfQSkKIAkJCQl2 YWwgPSBlaGxfY29tYm9fcGh5X2FfbXV4KGRldl9wcml2LCB2YWwpOwogCQkJdmFsICY9IH5JQ0xf UEhZX01JU0NfREVfSU9fQ09NUF9QV1JfRE9XTjsKLQkJCUk5MTVfV1JJVEUoSUNMX1BIWV9NSVND KHBvcnQpLCB2YWwpOworCQkJSTkxNV9XUklURShJQ0xfUEhZX01JU0MocGh5KSwgdmFsKTsKIAkJ fQogCi0JCWNubF9zZXRfcHJvY21vbl9yZWZfdmFsdWVzKGRldl9wcml2LCBwb3J0KTsKKwkJY25s X3NldF9wcm9jbW9uX3JlZl92YWx1ZXMoZGV2X3ByaXYsIHBoeSk7CiAKLQkJaWYgKHBvcnQgPT0g UE9SVF9BKSB7Ci0JCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfQ09NUF9EVzgocG9ydCkpOwor CQlpZiAocGh5ID09IFBIWV9BKSB7CisJCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfQ09NUF9E VzgocGh5KSk7CiAJCQl2YWwgfD0gSVJFRkdFTjsKLQkJCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ09N UF9EVzgocG9ydCksIHZhbCk7CisJCQlJOTE1X1dSSVRFKElDTF9QT1JUX0NPTVBfRFc4KHBoeSks IHZhbCk7CiAJCX0KIAotCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfQ09NUF9EVzAocG9ydCkp OworCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BPUlRfQ09NUF9EVzAocGh5KSk7CiAJCXZhbCB8PSBD T01QX0lOSVQ7Ci0JCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ09NUF9EVzAocG9ydCksIHZhbCk7CisJ CUk5MTVfV1JJVEUoSUNMX1BPUlRfQ09NUF9EVzAocGh5KSwgdmFsKTsKIAotCQl2YWwgPSBJOTE1 X1JFQUQoSUNMX1BPUlRfQ0xfRFc1KHBvcnQpKTsKKwkJdmFsID0gSTkxNV9SRUFEKElDTF9QT1JU X0NMX0RXNShwaHkpKTsKIAkJdmFsIHw9IENMX1BPV0VSX0RPV05fRU5BQkxFOwotCQlJOTE1X1dS SVRFKElDTF9QT1JUX0NMX0RXNShwb3J0KSwgdmFsKTsKKwkJSTkxNV9XUklURShJQ0xfUE9SVF9D TF9EVzUocGh5KSwgdmFsKTsKIAl9CiB9CiAKIHN0YXRpYyB2b2lkIGljbF9jb21ib19waHlzX3Vu aW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JZW51bSBwb3J0IHBv cnQ7CisJZW51bSBwaHkgcGh5OwogCi0JZm9yX2VhY2hfY29tYm9fcG9ydF9yZXZlcnNlKGRldl9w cml2LCBwb3J0KSB7CisJZm9yX2VhY2hfY29tYm9fcGh5X3JldmVyc2UoZGV2X3ByaXYsIHBoeSkg ewogCQl1MzIgdmFsOwogCi0JCWlmIChwb3J0ID09IFBPUlRfQSAmJgotCQkgICAgIWljbF9jb21i b19waHlfdmVyaWZ5X3N0YXRlKGRldl9wcml2LCBwb3J0KSkKLQkJCURSTV9XQVJOKCJQb3J0ICVj IGNvbWJvIFBIWSBIVyBzdGF0ZSBjaGFuZ2VkIHVuZXhwZWN0ZWRseVxuIiwKLQkJCQkgcG9ydF9u YW1lKHBvcnQpKTsKKwkJaWYgKHBoeSA9PSBQSFlfQSAmJgorCQkgICAgIWljbF9jb21ib19waHlf dmVyaWZ5X3N0YXRlKGRldl9wcml2LCBwaHkpKQorCQkJRFJNX1dBUk4oIkNvbWJvIFBIWSAlYyBI VyBzdGF0ZSBjaGFuZ2VkIHVuZXhwZWN0ZWRseVxuIiwKKwkJCQkgcGh5X25hbWUocGh5KSk7CiAK IAkJLyoKIAkJICogQWx0aG91Z2ggRUhMIGFkZHMgYSBjb21ibyBQSFkgQywgdGhlcmUncyBubyBQ SFlfTUlTQwogCQkgKiByZWdpc3RlciBmb3IgaXQgYW5kIG5vIG5lZWQgdG8gcHJvZ3JhbSB0aGUK IAkJICogREVfSU9fQ09NUF9QV1JfRE9XTiBzZXR0aW5nIG9uIFBIWSBDLgogCQkgKi8KLQkJaWYg KHBvcnQgIT0gUE9SVF9DKSB7Ci0JCQl2YWwgPSBJOTE1X1JFQUQoSUNMX1BIWV9NSVNDKHBvcnQp KTsKKwkJaWYgKHBoeSAhPSBQSFlfQykgeworCQkJdmFsID0gSTkxNV9SRUFEKElDTF9QSFlfTUlT QyhwaHkpKTsKIAkJCXZhbCB8PSBJQ0xfUEhZX01JU0NfREVfSU9fQ09NUF9QV1JfRE9XTjsKLQkJ CUk5MTVfV1JJVEUoSUNMX1BIWV9NSVNDKHBvcnQpLCB2YWwpOworCQkJSTkxNV9XUklURShJQ0xf UEhZX01JU0MocGh5KSwgdmFsKTsKIAkJfQogCi0JCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9D T01QX0RXMChwb3J0KSk7CisJCXZhbCA9IEk5MTVfUkVBRChJQ0xfUE9SVF9DT01QX0RXMChwaHkp KTsKIAkJdmFsICY9IH5DT01QX0lOSVQ7Ci0JCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ09NUF9EVzAo cG9ydCksIHZhbCk7CisJCUk5MTVfV1JJVEUoSUNMX1BPUlRfQ09NUF9EVzAocGh5KSwgdmFsKTsK IAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf Y29tYm9fcGh5LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbWJvX3Bo eS5oCmluZGV4IGU2ZTE5NWE4M2IxOS4uODBhMTM4NmI0Yzg3IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbWJvX3BoeS5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29tYm9fcGh5LmgKQEAgLTEwLDExICsxMCwxMiBAQAog I2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgogCiBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKK2Vu dW0gcGh5OwogCiB2b2lkIGludGVsX2NvbWJvX3BoeV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7CiB2b2lkIGludGVsX2NvbWJvX3BoeV91bmluaXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfY29tYm9fcGh5X3Bvd2VyX3VwX2xh bmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgICAgZW51bSBwb3J0 IHBvcnQsIGJvb2wgaXNfZHNpLAorCQkJCSAgICBlbnVtIHBoeSBwaHksIGJvb2wgaXNfZHNpLAog CQkJCSAgICBpbnQgbGFuZV9jb3VudCwgYm9vbCBsYW5lX3JldmVyc2FsKTsKIAogI2VuZGlmIC8q IF9fSU5URUxfQ09NQk9fUEhZX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGRpLmMKaW5kZXggNTkzODA2ZDQ0YWQ0Li44ZWU1NWJhMmM5MWIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwpAQCAtODY3LDExICs4NjcsMTIgQEAgaWNsX2dl dF9jb21ib19idWZfdHJhbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQg dHlwZSwgaW50IHJhdGUsCiBzdGF0aWMgaW50IGludGVsX2RkaV9oZG1pX2xldmVsKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCiB7CiAJaW50IG5fZW50 cmllcywgbGV2ZWwsIGRlZmF1bHRfZW50cnk7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90 b19waHkoZGV2X3ByaXYsIHBvcnQpOwogCiAJbGV2ZWwgPSBkZXZfcHJpdi0+dmJ0LmRkaV9wb3J0 X2luZm9bcG9ydF0uaGRtaV9sZXZlbF9zaGlmdDsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDExKSB7Ci0JCWlmIChpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2LCBwb3J0KSkK KwkJaWYgKGludGVsX3BoeV9pc19jb21ibyhkZXZfcHJpdiwgcGh5KSkKIAkJCWljbF9nZXRfY29t Ym9fYnVmX3RyYW5zKGRldl9wcml2LCBJTlRFTF9PVVRQVVRfSERNSSwKIAkJCQkJCTAsICZuX2Vu dHJpZXMpOwogCQllbHNlCkBAIC0xNDg2LDkgKzE0ODcsMTAgQEAgc3RhdGljIHZvaWQgaWNsX2Rk aV9jbG9ja19nZXQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3Ry dWN0IGludGVsX2RwbGxfaHdfc3RhdGUgKnBsbF9zdGF0ZSA9ICZwaXBlX2NvbmZpZy0+ZHBsbF9o d19zdGF0ZTsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CisJZW51bSBwaHkgcGh5 ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIHBvcnQpOwogCWludCBsaW5rX2Nsb2NrOwog Ci0JaWYgKGludGVsX3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIHBvcnQpKSB7CisJaWYgKGlu dGVsX3BoeV9pc19jb21ibyhkZXZfcHJpdiwgcGh5KSkgewogCQlsaW5rX2Nsb2NrID0gY25sX2Nh bGNfd3JwbGxfbGluayhkZXZfcHJpdiwgcGxsX3N0YXRlKTsKIAl9IGVsc2UgewogCQllbnVtIGlu dGVsX2RwbGxfaWQgcGxsX2lkID0gaW50ZWxfZ2V0X3NoYXJlZF9kcGxsX2lkKGRldl9wcml2LApA QCAtMjA4NSw2ICsyMDg3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2dldF9wb3dlcl9kb21h aW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0OworCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRf dG9fcGh5KGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKIAogCS8qCiAJICogVE9ETzogQWRkIHN1 cHBvcnQgZm9yIE1TVCBlbmNvZGVycy4gQXRtLCB0aGUgZm9sbG93aW5nIHNob3VsZCBuZXZlcgpA QCAtMjEwMiw3ICsyMTA1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2dldF9wb3dlcl9kb21h aW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCSAqIHBvcnRzLgogCSAqLwogCWlm IChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpIHx8Ci0JICAgIGludGVsX3Bv cnRfaXNfdGMoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpKQorCSAgICBpbnRlbF9waHlfaXNfdGMo ZGV2X3ByaXYsIHBoeSkpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LAogCQkJ CQlpbnRlbF9kZGlfbWFpbl9saW5rX2F1eF9kb21haW4oZGlnX3BvcnQpKTsKIApAQCAtMjIyNywx MCArMjIzMCwxMSBAQCB1OCBpbnRlbF9kZGlfZHBfdm9sdGFnZV9tYXgoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVu Y190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7CiAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVy LT5wb3J0OworCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBwb3J0 KTsKIAlpbnQgbl9lbnRyaWVzOwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpIHsK LQkJaWYgKGludGVsX3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIHBvcnQpKQorCQlpZiAoaW50 ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2LCBwaHkpKQogCQkJaWNsX2dldF9jb21ib19idWZfdHJh bnMoZGV2X3ByaXYsIGVuY29kZXItPnR5cGUsCiAJCQkJCQlpbnRlbF9kcC0+bGlua19yYXRlLCAm bl9lbnRyaWVzKTsKIAkJZWxzZQpAQCAtMjY2Myw5ICsyNjY3LDkgQEAgc3RhdGljIHZvaWQgaWNs X2RkaV92c3dpbmdfc2VxdWVuY2Uoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJ ICAgIGVudW0gaW50ZWxfb3V0cHV0X3R5cGUgdHlwZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQllbnVtIHBvcnQg cG9ydCA9IGVuY29kZXItPnBvcnQ7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHko ZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpOwogCi0JaWYgKGludGVsX3BvcnRfaXNfY29tYm9waHko ZGV2X3ByaXYsIHBvcnQpKQorCWlmIChpbnRlbF9waHlfaXNfY29tYm8oZGV2X3ByaXYsIHBoeSkp CiAJCWljbF9jb21ib19waHlfZGRpX3Zzd2luZ19zZXF1ZW5jZShlbmNvZGVyLCBsZXZlbCwgdHlw ZSk7CiAJZWxzZQogCQlpY2xfbWdfcGh5X2RkaV92c3dpbmdfc2VxdWVuY2UoZW5jb2RlciwgbGlu a19jbG9jaywgbGV2ZWwpOwpAQCAtMjcyOCwxMiArMjczMiwxMiBAQCB1MzIgZGRpX3NpZ25hbF9s ZXZlbHMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAogc3RhdGljIGlubGluZQogdTMyIGlj bF9kcGNsa2FfY2ZnY3IwX2Nsa19vZmYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAotCQkJICAgICAgZW51bSBwb3J0IHBvcnQpCisJCQkgICAgICBlbnVtIHBoeSBwaHkpCiB7Ci0J aWYgKGludGVsX3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIHBvcnQpKSB7Ci0JCXJldHVybiBJ Q0xfRFBDTEtBX0NGR0NSMF9ERElfQ0xLX09GRihwb3J0KTsKLQl9IGVsc2UgaWYgKGludGVsX3Bv cnRfaXNfdGMoZGV2X3ByaXYsIHBvcnQpKSB7Ci0JCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50 ZWxfcG9ydF90b190YyhkZXZfcHJpdiwgcG9ydCk7CisJaWYgKGludGVsX3BoeV9pc19jb21ibyhk ZXZfcHJpdiwgcGh5KSkgeworCQlyZXR1cm4gSUNMX0RQQ0xLQV9DRkdDUjBfRERJX0NMS19PRkYo cGh5KTsKKwl9IGVsc2UgaWYgKGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSkgeworCQll bnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYsIHBoeSk7CiAK IAkJcmV0dXJuIElDTF9EUENMS0FfQ0ZHQ1IwX1RDX0NMS19PRkYodGNfcG9ydCk7CiAJfQpAQCAt Mjc0NiwyMiArMjc1MCwyMiBAQCBzdGF0aWMgdm9pZCBpY2xfbWFwX3BsbHNfdG9fcG9ydHMoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3No YXJlZF9kcGxsICpwbGwgPSBjcnRjX3N0YXRlLT5zaGFyZWRfZHBsbDsKLQllbnVtIHBvcnQgcG9y dCA9IGVuY29kZXItPnBvcnQ7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2 X3ByaXYsIGVuY29kZXItPnBvcnQpOwogCXUzMiB2YWw7CiAKIAltdXRleF9sb2NrKCZkZXZfcHJp di0+ZHBsbF9sb2NrKTsKIAogCXZhbCA9IEk5MTVfUkVBRChEUENMS0FfQ0ZHQ1IwX0lDTCk7Ci0J V0FSTl9PTigodmFsICYgaWNsX2RwY2xrYV9jZmdjcjBfY2xrX29mZihkZXZfcHJpdiwgcG9ydCkp ID09IDApOworCVdBUk5fT04oKHZhbCAmIGljbF9kcGNsa2FfY2ZnY3IwX2Nsa19vZmYoZGV2X3By aXYsIHBoeSkpID09IDApOwogCi0JaWYgKGludGVsX3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYs IHBvcnQpKSB7Ci0JCXZhbCAmPSB+RFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9NQVNLKHBvcnQp OwotCQl2YWwgfD0gRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTChwbGwtPmluZm8tPmlkLCBwb3J0 KTsKKwlpZiAoaW50ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2LCBwaHkpKSB7CisJCXZhbCAmPSB+ RFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9NQVNLKHBoeSk7CisJCXZhbCB8PSBEUENMS0FfQ0ZH Q1IwX0RESV9DTEtfU0VMKHBsbC0+aW5mby0+aWQsIHBoeSk7CiAJCUk5MTVfV1JJVEUoRFBDTEtB X0NGR0NSMF9JQ0wsIHZhbCk7CiAJCVBPU1RJTkdfUkVBRChEUENMS0FfQ0ZHQ1IwX0lDTCk7CiAJ fQogCi0JdmFsICY9IH5pY2xfZHBjbGthX2NmZ2NyMF9jbGtfb2ZmKGRldl9wcml2LCBwb3J0KTsK Kwl2YWwgJj0gfmljbF9kcGNsa2FfY2ZnY3IwX2Nsa19vZmYoZGV2X3ByaXYsIHBoeSk7CiAJSTkx NV9XUklURShEUENMS0FfQ0ZHQ1IwX0lDTCwgdmFsKTsKIAogCW11dGV4X3VubG9jaygmZGV2X3By aXYtPmRwbGxfbG9jayk7CkBAIC0yNzcwLDEzICsyNzc0LDEzIEBAIHN0YXRpYyB2b2lkIGljbF9t YXBfcGxsc190b19wb3J0cyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHN0YXRpYyB2 b2lkIGljbF91bm1hcF9wbGxzX3RvX3BvcnRzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOwotCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKKwllbnVtIHBo eSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCk7CiAJdTMy IHZhbDsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT5kcGxsX2xvY2spOwogCiAJdmFsID0gSTkx NV9SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKTsKLQl2YWwgfD0gaWNsX2RwY2xrYV9jZmdjcjBfY2xr X29mZihkZXZfcHJpdiwgcG9ydCk7CisJdmFsIHw9IGljbF9kcGNsa2FfY2ZnY3IwX2Nsa19vZmYo ZGV2X3ByaXYsIHBoeSk7CiAJSTkxNV9XUklURShEUENMS0FfQ0ZHQ1IwX0lDTCwgdmFsKTsKIAog CW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRwbGxfbG9jayk7CkBAIC0yODYzLDYgKzI4NjcsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfY2xrX3NlbGVjdChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGVuY29kZXItPmJhc2UuZGV2KTsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CisJ ZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIHBvcnQpOwogCXUzMiB2 YWw7CiAJY29uc3Qgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwgPSBjcnRjX3N0YXRlLT5z aGFyZWRfZHBsbDsKIApAQCAtMjg3MiwxNCArMjg3NywxNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9k ZGlfY2xrX3NlbGVjdChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAltdXRleF9sb2Nr KCZkZXZfcHJpdi0+ZHBsbF9sb2NrKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEx KSB7Ci0JCWlmICghaW50ZWxfcG9ydF9pc19jb21ib3BoeShkZXZfcHJpdiwgcG9ydCkpCi0JCQlJ OTE1X1dSSVRFKERESV9DTEtfU0VMKHBvcnQpLAorCQlpZiAoIWludGVsX3BoeV9pc19jb21ibyhk ZXZfcHJpdiwgcGh5KSkKKwkJCUk5MTVfV1JJVEUoRERJX0NMS19TRUwocGh5KSwKIAkJCQkgICBp Y2xfcGxsX3RvX2RkaV9jbGtfc2VsKGVuY29kZXIsIGNydGNfc3RhdGUpKTsKIAl9IGVsc2UgaWYg KElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSB7CiAJCS8qIENvbmZpZ3VyZSBEUENMS0FfQ0ZHQ1Iw IHRvIG1hcCB0aGUgRFBMTCB0byB0aGUgRERJLiAqLwogCQl2YWwgPSBJOTE1X1JFQUQoRFBDTEtB X0NGR0NSMCk7Ci0JCXZhbCAmPSB+RFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9NQVNLKHBvcnQp OwotCQl2YWwgfD0gRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTChwbGwtPmluZm8tPmlkLCBwb3J0 KTsKKwkJdmFsICY9IH5EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMX01BU0socGh5KTsKKwkJdmFs IHw9IERQQ0xLQV9DRkdDUjBfRERJX0NMS19TRUwocGxsLT5pbmZvLT5pZCwgcGh5KTsKIAkJSTkx NV9XUklURShEUENMS0FfQ0ZHQ1IwLCB2YWwpOwogCiAJCS8qCkBAIC0yODg4LDIxICsyODkzLDIx IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9jbGtfc2VsZWN0KHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAogCQkgKiByZWdpc3RlciB3cml0ZXMuCiAJCSAqLwogCQl2YWwgPSBJOTE1X1JF QUQoRFBDTEtBX0NGR0NSMCk7Ci0JCXZhbCAmPSB+RFBDTEtBX0NGR0NSMF9ERElfQ0xLX09GRihw b3J0KTsKKwkJdmFsICY9IH5EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfT0ZGKHBoeSk7CiAJCUk5MTVf V1JJVEUoRFBDTEtBX0NGR0NSMCwgdmFsKTsKIAl9IGVsc2UgaWYgKElTX0dFTjlfQkMoZGV2X3By aXYpKSB7CiAJCS8qIERESSAtPiBQTEwgbWFwcGluZyAgKi8KIAkJdmFsID0gSTkxNV9SRUFEKERQ TExfQ1RSTDIpOwogCi0JCXZhbCAmPSB+KERQTExfQ1RSTDJfRERJX0NMS19PRkYocG9ydCkgfAot CQkJIERQTExfQ1RSTDJfRERJX0NMS19TRUxfTUFTSyhwb3J0KSk7Ci0JCXZhbCB8PSAoRFBMTF9D VFJMMl9ERElfQ0xLX1NFTChwbGwtPmluZm8tPmlkLCBwb3J0KSB8Ci0JCQlEUExMX0NUUkwyX0RE SV9TRUxfT1ZFUlJJREUocG9ydCkpOworCQl2YWwgJj0gfihEUExMX0NUUkwyX0RESV9DTEtfT0ZG KHBoeSkgfAorCQkJIERQTExfQ1RSTDJfRERJX0NMS19TRUxfTUFTSyhwaHkpKTsKKwkJdmFsIHw9 IChEUExMX0NUUkwyX0RESV9DTEtfU0VMKHBsbC0+aW5mby0+aWQsIHBoeSkgfAorCQkJRFBMTF9D VFJMMl9ERElfU0VMX09WRVJSSURFKHBoeSkpOwogCiAJCUk5MTVfV1JJVEUoRFBMTF9DVFJMMiwg dmFsKTsKIAogCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDkpIHsKLQkJSTkxNV9X UklURShQT1JUX0NMS19TRUwocG9ydCksIGhzd19wbGxfdG9fZGRpX3BsbF9zZWwocGxsKSk7CisJ CUk5MTVfV1JJVEUoUE9SVF9DTEtfU0VMKHBoeSksIGhzd19wbGxfdG9fZGRpX3BsbF9zZWwocGxs KSk7CiAJfQogCiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHBsbF9sb2NrKTsKQEAgLTI5MTIs MTggKzI5MTcsMTkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2Nsa19kaXNhYmxlKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCWVudW0gcG9ydCBwb3J0ID0gZW5j b2Rlci0+cG9ydDsKKwllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwg cG9ydCk7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewotCQlpZiAoIWludGVs X3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIHBvcnQpKQotCQkJSTkxNV9XUklURShERElfQ0xL X1NFTChwb3J0KSwgRERJX0NMS19TRUxfTk9ORSk7CisJCWlmICghaW50ZWxfcGh5X2lzX2NvbWJv KGRldl9wcml2LCBwaHkpKQorCQkJSTkxNV9XUklURShERElfQ0xLX1NFTChwaHkpLCBERElfQ0xL X1NFTF9OT05FKTsKIAl9IGVsc2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSB7CiAJCUk5 MTVfV1JJVEUoRFBDTEtBX0NGR0NSMCwgSTkxNV9SRUFEKERQQ0xLQV9DRkdDUjApIHwKLQkJCSAg IERQQ0xLQV9DRkdDUjBfRERJX0NMS19PRkYocG9ydCkpOworCQkJICAgRFBDTEtBX0NGR0NSMF9E RElfQ0xLX09GRihwaHkpKTsKIAl9IGVsc2UgaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKSB7CiAJ CUk5MTVfV1JJVEUoRFBMTF9DVFJMMiwgSTkxNV9SRUFEKERQTExfQ1RSTDIpIHwKLQkJCSAgIERQ TExfQ1RSTDJfRERJX0NMS19PRkYocG9ydCkpOworCQkJICAgRFBMTF9DVFJMMl9ERElfQ0xLX09G RihwaHkpKTsKIAl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA5KSB7Ci0JCUk5MTVf V1JJVEUoUE9SVF9DTEtfU0VMKHBvcnQpLCBQT1JUX0NMS19TRUxfTk9ORSk7CisJCUk5MTVfV1JJ VEUoUE9SVF9DTEtfU0VMKHBoeSksIFBPUlRfQ0xLX1NFTF9OT05FKTsKIAl9CiB9CiAKQEAgLTMx MTAsNiArMzExNiw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2RwKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBl bmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCWVudW0gcG9ydCBwb3J0 ID0gZW5jb2Rlci0+cG9ydDsKKwllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZf cHJpdiwgcG9ydCk7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNf dG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwogCWJvb2wgaXNfbXN0ID0gaW50ZWxfY3J0Y19o YXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfRFBfTVNUKTsKIAlpbnQgbGV2ZWwgPSBp bnRlbF9kZGlfZHBfbGV2ZWwoaW50ZWxfZHApOwpAQCAtMzEzOCwxMSArMzE0NSwxMSBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKIAllbHNlCiAJCWludGVsX3ByZXBhcmVfZHBfZGRpX2J1ZmZlcnMoZW5jb2RlciwgY3J0 Y19zdGF0ZSk7CiAKLQlpZiAoaW50ZWxfcG9ydF9pc19jb21ib3BoeShkZXZfcHJpdiwgcG9ydCkp IHsKKwlpZiAoaW50ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2LCBwaHkpKSB7CiAJCWJvb2wgbGFu ZV9yZXZlcnNhbCA9CiAJCQlkaWdfcG9ydC0+c2F2ZWRfcG9ydF9iaXRzICYgRERJX0JVRl9QT1JU X1JFVkVSU0FMOwogCi0JCWludGVsX2NvbWJvX3BoeV9wb3dlcl91cF9sYW5lcyhkZXZfcHJpdiwg cG9ydCwgZmFsc2UsCisJCWludGVsX2NvbWJvX3BoeV9wb3dlcl91cF9sYW5lcyhkZXZfcHJpdiwg cGh5LCBmYWxzZSwKIAkJCQkJICAgICAgIGNydGNfc3RhdGUtPmxhbmVfY291bnQsCiAJCQkJCSAg ICAgICBsYW5lX3JldmVyc2FsKTsKIAl9CkBAIC0zNjMwLDcgKzM2MzcsNyBAQCBpbnRlbF9kZGlf cHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJZW51bSBwb3J0 IHBvcnQgPSBlbmNvZGVyLT5wb3J0OwogCiAJaWYgKGludGVsX2NydGNfaGFzX2RwX2VuY29kZXIo Y3J0Y19zdGF0ZSkgfHwKLQkgICAgaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgZW5jb2Rlci0+ cG9ydCkpCisJICAgIGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgaW50ZWxfcG9ydF90b19waHko ZGV2X3ByaXYsIHBvcnQpKSkKIAkJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsCiAJ CQkJCWludGVsX2RkaV9tYWluX2xpbmtfYXV4X2RvbWFpbihkaWdfcG9ydCkpOwogCkBAIC0zNjU2 LDkgKzM2NjMsMTAgQEAgaW50ZWxfZGRpX3Bvc3RfcGxsX2Rpc2FibGUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq ZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOworCWVudW0gcGh5IHBo eSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKIAogCWlmIChp bnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpIHx8Ci0JICAgIGludGVsX3BvcnRf aXNfdGMoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpKQorCSAgICBpbnRlbF9waHlfaXNfdGMoZGV2 X3ByaXYsIHBoeSkpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0X3VuY2hlY2tlZChkZXZfcHJp diwKIAkJCQkJCSAgaW50ZWxfZGRpX21haW5fbGlua19hdXhfZG9tYWluKGRpZ19wb3J0KSk7CiB9 CkBAIC0zOTM0LDggKzM5NDIsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfZW5jb2Rlcl9yZXNl dChzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmNvZGVyKQogewogCXN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGRybV9lbmNvZGVyKTsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZHJtX2VuY29kZXItPmRldik7CisJ ZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoaTkxNSwgZGlnX3BvcnQtPmJhc2UucG9y dCk7CiAKLQlpZiAoaW50ZWxfcG9ydF9pc190YyhpOTE1LCBkaWdfcG9ydC0+YmFzZS5wb3J0KSkK KwlpZiAoaW50ZWxfcGh5X2lzX3RjKGk5MTUsIHBoeSkpCiAJCWludGVsX2RpZ2l0YWxfcG9ydF9j b25uZWN0ZWQoJmRpZ19wb3J0LT5iYXNlKTsKIAogCWludGVsX2RwX2VuY29kZXJfcmVzZXQoZHJt X2VuY29kZXIpOwpAQCAtMzk0NSwxMCArMzk1NCwxMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlf ZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKIAlzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZW5jb2Rlci0+ZGV2KTsK KwllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShpOTE1LCBkaWdfcG9ydC0+YmFzZS5w b3J0KTsKIAogCWludGVsX2RwX2VuY29kZXJfZmx1c2hfd29yayhlbmNvZGVyKTsKIAotCWlmIChp bnRlbF9wb3J0X2lzX3RjKGk5MTUsIGRpZ19wb3J0LT5iYXNlLnBvcnQpKQorCWlmIChpbnRlbF9w aHlfaXNfdGMoaTkxNSwgcGh5KSkKIAkJaWNsX3RjX3BoeV9kaXNjb25uZWN0KGk5MTUsIGRpZ19w b3J0KTsKIAogCWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7CkBAIC00MTk4LDYgKzQyMDgs NyBAQCB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgZW51bSBwb3J0IHBvcnQpCiAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwogCWJvb2wg aW5pdF9oZG1pLCBpbml0X2RwLCBpbml0X2xzcGNvbiA9IGZhbHNlOwogCWVudW0gcGlwZSBwaXBl OworCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBwb3J0KTsKIAog CWluaXRfaGRtaSA9IHBvcnRfaW5mby0+c3VwcG9ydHNfZHZpIHx8IHBvcnRfaW5mby0+c3VwcG9y dHNfaGRtaTsKIAlpbml0X2RwID0gcG9ydF9pbmZvLT5zdXBwb3J0c19kcDsKQEAgLTQyNjEsNyAr NDI3Miw3IEBAIHZvaWQgaW50ZWxfZGRpX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKIAlpbnRlbF9kaWdfcG9ydC0+bWF4X2xhbmVzID0gaW50 ZWxfZGRpX21heF9sYW5lcyhpbnRlbF9kaWdfcG9ydCk7CiAJaW50ZWxfZGlnX3BvcnQtPmF1eF9j aCA9IGludGVsX2Jpb3NfcG9ydF9hdXhfY2goZGV2X3ByaXYsIHBvcnQpOwogCi0JaW50ZWxfZGln X3BvcnQtPnRjX2xlZ2FjeV9wb3J0ID0gaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgcG9ydCkg JiYKKwlpbnRlbF9kaWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQgPSBpbnRlbF9waHlfaXNfdGMoZGV2 X3ByaXYsIHBoeSkgJiYKIAkJCQkJICFwb3J0X2luZm8tPnN1cHBvcnRzX3R5cGVjX3VzYiAmJgog CQkJCQkgIXBvcnRfaW5mby0+c3VwcG9ydHNfdGJ0OwogCkBAIC00MzI0LDcgKzQzMzUsNyBAQCB2 b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51 bSBwb3J0IHBvcnQpCiAKIAlpbnRlbF9pbmZvZnJhbWVfaW5pdChpbnRlbF9kaWdfcG9ydCk7CiAK LQlpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgcG9ydCkpCisJaWYgKGludGVsX3BoeV9p c190YyhkZXZfcHJpdiwgcGh5KSkKIAkJaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChpbnRl bF9lbmNvZGVyKTsKIAogCXJldHVybjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5LmMKaW5kZXggODU5MmE3ZDQyMmRlLi5lNzJhY2U0MjMyN2MgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCkBAIC02NTYwLDMxICs2 NTYwLDM5IEBAIHN0YXRpYyB2b2lkIGk5eHhfcGZpdF9lbmFibGUoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJSTkxNV9XUklURShCQ0xSUEFUKGNydGMtPnBpcGUp LCAwKTsKIH0KIAotYm9vbCBpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCitib29sIGludGVsX3BoeV9pc19jb21i byhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGh5IHBoeSkKIHsKLQlp ZiAocG9ydCA9PSBQT1JUX05PTkUpCisJaWYgKHBoeSA9PSBQSFlfTk9ORSkKIAkJcmV0dXJuIGZh bHNlOwogCiAJaWYgKElTX0VMS0hBUlRMQUtFKGRldl9wcml2KSkKLQkJcmV0dXJuIHBvcnQgPD0g UE9SVF9DOworCQlyZXR1cm4gcGh5IDw9IFBIWV9DOwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPj0gMTEpCi0JCXJldHVybiBwb3J0IDw9IFBPUlRfQjsKKwkJcmV0dXJuIHBoeSA8PSBQSFlf QjsKIAogCXJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBpbnRlbF9wb3J0X2lzX3RjKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCitib29sIGludGVsX3Bo eV9pc190YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGh5IHBoeSkK IHsKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSAmJiAhSVNfRUxLSEFSVExBS0UoZGV2 X3ByaXYpKQotCQlyZXR1cm4gcG9ydCA+PSBQT1JUX0MgJiYgcG9ydCA8PSBQT1JUX0Y7CisJCXJl dHVybiBwaHkgPj0gUEhZX0MgJiYgcGh5IDw9IFBIWV9GOwogCiAJcmV0dXJuIGZhbHNlOwogfQog CitlbnVtIHBoeSBpbnRlbF9wb3J0X3RvX3BoeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwgZW51bSBwb3J0IHBvcnQpCit7CisJaWYgKElTX0VMS0hBUlRMQUtFKGk5MTUpICYmIHBvcnQg PT0gUE9SVF9EKQorCQlyZXR1cm4gUEhZX0E7CisKKwlyZXR1cm4gKGVudW0gcGh5KXBvcnQ7Cit9 CisKIGVudW0gdGNfcG9ydCBpbnRlbF9wb3J0X3RvX3RjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCiB7Ci0JaWYgKCFpbnRlbF9wb3J0X2lzX3RjKGRl dl9wcml2LCBwb3J0KSkKKwlpZiAoIWludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgaW50ZWxfcG9y dF90b19waHkoZGV2X3ByaXYsIHBvcnQpKSkKIAkJcmV0dXJuIFBPUlRfVENfTk9ORTsKIAogCXJl dHVybiBwb3J0IC0gUE9SVF9DOwpAQCAtOTkyMiw5ICs5OTMwLDEwIEBAIHN0YXRpYyB2b2lkIGNh bm5vbmxha2VfZ2V0X2RkaV9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog ewogCWVudW0gaW50ZWxfZHBsbF9pZCBpZDsKIAl1MzIgdGVtcDsKKwllbnVtIHBoeSBwaHkgPSBp bnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7CiAKLQl0ZW1wID0gSTkxNV9SRUFEKERQ Q0xLQV9DRkdDUjApICYgRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9NQVNLKHBvcnQpOwotCWlk ID0gdGVtcCA+PiBEUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMX1NISUZUKHBvcnQpOworCXRlbXAg PSBJOTE1X1JFQUQoRFBDTEtBX0NGR0NSMCkgJiBEUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMX01B U0socGh5KTsKKwlpZCA9IHRlbXAgPj4gRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9TSElGVChw aHkpOwogCiAJaWYgKFdBUk5fT04oaWQgPCBTS0xfRFBMTDAgfHwgaWQgPiBTS0xfRFBMTDIpKQog CQlyZXR1cm47CkBAIC05OTM2LDE1ICs5OTQ1LDE2IEBAIHN0YXRpYyB2b2lkIGljZWxha2VfZ2V0 X2RkaV9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCWVudW0gcG9y dCBwb3J0LAogCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKKwll bnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7CiAJZW51bSBp bnRlbF9kcGxsX2lkIGlkOwogCXUzMiB0ZW1wOwogCiAJLyogVE9ETzogVEJUIHBsbCBub3QgaW1w bGVtZW50ZWQuICovCi0JaWYgKGludGVsX3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIHBvcnQp KSB7CisJaWYgKGludGVsX3BoeV9pc19jb21ibyhkZXZfcHJpdiwgcGh5KSkgewogCQl0ZW1wID0g STkxNV9SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKSAmCi0JCSAgICAgICBEUENMS0FfQ0ZHQ1IwX0RE SV9DTEtfU0VMX01BU0socG9ydCk7Ci0JCWlkID0gdGVtcCA+PiBEUENMS0FfQ0ZHQ1IwX0RESV9D TEtfU0VMX1NISUZUKHBvcnQpOwotCX0gZWxzZSBpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZfcHJp diwgcG9ydCkpIHsKKwkJICAgICAgIERQQ0xLQV9DRkdDUjBfRERJX0NMS19TRUxfTUFTSyhwaHkp OworCQlpZCA9IHRlbXAgPj4gRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9TSElGVChwaHkpOwor CX0gZWxzZSBpZiAoaW50ZWxfcGh5X2lzX3RjKGRldl9wcml2LCBwaHkpKSB7CiAJCWlkID0gaWNs X3RjX3BvcnRfdG9fcGxsX2lkKGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYsIHBvcnQpKTsKIAl9 IGVsc2UgewogCQlXQVJOKDEsICJJbnZhbGlkIHBvcnQgJXhcbiIsIHBvcnQpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuaAppbmRleCBlZTZiODE5NGE0NTku LmY4OWIwYjc3OWYxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k aXNwbGF5LmgKQEAgLTIyOSw2ICsyMjksMjEgQEAgc3RydWN0IGludGVsX2xpbmtfbV9uIHsKIAl1 MzIgbGlua19uOwogfTsKIAorZW51bSBwaHkgeworCVBIWV9OT05FID0gLTEsCisKKwlQSFlfQSA9 IDAsCisJUEhZX0IsCisJUEhZX0MsCisJUEhZX0QsCisJUEhZX0UsCisJUEhZX0YsCisKKwlJOTE1 X01BWF9QSFlTCit9OworCisjZGVmaW5lIHBoeV9uYW1lKGEpICgoYSkgKyAnQScpCisKICNkZWZp bmUgZm9yX2VhY2hfcGlwZShfX2Rldl9wcml2LCBfX3ApIFwKIAlmb3IgKChfX3ApID0gMDsgKF9f cCkgPCBJTlRFTF9JTkZPKF9fZGV2X3ByaXYpLT5udW1fcGlwZXM7IChfX3ApKyspCiAKQEAgLTM1 Nyw1ICszNzIsNiBAQCB2b2lkIGxwdF9kaXNhYmxlX2Nsa291dF9kcChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpOwogdTMyIGludGVsX3BsYW5lX2ZiX21heF9zdHJpZGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICAgICAgdTMyIHBpeGVsX2Zvcm1hdCwg dTY0IG1vZGlmaWVyKTsKIGJvb2wgaW50ZWxfcGxhbmVfY2FuX3JlbWFwKGNvbnN0IHN0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOworZW51bSBwaHkgaW50ZWxfcG9ydF90b19w aHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGVudW0gcG9ydCBwb3J0KTsKIAogI2Vu ZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKaW5kZXggNDMzNmRmNDZm ZTc4Li41Nzc1MzgxMzJhODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rw LmMKQEAgLTMyOSw5ICszMjksOSBAQCBzdGF0aWMgaW50IGljbF9tYXhfc291cmNlX3JhdGUoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkKIHsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpk aWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKLQllbnVt IHBvcnQgcG9ydCA9IGRpZ19wb3J0LT5iYXNlLnBvcnQ7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxf cG9ydF90b19waHkoZGV2X3ByaXYsIGRpZ19wb3J0LT5iYXNlLnBvcnQpOwogCi0JaWYgKGludGVs X3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIHBvcnQpICYmCisJaWYgKGludGVsX3BoeV9pc19j b21ibyhkZXZfcHJpdiwgcGh5KSAmJgogCSAgICAhSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpICYm CiAJICAgICFpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKQogCQlyZXR1cm4gNTQwMDAwOwpAQCAt NTQyNSwxMCArNTQyNSwxMSBAQCBzdGF0aWMgYm9vbCBpY2xfZGlnaXRhbF9wb3J0X2Nvbm5lY3Rl ZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFz ZSk7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIGVuY29kZXIt PnBvcnQpOwogCi0JaWYgKGludGVsX3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIGVuY29kZXIt PnBvcnQpKQorCWlmIChpbnRlbF9waHlfaXNfY29tYm8oZGV2X3ByaXYsIHBoeSkpCiAJCXJldHVy biBpY2xfY29tYm9fcG9ydF9jb25uZWN0ZWQoZGV2X3ByaXYsIGRpZ19wb3J0KTsKLQllbHNlIGlm IChpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KSkKKwllbHNlIGlmIChp bnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkpCiAJCXJldHVybiBpY2xfdGNfcG9ydF9jb25u ZWN0ZWQoZGV2X3ByaXYsIGRpZ19wb3J0KTsKIAllbHNlCiAJCU1JU1NJTkdfQ0FTRShlbmNvZGVy LT5ocGRfcGluKTsKQEAgLTczMzIsNiArNzMzMyw3IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9y KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBpbnRlbF9lbmNvZGVyLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJZW51bSBwb3J0IHBvcnQgPSBpbnRl bF9lbmNvZGVyLT5wb3J0OworCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9w cml2LCBwb3J0KTsKIAlpbnQgdHlwZTsKIAogCS8qIEluaXRpYWxpemUgdGhlIHdvcmsgZm9yIG1v ZGVzZXQgaW4gY2FzZSBvZiBsaW5rIHRyYWluIGZhaWx1cmUgKi8KQEAgLTczNTgsNyArNzM2MCw3 IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmlu dGVsX2RpZ19wb3J0LAogCQkgKiBDdXJyZW50bHkgd2UgZG9uJ3Qgc3VwcG9ydCBlRFAgb24gVHlw ZUMgcG9ydHMsIGFsdGhvdWdoIGluCiAJCSAqIHRoZW9yeSBpdCBjb3VsZCB3b3JrIG9uIFR5cGVD IGxlZ2FjeSBwb3J0cy4KIAkJICovCi0JCVdBUk5fT04oaW50ZWxfcG9ydF9pc190YyhkZXZfcHJp diwgcG9ydCkpOworCQlXQVJOX09OKGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSk7CiAJ CXR5cGUgPSBEUk1fTU9ERV9DT05ORUNUT1JfZURQOwogCX0gZWxzZSB7CiAJCXR5cGUgPSBEUk1f TU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2RwbGxfbWdyLmMKaW5kZXggMmQ0ZTdiOWE3YjlkLi43YmY2OTc4NDgwNTUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmMKQEAgLTI1 MTMsNyArMjUxMyw4IEBAIHN0YXRpYyBib29sIGljbF9jYWxjX2RwbGxfc3RhdGUoc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJc3RydWN0IHNrbF93cnBsbF9wYXJhbXMgcGxs X3BhcmFtcyA9IHsgMCB9OwogCWJvb2wgcmV0OwogCi0JaWYgKGludGVsX3BvcnRfaXNfdGMoZGV2 X3ByaXYsIGVuY29kZXItPnBvcnQpKQorCWlmIChpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIGlu dGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LAorCQkJCQkJCWVuY29kZXItPnBvcnQpKSkKIAkJcmV0 ID0gaWNsX2NhbGNfdGJ0X3BsbChjcnRjX3N0YXRlLCAmcGxsX3BhcmFtcyk7CiAJZWxzZSBpZiAo aW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfSERNSSkgfHwKIAkJ IGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0RTSSkpCkBAIC0y ODAwLDE0ICsyODAxLDE1IEBAIGljbF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydDsK IAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29k ZXItPnBvcnQ7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIHBv cnQpOwogCWVudW0gaW50ZWxfZHBsbF9pZCBtaW4sIG1heDsKIAlib29sIHJldDsKIAotCWlmIChp bnRlbF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2LCBwb3J0KSkgeworCWlmIChpbnRlbF9waHlf aXNfY29tYm8oZGV2X3ByaXYsIHBoeSkpIHsKIAkJbWluID0gRFBMTF9JRF9JQ0xfRFBMTDA7CiAJ CW1heCA9IERQTExfSURfSUNMX0RQTEwxOwogCQlyZXQgPSBpY2xfY2FsY19kcGxsX3N0YXRlKGNy dGNfc3RhdGUsIGVuY29kZXIpOwotCX0gZWxzZSBpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZfcHJp diwgcG9ydCkpIHsKKwl9IGVsc2UgaWYgKGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSkg ewogCQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUKSB7CiAJCQlzdHJ1 Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgKm1zdF9lbmNvZGVyOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaAppbmRleCA3ZTc0OGJiM2YzMjQuLjJhNTU3ODk1ZWM3MSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oCkBAIC0xNzk0LDEyICsxNzk0LDEyIEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsK ICNkZWZpbmUgX0lDTF9DT01CT1BIWV9BCQkJMHgxNjIwMDAKICNkZWZpbmUgX0lDTF9DT01CT1BI WV9CCQkJMHg2QzAwMAogI2RlZmluZSBfSUNMX0NPTUJPUEhZX0NfRUhMCQkweDE2MDAwMAotI2Rl ZmluZSBfSUNMX0NPTUJPUEhZKHBvcnQpCQlfUElDSyhwb3J0LCBfSUNMX0NPTUJPUEhZX0EsIFwK KyNkZWZpbmUgX0lDTF9DT01CT1BIWShwaHkpCQlfUElDSyhwaHksIF9JQ0xfQ09NQk9QSFlfQSwg XAogCQkJCQkgICAgICBfSUNMX0NPTUJPUEhZX0IsIFwKIAkJCQkJICAgICAgX0lDTF9DT01CT1BI WV9DX0VITCkKIAogLyogQ05ML0lDTCBQb3J0IENMX0RXIHJlZ2lzdGVycyAqLwotI2RlZmluZSBf SUNMX1BPUlRfQ0xfRFcoZHcsIHBvcnQpCShfSUNMX0NPTUJPUEhZKHBvcnQpICsgXAorI2RlZmlu ZSBfSUNMX1BPUlRfQ0xfRFcoZHcsIHBoeSkJKF9JQ0xfQ09NQk9QSFkocGh5KSArIFwKIAkJCQkJ IDQgKiAoZHcpKQogCiAjZGVmaW5lIENOTF9QT1JUX0NMMUNNX0RXNQkJX01NSU8oMHgxNjIwMTQp CkBAIC05NjgxLDE1ICs5NjgxLDE1IEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUgewogICovCiAjZGVm aW5lIERQQ0xLQV9DRkdDUjAJCQkJX01NSU8oMHg2QzIwMCkKICNkZWZpbmUgRFBDTEtBX0NGR0NS MF9JQ0wJCQlfTU1JTygweDE2NDI4MCkKLSNkZWZpbmUgIERQQ0xLQV9DRkdDUjBfRERJX0NMS19P RkYocG9ydCkJKDEgPDwgKChwb3J0KSA9PSAgUE9SVF9GID8gMjMgOiBcCi0JCQkJCQkgICAgICAo cG9ydCkgKyAxMCkpCi0jZGVmaW5lICBJQ0xfRFBDTEtBX0NGR0NSMF9ERElfQ0xLX09GRihwb3J0 KSAgICgxIDw8ICgocG9ydCkgKyAxMCkpCisjZGVmaW5lICBEUENMS0FfQ0ZHQ1IwX0RESV9DTEtf T0ZGKHBoeSkJCSgxIDw8ICgocGh5KSA9PSBQSFlfRiA/IDIzIDogXAorCQkJCQkJICAgICAgKHBo eSkgKyAxMCkpCisjZGVmaW5lICBJQ0xfRFBDTEtBX0NGR0NSMF9ERElfQ0xLX09GRihwaHkpCSgx IDw8IF9QSUNLKHBoeSwgMTAsIDExLCAyNSkpCiAjZGVmaW5lICBJQ0xfRFBDTEtBX0NGR0NSMF9U Q19DTEtfT0ZGKHRjX3BvcnQpICgxIDw8ICgodGNfcG9ydCkgPT0gUE9SVF9UQzQgPyBcCiAJCQkJ CQkgICAgICAyMSA6ICh0Y19wb3J0KSArIDEyKSkKLSNkZWZpbmUgIERQQ0xLQV9DRkdDUjBfRERJ X0NMS19TRUxfU0hJRlQocG9ydCkJKChwb3J0KSA9PSBQT1JUX0YgPyAyMSA6IFwKLQkJCQkJCShw b3J0KSAqIDIpCi0jZGVmaW5lICBEUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMX01BU0socG9ydCkJ KDMgPDwgRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9TSElGVChwb3J0KSkKLSNkZWZpbmUgIERQ Q0xLQV9DRkdDUjBfRERJX0NMS19TRUwocGxsLCBwb3J0KQkoKHBsbCkgPDwgRFBDTEtBX0NGR0NS MF9ERElfQ0xLX1NFTF9TSElGVChwb3J0KSkKKyNkZWZpbmUgIERQQ0xLQV9DRkdDUjBfRERJX0NM S19TRUxfU0hJRlQocGh5KQkoKHBoeSkgPT0gUEhZX0YgPyAyMSA6IFwKKwkJCQkJCShwaHkpICog MikKKyNkZWZpbmUgIERQQ0xLQV9DRkdDUjBfRERJX0NMS19TRUxfTUFTSyhwaHkpCSgzIDw8IERQ Q0xLQV9DRkdDUjBfRERJX0NMS19TRUxfU0hJRlQocGh5KSkKKyNkZWZpbmUgIERQQ0xLQV9DRkdD UjBfRERJX0NMS19TRUwocGxsLCBwaHkpCSgocGxsKSA8PCBEUENMS0FfQ0ZHQ1IwX0RESV9DTEtf U0VMX1NISUZUKHBoeSkpCiAKIC8qIENOTCBQTEwgKi8KICNkZWZpbmUgRFBMTDBfRU5BQkxFCQkw eDQ2MDEwCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDFkNThmN2VjNWQ4NC4uOGMxNzRi Yjc2N2JhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtMTQ3Myw4ICsxNDczLDggQEAg dm9pZCBpbnRlbF9wcHNfdW5sb2NrX3JlZ3Nfd2Eoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKIHZvaWQgaW50ZWxfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2Rlcik7CiBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqCiBpbnRlbF9lbmNvZGVyX2N1cnJl bnRfbW9kZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7Ci1ib29sIGludGVsX3BvcnRf aXNfY29tYm9waHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQg cG9ydCk7Ci1ib29sIGludGVsX3BvcnRfaXNfdGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCBlbnVtIHBvcnQgcG9ydCk7Citib29sIGludGVsX3BoeV9pc19jb21ibyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGh5IHBoeSk7Citib29sIGludGVsX3Bo eV9pc190YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGh5IHBoeSk7 CiBlbnVtIHRjX3BvcnQgaW50ZWxfcG9ydF90b190YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJCQkgICAgICBlbnVtIHBvcnQgcG9ydCk7CiBpbnQgaW50ZWxfZ2V0X3BpcGVf ZnJvbV9jcnRjX2lkX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0t IAoyLjE3LjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==