From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v7 7/8] dm_op: convert HVMOP_inject_trap and HVMOP_inject_msi Date: Mon, 23 Jan 2017 13:59:48 +0000 Message-ID: <1485179989-1763-8-git-send-email-paul.durrant@citrix.com> References: <1485179989-1763-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cVfA5-0006vJ-Us for xen-devel@lists.xenproject.org; Mon, 23 Jan 2017 13:59:58 +0000 In-Reply-To: <1485179989-1763-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 LS0KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgoKdjc6Ci0gRml4 IGxpYnhjIGNvZGUgYnJva2VuIGluIHY2LgoKdjY6Ci0gcy90cmFwL2V2ZW50IGFzIHJlcXVlc3Rl ZCBieSBBbmR5IChhbmQgYWRqdXN0IHN0cnVjdCBodm1fdmNwdQogIGFjY29yZGluZ2x5KS4KCnYz OgotIEZpeGVkIHByZWZpeGluZyBhbmQgcGFkZGluZy4KCnYyOgotIEFkZHJlc3NlZCBzZXZlcmFs IGNvbW1lbnRzIGZyb20gSmFuLgotLS0KIHRvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5p ZiAgIHwgIDIgKy0KIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oICAgICAgIHwgIDQgKy0K IHRvb2xzL2xpYnhjL3hjX21pc2MuYyAgICAgICAgICAgICAgIHwgNjQgKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS9kbS5jICAgICAgICAgICAgICAgfCA0NSAr KysrKysrKysrKysrKysrKysrKwogeGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAgICAgICAg fCA4NCArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9h c20teDg2L2h2bS92Y3B1LmggICAgICB8ICAyICstCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2Rt X29wLmggICAgICB8IDQ4ICsrKysrKysrKysrKysrKysrKysrKwogeGVuL2luY2x1ZGUvcHVibGlj L2h2bS9odm1fb3AuaCAgICAgfCA0NSAtLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUv eHNtL2R1bW15LmggICAgICAgICAgICAgfCAgNiAtLS0KIHhlbi9pbmNsdWRlL3hzbS94c20uaCAg ICAgICAgICAgICAgIHwgIDYgLS0tCiB4ZW4veHNtL2R1bW15LmMgICAgICAgICAgICAgICAgICAg ICB8ICAxIC0KIHhlbi94c20vZmxhc2svaG9va3MuYyAgICAgICAgICAgICAgIHwgIDYgLS0tCiB4 ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyB8ICA1ICstLQogMTMgZmlsZXMgY2hh bmdlZCwgMTI1IGluc2VydGlvbnMoKyksIDE5MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90 b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYgYi90b29scy9mbGFzay9wb2xpY3kvbW9k dWxlcy94ZW4uaWYKaW5kZXggMDkyYTZjNS4uNDVlNWNlYSAxMDA2NDQKLS0tIGEvdG9vbHMvZmxh c2svcG9saWN5L21vZHVsZXMveGVuLmlmCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVz L3hlbi5pZgpAQCAtMTUxLDcgKzE1MSw3IEBAIGRlZmluZShgZGV2aWNlX21vZGVsJywgYAogCiAJ YWxsb3cgJDEgJDJfdGFyZ2V0OmRvbWFpbiB7IGdldGRvbWFpbmluZm8gc2h1dGRvd24gfTsKIAlh bGxvdyAkMSAkMl90YXJnZXQ6bW11IHsgbWFwX3JlYWQgbWFwX3dyaXRlIGFkanVzdCBwaHlzbWFw IHRhcmdldF9oYWNrIH07Ci0JYWxsb3cgJDEgJDJfdGFyZ2V0Omh2bSB7IGdldHBhcmFtIHNldHBh cmFtIGh2bWN0bCBjYWNoZWF0dHIgc2VuZF9pcnEgZG0gfTsKKwlhbGxvdyAkMSAkMl90YXJnZXQ6 aHZtIHsgZ2V0cGFyYW0gc2V0cGFyYW0gaHZtY3RsIGNhY2hlYXR0ciBkbSB9OwogJykKIAogIyBt YWtlX2RldmljZV9tb2RlbChwcml2LCBkbV9kb20sIGh2bV9kb20pCmRpZmYgLS1naXQgYS90b29s cy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5o CmluZGV4IDY2NDg2NzkuLmFiYTY5YzQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUv eGVuY3RybC5oCisrKyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCkBAIC0xNjQxLDgg KzE2NDEsOCBAQCBpbnQgeGNfaHZtX3NldF9tZW1fdHlwZSgKICAqIHJlc3VtZXMuIAogICovCiBp bnQgeGNfaHZtX2luamVjdF90cmFwKAotICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRv bSwgaW50IHZjcHUsIHVpbnQzMl90IHZlY3RvciwKLSAgICB1aW50MzJfdCB0eXBlLCB1aW50MzJf dCBlcnJvcl9jb2RlLCB1aW50MzJfdCBpbnNuX2xlbiwKKyAgICB4Y19pbnRlcmZhY2UgKnhjaCwg ZG9taWRfdCBkb20sIGludCB2Y3B1LCB1aW50OF90IHZlY3RvciwKKyAgICB1aW50OF90IHR5cGUs IHVpbnQzMl90IGVycm9yX2NvZGUsIHVpbnQ4X3QgaW5zbl9sZW4sCiAgICAgdWludDY0X3QgY3Iy KTsKIAogLyoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX21pc2MuYyBiL3Rvb2xzL2xpYnhj L3hjX21pc2MuYwppbmRleCA1YjA2ZDZiLi4wZmM2YzIyIDEwMDY0NAotLS0gYS90b29scy9saWJ4 Yy94Y19taXNjLmMKKysrIGIvdG9vbHMvbGlieGMveGNfbWlzYy5jCkBAIC01MjcsMjkgKzUyNywy MCBAQCBpbnQgeGNfaHZtX3NldF9wY2lfbGlua19yb3V0ZSgKIH0KIAogaW50IHhjX2h2bV9pbmpl Y3RfbXNpKAotICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwgdWludDY0X3QgYWRk ciwgdWludDMyX3QgZGF0YSkKKyAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sIHVp bnQ2NF90IG1zaV9hZGRyLCB1aW50MzJfdCBtc2lfZGF0YSkKIHsKLSAgICBERUNMQVJFX0hZUEVS Q0FMTF9CVUZGRVIoc3RydWN0IHhlbl9odm1faW5qZWN0X21zaSwgYXJnKTsKLSAgICBpbnQgcmM7 Ci0KLSAgICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9jKHhjaCwgYXJnLCBzaXplb2Yo KmFyZykpOwotICAgIGlmICggYXJnID09IE5VTEwgKQotICAgIHsKLSAgICAgICAgUEVSUk9SKCJD b3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciB4Y19odm1faW5qZWN0X21zaSBoeXBlcmNhbGwi KTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOwor ICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW5qZWN0X21zaSAqZGF0YTsKIAotICAgIGFyZy0+ZG9taWQg PSBkb207Ci0gICAgYXJnLT5hZGRyICA9IGFkZHI7Ci0gICAgYXJnLT5kYXRhICA9IGRhdGE7Cisg ICAgbWVtc2V0KCZvcCwgMCwgc2l6ZW9mKG9wKSk7CiAKLSAgICByYyA9IHhlbmNhbGwyKHhjaC0+ eGNhbGwsIF9fSFlQRVJWSVNPUl9odm1fb3AsCi0gICAgICAgICAgICAgICAgICBIVk1PUF9pbmpl Y3RfbXNpLAotICAgICAgICAgICAgICAgICAgSFlQRVJDQUxMX0JVRkZFUl9BU19BUkcoYXJnKSk7 CisgICAgb3Aub3AgPSBYRU5fRE1PUF9pbmplY3RfbXNpOworICAgIGRhdGEgPSAmb3AudS5pbmpl Y3RfbXNpOwogCi0gICAgeGNfaHlwZXJjYWxsX2J1ZmZlcl9mcmVlKHhjaCwgYXJnKTsKKyAgICBk YXRhLT5hZGRyID0gbXNpX2FkZHI7CisgICAgZGF0YS0+ZGF0YSA9IG1zaV9kYXRhOwogCi0gICAg cmV0dXJuIHJjOworICAgIHJldHVybiBkb19kbV9vcCh4Y2gsIGRvbSwgMSwgJm9wLCBzaXplb2Yo b3ApKTsKIH0KIAogaW50IHhjX2h2bV90cmFja19kaXJ0eV92cmFtKApAQCAtNjA4LDM1ICs1OTks MjYgQEAgaW50IHhjX2h2bV9zZXRfbWVtX3R5cGUoCiB9CiAKIGludCB4Y19odm1faW5qZWN0X3Ry YXAoCi0gICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLCBpbnQgdmNwdSwgdWludDMy X3QgdmVjdG9yLAotICAgIHVpbnQzMl90IHR5cGUsIHVpbnQzMl90IGVycm9yX2NvZGUsIHVpbnQz Ml90IGluc25fbGVuLAorICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwgaW50IHZj cHUsIHVpbnQ4X3QgdmVjdG9yLAorICAgIHVpbnQ4X3QgdHlwZSwgdWludDMyX3QgZXJyb3JfY29k ZSwgdWludDhfdCBpbnNuX2xlbiwKICAgICB1aW50NjRfdCBjcjIpCiB7Ci0gICAgREVDTEFSRV9I WVBFUkNBTExfQlVGRkVSKHN0cnVjdCB4ZW5faHZtX2luamVjdF90cmFwLCBhcmcpOwotICAgIGlu dCByYzsKLQotICAgIGFyZyA9IHhjX2h5cGVyY2FsbF9idWZmZXJfYWxsb2MoeGNoLCBhcmcsIHNp emVvZigqYXJnKSk7Ci0gICAgaWYgKCBhcmcgPT0gTlVMTCApCi0gICAgewotICAgICAgICBQRVJS T1IoIkNvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIHhjX2h2bV9pbmplY3RfdHJhcCBoeXBl cmNhbGwiKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KKyAgICBzdHJ1Y3QgeGVuX2RtX29w IG9wOworICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW5qZWN0X2V2ZW50ICpkYXRhOwogCi0gICAgYXJn LT5kb21pZCAgICAgICA9IGRvbTsKLSAgICBhcmctPnZjcHVpZCAgICAgID0gdmNwdTsKLSAgICBh cmctPnZlY3RvciAgICAgID0gdmVjdG9yOwotICAgIGFyZy0+dHlwZSAgICAgICAgPSB0eXBlOwot ICAgIGFyZy0+ZXJyb3JfY29kZSAgPSBlcnJvcl9jb2RlOwotICAgIGFyZy0+aW5zbl9sZW4gICAg PSBpbnNuX2xlbjsKLSAgICBhcmctPmNyMiAgICAgICAgID0gY3IyOworICAgIG1lbXNldCgmb3As IDAsIHNpemVvZihvcCkpOwogCi0gICAgcmMgPSB4ZW5jYWxsMih4Y2gtPnhjYWxsLCBfX0hZUEVS VklTT1JfaHZtX29wLAotICAgICAgICAgICAgICAgICAgSFZNT1BfaW5qZWN0X3RyYXAsCi0gICAg ICAgICAgICAgICAgICBIWVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcpKTsKKyAgICBvcC5vcCA9 IFhFTl9ETU9QX2luamVjdF9ldmVudDsKKyAgICBkYXRhID0gJm9wLnUuaW5qZWN0X2V2ZW50Owog Ci0gICAgeGNfaHlwZXJjYWxsX2J1ZmZlcl9mcmVlKHhjaCwgYXJnKTsKKyAgICBkYXRhLT52Y3B1 aWQgPSB2Y3B1OworICAgIGRhdGEtPnZlY3RvciA9IHZlY3RvcjsKKyAgICBkYXRhLT50eXBlID0g dHlwZTsKKyAgICBkYXRhLT5lcnJvcl9jb2RlID0gZXJyb3JfY29kZTsKKyAgICBkYXRhLT5pbnNu X2xlbiA9IGluc25fbGVuOworICAgIGRhdGEtPmNyMiA9IGNyMjsKIAotICAgIHJldHVybiByYzsK KyAgICByZXR1cm4gZG9fZG1fb3AoeGNoLCBkb20sIDEsICZvcCwgc2l6ZW9mKG9wKSk7CiB9CiAK IGludCB4Y19saXZlcGF0Y2hfdXBsb2FkKHhjX2ludGVyZmFjZSAqeGNoLApkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2h2bS9kbS5jIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCmluZGV4IGNjNjhi YTkuLmJhODg3NjYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYworKysgYi94ZW4v YXJjaC94ODYvaHZtL2RtLmMKQEAgLTIzNyw2ICsyMzcsMjYgQEAgc3RhdGljIGludCBzZXRfbWVt X3R5cGUoc3RydWN0IGRvbWFpbiAqZCwKICAgICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBpbnQg aW5qZWN0X2V2ZW50KHN0cnVjdCBkb21haW4gKmQsCisgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF9ldmVudCAqZGF0YSkKK3sKKyAgICBzdHJ1Y3Qg dmNwdSAqdjsKKworICAgIGlmICggZGF0YS0+dmNwdWlkID49IGQtPm1heF92Y3B1cyB8fCAhKHYg PSBkLT52Y3B1W2RhdGEtPnZjcHVpZF0pICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAg ICBpZiAoIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0X2V2ZW50LnZlY3RvciAhPSAtMSApCisgICAg ICAgIHJldHVybiAtRUJVU1k7CisKKyAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF9ldmVudC50 eXBlID0gZGF0YS0+dHlwZTsKKyAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF9ldmVudC5pbnNu X2xlbiA9IGRhdGEtPmluc25fbGVuOworICAgIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0X2V2ZW50 LmVycm9yX2NvZGUgPSBkYXRhLT5lcnJvcl9jb2RlOworICAgIHYtPmFyY2guaHZtX3ZjcHUuaW5q ZWN0X2V2ZW50LmNyMiA9IGRhdGEtPmNyMjsKKyAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF9l dmVudC52ZWN0b3IgPSBkYXRhLT52ZWN0b3I7CisKKyAgICByZXR1cm4gMDsKK30KKwogc3RhdGlj IGludCBkbV9vcChkb21pZF90IGRvbWlkLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg bnJfYnVmcywKICAgICAgICAgICAgICAgICAgeGVuX2RtX29wX2J1Zl90IGJ1ZnNbXSkKQEAgLTQz Myw2ICs0NTMsMzEgQEAgc3RhdGljIGludCBkbV9vcChkb21pZF90IGRvbWlkLAogICAgICAgICBi cmVhazsKICAgICB9CiAKKyAgICBjYXNlIFhFTl9ETU9QX2luamVjdF9ldmVudDoKKyAgICB7Cisg ICAgICAgIGNvbnN0IHN0cnVjdCB4ZW5fZG1fb3BfaW5qZWN0X2V2ZW50ICpkYXRhID0KKyAgICAg ICAgICAgICZvcC51LmluamVjdF9ldmVudDsKKworICAgICAgICByYyA9IC1FSU5WQUw7CisgICAg ICAgIGlmICggZGF0YS0+cGFkMCB8fCBkYXRhLT5wYWQxICkKKyAgICAgICAgICAgIGJyZWFrOwor CisgICAgICAgIHJjID0gaW5qZWN0X2V2ZW50KGQsIGRhdGEpOworICAgICAgICBicmVhazsKKyAg ICB9CisgICAgY2FzZSBYRU5fRE1PUF9pbmplY3RfbXNpOgorICAgIHsKKyAgICAgICAgY29uc3Qg c3RydWN0IHhlbl9kbV9vcF9pbmplY3RfbXNpICpkYXRhID0KKyAgICAgICAgICAgICZvcC51Lmlu amVjdF9tc2k7CisKKyAgICAgICAgcmMgPSAtRUlOVkFMOworICAgICAgICBpZiAoIGRhdGEtPnBh ZCApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICByYyA9IGh2bV9pbmplY3RfbXNpKGQs IGRhdGEtPmFkZHIsIGRhdGEtPmRhdGEpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBk ZWZhdWx0OgogICAgICAgICByYyA9IC1FT1BOT1RTVVBQOwogICAgICAgICBicmVhazsKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmlu ZGV4IDVkNDc5MjMuLmRjOGFmMDUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMK KysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwpAQCAtNTM5LDEyICs1MzksMTIgQEAgdm9pZCBo dm1fZG9fcmVzdW1lKHN0cnVjdCB2Y3B1ICp2KQogICAgIH0KIAogICAgIC8qIEluamVjdCBwZW5k aW5nIGh3L3N3IHRyYXAgKi8KLSAgICBpZiAoIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0X3RyYXAu dmVjdG9yICE9IC0xICkKKyAgICBpZiAoIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0X2V2ZW50LnZl Y3RvciAhPSAtMSApCiAgICAgewogICAgICAgICBpZiAoICFodm1fZXZlbnRfcGVuZGluZyh2KSAp Ci0gICAgICAgICAgICBodm1faW5qZWN0X2V2ZW50KCZ2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90 cmFwKTsKKyAgICAgICAgICAgIGh2bV9pbmplY3RfZXZlbnQoJnYtPmFyY2guaHZtX3ZjcHUuaW5q ZWN0X2V2ZW50KTsKIAotICAgICAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90cmFwLnZlY3Rv ciA9IC0xOworICAgICAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF9ldmVudC52ZWN0b3IgPSAt MTsKICAgICB9CiAKICAgICBpZiAoIHVubGlrZWx5KHYtPmFyY2gudm1fZXZlbnQpICYmIHYtPmFy Y2gubW9uaXRvci5uZXh0X2ludGVycnVwdF9lbmFibGVkICkKQEAgLTE1MTUsNyArMTUxNSw3IEBA IGludCBodm1fdmNwdV9pbml0aWFsaXNlKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICAodm9pZCgq KSh1bnNpZ25lZCBsb25nKSlodm1fYXNzZXJ0X2V2dGNobl9pcnEsCiAgICAgICAgICh1bnNpZ25l ZCBsb25nKXYpOwogCi0gICAgdi0+YXJjaC5odm1fdmNwdS5pbmplY3RfdHJhcC52ZWN0b3IgPSAt MTsKKyAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF9ldmVudC52ZWN0b3IgPSAtMTsKIAogICAg IGlmICggaXNfcHZoX2RvbWFpbihkKSApCiAgICAgewpAQCAtNDE4OCwzNSArNDE4OCw2IEBAIHN0 YXRpYyB2b2lkIGh2bV9zM19yZXN1bWUoc3RydWN0IGRvbWFpbiAqZCkKICAgICB9CiB9CiAKLXN0 YXRpYyBpbnQgaHZtb3BfaW5qZWN0X21zaSgKLSAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhl bl9odm1faW5qZWN0X21zaV90KSB1b3ApCi17Ci0gICAgc3RydWN0IHhlbl9odm1faW5qZWN0X21z aSBvcDsKLSAgICBzdHJ1Y3QgZG9tYWluICpkOwotICAgIGludCByYzsKLQotICAgIGlmICggY29w eV9mcm9tX2d1ZXN0KCZvcCwgdW9wLCAxKSApCi0gICAgICAgIHJldHVybiAtRUZBVUxUOwotCi0g ICAgcmMgPSByY3VfbG9ja19yZW1vdGVfZG9tYWluX2J5X2lkKG9wLmRvbWlkLCAmZCk7Ci0gICAg aWYgKCByYyAhPSAwICkKLSAgICAgICAgcmV0dXJuIHJjOwotCi0gICAgcmMgPSAtRUlOVkFMOwot ICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJj ID0geHNtX2h2bV9pbmplY3RfbXNpKFhTTV9ETV9QUklWLCBkKTsKLSAgICBpZiAoIHJjICkKLSAg ICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IGh2bV9pbmplY3RfbXNpKGQsIG9wLmFkZHIsIG9w LmRhdGEpOwotCi0gb3V0OgotICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOwotICAgIHJldHVybiBy YzsKLX0KLQogc3RhdGljIGludCBodm1vcF9mbHVzaF90bGJfYWxsKHZvaWQpCiB7CiAgICAgc3Ry dWN0IGRvbWFpbiAqZCA9IGN1cnJlbnQtPmRvbWFpbjsKQEAgLTQ4NjcsMTEgKzQ4MzgsNiBAQCBs b25nIGRvX2h2bV9vcCh1bnNpZ25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZv aWQpIGFyZykKICAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9wYXJh bV90KSk7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBIVk1PUF9pbmplY3RfbXNpOgotICAg ICAgICByYyA9IGh2bW9wX2luamVjdF9tc2koCi0gICAgICAgICAgICBndWVzdF9oYW5kbGVfY2Fz dChhcmcsIHhlbl9odm1faW5qZWN0X21zaV90KSk7Ci0gICAgICAgIGJyZWFrOwotCiAgICAgY2Fz ZSBIVk1PUF9mbHVzaF90bGJzOgogICAgICAgICByYyA9IGd1ZXN0X2hhbmRsZV9pc19udWxsKGFy ZykgPyBodm1vcF9mbHVzaF90bGJfYWxsKCkgOiAtRUlOVkFMOwogICAgICAgICBicmVhazsKQEAg LTQ5MjgsNDggKzQ4OTQsNiBAQCBsb25nIGRvX2h2bV9vcCh1bnNpZ25lZCBsb25nIG9wLCBYRU5f R1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0g ICAgY2FzZSBIVk1PUF9pbmplY3RfdHJhcDogCi0gICAgewotICAgICAgICB4ZW5faHZtX2luamVj dF90cmFwX3QgdHI7Ci0gICAgICAgIHN0cnVjdCBkb21haW4gKmQ7Ci0gICAgICAgIHN0cnVjdCB2 Y3B1ICp2OwotCi0gICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZ0ciwgYXJnLCAxICkgKQot ICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7Ci0KLSAgICAgICAgcmMgPSByY3VfbG9ja19yZW1v dGVfZG9tYWluX2J5X2lkKHRyLmRvbWlkLCAmZCk7Ci0gICAgICAgIGlmICggcmMgIT0gMCApCi0g ICAgICAgICAgICByZXR1cm4gcmM7Ci0KLSAgICAgICAgcmMgPSAtRUlOVkFMOwotICAgICAgICBp ZiAoICFpc19odm1fZG9tYWluKGQpICkKLSAgICAgICAgICAgIGdvdG8gaW5qdHJhcF9mYWlsOwot Ci0gICAgICAgIHJjID0geHNtX2h2bV9jb250cm9sKFhTTV9ETV9QUklWLCBkLCBvcCk7Ci0gICAg ICAgIGlmICggcmMgKQotICAgICAgICAgICAgZ290byBpbmp0cmFwX2ZhaWw7Ci0KLSAgICAgICAg cmMgPSAtRU5PRU5UOwotICAgICAgICBpZiAoIHRyLnZjcHVpZCA+PSBkLT5tYXhfdmNwdXMgfHwg KHYgPSBkLT52Y3B1W3RyLnZjcHVpZF0pID09IE5VTEwgKQotICAgICAgICAgICAgZ290byBpbmp0 cmFwX2ZhaWw7Ci0gICAgICAgIAotICAgICAgICBpZiAoIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0 X3RyYXAudmVjdG9yICE9IC0xICkKLSAgICAgICAgICAgIHJjID0gLUVCVVNZOwotICAgICAgICBl bHNlIAotICAgICAgICB7Ci0gICAgICAgICAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF90cmFw LnZlY3RvciA9IHRyLnZlY3RvcjsKLSAgICAgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0 X3RyYXAudHlwZSA9IHRyLnR5cGU7Ci0gICAgICAgICAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVj dF90cmFwLmVycm9yX2NvZGUgPSB0ci5lcnJvcl9jb2RlOwotICAgICAgICAgICAgdi0+YXJjaC5o dm1fdmNwdS5pbmplY3RfdHJhcC5pbnNuX2xlbiA9IHRyLmluc25fbGVuOwotICAgICAgICAgICAg di0+YXJjaC5odm1fdmNwdS5pbmplY3RfdHJhcC5jcjIgPSB0ci5jcjI7Ci0gICAgICAgICAgICBy YyA9IDA7Ci0gICAgICAgIH0KLQotICAgIGluanRyYXBfZmFpbDoKLSAgICAgICAgcmN1X3VubG9j a19kb21haW4oZCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQogICAgIGNhc2UgSFZNT1BfZ3Vl c3RfcmVxdWVzdF92bV9ldmVudDoKICAgICAgICAgaWYgKCBndWVzdF9oYW5kbGVfaXNfbnVsbChh cmcpICkKICAgICAgICAgICAgIG1vbml0b3JfZ3Vlc3RfcmVxdWVzdCgpOwpkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdmNwdS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0v dmNwdS5oCmluZGV4IDE3YWI5YzAuLmU1ZWViNWYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL3ZjcHUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92Y3B1LmgKQEAg LTIwNCw3ICsyMDQsNyBAQCBzdHJ1Y3QgaHZtX3ZjcHUgewogICAgIHZvaWQgKmZwdV9leGNlcHRp b25fY2FsbGJhY2tfYXJnOwogCiAgICAgLyogUGVuZGluZyBody9zdyBpbnRlcnJ1cHQgKC52ZWN0 b3IgPSAtMSBtZWFucyBub3RoaW5nIHBlbmRpbmcpLiAqLwotICAgIHN0cnVjdCB4ODZfZXZlbnQg ICAgIGluamVjdF90cmFwOworICAgIHN0cnVjdCB4ODZfZXZlbnQgICAgIGluamVjdF9ldmVudDsK IAogICAgIHN0cnVjdCB2aXJpZGlhbl92Y3B1IHZpcmlkaWFuOwogfTsKZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1f b3AuaAppbmRleCAwNmM2N2I4Li5mNTRjZWNlIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJs aWMvaHZtL2RtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCkBAIC0y NzIsNiArMjcyLDUyIEBAIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X21lbV90eXBlIHsKICAgICB1aW50 NjRfYWxpZ25lZF90IGZpcnN0X3BmbjsKIH07CiAKKy8qCisgKiBYRU5fRE1PUF9pbmplY3RfZXZl bnQ6IEluamVjdCBhbiBldmVudCBpbnRvIGEgVkNQVSwgd2hpY2ggd2lsbAorICogICAgICAgICAg ICAgICAgICAgICAgICBnZXQgdGFrZW4gdXAgd2hlbiBpdCBpcyBuZXh0IHNjaGVkdWxlZC4KKyAq CisgKiBOb3RlIHRoYXQgdGhlIGNhbGxlciBzaG91bGQga25vdyBlbm91Z2ggb2YgdGhlIHN0YXRl IG9mIHRoZSBDUFUgYmVmb3JlCisgKiBpbmplY3RpbmcsIHRvIGtub3cgd2hhdCB0aGUgZWZmZWN0 IG9mIGluamVjdGluZyB0aGUgZXZlbnQgd2lsbCBiZS4KKyAqLworI2RlZmluZSBYRU5fRE1PUF9p bmplY3RfZXZlbnQgMTMKKworc3RydWN0IHhlbl9kbV9vcF9pbmplY3RfZXZlbnQgeworICAgIC8q IElOIC0gaW5kZXggb2YgdkNQVSAqLworICAgIHVpbnQzMl90IHZjcHVpZDsKKyAgICAvKiBJTiAt IGludGVycnVwdCB2ZWN0b3IgKi8KKyAgICB1aW50OF90IHZlY3RvcjsKKyAgICAvKiBJTiAtIGV2 ZW50IHR5cGUgKERNT1BfRVZFTlRfKiApICovCisgICAgdWludDhfdCB0eXBlOworLyogTkIuIFRo aXMgZW51bWVyYXRpb24gcHJlY2lzZWx5IG1hdGNoZXMgaHZtLmg6WDg2X0VWRU5UVFlQRV8qICov CisjIGRlZmluZSBYRU5fRE1PUF9FVkVOVF9leHRfaW50ICAgIDAgLyogZXh0ZXJuYWwgaW50ZXJy dXB0ICovCisjIGRlZmluZSBYRU5fRE1PUF9FVkVOVF9ubWkgICAgICAgIDIgLyogbm1pICovCisj IGRlZmluZSBYRU5fRE1PUF9FVkVOVF9od19leGMgICAgIDMgLyogaGFyZHdhcmUgZXhjZXB0aW9u ICovCisjIGRlZmluZSBYRU5fRE1PUF9FVkVOVF9zd19pbnQgICAgIDQgLyogc29mdHdhcmUgaW50 ZXJydXB0IChDRCBubikgKi8KKyMgZGVmaW5lIFhFTl9ETU9QX0VWRU5UX3ByaV9zd19leGMgNSAv KiBJQ0VCUCAoRjEpICovCisjIGRlZmluZSBYRU5fRE1PUF9FVkVOVF9zd19leGMgICAgIDYgLyog SU5UMyAoQ0MpLCBJTlRPIChDRSkgKi8KKyAgICAvKiBJTiAtIGluc3RydWN0aW9uIGxlbmd0aCAq LworICAgIHVpbnQ4X3QgaW5zbl9sZW47CisgICAgdWludDhfdCBwYWQwOworICAgIC8qIElOIC0g ZXJyb3IgY29kZSAob3IgfjAgdG8gc2tpcCkgKi8KKyAgICB1aW50MzJfdCBlcnJvcl9jb2RlOwor ICAgIHVpbnQzMl90IHBhZDE7CisgICAgLyogSU4gLSBDUjIgZm9yIHBhZ2UgZmF1bHRzICovCisg ICAgdWludDY0X2FsaWduZWRfdCBjcjI7Cit9OworCisvKgorICogWEVOX0RNT1BfaW5qZWN0X21z aTogSW5qZWN0IGFuIE1TSSBmb3IgYW4gZW11bGF0ZWQgZGV2aWNlLgorICovCisjZGVmaW5lIFhF Tl9ETU9QX2luamVjdF9tc2kgMTQKKworc3RydWN0IHhlbl9kbV9vcF9pbmplY3RfbXNpIHsKKyAg ICAvKiBJTiAtIE1TSSBkYXRhIChsb3dlciAzMiBiaXRzKSAqLworICAgIHVpbnQzMl90IGRhdGE7 CisgICAgdWludDMyX3QgcGFkOworICAgIC8qIElOIC0gTVNJIGFkZHJlc3MgKDB4ZmVleHh4eHgp ICovCisgICAgdWludDY0X2FsaWduZWRfdCBhZGRyOworfTsKKwogc3RydWN0IHhlbl9kbV9vcCB7 CiAgICAgdWludDMyX3Qgb3A7CiAgICAgdWludDMyX3QgcGFkOwpAQCAtMjg4LDYgKzMzNCw4IEBA IHN0cnVjdCB4ZW5fZG1fb3AgewogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9wY2lfbGlu a19yb3V0ZSBzZXRfcGNpX2xpbmtfcm91dGU7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfbW9k aWZpZWRfbWVtb3J5IG1vZGlmaWVkX21lbW9yeTsKICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9z ZXRfbWVtX3R5cGUgc2V0X21lbV90eXBlOworICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX2luamVj dF9ldmVudCBpbmplY3RfZXZlbnQ7CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW5qZWN0X21z aSBpbmplY3RfbXNpOwogICAgIH0gdTsKIH07CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1 YmxpYy9odm0vaHZtX29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oCmluZGV4 IGQ3ZTJmMTIuLmJjMDBlZjAgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZt X29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaApAQCAtMTMzLDM4ICsx MzMsNiBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX3hlbnRyYWNlX3QpOwogLyog RGVwcmVjYXRlZCBieSBYRU5NRU1fYWNjZXNzX29wX2dldF9hY2Nlc3MgKi8KICNkZWZpbmUgSFZN T1BfZ2V0X21lbV9hY2Nlc3MgICAgICAgIDEzCiAKLSNkZWZpbmUgSFZNT1BfaW5qZWN0X3RyYXAg ICAgICAgICAgICAxNAotLyogSW5qZWN0IGEgdHJhcCBpbnRvIGEgVkNQVSwgd2hpY2ggd2lsbCBn ZXQgdGFrZW4gdXAgb24gdGhlIG5leHQKLSAqIHNjaGVkdWxpbmcgb2YgaXQuIE5vdGUgdGhhdCB0 aGUgY2FsbGVyIHNob3VsZCBrbm93IGVub3VnaCBvZiB0aGUKLSAqIHN0YXRlIG9mIHRoZSBDUFUg YmVmb3JlIGluamVjdGluZywgdG8ga25vdyB3aGF0IHRoZSBlZmZlY3Qgb2YKLSAqIGluamVjdGlu ZyB0aGUgdHJhcCB3aWxsIGJlLgotICovCi1zdHJ1Y3QgeGVuX2h2bV9pbmplY3RfdHJhcCB7Ci0g ICAgLyogRG9tYWluIHRvIGJlIHF1ZXJpZWQuICovCi0gICAgZG9taWRfdCBkb21pZDsKLSAgICAv KiBWQ1BVICovCi0gICAgdWludDMyX3QgdmNwdWlkOwotICAgIC8qIFZlY3RvciBudW1iZXIgKi8K LSAgICB1aW50MzJfdCB2ZWN0b3I7Ci0gICAgLyogVHJhcCB0eXBlIChIVk1PUF9UUkFQXyopICov Ci0gICAgdWludDMyX3QgdHlwZTsKLS8qIE5CLiBUaGlzIGVudW1lcmF0aW9uIHByZWNpc2VseSBt YXRjaGVzIGh2bS5oOlg4Nl9FVkVOVFRZUEVfKiAqLwotIyBkZWZpbmUgSFZNT1BfVFJBUF9leHRf aW50ICAgIDAgLyogZXh0ZXJuYWwgaW50ZXJydXB0ICovCi0jIGRlZmluZSBIVk1PUF9UUkFQX25t aSAgICAgICAgMiAvKiBubWkgKi8KLSMgZGVmaW5lIEhWTU9QX1RSQVBfaHdfZXhjICAgICAzIC8q IGhhcmR3YXJlIGV4Y2VwdGlvbiAqLwotIyBkZWZpbmUgSFZNT1BfVFJBUF9zd19pbnQgICAgIDQg Lyogc29mdHdhcmUgaW50ZXJydXB0IChDRCBubikgKi8KLSMgZGVmaW5lIEhWTU9QX1RSQVBfcHJp X3N3X2V4YyA1IC8qIElDRUJQIChGMSkgKi8KLSMgZGVmaW5lIEhWTU9QX1RSQVBfc3dfZXhjICAg ICA2IC8qIElOVDMgKENDKSwgSU5UTyAoQ0UpICovCi0gICAgLyogRXJyb3IgY29kZSwgb3IgfjB1 IHRvIHNraXAgKi8KLSAgICB1aW50MzJfdCBlcnJvcl9jb2RlOwotICAgIC8qIEludHJ1Y3Rpb24g bGVuZ3RoICovCi0gICAgdWludDMyX3QgaW5zbl9sZW47Ci0gICAgLyogQ1IyIGZvciBwYWdlIGZh dWx0cyAqLwotICAgIHVpbnQ2NF9hbGlnbmVkX3QgY3IyOwotfTsKLXR5cGVkZWYgc3RydWN0IHhl bl9odm1faW5qZWN0X3RyYXAgeGVuX2h2bV9pbmplY3RfdHJhcF90OwotREVGSU5FX1hFTl9HVUVT VF9IQU5ETEUoeGVuX2h2bV9pbmplY3RfdHJhcF90KTsKLQogI2VuZGlmIC8qIGRlZmluZWQoX19Y RU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKSAqLwogCiAjZGVmaW5lIEhWTU9QX2dldF9t ZW1fdHlwZSAgICAxNQpAQCAtMTg0LDE5ICsxNTIsNiBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRM RSh4ZW5faHZtX2dldF9tZW1fdHlwZV90KTsKIC8qIEZvbGxvd2luZyB0b29scy1vbmx5IGludGVy ZmFjZXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuICovCiAjaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBk ZWZpbmVkKF9fWEVOX1RPT0xTX18pCiAKLS8qIE1TSSBpbmplY3Rpb24gZm9yIGVtdWxhdGVkIGRl dmljZXMgKi8KLSNkZWZpbmUgSFZNT1BfaW5qZWN0X21zaSAgICAgICAgIDE2Ci1zdHJ1Y3QgeGVu X2h2bV9pbmplY3RfbXNpIHsKLSAgICAvKiBEb21haW4gdG8gYmUgaW5qZWN0ZWQgKi8KLSAgICBk b21pZF90ICAgZG9taWQ7Ci0gICAgLyogRGF0YSAtLSBsb3dlciAzMiBiaXRzICovCi0gICAgdWlu dDMyX3QgIGRhdGE7Ci0gICAgLyogQWRkcmVzcyAoMHhmZWV4eHh4eCkgKi8KLSAgICB1aW50NjRf dCAgYWRkcjsKLX07Ci10eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2luamVjdF9tc2kgeGVuX2h2bV9p bmplY3RfbXNpX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2luamVjdF9tc2lf dCk7Ci0KIC8qCiAgKiBEZWZpbml0aW9ucyByZWxhdGluZyB0byBETU9QX2NyZWF0ZV9pb3JlcV9z ZXJ2ZXIuIChEZWZpbmVkIGhlcmUgZm9yCiAgKiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSkuCmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaCBiL3hlbi9pbmNsdWRlL3hzbS9kdW1t eS5oCmluZGV4IGQzZGU0YjcuLjRiMjdhZTcgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hzbS9k dW1teS5oCisrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCkBAIC02MTAsMTIgKzYxMCw2IEBA IHN0YXRpYyBYU01fSU5MSU5FIGludCB4c21fc2hhZG93X2NvbnRyb2woWFNNX0RFRkFVTFRfQVJH IHN0cnVjdCBkb21haW4gKmQsIHVpbnQzCiAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihh Y3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7CiB9CiAKLXN0YXRpYyBYU01fSU5MSU5FIGludCB4 c21faHZtX2luamVjdF9tc2koWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQpCi17Ci0g ICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0RNX1BSSVYpOwotICAgIHJldHVybiB4c21fZGVmYXVs dF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOwotfQotCiBzdGF0aWMgWFNNX0lO TElORSBpbnQgeHNtX21lbV9zaGFyaW5nX29wKFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWlu ICpkLCBzdHJ1Y3QgZG9tYWluICpjZCwgaW50IG9wKQogewogICAgIFhTTV9BU1NFUlRfQUNUSU9O KFhTTV9ETV9QUklWKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hzbS94c20uaCBiL3hlbi9p bmNsdWRlL3hzbS94c20uaAppbmRleCAyZTRhM2NlLi4yY2Y3YWMxIDEwMDY0NAotLS0gYS94ZW4v aW5jbHVkZS94c20veHNtLmgKKysrIGIveGVuL2luY2x1ZGUveHNtL3hzbS5oCkBAIC0xNjIsNyAr MTYyLDYgQEAgc3RydWN0IHhzbV9vcGVyYXRpb25zIHsKICNpZmRlZiBDT05GSUdfWDg2CiAgICAg aW50ICgqZG9fbWNhKSAodm9pZCk7CiAgICAgaW50ICgqc2hhZG93X2NvbnRyb2wpIChzdHJ1Y3Qg ZG9tYWluICpkLCB1aW50MzJfdCBvcCk7Ci0gICAgaW50ICgqaHZtX2luamVjdF9tc2kpIChzdHJ1 Y3QgZG9tYWluICpkKTsKICAgICBpbnQgKCptZW1fc2hhcmluZ19vcCkgKHN0cnVjdCBkb21haW4g KmQsIHN0cnVjdCBkb21haW4gKmNkLCBpbnQgb3ApOwogICAgIGludCAoKmFwaWMpIChzdHJ1Y3Qg ZG9tYWluICpkLCBpbnQgY21kKTsKICAgICBpbnQgKCptZW10eXBlKSAodWludDMyX3QgYWNjZXNz KTsKQEAgLTYzMiwxMSArNjMxLDYgQEAgc3RhdGljIGlubGluZSBpbnQgeHNtX3NoYWRvd19jb250 cm9sICh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCwgdWludDMKICAgICByZXR1 cm4geHNtX29wcy0+c2hhZG93X2NvbnRyb2woZCwgb3ApOwogfQogCi1zdGF0aWMgaW5saW5lIGlu dCB4c21faHZtX2luamVjdF9tc2kgKHhzbV9kZWZhdWx0X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpk KQotewotICAgIHJldHVybiB4c21fb3BzLT5odm1faW5qZWN0X21zaShkKTsKLX0KLQogc3RhdGlj IGlubGluZSBpbnQgeHNtX21lbV9zaGFyaW5nX29wICh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0 IGRvbWFpbiAqZCwgc3RydWN0IGRvbWFpbiAqY2QsIGludCBvcCkKIHsKICAgICByZXR1cm4geHNt X29wcy0+bWVtX3NoYXJpbmdfb3AoZCwgY2QsIG9wKTsKZGlmZiAtLWdpdCBhL3hlbi94c20vZHVt bXkuYyBiL3hlbi94c20vZHVtbXkuYwppbmRleCBmMTU2OGRkLi4xZjY1OWM3IDEwMDY0NAotLS0g YS94ZW4veHNtL2R1bW15LmMKKysrIGIveGVuL3hzbS9kdW1teS5jCkBAIC0xNDUsNyArMTQ1LDYg QEAgdm9pZCBfX2luaXQgeHNtX2ZpeHVwX29wcyAoc3RydWN0IHhzbV9vcGVyYXRpb25zICpvcHMp CiAjaWZkZWYgQ09ORklHX1g4NgogICAgIHNldF90b19kdW1teV9pZl9udWxsKG9wcywgZG9fbWNh KTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNoYWRvd19jb250cm9sKTsKLSAgICBz ZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGh2bV9pbmplY3RfbXNpKTsKICAgICBzZXRfdG9fZHVt bXlfaWZfbnVsbChvcHMsIG1lbV9zaGFyaW5nX29wKTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVs bChvcHMsIGFwaWMpOwogICAgIHNldF90b19kdW1teV9pZl9udWxsKG9wcywgbWFjaGluZV9tZW1v cnlfbWFwKTsKZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2svaG9va3MuYyBiL3hlbi94c20vZmxh c2svaG9va3MuYwppbmRleCA2ODVjYmZhLi45MzMyY2ExIDEwMDY0NAotLS0gYS94ZW4veHNtL2Zs YXNrL2hvb2tzLmMKKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCkBAIC0xNTAyLDExICsxNTAy LDYgQEAgc3RhdGljIGludCBmbGFza19pb3BvcnRfbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkLCB1 aW50MzJfdCBzdGFydCwgdWludDMyX3QgZW5kLAogICAgIHJldHVybiBmbGFza19pb3BvcnRfcGVy bWlzc2lvbihkLCBzdGFydCwgZW5kLCBhY2Nlc3MpOwogfQogCi1zdGF0aWMgaW50IGZsYXNrX2h2 bV9pbmplY3RfbXNpKHN0cnVjdCBkb21haW4gKmQpCi17Ci0gICAgcmV0dXJuIGN1cnJlbnRfaGFz X3Blcm0oZCwgU0VDQ0xBU1NfSFZNLCBIVk1fX1NFTkRfSVJRKTsKLX0KLQogc3RhdGljIGludCBm bGFza19tZW1fc2hhcmluZ19vcChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgZG9tYWluICpjZCwg aW50IG9wKQogewogICAgIGludCByYyA9IGN1cnJlbnRfaGFzX3Blcm0oY2QsIFNFQ0NMQVNTX0hW TSwgSFZNX19NRU1fU0hBUklORyk7CkBAIC0xNzg0LDcgKzE3NzksNiBAQCBzdGF0aWMgc3RydWN0 IHhzbV9vcGVyYXRpb25zIGZsYXNrX29wcyA9IHsKICAgICAuaHZtX3NldF9wY2lfaW50eF9sZXZl bCA9IGZsYXNrX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwsCiAgICAgLmh2bV9zZXRfaXNhX2lycV9s ZXZlbCA9IGZsYXNrX2h2bV9zZXRfaXNhX2lycV9sZXZlbCwKICAgICAuaHZtX3NldF9wY2lfbGlu a19yb3V0ZSA9IGZsYXNrX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUsCi0gICAgLmh2bV9pbmplY3Rf bXNpID0gZmxhc2tfaHZtX2luamVjdF9tc2ksCiAgICAgLm1lbV9zaGFyaW5nX29wID0gZmxhc2tf bWVtX3NoYXJpbmdfb3AsCiAgICAgLmFwaWMgPSBmbGFza19hcGljLAogICAgIC5tYWNoaW5lX21l bW9yeV9tYXAgPSBmbGFza19tYWNoaW5lX21lbW9yeV9tYXAsCmRpZmYgLS1naXQgYS94ZW4veHNt L2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vz c192ZWN0b3JzCmluZGV4IDM4MWY2NTkuLjM2YTdkZjkgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxh c2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCisrKyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vz c192ZWN0b3JzCkBAIC0yNjMsOCArMjYzLDcgQEAgY2xhc3MgaHZtCiAjIFhFTl9ET01DVExfcGlu X21lbV9jYWNoZWF0dHIKICAgICBjYWNoZWF0dHIKICMgSFZNT1BfZ2V0X21lbV90eXBlLAotIyBI Vk1PUF9zZXRfbWVtX2FjY2VzcywgSFZNT1BfZ2V0X21lbV9hY2Nlc3MsIEhWTU9QX3BhZ2V0YWJs ZV9keWluZywKLSMgSFZNT1BfaW5qZWN0X3RyYXAKKyMgSFZNT1Bfc2V0X21lbV9hY2Nlc3MsIEhW TU9QX2dldF9tZW1fYWNjZXNzLCBIVk1PUF9wYWdldGFibGVfZHlpbmcKICAgICBodm1jdGwKICMg WEVOX0RPTUNUTF9tZW1fc2hhcmluZ19vcCBhbmQgWEVOTUVNX3NoYXJpbmdfb3Bfe3NoYXJlLGFk ZF9waHlzbWFwfSB3aXRoOgogIyAgc291cmNlID0gdGhlIGRvbWFpbiBtYWtpbmcgdGhlIGh5cGVy Y2FsbApAQCAtMjcyLDggKzI3MSw2IEBAIGNsYXNzIGh2bQogICAgIG1lbV9zaGFyaW5nCiAjIFhF Tl9ET01DVExfYXVkaXRfcDJtCiAgICAgYXVkaXRfcDJtCi0jIEhWTU9QX2luamVjdF9tc2kKLSAg ICBzZW5kX2lycQogIyBjaGVja2VkIGluIFhFTk1FTV9zaGFyaW5nX29wX3tzaGFyZSxhZGRfcGh5 c21hcH0gd2l0aDoKICMgIHNvdXJjZSA9IGRvbWFpbiB3aG9zZSBtZW1vcnkgaXMgYmVpbmcgc2hh cmVkCiAjICB0YXJnZXQgPSBjbGllbnQgZG9tYWluCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=