From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v6 7/8] dm_op: convert HVMOP_inject_trap and HVMOP_inject_msi Date: Mon, 23 Jan 2017 10:01:03 +0000 Message-ID: <1485165664-19253-8-git-send-email-paul.durrant@citrix.com> References: <1485165664-19253-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 1cVbR9-0006ht-W9 for xen-devel@lists.xenproject.org; Mon, 23 Jan 2017 10:01:20 +0000 In-Reply-To: <1485165664-19253-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 LS0KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgoKdjY6Ci0gcy90 cmFwL2V2ZW50IGFzIHJlcXVlc3RlZCBieSBBbmR5IChhbmQgYWRqdXN0IHN0cnVjdCBodm1fdmNw dQogIGFjY29yZGluZ2x5KS4KCnYzOgotIEZpeGVkIHByZWZpeGluZyBhbmQgcGFkZGluZy4KCnYy OgotIEFkZHJlc3NlZCBzZXZlcmFsIGNvbW1lbnRzIGZyb20gSmFuLgotLS0KIHRvb2xzL2ZsYXNr L3BvbGljeS9tb2R1bGVzL3hlbi5pZiAgIHwgIDIgKy0KIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVu Y3RybC5oICAgICAgIHwgIDQgKy0KIHRvb2xzL2xpYnhjL3hjX21pc2MuYyAgICAgICAgICAgICAg IHwgNjQgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS9kbS5j ICAgICAgICAgICAgICAgfCA0NSArKysrKysrKysrKysrKysrKysrKwogeGVuL2FyY2gveDg2L2h2 bS9odm0uYyAgICAgICAgICAgICAgfCA4NCArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92Y3B1LmggICAgICB8ICAyICstCiB4ZW4v aW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmggICAgICB8IDQ4ICsrKysrKysrKysrKysrKysrKysr KwogeGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaCAgICAgfCA0NSAtLS0tLS0tLS0tLS0t LS0tLS0tLQogeGVuL2luY2x1ZGUveHNtL2R1bW15LmggICAgICAgICAgICAgfCAgNiAtLS0KIHhl bi9pbmNsdWRlL3hzbS94c20uaCAgICAgICAgICAgICAgIHwgIDYgLS0tCiB4ZW4veHNtL2R1bW15 LmMgICAgICAgICAgICAgICAgICAgICB8ICAxIC0KIHhlbi94c20vZmxhc2svaG9va3MuYyAgICAg ICAgICAgICAgIHwgIDYgLS0tCiB4ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyB8 ICA1ICstLQogMTMgZmlsZXMgY2hhbmdlZCwgMTI1IGluc2VydGlvbnMoKyksIDE5MyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYgYi90 b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYKaW5kZXggMDkyYTZjNS4uNDVlNWNlYSAx MDA2NDQKLS0tIGEvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLmlmCisrKyBiL3Rvb2xz L2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZgpAQCAtMTUxLDcgKzE1MSw3IEBAIGRlZmluZShg ZGV2aWNlX21vZGVsJywgYAogCiAJYWxsb3cgJDEgJDJfdGFyZ2V0OmRvbWFpbiB7IGdldGRvbWFp bmluZm8gc2h1dGRvd24gfTsKIAlhbGxvdyAkMSAkMl90YXJnZXQ6bW11IHsgbWFwX3JlYWQgbWFw X3dyaXRlIGFkanVzdCBwaHlzbWFwIHRhcmdldF9oYWNrIH07Ci0JYWxsb3cgJDEgJDJfdGFyZ2V0 Omh2bSB7IGdldHBhcmFtIHNldHBhcmFtIGh2bWN0bCBjYWNoZWF0dHIgc2VuZF9pcnEgZG0gfTsK KwlhbGxvdyAkMSAkMl90YXJnZXQ6aHZtIHsgZ2V0cGFyYW0gc2V0cGFyYW0gaHZtY3RsIGNhY2hl YXR0ciBkbSB9OwogJykKIAogIyBtYWtlX2RldmljZV9tb2RlbChwcml2LCBkbV9kb20sIGh2bV9k b20pCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCBiL3Rvb2xzL2xp YnhjL2luY2x1ZGUveGVuY3RybC5oCmluZGV4IDEzNDMxYmIuLjUzOWNjNjkgMTAwNjQ0Ci0tLSBh L3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCisrKyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUv eGVuY3RybC5oCkBAIC0xNjQxLDggKzE2NDEsOCBAQCBpbnQgeGNfaHZtX3NldF9tZW1fdHlwZSgK ICAqIHJlc3VtZXMuIAogICovCiBpbnQgeGNfaHZtX2luamVjdF90cmFwKAotICAgIHhjX2ludGVy ZmFjZSAqeGNoLCBkb21pZF90IGRvbSwgaW50IHZjcHUsIHVpbnQzMl90IHZlY3RvciwKLSAgICB1 aW50MzJfdCB0eXBlLCB1aW50MzJfdCBlcnJvcl9jb2RlLCB1aW50MzJfdCBpbnNuX2xlbiwKKyAg ICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sIGludCB2Y3B1LCB1aW50OF90IHZlY3Rv ciwKKyAgICB1aW50OF90IHR5cGUsIHVpbnQzMl90IGVycm9yX2NvZGUsIHVpbnQ4X3QgaW5zbl9s ZW4sCiAgICAgdWludDY0X3QgY3IyKTsKIAogLyoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hj X21pc2MuYyBiL3Rvb2xzL2xpYnhjL3hjX21pc2MuYwppbmRleCA1YjA2ZDZiLi45OGFiODI2IDEw MDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19taXNjLmMKKysrIGIvdG9vbHMvbGlieGMveGNfbWlz Yy5jCkBAIC01MjcsMjkgKzUyNywyMCBAQCBpbnQgeGNfaHZtX3NldF9wY2lfbGlua19yb3V0ZSgK IH0KIAogaW50IHhjX2h2bV9pbmplY3RfbXNpKAotICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21p ZF90IGRvbSwgdWludDY0X3QgYWRkciwgdWludDMyX3QgZGF0YSkKKyAgICB4Y19pbnRlcmZhY2Ug KnhjaCwgZG9taWRfdCBkb20sIHVpbnQ2NF90IG1zaV9hZGRyLCB1aW50MzJfdCBtc2lfZGF0YSkK IHsKLSAgICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVIoc3RydWN0IHhlbl9odm1faW5qZWN0X21z aSwgYXJnKTsKLSAgICBpbnQgcmM7Ci0KLSAgICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2Fs bG9jKHhjaCwgYXJnLCBzaXplb2YoKmFyZykpOwotICAgIGlmICggYXJnID09IE5VTEwgKQotICAg IHsKLSAgICAgICAgUEVSUk9SKCJDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciB4Y19odm1f aW5qZWN0X21zaSBoeXBlcmNhbGwiKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KKyAgICBz dHJ1Y3QgeGVuX2RtX29wIG9wOworICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW5qZWN0X21zaSAqZGF0 YTsKIAotICAgIGFyZy0+ZG9taWQgPSBkb207Ci0gICAgYXJnLT5hZGRyICA9IGFkZHI7Ci0gICAg YXJnLT5kYXRhICA9IGRhdGE7CisgICAgbWVtc2V0KCZvcCwgMCwgc2l6ZW9mKG9wKSk7CiAKLSAg ICByYyA9IHhlbmNhbGwyKHhjaC0+eGNhbGwsIF9fSFlQRVJWSVNPUl9odm1fb3AsCi0gICAgICAg ICAgICAgICAgICBIVk1PUF9pbmplY3RfbXNpLAotICAgICAgICAgICAgICAgICAgSFlQRVJDQUxM X0JVRkZFUl9BU19BUkcoYXJnKSk7CisgICAgb3Aub3AgPSBYRU5fRE1PUF9pbmplY3RfbXNpOwor ICAgIGRhdGEgPSAmb3AudS5pbmplY3RfbXNpOwogCi0gICAgeGNfaHlwZXJjYWxsX2J1ZmZlcl9m cmVlKHhjaCwgYXJnKTsKKyAgICBkYXRhLT5hZGRyID0gbXNpX2FkZHI7CisgICAgZGF0YS0+ZGF0 YSA9IG1zaV9kYXRhOwogCi0gICAgcmV0dXJuIHJjOworICAgIHJldHVybiBkb19kbV9vcCh4Y2gs IGRvbSwgMSwgJm9wLCBzaXplb2Yob3ApKTsKIH0KIAogaW50IHhjX2h2bV90cmFja19kaXJ0eV92 cmFtKApAQCAtNjA4LDM1ICs1OTksMjYgQEAgaW50IHhjX2h2bV9zZXRfbWVtX3R5cGUoCiB9CiAK IGludCB4Y19odm1faW5qZWN0X3RyYXAoCi0gICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3Qg ZG9tLCBpbnQgdmNwdSwgdWludDMyX3QgdmVjdG9yLAotICAgIHVpbnQzMl90IHR5cGUsIHVpbnQz Ml90IGVycm9yX2NvZGUsIHVpbnQzMl90IGluc25fbGVuLAorICAgIHhjX2ludGVyZmFjZSAqeGNo LCBkb21pZF90IGRvbSwgaW50IHZjcHUsIHVpbnQ4X3QgdmVjdG9yLAorICAgIHVpbnQ4X3QgdHlw ZSwgdWludDMyX3QgZXJyb3JfY29kZSwgdWludDhfdCBpbnNuX2xlbiwKICAgICB1aW50NjRfdCBj cjIpCiB7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExfQlVGRkVSKHN0cnVjdCB4ZW5faHZtX2luamVj dF90cmFwLCBhcmcpOwotICAgIGludCByYzsKLQotICAgIGFyZyA9IHhjX2h5cGVyY2FsbF9idWZm ZXJfYWxsb2MoeGNoLCBhcmcsIHNpemVvZigqYXJnKSk7Ci0gICAgaWYgKCBhcmcgPT0gTlVMTCAp Ci0gICAgewotICAgICAgICBQRVJST1IoIkNvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIHhj X2h2bV9pbmplY3RfdHJhcCBoeXBlcmNhbGwiKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0K KyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOworICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW5qZWN0X3Ry YXAgKmRhdGE7CiAKLSAgICBhcmctPmRvbWlkICAgICAgID0gZG9tOwotICAgIGFyZy0+dmNwdWlk ICAgICAgPSB2Y3B1OwotICAgIGFyZy0+dmVjdG9yICAgICAgPSB2ZWN0b3I7Ci0gICAgYXJnLT50 eXBlICAgICAgICA9IHR5cGU7Ci0gICAgYXJnLT5lcnJvcl9jb2RlICA9IGVycm9yX2NvZGU7Ci0g ICAgYXJnLT5pbnNuX2xlbiAgICA9IGluc25fbGVuOwotICAgIGFyZy0+Y3IyICAgICAgICAgPSBj cjI7CisgICAgbWVtc2V0KCZvcCwgMCwgc2l6ZW9mKG9wKSk7CiAKLSAgICByYyA9IHhlbmNhbGwy KHhjaC0+eGNhbGwsIF9fSFlQRVJWSVNPUl9odm1fb3AsCi0gICAgICAgICAgICAgICAgICBIVk1P UF9pbmplY3RfdHJhcCwKLSAgICAgICAgICAgICAgICAgIEhZUEVSQ0FMTF9CVUZGRVJfQVNfQVJH KGFyZykpOworICAgIG9wLm9wID0gWEVOX0RNT1BfaW5qZWN0X3RyYXA7CisgICAgZGF0YSA9ICZv cC51LmluamVjdF90cmFwOwogCi0gICAgeGNfaHlwZXJjYWxsX2J1ZmZlcl9mcmVlKHhjaCwgYXJn KTsKKyAgICBkYXRhLT52Y3B1aWQgPSB2Y3B1OworICAgIGRhdGEtPnZlY3RvciA9IHZlY3RvcjsK KyAgICBkYXRhLT50eXBlID0gdHlwZTsKKyAgICBkYXRhLT5lcnJvcl9jb2RlID0gZXJyb3JfY29k ZTsKKyAgICBkYXRhLT5pbnNuX2xlbiA9IGluc25fbGVuOworICAgIGRhdGEtPmNyMiA9IGNyMjsK IAotICAgIHJldHVybiByYzsKKyAgICByZXR1cm4gZG9fZG1fb3AoeGNoLCBkb20sIDEsICZvcCwg c2l6ZW9mKG9wKSk7CiB9CiAKIGludCB4Y19saXZlcGF0Y2hfdXBsb2FkKHhjX2ludGVyZmFjZSAq eGNoLApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9kbS5jIGIveGVuL2FyY2gveDg2L2h2 bS9kbS5jCmluZGV4IGNjNjhiYTkuLmJhODg3NjYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9o dm0vZG0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKQEAgLTIzNyw2ICsyMzcsMjYgQEAg c3RhdGljIGludCBzZXRfbWVtX3R5cGUoc3RydWN0IGRvbWFpbiAqZCwKICAgICByZXR1cm4gcmM7 CiB9CiAKK3N0YXRpYyBpbnQgaW5qZWN0X2V2ZW50KHN0cnVjdCBkb21haW4gKmQsCisgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgeGVuX2RtX29wX2luamVjdF9ldmVudCAqZGF0 YSkKK3sKKyAgICBzdHJ1Y3QgdmNwdSAqdjsKKworICAgIGlmICggZGF0YS0+dmNwdWlkID49IGQt Pm1heF92Y3B1cyB8fCAhKHYgPSBkLT52Y3B1W2RhdGEtPnZjcHVpZF0pICkKKyAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CisKKyAgICBpZiAoIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0X2V2ZW50LnZl Y3RvciAhPSAtMSApCisgICAgICAgIHJldHVybiAtRUJVU1k7CisKKyAgICB2LT5hcmNoLmh2bV92 Y3B1LmluamVjdF9ldmVudC50eXBlID0gZGF0YS0+dHlwZTsKKyAgICB2LT5hcmNoLmh2bV92Y3B1 LmluamVjdF9ldmVudC5pbnNuX2xlbiA9IGRhdGEtPmluc25fbGVuOworICAgIHYtPmFyY2guaHZt X3ZjcHUuaW5qZWN0X2V2ZW50LmVycm9yX2NvZGUgPSBkYXRhLT5lcnJvcl9jb2RlOworICAgIHYt PmFyY2guaHZtX3ZjcHUuaW5qZWN0X2V2ZW50LmNyMiA9IGRhdGEtPmNyMjsKKyAgICB2LT5hcmNo Lmh2bV92Y3B1LmluamVjdF9ldmVudC52ZWN0b3IgPSBkYXRhLT52ZWN0b3I7CisKKyAgICByZXR1 cm4gMDsKK30KKwogc3RhdGljIGludCBkbV9vcChkb21pZF90IGRvbWlkLAogICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgbnJfYnVmcywKICAgICAgICAgICAgICAgICAgeGVuX2RtX29wX2J1 Zl90IGJ1ZnNbXSkKQEAgLTQzMyw2ICs0NTMsMzEgQEAgc3RhdGljIGludCBkbV9vcChkb21pZF90 IGRvbWlkLAogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIFhFTl9ETU9QX2luamVj dF9ldmVudDoKKyAgICB7CisgICAgICAgIGNvbnN0IHN0cnVjdCB4ZW5fZG1fb3BfaW5qZWN0X2V2 ZW50ICpkYXRhID0KKyAgICAgICAgICAgICZvcC51LmluamVjdF9ldmVudDsKKworICAgICAgICBy YyA9IC1FSU5WQUw7CisgICAgICAgIGlmICggZGF0YS0+cGFkMCB8fCBkYXRhLT5wYWQxICkKKyAg ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHJjID0gaW5qZWN0X2V2ZW50KGQsIGRhdGEpOwor ICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBYRU5fRE1PUF9pbmplY3RfbXNpOgorICAg IHsKKyAgICAgICAgY29uc3Qgc3RydWN0IHhlbl9kbV9vcF9pbmplY3RfbXNpICpkYXRhID0KKyAg ICAgICAgICAgICZvcC51LmluamVjdF9tc2k7CisKKyAgICAgICAgcmMgPSAtRUlOVkFMOworICAg ICAgICBpZiAoIGRhdGEtPnBhZCApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICByYyA9 IGh2bV9pbmplY3RfbXNpKGQsIGRhdGEtPmFkZHIsIGRhdGEtPmRhdGEpOworICAgICAgICBicmVh azsKKyAgICB9CisKICAgICBkZWZhdWx0OgogICAgICAgICByYyA9IC1FT1BOT1RTVVBQOwogICAg ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJj aC94ODYvaHZtL2h2bS5jCmluZGV4IDZiNmYzZWUuLjZjODIzZGUgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwpAQCAtNTM5LDEy ICs1MzksMTIgQEAgdm9pZCBodm1fZG9fcmVzdW1lKHN0cnVjdCB2Y3B1ICp2KQogICAgIH0KIAog ICAgIC8qIEluamVjdCBwZW5kaW5nIGh3L3N3IHRyYXAgKi8KLSAgICBpZiAoIHYtPmFyY2guaHZt X3ZjcHUuaW5qZWN0X3RyYXAudmVjdG9yICE9IC0xICkKKyAgICBpZiAoIHYtPmFyY2guaHZtX3Zj cHUuaW5qZWN0X2V2ZW50LnZlY3RvciAhPSAtMSApCiAgICAgewogICAgICAgICBpZiAoICFodm1f ZXZlbnRfcGVuZGluZyh2KSApCi0gICAgICAgICAgICBodm1faW5qZWN0X2V2ZW50KCZ2LT5hcmNo Lmh2bV92Y3B1LmluamVjdF90cmFwKTsKKyAgICAgICAgICAgIGh2bV9pbmplY3RfZXZlbnQoJnYt PmFyY2guaHZtX3ZjcHUuaW5qZWN0X2V2ZW50KTsKIAotICAgICAgICB2LT5hcmNoLmh2bV92Y3B1 LmluamVjdF90cmFwLnZlY3RvciA9IC0xOworICAgICAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVj dF9ldmVudC52ZWN0b3IgPSAtMTsKICAgICB9CiAKICAgICBpZiAoIHVubGlrZWx5KHYtPmFyY2gu dm1fZXZlbnQpICYmIHYtPmFyY2gubW9uaXRvci5uZXh0X2ludGVycnVwdF9lbmFibGVkICkKQEAg LTE1MTUsNyArMTUxNSw3IEBAIGludCBodm1fdmNwdV9pbml0aWFsaXNlKHN0cnVjdCB2Y3B1ICp2 KQogICAgICAgICAodm9pZCgqKSh1bnNpZ25lZCBsb25nKSlodm1fYXNzZXJ0X2V2dGNobl9pcnEs CiAgICAgICAgICh1bnNpZ25lZCBsb25nKXYpOwogCi0gICAgdi0+YXJjaC5odm1fdmNwdS5pbmpl Y3RfdHJhcC52ZWN0b3IgPSAtMTsKKyAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF9ldmVudC52 ZWN0b3IgPSAtMTsKIAogICAgIGlmICggaXNfcHZoX2RvbWFpbihkKSApCiAgICAgewpAQCAtNDE4 OCwzNSArNDE4OCw2IEBAIHN0YXRpYyB2b2lkIGh2bV9zM19yZXN1bWUoc3RydWN0IGRvbWFpbiAq ZCkKICAgICB9CiB9CiAKLXN0YXRpYyBpbnQgaHZtb3BfaW5qZWN0X21zaSgKLSAgICBYRU5fR1VF U1RfSEFORExFX1BBUkFNKHhlbl9odm1faW5qZWN0X21zaV90KSB1b3ApCi17Ci0gICAgc3RydWN0 IHhlbl9odm1faW5qZWN0X21zaSBvcDsKLSAgICBzdHJ1Y3QgZG9tYWluICpkOwotICAgIGludCBy YzsKLQotICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZvcCwgdW9wLCAxKSApCi0gICAgICAgIHJl dHVybiAtRUZBVUxUOwotCi0gICAgcmMgPSByY3VfbG9ja19yZW1vdGVfZG9tYWluX2J5X2lkKG9w LmRvbWlkLCAmZCk7Ci0gICAgaWYgKCByYyAhPSAwICkKLSAgICAgICAgcmV0dXJuIHJjOwotCi0g ICAgcmMgPSAtRUlOVkFMOwotICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICBn b3RvIG91dDsKLQotICAgIHJjID0geHNtX2h2bV9pbmplY3RfbXNpKFhTTV9ETV9QUklWLCBkKTsK LSAgICBpZiAoIHJjICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IGh2bV9pbmplY3Rf bXNpKGQsIG9wLmFkZHIsIG9wLmRhdGEpOwotCi0gb3V0OgotICAgIHJjdV91bmxvY2tfZG9tYWlu KGQpOwotICAgIHJldHVybiByYzsKLX0KLQogc3RhdGljIGludCBodm1vcF9mbHVzaF90bGJfYWxs KHZvaWQpCiB7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IGN1cnJlbnQtPmRvbWFpbjsKQEAgLTQ4 NjcsMTEgKzQ4MzgsNiBAQCBsb25nIGRvX2h2bV9vcCh1bnNpZ25lZCBsb25nIG9wLCBYRU5fR1VF U1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0 KGFyZywgeGVuX2h2bV9wYXJhbV90KSk7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBIVk1P UF9pbmplY3RfbXNpOgotICAgICAgICByYyA9IGh2bW9wX2luamVjdF9tc2koCi0gICAgICAgICAg ICBndWVzdF9oYW5kbGVfY2FzdChhcmcsIHhlbl9odm1faW5qZWN0X21zaV90KSk7Ci0gICAgICAg IGJyZWFrOwotCiAgICAgY2FzZSBIVk1PUF9mbHVzaF90bGJzOgogICAgICAgICByYyA9IGd1ZXN0 X2hhbmRsZV9pc19udWxsKGFyZykgPyBodm1vcF9mbHVzaF90bGJfYWxsKCkgOiAtRUlOVkFMOwog ICAgICAgICBicmVhazsKQEAgLTQ5MjgsNDggKzQ4OTQsNiBAQCBsb25nIGRvX2h2bV9vcCh1bnNp Z25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAg YnJlYWs7CiAgICAgfQogCi0gICAgY2FzZSBIVk1PUF9pbmplY3RfdHJhcDogCi0gICAgewotICAg ICAgICB4ZW5faHZtX2luamVjdF90cmFwX3QgdHI7Ci0gICAgICAgIHN0cnVjdCBkb21haW4gKmQ7 Ci0gICAgICAgIHN0cnVjdCB2Y3B1ICp2OwotCi0gICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0 KCZ0ciwgYXJnLCAxICkgKQotICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7Ci0KLSAgICAgICAg cmMgPSByY3VfbG9ja19yZW1vdGVfZG9tYWluX2J5X2lkKHRyLmRvbWlkLCAmZCk7Ci0gICAgICAg IGlmICggcmMgIT0gMCApCi0gICAgICAgICAgICByZXR1cm4gcmM7Ci0KLSAgICAgICAgcmMgPSAt RUlOVkFMOwotICAgICAgICBpZiAoICFpc19odm1fZG9tYWluKGQpICkKLSAgICAgICAgICAgIGdv dG8gaW5qdHJhcF9mYWlsOwotCi0gICAgICAgIHJjID0geHNtX2h2bV9jb250cm9sKFhTTV9ETV9Q UklWLCBkLCBvcCk7Ci0gICAgICAgIGlmICggcmMgKQotICAgICAgICAgICAgZ290byBpbmp0cmFw X2ZhaWw7Ci0KLSAgICAgICAgcmMgPSAtRU5PRU5UOwotICAgICAgICBpZiAoIHRyLnZjcHVpZCA+ PSBkLT5tYXhfdmNwdXMgfHwgKHYgPSBkLT52Y3B1W3RyLnZjcHVpZF0pID09IE5VTEwgKQotICAg ICAgICAgICAgZ290byBpbmp0cmFwX2ZhaWw7Ci0gICAgICAgIAotICAgICAgICBpZiAoIHYtPmFy Y2guaHZtX3ZjcHUuaW5qZWN0X3RyYXAudmVjdG9yICE9IC0xICkKLSAgICAgICAgICAgIHJjID0g LUVCVVNZOwotICAgICAgICBlbHNlIAotICAgICAgICB7Ci0gICAgICAgICAgICB2LT5hcmNoLmh2 bV92Y3B1LmluamVjdF90cmFwLnZlY3RvciA9IHRyLnZlY3RvcjsKLSAgICAgICAgICAgIHYtPmFy Y2guaHZtX3ZjcHUuaW5qZWN0X3RyYXAudHlwZSA9IHRyLnR5cGU7Ci0gICAgICAgICAgICB2LT5h cmNoLmh2bV92Y3B1LmluamVjdF90cmFwLmVycm9yX2NvZGUgPSB0ci5lcnJvcl9jb2RlOwotICAg ICAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5pbmplY3RfdHJhcC5pbnNuX2xlbiA9IHRyLmluc25f bGVuOwotICAgICAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5pbmplY3RfdHJhcC5jcjIgPSB0ci5j cjI7Ci0gICAgICAgICAgICByYyA9IDA7Ci0gICAgICAgIH0KLQotICAgIGluanRyYXBfZmFpbDoK LSAgICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQog ICAgIGNhc2UgSFZNT1BfZ3Vlc3RfcmVxdWVzdF92bV9ldmVudDoKICAgICAgICAgaWYgKCBndWVz dF9oYW5kbGVfaXNfbnVsbChhcmcpICkKICAgICAgICAgICAgIG1vbml0b3JfZ3Vlc3RfcmVxdWVz dCgpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdmNwdS5oIGIveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9odm0vdmNwdS5oCmluZGV4IDE3YWI5YzAuLmU1ZWViNWYgMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZjcHUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS92Y3B1LmgKQEAgLTIwNCw3ICsyMDQsNyBAQCBzdHJ1Y3QgaHZtX3ZjcHUgewogICAg IHZvaWQgKmZwdV9leGNlcHRpb25fY2FsbGJhY2tfYXJnOwogCiAgICAgLyogUGVuZGluZyBody9z dyBpbnRlcnJ1cHQgKC52ZWN0b3IgPSAtMSBtZWFucyBub3RoaW5nIHBlbmRpbmcpLiAqLwotICAg IHN0cnVjdCB4ODZfZXZlbnQgICAgIGluamVjdF90cmFwOworICAgIHN0cnVjdCB4ODZfZXZlbnQg ICAgIGluamVjdF9ldmVudDsKIAogICAgIHN0cnVjdCB2aXJpZGlhbl92Y3B1IHZpcmlkaWFuOwog fTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaCBiL3hlbi9pbmNs dWRlL3B1YmxpYy9odm0vZG1fb3AuaAppbmRleCBkMjY2OTE1Li5jODQzZTVmIDEwMDY0NAotLS0g YS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGlj L2h2bS9kbV9vcC5oCkBAIC0yNzEsNiArMjcxLDUyIEBAIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X21l bV90eXBlIHsKICAgICB1aW50NjRfYWxpZ25lZF90IGZpcnN0X3BmbjsKIH07CiAKKy8qCisgKiBY RU5fRE1PUF9pbmplY3RfZXZlbnQ6IEluamVjdCBhbiBldmVudCBpbnRvIGEgVkNQVSwgd2hpY2gg d2lsbAorICogICAgICAgICAgICAgICAgICAgICAgICBnZXQgdGFrZW4gdXAgd2hlbiBpdCBpcyBu ZXh0IHNjaGVkdWxlZC4KKyAqCisgKiBOb3RlIHRoYXQgdGhlIGNhbGxlciBzaG91bGQga25vdyBl bm91Z2ggb2YgdGhlIHN0YXRlIG9mIHRoZSBDUFUgYmVmb3JlCisgKiBpbmplY3RpbmcsIHRvIGtu b3cgd2hhdCB0aGUgZWZmZWN0IG9mIGluamVjdGluZyB0aGUgZXZlbnQgd2lsbCBiZS4KKyAqLwor I2RlZmluZSBYRU5fRE1PUF9pbmplY3RfZXZlbnQgMTMKKworc3RydWN0IHhlbl9kbV9vcF9pbmpl Y3RfZXZlbnQgeworICAgIC8qIElOIC0gaW5kZXggb2YgdkNQVSAqLworICAgIHVpbnQzMl90IHZj cHVpZDsKKyAgICAvKiBJTiAtIGludGVycnVwdCB2ZWN0b3IgKi8KKyAgICB1aW50OF90IHZlY3Rv cjsKKyAgICAvKiBJTiAtIGV2ZW50IHR5cGUgKERNT1BfRVZFTlRfKiApICovCisgICAgdWludDhf dCB0eXBlOworLyogTkIuIFRoaXMgZW51bWVyYXRpb24gcHJlY2lzZWx5IG1hdGNoZXMgaHZtLmg6 WDg2X0VWRU5UVFlQRV8qICovCisjIGRlZmluZSBYRU5fRE1PUF9FVkVOVF9leHRfaW50ICAgIDAg LyogZXh0ZXJuYWwgaW50ZXJydXB0ICovCisjIGRlZmluZSBYRU5fRE1PUF9FVkVOVF9ubWkgICAg ICAgIDIgLyogbm1pICovCisjIGRlZmluZSBYRU5fRE1PUF9FVkVOVF9od19leGMgICAgIDMgLyog aGFyZHdhcmUgZXhjZXB0aW9uICovCisjIGRlZmluZSBYRU5fRE1PUF9FVkVOVF9zd19pbnQgICAg IDQgLyogc29mdHdhcmUgaW50ZXJydXB0IChDRCBubikgKi8KKyMgZGVmaW5lIFhFTl9ETU9QX0VW RU5UX3ByaV9zd19leGMgNSAvKiBJQ0VCUCAoRjEpICovCisjIGRlZmluZSBYRU5fRE1PUF9FVkVO VF9zd19leGMgICAgIDYgLyogSU5UMyAoQ0MpLCBJTlRPIChDRSkgKi8KKyAgICAvKiBJTiAtIGlu c3RydWN0aW9uIGxlbmd0aCAqLworICAgIHVpbnQ4X3QgaW5zbl9sZW47CisgICAgdWludDhfdCBw YWQwOworICAgIC8qIElOIC0gZXJyb3IgY29kZSAob3IgfjAgdG8gc2tpcCkgKi8KKyAgICB1aW50 MzJfdCBlcnJvcl9jb2RlOworICAgIHVpbnQzMl90IHBhZDE7CisgICAgLyogSU4gLSBDUjIgZm9y IHBhZ2UgZmF1bHRzICovCisgICAgdWludDY0X2FsaWduZWRfdCBjcjI7Cit9OworCisvKgorICog WEVOX0RNT1BfaW5qZWN0X21zaTogSW5qZWN0IGFuIE1TSSBmb3IgYW4gZW11bGF0ZWQgZGV2aWNl LgorICovCisjZGVmaW5lIFhFTl9ETU9QX2luamVjdF9tc2kgMTQKKworc3RydWN0IHhlbl9kbV9v cF9pbmplY3RfbXNpIHsKKyAgICAvKiBJTiAtIE1TSSBkYXRhIChsb3dlciAzMiBiaXRzKSAqLwor ICAgIHVpbnQzMl90IGRhdGE7CisgICAgdWludDMyX3QgcGFkOworICAgIC8qIElOIC0gTVNJIGFk ZHJlc3MgKDB4ZmVleHh4eHgpICovCisgICAgdWludDY0X2FsaWduZWRfdCBhZGRyOworfTsKKwog c3RydWN0IHhlbl9kbV9vcCB7CiAgICAgdWludDMyX3Qgb3A7CiAgICAgdWludDMyX3QgcGFkOwpA QCAtMjg3LDYgKzMzMyw4IEBAIHN0cnVjdCB4ZW5fZG1fb3AgewogICAgICAgICBzdHJ1Y3QgeGVu X2RtX29wX3NldF9wY2lfbGlua19yb3V0ZSBzZXRfcGNpX2xpbmtfcm91dGU7CiAgICAgICAgIHN0 cnVjdCB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5IG1vZGlmaWVkX21lbW9yeTsKICAgICAgICAg c3RydWN0IHhlbl9kbV9vcF9zZXRfbWVtX3R5cGUgc2V0X21lbV90eXBlOworICAgICAgICBzdHJ1 Y3QgeGVuX2RtX29wX2luamVjdF9ldmVudCBpbmplY3RfZXZlbnQ7CisgICAgICAgIHN0cnVjdCB4 ZW5fZG1fb3BfaW5qZWN0X21zaSBpbmplY3RfbXNpOwogICAgIH0gdTsKIH07CiAKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMv aHZtL2h2bV9vcC5oCmluZGV4IGQ3ZTJmMTIuLmJjMDBlZjAgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL3B1YmxpYy9odm0vaHZtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1f b3AuaApAQCAtMTMzLDM4ICsxMzMsNiBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZt X3hlbnRyYWNlX3QpOwogLyogRGVwcmVjYXRlZCBieSBYRU5NRU1fYWNjZXNzX29wX2dldF9hY2Nl c3MgKi8KICNkZWZpbmUgSFZNT1BfZ2V0X21lbV9hY2Nlc3MgICAgICAgIDEzCiAKLSNkZWZpbmUg SFZNT1BfaW5qZWN0X3RyYXAgICAgICAgICAgICAxNAotLyogSW5qZWN0IGEgdHJhcCBpbnRvIGEg VkNQVSwgd2hpY2ggd2lsbCBnZXQgdGFrZW4gdXAgb24gdGhlIG5leHQKLSAqIHNjaGVkdWxpbmcg b2YgaXQuIE5vdGUgdGhhdCB0aGUgY2FsbGVyIHNob3VsZCBrbm93IGVub3VnaCBvZiB0aGUKLSAq IHN0YXRlIG9mIHRoZSBDUFUgYmVmb3JlIGluamVjdGluZywgdG8ga25vdyB3aGF0IHRoZSBlZmZl Y3Qgb2YKLSAqIGluamVjdGluZyB0aGUgdHJhcCB3aWxsIGJlLgotICovCi1zdHJ1Y3QgeGVuX2h2 bV9pbmplY3RfdHJhcCB7Ci0gICAgLyogRG9tYWluIHRvIGJlIHF1ZXJpZWQuICovCi0gICAgZG9t aWRfdCBkb21pZDsKLSAgICAvKiBWQ1BVICovCi0gICAgdWludDMyX3QgdmNwdWlkOwotICAgIC8q IFZlY3RvciBudW1iZXIgKi8KLSAgICB1aW50MzJfdCB2ZWN0b3I7Ci0gICAgLyogVHJhcCB0eXBl IChIVk1PUF9UUkFQXyopICovCi0gICAgdWludDMyX3QgdHlwZTsKLS8qIE5CLiBUaGlzIGVudW1l cmF0aW9uIHByZWNpc2VseSBtYXRjaGVzIGh2bS5oOlg4Nl9FVkVOVFRZUEVfKiAqLwotIyBkZWZp bmUgSFZNT1BfVFJBUF9leHRfaW50ICAgIDAgLyogZXh0ZXJuYWwgaW50ZXJydXB0ICovCi0jIGRl ZmluZSBIVk1PUF9UUkFQX25taSAgICAgICAgMiAvKiBubWkgKi8KLSMgZGVmaW5lIEhWTU9QX1RS QVBfaHdfZXhjICAgICAzIC8qIGhhcmR3YXJlIGV4Y2VwdGlvbiAqLwotIyBkZWZpbmUgSFZNT1Bf VFJBUF9zd19pbnQgICAgIDQgLyogc29mdHdhcmUgaW50ZXJydXB0IChDRCBubikgKi8KLSMgZGVm aW5lIEhWTU9QX1RSQVBfcHJpX3N3X2V4YyA1IC8qIElDRUJQIChGMSkgKi8KLSMgZGVmaW5lIEhW TU9QX1RSQVBfc3dfZXhjICAgICA2IC8qIElOVDMgKENDKSwgSU5UTyAoQ0UpICovCi0gICAgLyog RXJyb3IgY29kZSwgb3IgfjB1IHRvIHNraXAgKi8KLSAgICB1aW50MzJfdCBlcnJvcl9jb2RlOwot ICAgIC8qIEludHJ1Y3Rpb24gbGVuZ3RoICovCi0gICAgdWludDMyX3QgaW5zbl9sZW47Ci0gICAg LyogQ1IyIGZvciBwYWdlIGZhdWx0cyAqLwotICAgIHVpbnQ2NF9hbGlnbmVkX3QgY3IyOwotfTsK LXR5cGVkZWYgc3RydWN0IHhlbl9odm1faW5qZWN0X3RyYXAgeGVuX2h2bV9pbmplY3RfdHJhcF90 OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9pbmplY3RfdHJhcF90KTsKLQogI2Vu ZGlmIC8qIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKSAqLwogCiAj ZGVmaW5lIEhWTU9QX2dldF9tZW1fdHlwZSAgICAxNQpAQCAtMTg0LDE5ICsxNTIsNiBAQCBERUZJ TkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2dldF9tZW1fdHlwZV90KTsKIC8qIEZvbGxvd2lu ZyB0b29scy1vbmx5IGludGVyZmFjZXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuICovCiAjaWYgZGVm aW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCiAKLS8qIE1TSSBpbmplY3Rp b24gZm9yIGVtdWxhdGVkIGRldmljZXMgKi8KLSNkZWZpbmUgSFZNT1BfaW5qZWN0X21zaSAgICAg ICAgIDE2Ci1zdHJ1Y3QgeGVuX2h2bV9pbmplY3RfbXNpIHsKLSAgICAvKiBEb21haW4gdG8gYmUg aW5qZWN0ZWQgKi8KLSAgICBkb21pZF90ICAgZG9taWQ7Ci0gICAgLyogRGF0YSAtLSBsb3dlciAz MiBiaXRzICovCi0gICAgdWludDMyX3QgIGRhdGE7Ci0gICAgLyogQWRkcmVzcyAoMHhmZWV4eHh4 eCkgKi8KLSAgICB1aW50NjRfdCAgYWRkcjsKLX07Ci10eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2lu amVjdF9tc2kgeGVuX2h2bV9pbmplY3RfbXNpX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4 ZW5faHZtX2luamVjdF9tc2lfdCk7Ci0KIC8qCiAgKiBEZWZpbml0aW9ucyByZWxhdGluZyB0byBE TU9QX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIuIChEZWZpbmVkIGhlcmUgZm9yCiAgKiBiYWNrd2FyZHMg Y29tcGF0aWJpbGl0eSkuCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaCBiL3hl bi9pbmNsdWRlL3hzbS9kdW1teS5oCmluZGV4IGQzZGU0YjcuLjRiMjdhZTcgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCisrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCkBA IC02MTAsMTIgKzYxMCw2IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCB4c21fc2hhZG93X2NvbnRy b2woWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIHVpbnQzCiAgICAgcmV0dXJuIHhz bV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7CiB9CiAKLXN0YXRp YyBYU01fSU5MSU5FIGludCB4c21faHZtX2luamVjdF9tc2koWFNNX0RFRkFVTFRfQVJHIHN0cnVj dCBkb21haW4gKmQpCi17Ci0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0RNX1BSSVYpOwotICAg IHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOwot fQotCiBzdGF0aWMgWFNNX0lOTElORSBpbnQgeHNtX21lbV9zaGFyaW5nX29wKFhTTV9ERUZBVUxU X0FSRyBzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgZG9tYWluICpjZCwgaW50IG9wKQogewogICAg IFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9ETV9QUklWKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L3hzbS94c20uaCBiL3hlbi9pbmNsdWRlL3hzbS94c20uaAppbmRleCAyZTRhM2NlLi4yY2Y3YWMx IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94c20veHNtLmgKKysrIGIveGVuL2luY2x1ZGUveHNt L3hzbS5oCkBAIC0xNjIsNyArMTYyLDYgQEAgc3RydWN0IHhzbV9vcGVyYXRpb25zIHsKICNpZmRl ZiBDT05GSUdfWDg2CiAgICAgaW50ICgqZG9fbWNhKSAodm9pZCk7CiAgICAgaW50ICgqc2hhZG93 X2NvbnRyb2wpIChzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBvcCk7Ci0gICAgaW50ICgqaHZt X2luamVjdF9tc2kpIChzdHJ1Y3QgZG9tYWluICpkKTsKICAgICBpbnQgKCptZW1fc2hhcmluZ19v cCkgKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkb21haW4gKmNkLCBpbnQgb3ApOwogICAgIGlu dCAoKmFwaWMpIChzdHJ1Y3QgZG9tYWluICpkLCBpbnQgY21kKTsKICAgICBpbnQgKCptZW10eXBl KSAodWludDMyX3QgYWNjZXNzKTsKQEAgLTYzMiwxMSArNjMxLDYgQEAgc3RhdGljIGlubGluZSBp bnQgeHNtX3NoYWRvd19jb250cm9sICh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAq ZCwgdWludDMKICAgICByZXR1cm4geHNtX29wcy0+c2hhZG93X2NvbnRyb2woZCwgb3ApOwogfQog Ci1zdGF0aWMgaW5saW5lIGludCB4c21faHZtX2luamVjdF9tc2kgKHhzbV9kZWZhdWx0X3QgZGVm LCBzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIHJldHVybiB4c21fb3BzLT5odm1faW5qZWN0X21z aShkKTsKLX0KLQogc3RhdGljIGlubGluZSBpbnQgeHNtX21lbV9zaGFyaW5nX29wICh4c21fZGVm YXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGRvbWFpbiAqY2QsIGludCBvcCkK IHsKICAgICByZXR1cm4geHNtX29wcy0+bWVtX3NoYXJpbmdfb3AoZCwgY2QsIG9wKTsKZGlmZiAt LWdpdCBhL3hlbi94c20vZHVtbXkuYyBiL3hlbi94c20vZHVtbXkuYwppbmRleCBmMTU2OGRkLi4x ZjY1OWM3IDEwMDY0NAotLS0gYS94ZW4veHNtL2R1bW15LmMKKysrIGIveGVuL3hzbS9kdW1teS5j CkBAIC0xNDUsNyArMTQ1LDYgQEAgdm9pZCBfX2luaXQgeHNtX2ZpeHVwX29wcyAoc3RydWN0IHhz bV9vcGVyYXRpb25zICpvcHMpCiAjaWZkZWYgQ09ORklHX1g4NgogICAgIHNldF90b19kdW1teV9p Zl9udWxsKG9wcywgZG9fbWNhKTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNoYWRv d19jb250cm9sKTsKLSAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGh2bV9pbmplY3RfbXNp KTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG1lbV9zaGFyaW5nX29wKTsKICAgICBz ZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGFwaWMpOwogICAgIHNldF90b19kdW1teV9pZl9udWxs KG9wcywgbWFjaGluZV9tZW1vcnlfbWFwKTsKZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2svaG9v a3MuYyBiL3hlbi94c20vZmxhc2svaG9va3MuYwppbmRleCA2ODVjYmZhLi45MzMyY2ExIDEwMDY0 NAotLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5j CkBAIC0xNTAyLDExICsxNTAyLDYgQEAgc3RhdGljIGludCBmbGFza19pb3BvcnRfbWFwcGluZyhz dHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBzdGFydCwgdWludDMyX3QgZW5kLAogICAgIHJldHVy biBmbGFza19pb3BvcnRfcGVybWlzc2lvbihkLCBzdGFydCwgZW5kLCBhY2Nlc3MpOwogfQogCi1z dGF0aWMgaW50IGZsYXNrX2h2bV9pbmplY3RfbXNpKHN0cnVjdCBkb21haW4gKmQpCi17Ci0gICAg cmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xBU1NfSFZNLCBIVk1fX1NFTkRfSVJRKTsK LX0KLQogc3RhdGljIGludCBmbGFza19tZW1fc2hhcmluZ19vcChzdHJ1Y3QgZG9tYWluICpkLCBz dHJ1Y3QgZG9tYWluICpjZCwgaW50IG9wKQogewogICAgIGludCByYyA9IGN1cnJlbnRfaGFzX3Bl cm0oY2QsIFNFQ0NMQVNTX0hWTSwgSFZNX19NRU1fU0hBUklORyk7CkBAIC0xNzg0LDcgKzE3Nzks NiBAQCBzdGF0aWMgc3RydWN0IHhzbV9vcGVyYXRpb25zIGZsYXNrX29wcyA9IHsKICAgICAuaHZt X3NldF9wY2lfaW50eF9sZXZlbCA9IGZsYXNrX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwsCiAgICAg Lmh2bV9zZXRfaXNhX2lycV9sZXZlbCA9IGZsYXNrX2h2bV9zZXRfaXNhX2lycV9sZXZlbCwKICAg ICAuaHZtX3NldF9wY2lfbGlua19yb3V0ZSA9IGZsYXNrX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUs Ci0gICAgLmh2bV9pbmplY3RfbXNpID0gZmxhc2tfaHZtX2luamVjdF9tc2ksCiAgICAgLm1lbV9z aGFyaW5nX29wID0gZmxhc2tfbWVtX3NoYXJpbmdfb3AsCiAgICAgLmFwaWMgPSBmbGFza19hcGlj LAogICAgIC5tYWNoaW5lX21lbW9yeV9tYXAgPSBmbGFza19tYWNoaW5lX21lbW9yeV9tYXAsCmRp ZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyBiL3hlbi94c20v Zmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCmluZGV4IDM4MWY2NTkuLjM2YTdkZjkgMTAwNjQ0 Ci0tLSBhL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCisrKyBiL3hlbi94c20v Zmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCkBAIC0yNjMsOCArMjYzLDcgQEAgY2xhc3MgaHZt CiAjIFhFTl9ET01DVExfcGluX21lbV9jYWNoZWF0dHIKICAgICBjYWNoZWF0dHIKICMgSFZNT1Bf Z2V0X21lbV90eXBlLAotIyBIVk1PUF9zZXRfbWVtX2FjY2VzcywgSFZNT1BfZ2V0X21lbV9hY2Nl c3MsIEhWTU9QX3BhZ2V0YWJsZV9keWluZywKLSMgSFZNT1BfaW5qZWN0X3RyYXAKKyMgSFZNT1Bf c2V0X21lbV9hY2Nlc3MsIEhWTU9QX2dldF9tZW1fYWNjZXNzLCBIVk1PUF9wYWdldGFibGVfZHlp bmcKICAgICBodm1jdGwKICMgWEVOX0RPTUNUTF9tZW1fc2hhcmluZ19vcCBhbmQgWEVOTUVNX3No YXJpbmdfb3Bfe3NoYXJlLGFkZF9waHlzbWFwfSB3aXRoOgogIyAgc291cmNlID0gdGhlIGRvbWFp biBtYWtpbmcgdGhlIGh5cGVyY2FsbApAQCAtMjcyLDggKzI3MSw2IEBAIGNsYXNzIGh2bQogICAg IG1lbV9zaGFyaW5nCiAjIFhFTl9ET01DVExfYXVkaXRfcDJtCiAgICAgYXVkaXRfcDJtCi0jIEhW TU9QX2luamVjdF9tc2kKLSAgICBzZW5kX2lycQogIyBjaGVja2VkIGluIFhFTk1FTV9zaGFyaW5n X29wX3tzaGFyZSxhZGRfcGh5c21hcH0gd2l0aDoKICMgIHNvdXJjZSA9IGRvbWFpbiB3aG9zZSBt ZW1vcnkgaXMgYmVpbmcgc2hhcmVkCiAjICB0YXJnZXQgPSBjbGllbnQgZG9tYWluCi0tIAoyLjEu NAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=