From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v4 7/8] dm_op: convert HVMOP_inject_trap and HVMOP_inject_msi Date: Tue, 17 Jan 2017 17:29:55 +0000 Message-ID: <1484674196-19951-8-git-send-email-paul.durrant@citrix.com> References: <1484674196-19951-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cTXa8-0000bn-6Y for xen-devel@lists.xenproject.org; Tue, 17 Jan 2017 17:30:04 +0000 In-Reply-To: <1484674196-19951-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: Andrew Cooper , Daniel De Graaf , Paul Durrant , Ian Jackson List-Id: xen-devel@lists.xenproject.org Tk9URTogVGhpcyBwYXRjaCBhbHNvIG1vZGlmaWVzIHRoZSB0eXBlcyBvZiB0aGUgJ3ZlY3Rvcics ICd0eXBlJyBhbmQKICAgICAgJ2luc25fbGVuJyBhcmd1bWVudHMgb2YgeGNfaHZtX2luamVjdF90 cmFwKCkgZnJvbSB1aW50MzJfdCB0bwogICAgICB1aW50OF90LiBJbiBwcmFjdGljZSB0aGUgdmFs dWVzIHBhc3NlZCB3ZXJlIGFsd2F5cyB0cnVuY2F0ZWQgdG8KICAgICAgOCBiaXRzLgoKU3VnZ2Vz dGVkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IFBh dWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQpSZXZpZXdlZC1ieTogSmFu IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogRGFuaWVsIERlIEdyYWFmIDxkZ2RlZ3Jh QHR5Y2hvLm5zYS5nb3Y+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNv bT4KQWNrZWQtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBBbmRyZXcgQ29v cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgoKdjM6Ci0gRml4ZWQgcHJlZml4aW5nIGFu ZCBwYWRkaW5nLgoKdjI6Ci0gQWRkcmVzc2VkIHNldmVyYWwgY29tbWVudHMgZnJvbSBKYW4uCi0t LQogdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLmlmICAgfCAgMiArLQogdG9vbHMvbGli eGMvaW5jbHVkZS94ZW5jdHJsLmggICAgICAgfCAgNCArLQogdG9vbHMvbGlieGMveGNfbWlzYy5j ICAgICAgICAgICAgICAgfCA2NCArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4v YXJjaC94ODYvaHZtL2RtLmMgICAgICAgICAgICAgICB8IDQ5ICsrKysrKysrKysrKysrKysrKysr KysrKwogeGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAgICAgICAgfCA3NiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29w LmggICAgICB8IDQ4ICsrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMv aHZtL2h2bV9vcC5oICAgICB8IDQ1IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRl L3hzbS9kdW1teS5oICAgICAgICAgICAgIHwgIDYgLS0tCiB4ZW4vaW5jbHVkZS94c20veHNtLmgg ICAgICAgICAgICAgICB8ICA2IC0tLQogeGVuL3hzbS9kdW1teS5jICAgICAgICAgICAgICAgICAg ICAgfCAgMSAtCiB4ZW4veHNtL2ZsYXNrL2hvb2tzLmMgICAgICAgICAgICAgICB8ICA2IC0tLQog eGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgfCAgNSArLS0KIDEyIGZpbGVzIGNo YW5nZWQsIDEyNCBpbnNlcnRpb25zKCspLCAxODggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv dG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLmlmIGIvdG9vbHMvZmxhc2svcG9saWN5L21v ZHVsZXMveGVuLmlmCmluZGV4IDA5MmE2YzUuLjQ1ZTVjZWEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2Zs YXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZgorKysgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxl cy94ZW4uaWYKQEAgLTE1MSw3ICsxNTEsNyBAQCBkZWZpbmUoYGRldmljZV9tb2RlbCcsIGAKIAog CWFsbG93ICQxICQyX3RhcmdldDpkb21haW4geyBnZXRkb21haW5pbmZvIHNodXRkb3duIH07CiAJ YWxsb3cgJDEgJDJfdGFyZ2V0Om1tdSB7IG1hcF9yZWFkIG1hcF93cml0ZSBhZGp1c3QgcGh5c21h cCB0YXJnZXRfaGFjayB9OwotCWFsbG93ICQxICQyX3RhcmdldDpodm0geyBnZXRwYXJhbSBzZXRw YXJhbSBodm1jdGwgY2FjaGVhdHRyIHNlbmRfaXJxIGRtIH07CisJYWxsb3cgJDEgJDJfdGFyZ2V0 Omh2bSB7IGdldHBhcmFtIHNldHBhcmFtIGh2bWN0bCBjYWNoZWF0dHIgZG0gfTsKICcpCiAKICMg bWFrZV9kZXZpY2VfbW9kZWwocHJpdiwgZG1fZG9tLCBodm1fZG9tKQpkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwu aAppbmRleCAxMzQzMWJiLi41MzljYzY5IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNsdWRl L3hlbmN0cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAtMTY0MSw4 ICsxNjQxLDggQEAgaW50IHhjX2h2bV9zZXRfbWVtX3R5cGUoCiAgKiByZXN1bWVzLiAKICAqLwog aW50IHhjX2h2bV9pbmplY3RfdHJhcCgKLSAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBk b20sIGludCB2Y3B1LCB1aW50MzJfdCB2ZWN0b3IsCi0gICAgdWludDMyX3QgdHlwZSwgdWludDMy X3QgZXJyb3JfY29kZSwgdWludDMyX3QgaW5zbl9sZW4sCisgICAgeGNfaW50ZXJmYWNlICp4Y2gs IGRvbWlkX3QgZG9tLCBpbnQgdmNwdSwgdWludDhfdCB2ZWN0b3IsCisgICAgdWludDhfdCB0eXBl LCB1aW50MzJfdCBlcnJvcl9jb2RlLCB1aW50OF90IGluc25fbGVuLAogICAgIHVpbnQ2NF90IGNy Mik7CiAKIC8qCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19taXNjLmMgYi90b29scy9saWJ4 Yy94Y19taXNjLmMKaW5kZXggNWIwNmQ2Yi4uOThhYjgyNiAxMDA2NDQKLS0tIGEvdG9vbHMvbGli eGMveGNfbWlzYy5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX21pc2MuYwpAQCAtNTI3LDI5ICs1Mjcs MjAgQEAgaW50IHhjX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUoCiB9CiAKIGludCB4Y19odm1faW5q ZWN0X21zaSgKLSAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sIHVpbnQ2NF90IGFk ZHIsIHVpbnQzMl90IGRhdGEpCisgICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLCB1 aW50NjRfdCBtc2lfYWRkciwgdWludDMyX3QgbXNpX2RhdGEpCiB7Ci0gICAgREVDTEFSRV9IWVBF UkNBTExfQlVGRkVSKHN0cnVjdCB4ZW5faHZtX2luamVjdF9tc2ksIGFyZyk7Ci0gICAgaW50IHJj OwotCi0gICAgYXJnID0geGNfaHlwZXJjYWxsX2J1ZmZlcl9hbGxvYyh4Y2gsIGFyZywgc2l6ZW9m KCphcmcpKTsKLSAgICBpZiAoIGFyZyA9PSBOVUxMICkKLSAgICB7Ci0gICAgICAgIFBFUlJPUigi Q291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgeGNfaHZtX2luamVjdF9tc2kgaHlwZXJjYWxs Iik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9CisgICAgc3RydWN0IHhlbl9kbV9vcCBvcDsK KyAgICBzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF9tc2kgKmRhdGE7CiAKLSAgICBhcmctPmRvbWlk ID0gZG9tOwotICAgIGFyZy0+YWRkciAgPSBhZGRyOwotICAgIGFyZy0+ZGF0YSAgPSBkYXRhOwor ICAgIG1lbXNldCgmb3AsIDAsIHNpemVvZihvcCkpOwogCi0gICAgcmMgPSB4ZW5jYWxsMih4Y2gt PnhjYWxsLCBfX0hZUEVSVklTT1JfaHZtX29wLAotICAgICAgICAgICAgICAgICAgSFZNT1BfaW5q ZWN0X21zaSwKLSAgICAgICAgICAgICAgICAgIEhZUEVSQ0FMTF9CVUZGRVJfQVNfQVJHKGFyZykp OworICAgIG9wLm9wID0gWEVOX0RNT1BfaW5qZWN0X21zaTsKKyAgICBkYXRhID0gJm9wLnUuaW5q ZWN0X21zaTsKIAotICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfZnJlZSh4Y2gsIGFyZyk7CisgICAg ZGF0YS0+YWRkciA9IG1zaV9hZGRyOworICAgIGRhdGEtPmRhdGEgPSBtc2lfZGF0YTsKIAotICAg IHJldHVybiByYzsKKyAgICByZXR1cm4gZG9fZG1fb3AoeGNoLCBkb20sIDEsICZvcCwgc2l6ZW9m KG9wKSk7CiB9CiAKIGludCB4Y19odm1fdHJhY2tfZGlydHlfdnJhbSgKQEAgLTYwOCwzNSArNTk5 LDI2IEBAIGludCB4Y19odm1fc2V0X21lbV90eXBlKAogfQogCiBpbnQgeGNfaHZtX2luamVjdF90 cmFwKAotICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwgaW50IHZjcHUsIHVpbnQz Ml90IHZlY3RvciwKLSAgICB1aW50MzJfdCB0eXBlLCB1aW50MzJfdCBlcnJvcl9jb2RlLCB1aW50 MzJfdCBpbnNuX2xlbiwKKyAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sIGludCB2 Y3B1LCB1aW50OF90IHZlY3RvciwKKyAgICB1aW50OF90IHR5cGUsIHVpbnQzMl90IGVycm9yX2Nv ZGUsIHVpbnQ4X3QgaW5zbl9sZW4sCiAgICAgdWludDY0X3QgY3IyKQogewotICAgIERFQ0xBUkVf SFlQRVJDQUxMX0JVRkZFUihzdHJ1Y3QgeGVuX2h2bV9pbmplY3RfdHJhcCwgYXJnKTsKLSAgICBp bnQgcmM7Ci0KLSAgICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9jKHhjaCwgYXJnLCBz aXplb2YoKmFyZykpOwotICAgIGlmICggYXJnID09IE5VTEwgKQotICAgIHsKLSAgICAgICAgUEVS Uk9SKCJDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciB4Y19odm1faW5qZWN0X3RyYXAgaHlw ZXJjYWxsIik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9CisgICAgc3RydWN0IHhlbl9kbV9v cCBvcDsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF90cmFwICpkYXRhOwogCi0gICAgYXJn LT5kb21pZCAgICAgICA9IGRvbTsKLSAgICBhcmctPnZjcHVpZCAgICAgID0gdmNwdTsKLSAgICBh cmctPnZlY3RvciAgICAgID0gdmVjdG9yOwotICAgIGFyZy0+dHlwZSAgICAgICAgPSB0eXBlOwot ICAgIGFyZy0+ZXJyb3JfY29kZSAgPSBlcnJvcl9jb2RlOwotICAgIGFyZy0+aW5zbl9sZW4gICAg PSBpbnNuX2xlbjsKLSAgICBhcmctPmNyMiAgICAgICAgID0gY3IyOworICAgIG1lbXNldCgmb3As IDAsIHNpemVvZihvcCkpOwogCi0gICAgcmMgPSB4ZW5jYWxsMih4Y2gtPnhjYWxsLCBfX0hZUEVS VklTT1JfaHZtX29wLAotICAgICAgICAgICAgICAgICAgSFZNT1BfaW5qZWN0X3RyYXAsCi0gICAg ICAgICAgICAgICAgICBIWVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcpKTsKKyAgICBvcC5vcCA9 IFhFTl9ETU9QX2luamVjdF90cmFwOworICAgIGRhdGEgPSAmb3AudS5pbmplY3RfdHJhcDsKIAot ICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfZnJlZSh4Y2gsIGFyZyk7CisgICAgZGF0YS0+dmNwdWlk ID0gdmNwdTsKKyAgICBkYXRhLT52ZWN0b3IgPSB2ZWN0b3I7CisgICAgZGF0YS0+dHlwZSA9IHR5 cGU7CisgICAgZGF0YS0+ZXJyb3JfY29kZSA9IGVycm9yX2NvZGU7CisgICAgZGF0YS0+aW5zbl9s ZW4gPSBpbnNuX2xlbjsKKyAgICBkYXRhLT5jcjIgPSBjcjI7CiAKLSAgICByZXR1cm4gcmM7Cisg ICAgcmV0dXJuIGRvX2RtX29wKHhjaCwgZG9tLCAxLCAmb3AsIHNpemVvZihvcCkpOwogfQogCiBp bnQgeGNfbGl2ZXBhdGNoX3VwbG9hZCh4Y19pbnRlcmZhY2UgKnhjaCwKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9odm0vZG0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwppbmRleCBiM2M5MWY4 Li4zYzAzMWQ5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2RtLmMKKysrIGIveGVuL2Fy Y2gveDg2L2h2bS9kbS5jCkBAIC0yMzUsNiArMjM1LDI4IEBAIHN0YXRpYyBpbnQgc2V0X21lbV90 eXBlKHN0cnVjdCBkb21haW4gKmQsIGh2bW1lbV90eXBlX3QgbWVtX3R5cGUsCiAgICAgcmV0dXJu IHJjOwogfQogCitzdGF0aWMgaW50IGluamVjdF90cmFwKHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGludCB2Y3B1aWQsCisgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgdmVjdG9yLCB1 aW50OF90IHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgaW5zbl9sZW4sIHVp bnQzMl90IGVycm9yX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcg Y3IyKQoreworICAgIHN0cnVjdCB2Y3B1ICp2OworCisgICAgaWYgKCB2Y3B1aWQgPj0gZC0+bWF4 X3ZjcHVzIHx8ICEodiA9IGQtPnZjcHVbdmNwdWlkXSkgKQorICAgICAgICByZXR1cm4gLUVJTlZB TDsKKworICAgIGlmICggdi0+YXJjaC5odm1fdmNwdS5pbmplY3RfdHJhcC52ZWN0b3IgIT0gLTEg KQorICAgICAgICByZXR1cm4gLUVCVVNZOworCisgICAgdi0+YXJjaC5odm1fdmNwdS5pbmplY3Rf dHJhcC50eXBlID0gdHlwZTsKKyAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90cmFwLmluc25f bGVuID0gaW5zbl9sZW47CisgICAgdi0+YXJjaC5odm1fdmNwdS5pbmplY3RfdHJhcC5lcnJvcl9j b2RlID0gZXJyb3JfY29kZTsKKyAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90cmFwLmNyMiA9 IGNyMjsKKyAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90cmFwLnZlY3RvciA9IHZlY3RvcjsK KworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50IGRtX29wKGRvbWlkX3QgZG9taWQsCiAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBucl9idWZzLAogICAgICAgICAgICAgICAgICB4 ZW5fZG1fb3BfYnVmX3QgYnVmc1tdKQpAQCAtNDIzLDYgKzQ0NSwzMyBAQCBzdGF0aWMgaW50IGRt X29wKGRvbWlkX3QgZG9taWQsCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgWEVO X0RNT1BfaW5qZWN0X3RyYXA6CisgICAgeworICAgICAgICBjb25zdCBzdHJ1Y3QgeGVuX2RtX29w X2luamVjdF90cmFwICpkYXRhID0KKyAgICAgICAgICAgICZvcC51LmluamVjdF90cmFwOworCisg ICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgaWYgKCBkYXRhLT5wYWQwIHx8IGRhdGEtPnBh ZDEgKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgcmMgPSBpbmplY3RfdHJhcChkLCBk YXRhLT52Y3B1aWQsIGRhdGEtPnZlY3RvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh LT50eXBlLCBkYXRhLT5pbnNuX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLT5l cnJvcl9jb2RlLCBkYXRhLT5jcjIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBY RU5fRE1PUF9pbmplY3RfbXNpOgorICAgIHsKKyAgICAgICAgY29uc3Qgc3RydWN0IHhlbl9kbV9v cF9pbmplY3RfbXNpICpkYXRhID0KKyAgICAgICAgICAgICZvcC51LmluamVjdF9tc2k7CisKKyAg ICAgICAgcmMgPSAtRUlOVkFMOworICAgICAgICBpZiAoIGRhdGEtPnBhZCApCisgICAgICAgICAg ICBicmVhazsKKworICAgICAgICByYyA9IGh2bV9pbmplY3RfbXNpKGQsIGRhdGEtPmFkZHIsIGRh dGEtPmRhdGEpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBkZWZhdWx0OgogICAgICAg ICByYyA9IC1FT1BOT1RTVVBQOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDZiNmYzZWUuLmYx ZDU5YjIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gv eDg2L2h2bS9odm0uYwpAQCAtNDE4OCwzNSArNDE4OCw2IEBAIHN0YXRpYyB2b2lkIGh2bV9zM19y ZXN1bWUoc3RydWN0IGRvbWFpbiAqZCkKICAgICB9CiB9CiAKLXN0YXRpYyBpbnQgaHZtb3BfaW5q ZWN0X21zaSgKLSAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9odm1faW5qZWN0X21zaV90 KSB1b3ApCi17Ci0gICAgc3RydWN0IHhlbl9odm1faW5qZWN0X21zaSBvcDsKLSAgICBzdHJ1Y3Qg ZG9tYWluICpkOwotICAgIGludCByYzsKLQotICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZvcCwg dW9wLCAxKSApCi0gICAgICAgIHJldHVybiAtRUZBVUxUOwotCi0gICAgcmMgPSByY3VfbG9ja19y ZW1vdGVfZG9tYWluX2J5X2lkKG9wLmRvbWlkLCAmZCk7Ci0gICAgaWYgKCByYyAhPSAwICkKLSAg ICAgICAgcmV0dXJuIHJjOwotCi0gICAgcmMgPSAtRUlOVkFMOwotICAgIGlmICggIWlzX2h2bV9k b21haW4oZCkgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJjID0geHNtX2h2bV9pbmplY3Rf bXNpKFhTTV9ETV9QUklWLCBkKTsKLSAgICBpZiAoIHJjICkKLSAgICAgICAgZ290byBvdXQ7Ci0K LSAgICByYyA9IGh2bV9pbmplY3RfbXNpKGQsIG9wLmFkZHIsIG9wLmRhdGEpOwotCi0gb3V0Ogot ICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOwotICAgIHJldHVybiByYzsKLX0KLQogc3RhdGljIGlu dCBodm1vcF9mbHVzaF90bGJfYWxsKHZvaWQpCiB7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IGN1 cnJlbnQtPmRvbWFpbjsKQEAgLTQ4NjcsMTEgKzQ4MzgsNiBAQCBsb25nIGRvX2h2bV9vcCh1bnNp Z25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAg ICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9wYXJhbV90KSk7CiAgICAgICAgIGJy ZWFrOwogCi0gICAgY2FzZSBIVk1PUF9pbmplY3RfbXNpOgotICAgICAgICByYyA9IGh2bW9wX2lu amVjdF9tc2koCi0gICAgICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChhcmcsIHhlbl9odm1faW5q ZWN0X21zaV90KSk7Ci0gICAgICAgIGJyZWFrOwotCiAgICAgY2FzZSBIVk1PUF9mbHVzaF90bGJz OgogICAgICAgICByYyA9IGd1ZXN0X2hhbmRsZV9pc19udWxsKGFyZykgPyBodm1vcF9mbHVzaF90 bGJfYWxsKCkgOiAtRUlOVkFMOwogICAgICAgICBicmVhazsKQEAgLTQ5MjgsNDggKzQ4OTQsNiBA QCBsb25nIGRvX2h2bV9vcCh1bnNpZ25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFN KHZvaWQpIGFyZykKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgY2FzZSBIVk1PUF9pbmpl Y3RfdHJhcDogCi0gICAgewotICAgICAgICB4ZW5faHZtX2luamVjdF90cmFwX3QgdHI7Ci0gICAg ICAgIHN0cnVjdCBkb21haW4gKmQ7Ci0gICAgICAgIHN0cnVjdCB2Y3B1ICp2OwotCi0gICAgICAg IGlmICggY29weV9mcm9tX2d1ZXN0KCZ0ciwgYXJnLCAxICkgKQotICAgICAgICAgICAgcmV0dXJu IC1FRkFVTFQ7Ci0KLSAgICAgICAgcmMgPSByY3VfbG9ja19yZW1vdGVfZG9tYWluX2J5X2lkKHRy LmRvbWlkLCAmZCk7Ci0gICAgICAgIGlmICggcmMgIT0gMCApCi0gICAgICAgICAgICByZXR1cm4g cmM7Ci0KLSAgICAgICAgcmMgPSAtRUlOVkFMOwotICAgICAgICBpZiAoICFpc19odm1fZG9tYWlu KGQpICkKLSAgICAgICAgICAgIGdvdG8gaW5qdHJhcF9mYWlsOwotCi0gICAgICAgIHJjID0geHNt X2h2bV9jb250cm9sKFhTTV9ETV9QUklWLCBkLCBvcCk7Ci0gICAgICAgIGlmICggcmMgKQotICAg ICAgICAgICAgZ290byBpbmp0cmFwX2ZhaWw7Ci0KLSAgICAgICAgcmMgPSAtRU5PRU5UOwotICAg ICAgICBpZiAoIHRyLnZjcHVpZCA+PSBkLT5tYXhfdmNwdXMgfHwgKHYgPSBkLT52Y3B1W3RyLnZj cHVpZF0pID09IE5VTEwgKQotICAgICAgICAgICAgZ290byBpbmp0cmFwX2ZhaWw7Ci0gICAgICAg IAotICAgICAgICBpZiAoIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0X3RyYXAudmVjdG9yICE9IC0x ICkKLSAgICAgICAgICAgIHJjID0gLUVCVVNZOwotICAgICAgICBlbHNlIAotICAgICAgICB7Ci0g ICAgICAgICAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90cmFwLnZlY3RvciA9IHRyLnZlY3Rv cjsKLSAgICAgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0X3RyYXAudHlwZSA9IHRyLnR5 cGU7Ci0gICAgICAgICAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90cmFwLmVycm9yX2NvZGUg PSB0ci5lcnJvcl9jb2RlOwotICAgICAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5pbmplY3RfdHJh cC5pbnNuX2xlbiA9IHRyLmluc25fbGVuOwotICAgICAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5p bmplY3RfdHJhcC5jcjIgPSB0ci5jcjI7Ci0gICAgICAgICAgICByYyA9IDA7Ci0gICAgICAgIH0K LQotICAgIGluanRyYXBfZmFpbDoKLSAgICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAg ICAgIGJyZWFrOwotICAgIH0KLQogICAgIGNhc2UgSFZNT1BfZ3Vlc3RfcmVxdWVzdF92bV9ldmVu dDoKICAgICAgICAgaWYgKCBndWVzdF9oYW5kbGVfaXNfbnVsbChhcmcpICkKICAgICAgICAgICAg IG1vbml0b3JfZ3Vlc3RfcmVxdWVzdCgpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGlj L2h2bS9kbV9vcC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCmluZGV4IDhlOWJl ZjEuLmFiZThiYmUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAor KysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKQEAgLTI3Myw2ICsyNzMsNTIgQEAg c3RydWN0IHhlbl9kbV9vcF9zZXRfbWVtX3R5cGUgewogICAgIHVpbnQ2NF9hbGlnbmVkX3QgZmly c3RfcGZuOwogfTsKIAorLyoKKyAqIFhFTl9ETU9QX2luamVjdF90cmFwOiBJbmplY3QgYSB0cmFw IGludG8gYSBWQ1BVLCB3aGljaCB3aWxsIGdldCB0YWtlbiB1cAorICogICAgICAgICAgICAgICAg ICAgICAgIHdoZW4gaXQgaXMgbmV4dCBzY2hlZHVsZWQuCisgKgorICogTm90ZSB0aGF0IHRoZSBj YWxsZXIgc2hvdWxkIGtub3cgZW5vdWdoIG9mIHRoZSBzdGF0ZSBvZiB0aGUgQ1BVIGJlZm9yZQor ICogaW5qZWN0aW5nLCB0byBrbm93IHdoYXQgdGhlIGVmZmVjdCBvZiBpbmplY3RpbmcgdGhlIHRy YXAgd2lsbCBiZS4KKyAqLworI2RlZmluZSBYRU5fRE1PUF9pbmplY3RfdHJhcCAxMworCitzdHJ1 Y3QgeGVuX2RtX29wX2luamVjdF90cmFwIHsKKyAgICAvKiBJTiAtIGluZGV4IG9mIHZDUFUgKi8K KyAgICB1aW50MzJfdCB2Y3B1aWQ7CisgICAgLyogSU4gLSBpbnRlcnJ1cHQgdmVjdG9yICovCisg ICAgdWludDhfdCB2ZWN0b3I7CisgICAgLyogSU4gLSB0cmFwIHR5cGUgKERNT1BfVFJBUF8qICkg Ki8KKyAgICB1aW50OF90IHR5cGU7CisvKiBOQi4gVGhpcyBlbnVtZXJhdGlvbiBwcmVjaXNlbHkg bWF0Y2hlcyBodm0uaDpYODZfRVZFTlRUWVBFXyogKi8KKyMgZGVmaW5lIFhFTl9ETU9QX1RSQVBf ZXh0X2ludCAgICAwIC8qIGV4dGVybmFsIGludGVycnVwdCAqLworIyBkZWZpbmUgWEVOX0RNT1Bf VFJBUF9ubWkgICAgICAgIDIgLyogbm1pICovCisjIGRlZmluZSBYRU5fRE1PUF9UUkFQX2h3X2V4 YyAgICAgMyAvKiBoYXJkd2FyZSBleGNlcHRpb24gKi8KKyMgZGVmaW5lIFhFTl9ETU9QX1RSQVBf c3dfaW50ICAgICA0IC8qIHNvZnR3YXJlIGludGVycnVwdCAoQ0Qgbm4pICovCisjIGRlZmluZSBY RU5fRE1PUF9UUkFQX3ByaV9zd19leGMgNSAvKiBJQ0VCUCAoRjEpICovCisjIGRlZmluZSBYRU5f RE1PUF9UUkFQX3N3X2V4YyAgICAgNiAvKiBJTlQzIChDQyksIElOVE8gKENFKSAqLworICAgIC8q IElOIC0gZW5zdHJ1Y3Rpb24gbGVuZ3RoICovCisgICAgdWludDhfdCBpbnNuX2xlbjsKKyAgICB1 aW50OF90IHBhZDA7CisgICAgLyogSU4gLSBlcnJvciBjb2RlIChvciB+MCB0byBza2lwKSAqLwor ICAgIHVpbnQzMl90IGVycm9yX2NvZGU7CisgICAgdWludDMyX3QgcGFkMTsKKyAgICAvKiBJTiAt IENSMiBmb3IgcGFnZSBmYXVsdHMgKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IGNyMjsKK307CisK Ky8qCisgKiBYRU5fRE1PUF9pbmplY3RfbXNpOiBJbmplY3QgYW4gTVNJIGZvciBhbiBlbXVsYXRl ZCBkZXZpY2UuCisgKi8KKyNkZWZpbmUgWEVOX0RNT1BfaW5qZWN0X21zaSAxNAorCitzdHJ1Y3Qg eGVuX2RtX29wX2luamVjdF9tc2kgeworICAgIC8qIElOIC0gTVNJIGRhdGEgKGxvd2VyIDMyIGJp dHMpICovCisgICAgdWludDMyX3QgZGF0YTsKKyAgICB1aW50MzJfdCBwYWQ7CisgICAgLyogSU4g LSBNU0kgYWRkcmVzcyAoMHhmZWV4eHh4eCkgKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IGFkZHI7 Cit9OworCiBzdHJ1Y3QgeGVuX2RtX29wIHsKICAgICB1aW50MzJfdCBvcDsKICAgICB1aW50MzJf dCBwYWQ7CkBAIC0yODksNiArMzM1LDggQEAgc3RydWN0IHhlbl9kbV9vcCB7CiAgICAgICAgIHN0 cnVjdCB4ZW5fZG1fb3Bfc2V0X3BjaV9saW5rX3JvdXRlIHNldF9wY2lfbGlua19yb3V0ZTsKICAg ICAgICAgc3RydWN0IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1vcnkgbW9kaWZpZWRfbWVtb3J5Owog ICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9tZW1fdHlwZSBzZXRfbWVtX3R5cGU7CisgICAg ICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW5qZWN0X3RyYXAgaW5qZWN0X3RyYXA7CisgICAgICAgIHN0 cnVjdCB4ZW5fZG1fb3BfaW5qZWN0X21zaSBpbmplY3RfbXNpOwogICAgIH0gdTsKIH07CiAKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmggYi94ZW4vaW5jbHVkZS9w dWJsaWMvaHZtL2h2bV9vcC5oCmluZGV4IGQ3ZTJmMTIuLmJjMDBlZjAgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2 bS9odm1fb3AuaApAQCAtMTMzLDM4ICsxMzMsNiBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4 ZW5faHZtX3hlbnRyYWNlX3QpOwogLyogRGVwcmVjYXRlZCBieSBYRU5NRU1fYWNjZXNzX29wX2dl dF9hY2Nlc3MgKi8KICNkZWZpbmUgSFZNT1BfZ2V0X21lbV9hY2Nlc3MgICAgICAgIDEzCiAKLSNk ZWZpbmUgSFZNT1BfaW5qZWN0X3RyYXAgICAgICAgICAgICAxNAotLyogSW5qZWN0IGEgdHJhcCBp bnRvIGEgVkNQVSwgd2hpY2ggd2lsbCBnZXQgdGFrZW4gdXAgb24gdGhlIG5leHQKLSAqIHNjaGVk dWxpbmcgb2YgaXQuIE5vdGUgdGhhdCB0aGUgY2FsbGVyIHNob3VsZCBrbm93IGVub3VnaCBvZiB0 aGUKLSAqIHN0YXRlIG9mIHRoZSBDUFUgYmVmb3JlIGluamVjdGluZywgdG8ga25vdyB3aGF0IHRo ZSBlZmZlY3Qgb2YKLSAqIGluamVjdGluZyB0aGUgdHJhcCB3aWxsIGJlLgotICovCi1zdHJ1Y3Qg eGVuX2h2bV9pbmplY3RfdHJhcCB7Ci0gICAgLyogRG9tYWluIHRvIGJlIHF1ZXJpZWQuICovCi0g ICAgZG9taWRfdCBkb21pZDsKLSAgICAvKiBWQ1BVICovCi0gICAgdWludDMyX3QgdmNwdWlkOwot ICAgIC8qIFZlY3RvciBudW1iZXIgKi8KLSAgICB1aW50MzJfdCB2ZWN0b3I7Ci0gICAgLyogVHJh cCB0eXBlIChIVk1PUF9UUkFQXyopICovCi0gICAgdWludDMyX3QgdHlwZTsKLS8qIE5CLiBUaGlz IGVudW1lcmF0aW9uIHByZWNpc2VseSBtYXRjaGVzIGh2bS5oOlg4Nl9FVkVOVFRZUEVfKiAqLwot IyBkZWZpbmUgSFZNT1BfVFJBUF9leHRfaW50ICAgIDAgLyogZXh0ZXJuYWwgaW50ZXJydXB0ICov Ci0jIGRlZmluZSBIVk1PUF9UUkFQX25taSAgICAgICAgMiAvKiBubWkgKi8KLSMgZGVmaW5lIEhW TU9QX1RSQVBfaHdfZXhjICAgICAzIC8qIGhhcmR3YXJlIGV4Y2VwdGlvbiAqLwotIyBkZWZpbmUg SFZNT1BfVFJBUF9zd19pbnQgICAgIDQgLyogc29mdHdhcmUgaW50ZXJydXB0IChDRCBubikgKi8K LSMgZGVmaW5lIEhWTU9QX1RSQVBfcHJpX3N3X2V4YyA1IC8qIElDRUJQIChGMSkgKi8KLSMgZGVm aW5lIEhWTU9QX1RSQVBfc3dfZXhjICAgICA2IC8qIElOVDMgKENDKSwgSU5UTyAoQ0UpICovCi0g ICAgLyogRXJyb3IgY29kZSwgb3IgfjB1IHRvIHNraXAgKi8KLSAgICB1aW50MzJfdCBlcnJvcl9j b2RlOwotICAgIC8qIEludHJ1Y3Rpb24gbGVuZ3RoICovCi0gICAgdWludDMyX3QgaW5zbl9sZW47 Ci0gICAgLyogQ1IyIGZvciBwYWdlIGZhdWx0cyAqLwotICAgIHVpbnQ2NF9hbGlnbmVkX3QgY3Iy OwotfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9odm1faW5qZWN0X3RyYXAgeGVuX2h2bV9pbmplY3Rf dHJhcF90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9pbmplY3RfdHJhcF90KTsK LQogI2VuZGlmIC8qIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKSAq LwogCiAjZGVmaW5lIEhWTU9QX2dldF9tZW1fdHlwZSAgICAxNQpAQCAtMTg0LDE5ICsxNTIsNiBA QCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2dldF9tZW1fdHlwZV90KTsKIC8qIEZv bGxvd2luZyB0b29scy1vbmx5IGludGVyZmFjZXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuICovCiAj aWYgZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCiAKLS8qIE1TSSBp bmplY3Rpb24gZm9yIGVtdWxhdGVkIGRldmljZXMgKi8KLSNkZWZpbmUgSFZNT1BfaW5qZWN0X21z aSAgICAgICAgIDE2Ci1zdHJ1Y3QgeGVuX2h2bV9pbmplY3RfbXNpIHsKLSAgICAvKiBEb21haW4g dG8gYmUgaW5qZWN0ZWQgKi8KLSAgICBkb21pZF90ICAgZG9taWQ7Ci0gICAgLyogRGF0YSAtLSBs b3dlciAzMiBiaXRzICovCi0gICAgdWludDMyX3QgIGRhdGE7Ci0gICAgLyogQWRkcmVzcyAoMHhm ZWV4eHh4eCkgKi8KLSAgICB1aW50NjRfdCAgYWRkcjsKLX07Ci10eXBlZGVmIHN0cnVjdCB4ZW5f aHZtX2luamVjdF9tc2kgeGVuX2h2bV9pbmplY3RfbXNpX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hB TkRMRSh4ZW5faHZtX2luamVjdF9tc2lfdCk7Ci0KIC8qCiAgKiBEZWZpbml0aW9ucyByZWxhdGlu ZyB0byBETU9QX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIuIChEZWZpbmVkIGhlcmUgZm9yCiAgKiBiYWNr d2FyZHMgY29tcGF0aWJpbGl0eSkuCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94c20vZHVtbXku 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=