From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v8 7/8] dm_op: convert HVMOP_inject_trap and HVMOP_inject_msi Date: Tue, 24 Jan 2017 15:27:09 +0000 Message-ID: <1485271630-1860-8-git-send-email-paul.durrant@citrix.com> References: <1485271630-1860-1-git-send-email-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cW30Q-0000Zj-Nx for xen-devel@lists.xenproject.org; Tue, 24 Jan 2017 15:27:34 +0000 In-Reply-To: <1485271630-1860-1-git-send-email-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Paul Durrant , Ian Jackson List-Id: xen-devel@lists.xenproject.org Tk9URTogVGhpcyBwYXRjaCBhbHNvIG1vZGlmaWVzIHRoZSB0eXBlcyBvZiB0aGUgJ3ZlY3Rvcics ICd0eXBlJyBhbmQKICAgICAgJ2luc25fbGVuJyBhcmd1bWVudHMgb2YgeGNfaHZtX2luamVjdF90 cmFwKCkgZnJvbSB1aW50MzJfdCB0bwogICAgICB1aW50OF90LiBJbiBwcmFjdGljZSB0aGUgdmFs dWVzIHBhc3NlZCB3ZXJlIGFsd2F5cyB0cnVuY2F0ZWQgdG8KICAgICAgOCBiaXRzLgoKU3VnZ2Vz dGVkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IFBh dWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1 bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkFja2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRy aXguY29tPgpBY2tlZC1ieTogRGFuaWVsIERlIEdyYWFmIDxkZ2RlZ3JhQHR5Y2hvLm5zYS5nb3Y+ ClJldmlld2VkLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgot LS0KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgoKdjg6Ci0gQWRk IENIRUNLIG1hY3Jvcy4KCnY3OgotIEZpeCBsaWJ4YyBjb2RlIGJyb2tlbiBpbiB2Ni4KCnY2Ogot IHMvdHJhcC9ldmVudCBhcyByZXF1ZXN0ZWQgYnkgQW5keSAoYW5kIGFkanVzdCBzdHJ1Y3QgaHZt X3ZjcHUKICBhY2NvcmRpbmdseSkuCgp2MzoKLSBGaXhlZCBwcmVmaXhpbmcgYW5kIHBhZGRpbmcu Cgp2MjoKLSBBZGRyZXNzZWQgc2V2ZXJhbCBjb21tZW50cyBmcm9tIEphbi4KLS0tCiB0b29scy9m bGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYgICB8ICAyICstCiB0b29scy9saWJ4Yy9pbmNsdWRl L3hlbmN0cmwuaCAgICAgICB8ICA0ICstCiB0b29scy9saWJ4Yy94Y19taXNjLmMgICAgICAgICAg ICAgICB8IDY0ICsrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0v ZG0uYyAgICAgICAgICAgICAgIHwgNDcgKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vYXJjaC94 ODYvaHZtL2h2bS5jICAgICAgICAgICAgICB8IDg0ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZjcHUuaCAgICAgIHwgIDIgKy0K IHhlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaCAgICAgIHwgNDggKysrKysrKysrKysrKysr KysrKysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oICAgICB8IDQ1IC0tLS0tLS0t LS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS94bGF0LmxzdCAgICAgICAgICAgICAgICB8ICAyICsK IHhlbi9pbmNsdWRlL3hzbS9kdW1teS5oICAgICAgICAgICAgIHwgIDYgLS0tCiB4ZW4vaW5jbHVk ZS94c20veHNtLmggICAgICAgICAgICAgICB8ICA2IC0tLQogeGVuL3hzbS9kdW1teS5jICAgICAg ICAgICAgICAgICAgICAgfCAgMSAtCiB4ZW4veHNtL2ZsYXNrL2hvb2tzLmMgICAgICAgICAgICAg ICB8ICA2IC0tLQogeGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgfCAgNSArLS0K IDE0IGZpbGVzIGNoYW5nZWQsIDEyOSBpbnNlcnRpb25zKCspLCAxOTMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLmlmIGIvdG9vbHMvZmxh c2svcG9saWN5L21vZHVsZXMveGVuLmlmCmluZGV4IDA5MmE2YzUuLjQ1ZTVjZWEgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZgorKysgYi90b29scy9mbGFzay9w b2xpY3kvbW9kdWxlcy94ZW4uaWYKQEAgLTE1MSw3ICsxNTEsNyBAQCBkZWZpbmUoYGRldmljZV9t b2RlbCcsIGAKIAogCWFsbG93ICQxICQyX3RhcmdldDpkb21haW4geyBnZXRkb21haW5pbmZvIHNo dXRkb3duIH07CiAJYWxsb3cgJDEgJDJfdGFyZ2V0Om1tdSB7IG1hcF9yZWFkIG1hcF93cml0ZSBh ZGp1c3QgcGh5c21hcCB0YXJnZXRfaGFjayB9OwotCWFsbG93ICQxICQyX3RhcmdldDpodm0geyBn ZXRwYXJhbSBzZXRwYXJhbSBodm1jdGwgY2FjaGVhdHRyIHNlbmRfaXJxIGRtIH07CisJYWxsb3cg JDEgJDJfdGFyZ2V0Omh2bSB7IGdldHBhcmFtIHNldHBhcmFtIGh2bWN0bCBjYWNoZWF0dHIgZG0g fTsKICcpCiAKICMgbWFrZV9kZXZpY2VfbW9kZWwocHJpdiwgZG1fZG9tLCBodm1fZG9tKQpkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNs dWRlL3hlbmN0cmwuaAppbmRleCA2NjQ4Njc5Li5hYmE2OWM0IDEwMDY0NAotLS0gYS90b29scy9s aWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwu aApAQCAtMTY0MSw4ICsxNjQxLDggQEAgaW50IHhjX2h2bV9zZXRfbWVtX3R5cGUoCiAgKiByZXN1 bWVzLiAKICAqLwogaW50IHhjX2h2bV9pbmplY3RfdHJhcCgKLSAgICB4Y19pbnRlcmZhY2UgKnhj aCwgZG9taWRfdCBkb20sIGludCB2Y3B1LCB1aW50MzJfdCB2ZWN0b3IsCi0gICAgdWludDMyX3Qg dHlwZSwgdWludDMyX3QgZXJyb3JfY29kZSwgdWludDMyX3QgaW5zbl9sZW4sCisgICAgeGNfaW50 ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLCBpbnQgdmNwdSwgdWludDhfdCB2ZWN0b3IsCisgICAg dWludDhfdCB0eXBlLCB1aW50MzJfdCBlcnJvcl9jb2RlLCB1aW50OF90IGluc25fbGVuLAogICAg IHVpbnQ2NF90IGNyMik7CiAKIC8qCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19taXNjLmMg Yi90b29scy9saWJ4Yy94Y19taXNjLmMKaW5kZXggNWIwNmQ2Yi4uMGZjNmMyMiAxMDA2NDQKLS0t IGEvdG9vbHMvbGlieGMveGNfbWlzYy5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX21pc2MuYwpAQCAt NTI3LDI5ICs1MjcsMjAgQEAgaW50IHhjX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUoCiB9CiAKIGlu dCB4Y19odm1faW5qZWN0X21zaSgKLSAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20s IHVpbnQ2NF90IGFkZHIsIHVpbnQzMl90IGRhdGEpCisgICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRv bWlkX3QgZG9tLCB1aW50NjRfdCBtc2lfYWRkciwgdWludDMyX3QgbXNpX2RhdGEpCiB7Ci0gICAg REVDTEFSRV9IWVBFUkNBTExfQlVGRkVSKHN0cnVjdCB4ZW5faHZtX2luamVjdF9tc2ksIGFyZyk7 Ci0gICAgaW50IHJjOwotCi0gICAgYXJnID0geGNfaHlwZXJjYWxsX2J1ZmZlcl9hbGxvYyh4Y2gs IGFyZywgc2l6ZW9mKCphcmcpKTsKLSAgICBpZiAoIGFyZyA9PSBOVUxMICkKLSAgICB7Ci0gICAg ICAgIFBFUlJPUigiQ291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgeGNfaHZtX2luamVjdF9t c2kgaHlwZXJjYWxsIik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9CisgICAgc3RydWN0IHhl bl9kbV9vcCBvcDsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF9tc2kgKmRhdGE7CiAKLSAg ICBhcmctPmRvbWlkID0gZG9tOwotICAgIGFyZy0+YWRkciAgPSBhZGRyOwotICAgIGFyZy0+ZGF0 YSAgPSBkYXRhOworICAgIG1lbXNldCgmb3AsIDAsIHNpemVvZihvcCkpOwogCi0gICAgcmMgPSB4 ZW5jYWxsMih4Y2gtPnhjYWxsLCBfX0hZUEVSVklTT1JfaHZtX29wLAotICAgICAgICAgICAgICAg ICAgSFZNT1BfaW5qZWN0X21zaSwKLSAgICAgICAgICAgICAgICAgIEhZUEVSQ0FMTF9CVUZGRVJf QVNfQVJHKGFyZykpOworICAgIG9wLm9wID0gWEVOX0RNT1BfaW5qZWN0X21zaTsKKyAgICBkYXRh ID0gJm9wLnUuaW5qZWN0X21zaTsKIAotICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfZnJlZSh4Y2gs IGFyZyk7CisgICAgZGF0YS0+YWRkciA9IG1zaV9hZGRyOworICAgIGRhdGEtPmRhdGEgPSBtc2lf ZGF0YTsKIAotICAgIHJldHVybiByYzsKKyAgICByZXR1cm4gZG9fZG1fb3AoeGNoLCBkb20sIDEs ICZvcCwgc2l6ZW9mKG9wKSk7CiB9CiAKIGludCB4Y19odm1fdHJhY2tfZGlydHlfdnJhbSgKQEAg LTYwOCwzNSArNTk5LDI2IEBAIGludCB4Y19odm1fc2V0X21lbV90eXBlKAogfQogCiBpbnQgeGNf aHZtX2luamVjdF90cmFwKAotICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwgaW50 IHZjcHUsIHVpbnQzMl90IHZlY3RvciwKLSAgICB1aW50MzJfdCB0eXBlLCB1aW50MzJfdCBlcnJv cl9jb2RlLCB1aW50MzJfdCBpbnNuX2xlbiwKKyAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRf dCBkb20sIGludCB2Y3B1LCB1aW50OF90IHZlY3RvciwKKyAgICB1aW50OF90IHR5cGUsIHVpbnQz Ml90IGVycm9yX2NvZGUsIHVpbnQ4X3QgaW5zbl9sZW4sCiAgICAgdWludDY0X3QgY3IyKQogewot ICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JVRkZFUihzdHJ1Y3QgeGVuX2h2bV9pbmplY3RfdHJhcCwg YXJnKTsKLSAgICBpbnQgcmM7Ci0KLSAgICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9j KHhjaCwgYXJnLCBzaXplb2YoKmFyZykpOwotICAgIGlmICggYXJnID09IE5VTEwgKQotICAgIHsK LSAgICAgICAgUEVSUk9SKCJDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciB4Y19odm1faW5q ZWN0X3RyYXAgaHlwZXJjYWxsIik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9CisgICAgc3Ry dWN0IHhlbl9kbV9vcCBvcDsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF9ldmVudCAqZGF0 YTsKIAotICAgIGFyZy0+ZG9taWQgICAgICAgPSBkb207Ci0gICAgYXJnLT52Y3B1aWQgICAgICA9 IHZjcHU7Ci0gICAgYXJnLT52ZWN0b3IgICAgICA9IHZlY3RvcjsKLSAgICBhcmctPnR5cGUgICAg ICAgID0gdHlwZTsKLSAgICBhcmctPmVycm9yX2NvZGUgID0gZXJyb3JfY29kZTsKLSAgICBhcmct Pmluc25fbGVuICAgID0gaW5zbl9sZW47Ci0gICAgYXJnLT5jcjIgICAgICAgICA9IGNyMjsKKyAg ICBtZW1zZXQoJm9wLCAwLCBzaXplb2Yob3ApKTsKIAotICAgIHJjID0geGVuY2FsbDIoeGNoLT54 Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwKLSAgICAgICAgICAgICAgICAgIEhWTU9QX2luamVj dF90cmFwLAotICAgICAgICAgICAgICAgICAgSFlQRVJDQUxMX0JVRkZFUl9BU19BUkcoYXJnKSk7 CisgICAgb3Aub3AgPSBYRU5fRE1PUF9pbmplY3RfZXZlbnQ7CisgICAgZGF0YSA9ICZvcC51Lmlu amVjdF9ldmVudDsKIAotICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfZnJlZSh4Y2gsIGFyZyk7Cisg ICAgZGF0YS0+dmNwdWlkID0gdmNwdTsKKyAgICBkYXRhLT52ZWN0b3IgPSB2ZWN0b3I7CisgICAg ZGF0YS0+dHlwZSA9IHR5cGU7CisgICAgZGF0YS0+ZXJyb3JfY29kZSA9IGVycm9yX2NvZGU7Cisg ICAgZGF0YS0+aW5zbl9sZW4gPSBpbnNuX2xlbjsKKyAgICBkYXRhLT5jcjIgPSBjcjI7CiAKLSAg ICByZXR1cm4gcmM7CisgICAgcmV0dXJuIGRvX2RtX29wKHhjaCwgZG9tLCAxLCAmb3AsIHNpemVv ZihvcCkpOwogfQogCiBpbnQgeGNfbGl2ZXBhdGNoX3VwbG9hZCh4Y19pbnRlcmZhY2UgKnhjaCwK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0u YwppbmRleCAxZmRlZTBhLi5iODZlMGQ5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2Rt LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCkBAIC0yNDcsNiArMjQ3LDI2IEBAIHN0YXRp YyBpbnQgc2V0X21lbV90eXBlKHN0cnVjdCBkb21haW4gKmQsCiAgICAgcmV0dXJuIHJjOwogfQog CitzdGF0aWMgaW50IGluamVjdF9ldmVudChzdHJ1Y3QgZG9tYWluICpkLAorICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RydWN0IHhlbl9kbV9vcF9pbmplY3RfZXZlbnQgKmRhdGEpCit7 CisgICAgc3RydWN0IHZjcHUgKnY7CisKKyAgICBpZiAoIGRhdGEtPnZjcHVpZCA+PSBkLT5tYXhf dmNwdXMgfHwgISh2ID0gZC0+dmNwdVtkYXRhLT52Y3B1aWRdKSApCisgICAgICAgIHJldHVybiAt RUlOVkFMOworCisgICAgaWYgKCB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF9ldmVudC52ZWN0b3Ig IT0gLTEgKQorICAgICAgICByZXR1cm4gLUVCVVNZOworCisgICAgdi0+YXJjaC5odm1fdmNwdS5p bmplY3RfZXZlbnQudHlwZSA9IGRhdGEtPnR5cGU7CisgICAgdi0+YXJjaC5odm1fdmNwdS5pbmpl Y3RfZXZlbnQuaW5zbl9sZW4gPSBkYXRhLT5pbnNuX2xlbjsKKyAgICB2LT5hcmNoLmh2bV92Y3B1 LmluamVjdF9ldmVudC5lcnJvcl9jb2RlID0gZGF0YS0+ZXJyb3JfY29kZTsKKyAgICB2LT5hcmNo Lmh2bV92Y3B1LmluamVjdF9ldmVudC5jcjIgPSBkYXRhLT5jcjI7CisgICAgdi0+YXJjaC5odm1f dmNwdS5pbmplY3RfZXZlbnQudmVjdG9yID0gZGF0YS0+dmVjdG9yOworCisgICAgcmV0dXJuIDA7 Cit9CisKIHN0YXRpYyBpbnQgZG1fb3AoZG9taWRfdCBkb21pZCwKICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IG5yX2J1ZnMsCiAgICAgICAgICAgICAgICAgIHhlbl9kbV9vcF9idWZfdCBi dWZzW10pCkBAIC00NDMsNiArNDYzLDMxIEBAIHN0YXRpYyBpbnQgZG1fb3AoZG9taWRfdCBkb21p ZCwKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBYRU5fRE1PUF9pbmplY3RfZXZl bnQ6CisgICAgeworICAgICAgICBjb25zdCBzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF9ldmVudCAq ZGF0YSA9CisgICAgICAgICAgICAmb3AudS5pbmplY3RfZXZlbnQ7CisKKyAgICAgICAgcmMgPSAt RUlOVkFMOworICAgICAgICBpZiAoIGRhdGEtPnBhZDAgfHwgZGF0YS0+cGFkMSApCisgICAgICAg ICAgICBicmVhazsKKworICAgICAgICByYyA9IGluamVjdF9ldmVudChkLCBkYXRhKTsKKyAgICAg ICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgWEVOX0RNT1BfaW5qZWN0X21zaToKKyAgICB7Cisg ICAgICAgIGNvbnN0IHN0cnVjdCB4ZW5fZG1fb3BfaW5qZWN0X21zaSAqZGF0YSA9CisgICAgICAg ICAgICAmb3AudS5pbmplY3RfbXNpOworCisgICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAg aWYgKCBkYXRhLT5wYWQgKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgcmMgPSBodm1f aW5qZWN0X21zaShkLCBkYXRhLT5hZGRyLCBkYXRhLT5kYXRhKTsKKyAgICAgICAgYnJlYWs7Cisg ICAgfQorCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKICAgICAgICAg YnJlYWs7CkBAIC00NzAsNiArNTE1LDggQEAgQ0hFQ0tfZG1fb3Bfc2V0X2lzYV9pcnFfbGV2ZWw7 CiBDSEVDS19kbV9vcF9zZXRfcGNpX2xpbmtfcm91dGU7CiBDSEVDS19kbV9vcF9tb2RpZmllZF9t ZW1vcnk7CiBDSEVDS19kbV9vcF9zZXRfbWVtX3R5cGU7CitDSEVDS19kbV9vcF9pbmplY3RfZXZl bnQ7CitDSEVDS19kbV9vcF9pbmplY3RfbXNpOwogCiAjZGVmaW5lIE1BWF9OUl9CVUZTIDIKIApk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZt LmMKaW5kZXggNWQ0NzkyMy4uZGM4YWYwNSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9o dm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBAIC01MzksMTIgKzUzOSwxMiBAQCB2 b2lkIGh2bV9kb19yZXN1bWUoc3RydWN0IHZjcHUgKnYpCiAgICAgfQogCiAgICAgLyogSW5qZWN0 IHBlbmRpbmcgaHcvc3cgdHJhcCAqLwotICAgIGlmICggdi0+YXJjaC5odm1fdmNwdS5pbmplY3Rf dHJhcC52ZWN0b3IgIT0gLTEgKQorICAgIGlmICggdi0+YXJjaC5odm1fdmNwdS5pbmplY3RfZXZl bnQudmVjdG9yICE9IC0xICkKICAgICB7CiAgICAgICAgIGlmICggIWh2bV9ldmVudF9wZW5kaW5n KHYpICkKLSAgICAgICAgICAgIGh2bV9pbmplY3RfZXZlbnQoJnYtPmFyY2guaHZtX3ZjcHUuaW5q ZWN0X3RyYXApOworICAgICAgICAgICAgaHZtX2luamVjdF9ldmVudCgmdi0+YXJjaC5odm1fdmNw dS5pbmplY3RfZXZlbnQpOwogCi0gICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0X3RyYXAu dmVjdG9yID0gLTE7CisgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0X2V2ZW50LnZlY3Rv ciA9IC0xOwogICAgIH0KIAogICAgIGlmICggdW5saWtlbHkodi0+YXJjaC52bV9ldmVudCkgJiYg di0+YXJjaC5tb25pdG9yLm5leHRfaW50ZXJydXB0X2VuYWJsZWQgKQpAQCAtMTUxNSw3ICsxNTE1 LDcgQEAgaW50IGh2bV92Y3B1X2luaXRpYWxpc2Uoc3RydWN0IHZjcHUgKnYpCiAgICAgICAgICh2 b2lkKCopKHVuc2lnbmVkIGxvbmcpKWh2bV9hc3NlcnRfZXZ0Y2huX2lycSwKICAgICAgICAgKHVu c2lnbmVkIGxvbmcpdik7CiAKLSAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90cmFwLnZlY3Rv ciA9IC0xOworICAgIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0X2V2ZW50LnZlY3RvciA9IC0xOwog CiAgICAgaWYgKCBpc19wdmhfZG9tYWluKGQpICkKICAgICB7CkBAIC00MTg4LDM1ICs0MTg4LDYg QEAgc3RhdGljIHZvaWQgaHZtX3MzX3Jlc3VtZShzdHJ1Y3QgZG9tYWluICpkKQogICAgIH0KIH0K IAotc3RhdGljIGludCBodm1vcF9pbmplY3RfbXNpKAotICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0oeGVuX2h2bV9pbmplY3RfbXNpX3QpIHVvcCkKLXsKLSAgICBzdHJ1Y3QgeGVuX2h2bV9pbmpl Y3RfbXNpIG9wOwotICAgIHN0cnVjdCBkb21haW4gKmQ7Ci0gICAgaW50IHJjOwotCi0gICAgaWYg KCBjb3B5X2Zyb21fZ3Vlc3QoJm9wLCB1b3AsIDEpICkKLSAgICAgICAgcmV0dXJuIC1FRkFVTFQ7 Ci0KLSAgICByYyA9IHJjdV9sb2NrX3JlbW90ZV9kb21haW5fYnlfaWQob3AuZG9taWQsICZkKTsK LSAgICBpZiAoIHJjICE9IDAgKQotICAgICAgICByZXR1cm4gcmM7Ci0KLSAgICByYyA9IC1FSU5W QUw7Ci0gICAgaWYgKCAhaXNfaHZtX2RvbWFpbihkKSApCi0gICAgICAgIGdvdG8gb3V0OwotCi0g ICAgcmMgPSB4c21faHZtX2luamVjdF9tc2koWFNNX0RNX1BSSVYsIGQpOwotICAgIGlmICggcmMg KQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJjID0gaHZtX2luamVjdF9tc2koZCwgb3AuYWRk ciwgb3AuZGF0YSk7Ci0KLSBvdXQ6Ci0gICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAgcmV0 dXJuIHJjOwotfQotCiBzdGF0aWMgaW50IGh2bW9wX2ZsdXNoX3RsYl9hbGwodm9pZCkKIHsKICAg ICBzdHJ1Y3QgZG9tYWluICpkID0gY3VycmVudC0+ZG9tYWluOwpAQCAtNDg2NywxMSArNDgzOCw2 IEBAIGxvbmcgZG9faHZtX29wKHVuc2lnbmVkIGxvbmcgb3AsIFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0odm9pZCkgYXJnKQogICAgICAgICAgICAgZ3Vlc3RfaGFuZGxlX2Nhc3QoYXJnLCB4ZW5faHZt X3BhcmFtX3QpKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIEhWTU9QX2luamVjdF9tc2k6 Ci0gICAgICAgIHJjID0gaHZtb3BfaW5qZWN0X21zaSgKLSAgICAgICAgICAgIGd1ZXN0X2hhbmRs ZV9jYXN0KGFyZywgeGVuX2h2bV9pbmplY3RfbXNpX3QpKTsKLSAgICAgICAgYnJlYWs7Ci0KICAg ICBjYXNlIEhWTU9QX2ZsdXNoX3RsYnM6CiAgICAgICAgIHJjID0gZ3Vlc3RfaGFuZGxlX2lzX251 bGwoYXJnKSA/IGh2bW9wX2ZsdXNoX3RsYl9hbGwoKSA6IC1FSU5WQUw7CiAgICAgICAgIGJyZWFr OwpAQCAtNDkyOCw0OCArNDg5NCw2IEBAIGxvbmcgZG9faHZtX29wKHVuc2lnbmVkIGxvbmcgb3As IFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgICAgICBicmVhazsKICAgICB9 CiAKLSAgICBjYXNlIEhWTU9QX2luamVjdF90cmFwOiAKLSAgICB7Ci0gICAgICAgIHhlbl9odm1f aW5qZWN0X3RyYXBfdCB0cjsKLSAgICAgICAgc3RydWN0IGRvbWFpbiAqZDsKLSAgICAgICAgc3Ry dWN0IHZjcHUgKnY7Ci0KLSAgICAgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJnRyLCBhcmcsIDEg KSApCi0gICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQotICAgICAgICByYyA9IHJjdV9sb2Nr X3JlbW90ZV9kb21haW5fYnlfaWQodHIuZG9taWQsICZkKTsKLSAgICAgICAgaWYgKCByYyAhPSAw ICkKLSAgICAgICAgICAgIHJldHVybiByYzsKLQotICAgICAgICByYyA9IC1FSU5WQUw7Ci0gICAg ICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICAgICAgZ290byBpbmp0cmFwX2Zh aWw7Ci0KLSAgICAgICAgcmMgPSB4c21faHZtX2NvbnRyb2woWFNNX0RNX1BSSVYsIGQsIG9wKTsK LSAgICAgICAgaWYgKCByYyApCi0gICAgICAgICAgICBnb3RvIGluanRyYXBfZmFpbDsKLQotICAg ICAgICByYyA9IC1FTk9FTlQ7Ci0gICAgICAgIGlmICggdHIudmNwdWlkID49IGQtPm1heF92Y3B1 cyB8fCAodiA9IGQtPnZjcHVbdHIudmNwdWlkXSkgPT0gTlVMTCApCi0gICAgICAgICAgICBnb3Rv IGluanRyYXBfZmFpbDsKLSAgICAgICAgCi0gICAgICAgIGlmICggdi0+YXJjaC5odm1fdmNwdS5p bmplY3RfdHJhcC52ZWN0b3IgIT0gLTEgKQotICAgICAgICAgICAgcmMgPSAtRUJVU1k7Ci0gICAg ICAgIGVsc2UgCi0gICAgICAgIHsKLSAgICAgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0 X3RyYXAudmVjdG9yID0gdHIudmVjdG9yOwotICAgICAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5p bmplY3RfdHJhcC50eXBlID0gdHIudHlwZTsKLSAgICAgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUu aW5qZWN0X3RyYXAuZXJyb3JfY29kZSA9IHRyLmVycm9yX2NvZGU7Ci0gICAgICAgICAgICB2LT5h cmNoLmh2bV92Y3B1LmluamVjdF90cmFwLmluc25fbGVuID0gdHIuaW5zbl9sZW47Ci0gICAgICAg ICAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90cmFwLmNyMiA9IHRyLmNyMjsKLSAgICAgICAg ICAgIHJjID0gMDsKLSAgICAgICAgfQotCi0gICAgaW5qdHJhcF9mYWlsOgotICAgICAgICByY3Vf dW5sb2NrX2RvbWFpbihkKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCiAgICAgY2FzZSBIVk1P UF9ndWVzdF9yZXF1ZXN0X3ZtX2V2ZW50OgogICAgICAgICBpZiAoIGd1ZXN0X2hhbmRsZV9pc19u dWxsKGFyZykgKQogICAgICAgICAgICAgbW9uaXRvcl9ndWVzdF9yZXF1ZXN0KCk7CmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92Y3B1LmggYi94ZW4vaW5jbHVkZS9hc20teDg2 L2h2bS92Y3B1LmgKaW5kZXggMTdhYjljMC4uZTVlZWI1ZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9odm0vdmNwdS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZjcHUu aApAQCAtMjA0LDcgKzIwNCw3IEBAIHN0cnVjdCBodm1fdmNwdSB7CiAgICAgdm9pZCAqZnB1X2V4 Y2VwdGlvbl9jYWxsYmFja19hcmc7CiAKICAgICAvKiBQZW5kaW5nIGh3L3N3IGludGVycnVwdCAo LnZlY3RvciA9IC0xIG1lYW5zIG5vdGhpbmcgcGVuZGluZykuICovCi0gICAgc3RydWN0IHg4Nl9l dmVudCAgICAgaW5qZWN0X3RyYXA7CisgICAgc3RydWN0IHg4Nl9ldmVudCAgICAgaW5qZWN0X2V2 ZW50OwogCiAgICAgc3RydWN0IHZpcmlkaWFuX3ZjcHUgdmlyaWRpYW47CiB9OwpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2h2 bS9kbV9vcC5oCmluZGV4IDA2YzY3YjguLmY1NGNlY2UgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRl L3B1YmxpYy9odm0vZG1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgK QEAgLTI3Miw2ICsyNzIsNTIgQEAgc3RydWN0IHhlbl9kbV9vcF9zZXRfbWVtX3R5cGUgewogICAg IHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOwogfTsKIAorLyoKKyAqIFhFTl9ETU9QX2luamVj dF9ldmVudDogSW5qZWN0IGFuIGV2ZW50IGludG8gYSBWQ1BVLCB3aGljaCB3aWxsCisgKiAgICAg ICAgICAgICAgICAgICAgICAgIGdldCB0YWtlbiB1cCB3aGVuIGl0IGlzIG5leHQgc2NoZWR1bGVk LgorICoKKyAqIE5vdGUgdGhhdCB0aGUgY2FsbGVyIHNob3VsZCBrbm93IGVub3VnaCBvZiB0aGUg c3RhdGUgb2YgdGhlIENQVSBiZWZvcmUKKyAqIGluamVjdGluZywgdG8ga25vdyB3aGF0IHRoZSBl ZmZlY3Qgb2YgaW5qZWN0aW5nIHRoZSBldmVudCB3aWxsIGJlLgorICovCisjZGVmaW5lIFhFTl9E TU9QX2luamVjdF9ldmVudCAxMworCitzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF9ldmVudCB7Cisg ICAgLyogSU4gLSBpbmRleCBvZiB2Q1BVICovCisgICAgdWludDMyX3QgdmNwdWlkOworICAgIC8q IElOIC0gaW50ZXJydXB0IHZlY3RvciAqLworICAgIHVpbnQ4X3QgdmVjdG9yOworICAgIC8qIElO IC0gZXZlbnQgdHlwZSAoRE1PUF9FVkVOVF8qICkgKi8KKyAgICB1aW50OF90IHR5cGU7CisvKiBO Qi4gVGhpcyBlbnVtZXJhdGlvbiBwcmVjaXNlbHkgbWF0Y2hlcyBodm0uaDpYODZfRVZFTlRUWVBF XyogKi8KKyMgZGVmaW5lIFhFTl9ETU9QX0VWRU5UX2V4dF9pbnQgICAgMCAvKiBleHRlcm5hbCBp bnRlcnJ1cHQgKi8KKyMgZGVmaW5lIFhFTl9ETU9QX0VWRU5UX25taSAgICAgICAgMiAvKiBubWkg Ki8KKyMgZGVmaW5lIFhFTl9ETU9QX0VWRU5UX2h3X2V4YyAgICAgMyAvKiBoYXJkd2FyZSBleGNl cHRpb24gKi8KKyMgZGVmaW5lIFhFTl9ETU9QX0VWRU5UX3N3X2ludCAgICAgNCAvKiBzb2Z0d2Fy ZSBpbnRlcnJ1cHQgKENEIG5uKSAqLworIyBkZWZpbmUgWEVOX0RNT1BfRVZFTlRfcHJpX3N3X2V4 YyA1IC8qIElDRUJQIChGMSkgKi8KKyMgZGVmaW5lIFhFTl9ETU9QX0VWRU5UX3N3X2V4YyAgICAg NiAvKiBJTlQzIChDQyksIElOVE8gKENFKSAqLworICAgIC8qIElOIC0gaW5zdHJ1Y3Rpb24gbGVu Z3RoICovCisgICAgdWludDhfdCBpbnNuX2xlbjsKKyAgICB1aW50OF90IHBhZDA7CisgICAgLyog SU4gLSBlcnJvciBjb2RlIChvciB+MCB0byBza2lwKSAqLworICAgIHVpbnQzMl90IGVycm9yX2Nv ZGU7CisgICAgdWludDMyX3QgcGFkMTsKKyAgICAvKiBJTiAtIENSMiBmb3IgcGFnZSBmYXVsdHMg Ki8KKyAgICB1aW50NjRfYWxpZ25lZF90IGNyMjsKK307CisKKy8qCisgKiBYRU5fRE1PUF9pbmpl Y3RfbXNpOiBJbmplY3QgYW4gTVNJIGZvciBhbiBlbXVsYXRlZCBkZXZpY2UuCisgKi8KKyNkZWZp bmUgWEVOX0RNT1BfaW5qZWN0X21zaSAxNAorCitzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF9tc2kg eworICAgIC8qIElOIC0gTVNJIGRhdGEgKGxvd2VyIDMyIGJpdHMpICovCisgICAgdWludDMyX3Qg ZGF0YTsKKyAgICB1aW50MzJfdCBwYWQ7CisgICAgLyogSU4gLSBNU0kgYWRkcmVzcyAoMHhmZWV4 eHh4eCkgKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IGFkZHI7Cit9OworCiBzdHJ1Y3QgeGVuX2Rt X29wIHsKICAgICB1aW50MzJfdCBvcDsKICAgICB1aW50MzJfdCBwYWQ7CkBAIC0yODgsNiArMzM0 LDggQEAgc3RydWN0IHhlbl9kbV9vcCB7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X3Bj aV9saW5rX3JvdXRlIHNldF9wY2lfbGlua19yb3V0ZTsKICAgICAgICAgc3RydWN0IHhlbl9kbV9v cF9tb2RpZmllZF9tZW1vcnkgbW9kaWZpZWRfbWVtb3J5OwogICAgICAgICBzdHJ1Y3QgeGVuX2Rt X29wX3NldF9tZW1fdHlwZSBzZXRfbWVtX3R5cGU7CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bf aW5qZWN0X2V2ZW50IGluamVjdF9ldmVudDsKKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9pbmpl Y3RfbXNpIGluamVjdF9tc2k7CiAgICAgfSB1OwogfTsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUvcHVibGljL2h2bS9odm1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgK aW5kZXggZDdlMmYxMi4uYmMwMGVmMCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2 bS9odm1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oCkBAIC0xMzMs MzggKzEzMyw2IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1feGVudHJhY2VfdCk7 CiAvKiBEZXByZWNhdGVkIGJ5IFhFTk1FTV9hY2Nlc3Nfb3BfZ2V0X2FjY2VzcyAqLwogI2RlZmlu ZSBIVk1PUF9nZXRfbWVtX2FjY2VzcyAgICAgICAgMTMKIAotI2RlZmluZSBIVk1PUF9pbmplY3Rf dHJhcCAgICAgICAgICAgIDE0Ci0vKiBJbmplY3QgYSB0cmFwIGludG8gYSBWQ1BVLCB3aGljaCB3 aWxsIGdldCB0YWtlbiB1cCBvbiB0aGUgbmV4dAotICogc2NoZWR1bGluZyBvZiBpdC4gTm90ZSB0 aGF0IHRoZSBjYWxsZXIgc2hvdWxkIGtub3cgZW5vdWdoIG9mIHRoZQotICogc3RhdGUgb2YgdGhl IENQVSBiZWZvcmUgaW5qZWN0aW5nLCB0byBrbm93IHdoYXQgdGhlIGVmZmVjdCBvZgotICogaW5q ZWN0aW5nIHRoZSB0cmFwIHdpbGwgYmUuCi0gKi8KLXN0cnVjdCB4ZW5faHZtX2luamVjdF90cmFw IHsKLSAgICAvKiBEb21haW4gdG8gYmUgcXVlcmllZC4gKi8KLSAgICBkb21pZF90IGRvbWlkOwot ICAgIC8qIFZDUFUgKi8KLSAgICB1aW50MzJfdCB2Y3B1aWQ7Ci0gICAgLyogVmVjdG9yIG51bWJl ciAqLwotICAgIHVpbnQzMl90IHZlY3RvcjsKLSAgICAvKiBUcmFwIHR5cGUgKEhWTU9QX1RSQVBf KikgKi8KLSAgICB1aW50MzJfdCB0eXBlOwotLyogTkIuIFRoaXMgZW51bWVyYXRpb24gcHJlY2lz ZWx5IG1hdGNoZXMgaHZtLmg6WDg2X0VWRU5UVFlQRV8qICovCi0jIGRlZmluZSBIVk1PUF9UUkFQ X2V4dF9pbnQgICAgMCAvKiBleHRlcm5hbCBpbnRlcnJ1cHQgKi8KLSMgZGVmaW5lIEhWTU9QX1RS QVBfbm1pICAgICAgICAyIC8qIG5taSAqLwotIyBkZWZpbmUgSFZNT1BfVFJBUF9od19leGMgICAg IDMgLyogaGFyZHdhcmUgZXhjZXB0aW9uICovCi0jIGRlZmluZSBIVk1PUF9UUkFQX3N3X2ludCAg ICAgNCAvKiBzb2Z0d2FyZSBpbnRlcnJ1cHQgKENEIG5uKSAqLwotIyBkZWZpbmUgSFZNT1BfVFJB UF9wcmlfc3dfZXhjIDUgLyogSUNFQlAgKEYxKSAqLwotIyBkZWZpbmUgSFZNT1BfVFJBUF9zd19l eGMgICAgIDYgLyogSU5UMyAoQ0MpLCBJTlRPIChDRSkgKi8KLSAgICAvKiBFcnJvciBjb2RlLCBv ciB+MHUgdG8gc2tpcCAqLwotICAgIHVpbnQzMl90IGVycm9yX2NvZGU7Ci0gICAgLyogSW50cnVj dGlvbiBsZW5ndGggKi8KLSAgICB1aW50MzJfdCBpbnNuX2xlbjsKLSAgICAvKiBDUjIgZm9yIHBh Z2UgZmF1bHRzICovCi0gICAgdWludDY0X2FsaWduZWRfdCBjcjI7Ci19OwotdHlwZWRlZiBzdHJ1 Y3QgeGVuX2h2bV9pbmplY3RfdHJhcCB4ZW5faHZtX2luamVjdF90cmFwX3Q7Ci1ERUZJTkVfWEVO X0dVRVNUX0hBTkRMRSh4ZW5faHZtX2luamVjdF90cmFwX3QpOwotCiAjZW5kaWYgLyogZGVmaW5l ZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pICovCiAKICNkZWZpbmUgSFZNT1Bf Z2V0X21lbV90eXBlICAgIDE1CkBAIC0xODQsMTkgKzE1Miw2IEBAIERFRklORV9YRU5fR1VFU1Rf SEFORExFKHhlbl9odm1fZ2V0X21lbV90eXBlX3QpOwogLyogRm9sbG93aW5nIHRvb2xzLW9ubHkg aW50ZXJmYWNlcyBtYXkgY2hhbmdlIGluIGZ1dHVyZS4gKi8KICNpZiBkZWZpbmVkKF9fWEVOX18p IHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykKIAotLyogTVNJIGluamVjdGlvbiBmb3IgZW11bGF0 ZWQgZGV2aWNlcyAqLwotI2RlZmluZSBIVk1PUF9pbmplY3RfbXNpICAgICAgICAgMTYKLXN0cnVj dCB4ZW5faHZtX2luamVjdF9tc2kgewotICAgIC8qIERvbWFpbiB0byBiZSBpbmplY3RlZCAqLwot ICAgIGRvbWlkX3QgICBkb21pZDsKLSAgICAvKiBEYXRhIC0tIGxvd2VyIDMyIGJpdHMgKi8KLSAg ICB1aW50MzJfdCAgZGF0YTsKLSAgICAvKiBBZGRyZXNzICgweGZlZXh4eHh4KSAqLwotICAgIHVp bnQ2NF90ICBhZGRyOwotfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9odm1faW5qZWN0X21zaSB4ZW5f aHZtX2luamVjdF9tc2lfdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1faW5qZWN0 X21zaV90KTsKLQogLyoKICAqIERlZmluaXRpb25zIHJlbGF0aW5nIHRvIERNT1BfY3JlYXRlX2lv cmVxX3NlcnZlci4gKERlZmluZWQgaGVyZSBmb3IKICAqIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5 KS4KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hsYXQubHN0IGIveGVuL2luY2x1ZGUveGxhdC5s c3QKaW5kZXggMTU4ZDRmMC4uMGYxNzAwMCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGxhdC5s c3QKKysrIGIveGVuL2luY2x1ZGUveGxhdC5sc3QKQEAgLTYwLDYgKzYwLDggQEAKID8JZG1fb3Bf Y3JlYXRlX2lvcmVxX3NlcnZlcglodm0vZG1fb3AuaAogPwlkbV9vcF9kZXN0cm95X2lvcmVxX3Nl cnZlcglodm0vZG1fb3AuaAogPwlkbV9vcF9nZXRfaW9yZXFfc2VydmVyX2luZm8JaHZtL2RtX29w LmgKKz8JZG1fb3BfaW5qZWN0X2V2ZW50CQlodm0vZG1fb3AuaAorPwlkbV9vcF9pbmplY3RfbXNp CQlodm0vZG1fb3AuaAogPwlkbV9vcF9pb3JlcV9zZXJ2ZXJfcmFuZ2UJaHZtL2RtX29wLmgKID8J ZG1fb3BfbW9kaWZpZWRfbWVtb3J5CQlodm0vZG1fb3AuaAogPwlkbV9vcF9zZXRfaW9yZXFfc2Vy dmVyX3N0YXRlCWh2bS9kbV9vcC5oCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94c20vZHVtbXku aCBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCmluZGV4IGQzZGU0YjcuLjRiMjdhZTcgMTAwNjQ0 Ci0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCisrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1t eS5oCkBAIC02MTAsMTIgKzYxMCw2IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCB4c21fc2hhZG93 X2NvbnRyb2woWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIHVpbnQzCiAgICAgcmV0 dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7CiB9CiAK LXN0YXRpYyBYU01fSU5MSU5FIGludCB4c21faHZtX2luamVjdF9tc2koWFNNX0RFRkFVTFRfQVJH IHN0cnVjdCBkb21haW4gKmQpCi17Ci0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0RNX1BSSVYp OwotICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4s IGQpOwotfQotCiBzdGF0aWMgWFNNX0lOTElORSBpbnQgeHNtX21lbV9zaGFyaW5nX29wKFhTTV9E RUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgZG9tYWluICpjZCwgaW50IG9wKQog ewogICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9ETV9QUklWKTsKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL3hzbS94c20uaCBiL3hlbi9pbmNsdWRlL3hzbS94c20uaAppbmRleCAyZTRhM2NlLi4y Y2Y3YWMxIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94c20veHNtLmgKKysrIGIveGVuL2luY2x1 ZGUveHNtL3hzbS5oCkBAIC0xNjIsNyArMTYyLDYgQEAgc3RydWN0IHhzbV9vcGVyYXRpb25zIHsK ICNpZmRlZiBDT05GSUdfWDg2CiAgICAgaW50ICgqZG9fbWNhKSAodm9pZCk7CiAgICAgaW50ICgq c2hhZG93X2NvbnRyb2wpIChzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBvcCk7Ci0gICAgaW50 ICgqaHZtX2luamVjdF9tc2kpIChzdHJ1Y3QgZG9tYWluICpkKTsKICAgICBpbnQgKCptZW1fc2hh cmluZ19vcCkgKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkb21haW4gKmNkLCBpbnQgb3ApOwog ICAgIGludCAoKmFwaWMpIChzdHJ1Y3QgZG9tYWluICpkLCBpbnQgY21kKTsKICAgICBpbnQgKCpt ZW10eXBlKSAodWludDMyX3QgYWNjZXNzKTsKQEAgLTYzMiwxMSArNjMxLDYgQEAgc3RhdGljIGlu bGluZSBpbnQgeHNtX3NoYWRvd19jb250cm9sICh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRv bWFpbiAqZCwgdWludDMKICAgICByZXR1cm4geHNtX29wcy0+c2hhZG93X2NvbnRyb2woZCwgb3Ap OwogfQogCi1zdGF0aWMgaW5saW5lIGludCB4c21faHZtX2luamVjdF9tc2kgKHhzbV9kZWZhdWx0 X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIHJldHVybiB4c21fb3BzLT5odm1faW5q ZWN0X21zaShkKTsKLX0KLQogc3RhdGljIGlubGluZSBpbnQgeHNtX21lbV9zaGFyaW5nX29wICh4 c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGRvbWFpbiAqY2QsIGlu dCBvcCkKIHsKICAgICByZXR1cm4geHNtX29wcy0+bWVtX3NoYXJpbmdfb3AoZCwgY2QsIG9wKTsK ZGlmZiAtLWdpdCBhL3hlbi94c20vZHVtbXkuYyBiL3hlbi94c20vZHVtbXkuYwppbmRleCBmMTU2 OGRkLi4xZjY1OWM3IDEwMDY0NAotLS0gYS94ZW4veHNtL2R1bW15LmMKKysrIGIveGVuL3hzbS9k dW1teS5jCkBAIC0xNDUsNyArMTQ1LDYgQEAgdm9pZCBfX2luaXQgeHNtX2ZpeHVwX29wcyAoc3Ry dWN0IHhzbV9vcGVyYXRpb25zICpvcHMpCiAjaWZkZWYgQ09ORklHX1g4NgogICAgIHNldF90b19k dW1teV9pZl9udWxsKG9wcywgZG9fbWNhKTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMs IHNoYWRvd19jb250cm9sKTsKLSAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGh2bV9pbmpl Y3RfbXNpKTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG1lbV9zaGFyaW5nX29wKTsK ICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGFwaWMpOwogICAgIHNldF90b19kdW1teV9p Zl9udWxsKG9wcywgbWFjaGluZV9tZW1vcnlfbWFwKTsKZGlmZiAtLWdpdCBhL3hlbi94c20vZmxh c2svaG9va3MuYyBiL3hlbi94c20vZmxhc2svaG9va3MuYwppbmRleCA2ODVjYmZhLi45MzMyY2Ex IDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysrIGIveGVuL3hzbS9mbGFzay9o b29rcy5jCkBAIC0xNTAyLDExICsxNTAyLDYgQEAgc3RhdGljIGludCBmbGFza19pb3BvcnRfbWFw cGluZyhzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBzdGFydCwgdWludDMyX3QgZW5kLAogICAg IHJldHVybiBmbGFza19pb3BvcnRfcGVybWlzc2lvbihkLCBzdGFydCwgZW5kLCBhY2Nlc3MpOwog fQogCi1zdGF0aWMgaW50IGZsYXNrX2h2bV9pbmplY3RfbXNpKHN0cnVjdCBkb21haW4gKmQpCi17 Ci0gICAgcmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xBU1NfSFZNLCBIVk1fX1NFTkRf SVJRKTsKLX0KLQogc3RhdGljIGludCBmbGFza19tZW1fc2hhcmluZ19vcChzdHJ1Y3QgZG9tYWlu ICpkLCBzdHJ1Y3QgZG9tYWluICpjZCwgaW50IG9wKQogewogICAgIGludCByYyA9IGN1cnJlbnRf aGFzX3Blcm0oY2QsIFNFQ0NMQVNTX0hWTSwgSFZNX19NRU1fU0hBUklORyk7CkBAIC0xNzg0LDcg KzE3NzksNiBAQCBzdGF0aWMgc3RydWN0IHhzbV9vcGVyYXRpb25zIGZsYXNrX29wcyA9IHsKICAg ICAuaHZtX3NldF9wY2lfaW50eF9sZXZlbCA9IGZsYXNrX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWws CiAgICAgLmh2bV9zZXRfaXNhX2lycV9sZXZlbCA9IGZsYXNrX2h2bV9zZXRfaXNhX2lycV9sZXZl bCwKICAgICAuaHZtX3NldF9wY2lfbGlua19yb3V0ZSA9IGZsYXNrX2h2bV9zZXRfcGNpX2xpbmtf cm91dGUsCi0gICAgLmh2bV9pbmplY3RfbXNpID0gZmxhc2tfaHZtX2luamVjdF9tc2ksCiAgICAg Lm1lbV9zaGFyaW5nX29wID0gZmxhc2tfbWVtX3NoYXJpbmdfb3AsCiAgICAgLmFwaWMgPSBmbGFz a19hcGljLAogICAgIC5tYWNoaW5lX21lbW9yeV9tYXAgPSBmbGFza19tYWNoaW5lX21lbW9yeV9t YXAsCmRpZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyBiL3hl bi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCmluZGV4IDM4MWY2NTkuLjM2YTdkZjkg MTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCisrKyBiL3hl bi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCkBAIC0yNjMsOCArMjYzLDcgQEAgY2xh c3MgaHZtCiAjIFhFTl9ET01DVExfcGluX21lbV9jYWNoZWF0dHIKICAgICBjYWNoZWF0dHIKICMg SFZNT1BfZ2V0X21lbV90eXBlLAotIyBIVk1PUF9zZXRfbWVtX2FjY2VzcywgSFZNT1BfZ2V0X21l bV9hY2Nlc3MsIEhWTU9QX3BhZ2V0YWJsZV9keWluZywKLSMgSFZNT1BfaW5qZWN0X3RyYXAKKyMg SFZNT1Bfc2V0X21lbV9hY2Nlc3MsIEhWTU9QX2dldF9tZW1fYWNjZXNzLCBIVk1PUF9wYWdldGFi bGVfZHlpbmcKICAgICBodm1jdGwKICMgWEVOX0RPTUNUTF9tZW1fc2hhcmluZ19vcCBhbmQgWEVO TUVNX3NoYXJpbmdfb3Bfe3NoYXJlLGFkZF9waHlzbWFwfSB3aXRoOgogIyAgc291cmNlID0gdGhl IGRvbWFpbiBtYWtpbmcgdGhlIGh5cGVyY2FsbApAQCAtMjcyLDggKzI3MSw2IEBAIGNsYXNzIGh2 bQogICAgIG1lbV9zaGFyaW5nCiAjIFhFTl9ET01DVExfYXVkaXRfcDJtCiAgICAgYXVkaXRfcDJt Ci0jIEhWTU9QX2luamVjdF9tc2kKLSAgICBzZW5kX2lycQogIyBjaGVja2VkIGluIFhFTk1FTV9z aGFyaW5nX29wX3tzaGFyZSxhZGRfcGh5c21hcH0gd2l0aDoKICMgIHNvdXJjZSA9IGRvbWFpbiB3 aG9zZSBtZW1vcnkgaXMgYmVpbmcgc2hhcmVkCiAjICB0YXJnZXQgPSBjbGllbnQgZG9tYWluCi0t IAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=