From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v4 03/11] viridian: use stack variables for viridian_vcpu and viridian_domain... Date: Thu, 7 Mar 2019 14:08:57 +0000 Message-ID: <20190307140906.1932-4-paul.durrant@citrix.com> References: <20190307140906.1932-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h1tiJ-00011n-FD for xen-devel@lists.xenproject.org; Thu, 07 Mar 2019 14:09:35 +0000 In-Reply-To: <20190307140906.1932-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Andrew Cooper , Paul Durrant , Wei Liu , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org Li4ud2hlcmUgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBkZXJlZmVyZW5jZSBpbnNpZGUgYSBmdW5j dGlvbi4KClRoaXMgc2hvcnRlbnMgdGhlIGNvZGUgYW5kIG1ha2VzIGl0IG1vcmUgcmVhZGFibGUu IE5vIGZ1bmN0aW9uYWwgY2hhbmdlLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVs LmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5j b20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDYzogV2Vp IExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6ICJSb2dlciBQYXUgTW9ubsOpIiA8cm9nZXIu cGF1QGNpdHJpeC5jb20+Cgp2NDoKIC0gTmV3IGluIHY0Ci0tLQogeGVuL2FyY2gveDg2L2h2bS92 aXJpZGlhbi9zeW5pYy5jICAgIHwgNDkgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogeGVu L2FyY2gveDg2L2h2bS92aXJpZGlhbi90aW1lLmMgICAgIHwgMjcgKysrKysrKystLS0tLS0tCiB4 ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuL3ZpcmlkaWFuLmMgfCA0NyArKysrKysrKysrKysrLS0t LS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspLCA1NCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuL3N5bmljLmMgYi94 ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuL3N5bmljLmMKaW5kZXggMjhlZGE3Nzk4Yy4uZjNkOWY3 YWU3NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi9zeW5pYy5jCisrKyBi L3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4vc3luaWMuYwpAQCAtMzAsNyArMzAsOCBAQCB0eXBl ZGVmIHVuaW9uIF9IVl9WUF9BU1NJU1RfUEFHRQogCiB2b2lkIHZpcmlkaWFuX2FwaWNfYXNzaXN0 X3NldChjb25zdCBzdHJ1Y3QgdmNwdSAqdikKIHsKLSAgICBIVl9WUF9BU1NJU1RfUEFHRSAqcHRy ID0gdi0+YXJjaC5odm0udmlyaWRpYW4tPnZwX2Fzc2lzdC5wdHI7CisgICAgc3RydWN0IHZpcmlk aWFuX3ZjcHUgKnZ2ID0gdi0+YXJjaC5odm0udmlyaWRpYW47CisgICAgSFZfVlBfQVNTSVNUX1BB R0UgKnB0ciA9IHZ2LT52cF9hc3Npc3QucHRyOwogCiAgICAgaWYgKCAhcHRyICkKICAgICAgICAg cmV0dXJuOwpAQCAtNDAsMjUgKzQxLDI1IEBAIHZvaWQgdmlyaWRpYW5fYXBpY19hc3Npc3Rfc2V0 KGNvbnN0IHN0cnVjdCB2Y3B1ICp2KQogICAgICAqIHdyb25nIGFuZCB0aGUgVk0gd2lsbCBtb3N0 IGxpa2VseSBoYW5nIHNvIGZvcmNlIGEgY3Jhc2ggbm93CiAgICAgICogdG8gbWFrZSB0aGUgcHJv YmxlbSBjbGVhci4KICAgICAgKi8KLSAgICBpZiAoIHYtPmFyY2guaHZtLnZpcmlkaWFuLT5hcGlj X2Fzc2lzdF9wZW5kaW5nICkKKyAgICBpZiAoIHZ2LT5hcGljX2Fzc2lzdF9wZW5kaW5nICkKICAg ICAgICAgZG9tYWluX2NyYXNoKHYtPmRvbWFpbik7CiAKLSAgICB2LT5hcmNoLmh2bS52aXJpZGlh bi0+YXBpY19hc3Npc3RfcGVuZGluZyA9IHRydWU7CisgICAgdnYtPmFwaWNfYXNzaXN0X3BlbmRp bmcgPSB0cnVlOwogICAgIHB0ci0+QXBpY0Fzc2lzdC5ub19lb2kgPSAxOwogfQogCiBib29sIHZp cmlkaWFuX2FwaWNfYXNzaXN0X2NvbXBsZXRlZChjb25zdCBzdHJ1Y3QgdmNwdSAqdikKIHsKLSAg ICBIVl9WUF9BU1NJU1RfUEFHRSAqcHRyID0gdi0+YXJjaC5odm0udmlyaWRpYW4tPnZwX2Fzc2lz dC5wdHI7CisgICAgc3RydWN0IHZpcmlkaWFuX3ZjcHUgKnZ2ID0gdi0+YXJjaC5odm0udmlyaWRp YW47CisgICAgSFZfVlBfQVNTSVNUX1BBR0UgKnB0ciA9IHZ2LT52cF9hc3Npc3QucHRyOwogCiAg ICAgaWYgKCAhcHRyICkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCB2LT5hcmNo Lmh2bS52aXJpZGlhbi0+YXBpY19hc3Npc3RfcGVuZGluZyAmJgotICAgICAgICAgIXB0ci0+QXBp Y0Fzc2lzdC5ub19lb2kgKQorICAgIGlmICggdnYtPmFwaWNfYXNzaXN0X3BlbmRpbmcgJiYgIXB0 ci0+QXBpY0Fzc2lzdC5ub19lb2kgKQogICAgIHsKICAgICAgICAgLyogQW4gRU9JIGhhcyBiZWVu IGF2b2lkZWQgKi8KLSAgICAgICAgdi0+YXJjaC5odm0udmlyaWRpYW4tPmFwaWNfYXNzaXN0X3Bl bmRpbmcgPSBmYWxzZTsKKyAgICAgICAgdnYtPmFwaWNfYXNzaXN0X3BlbmRpbmcgPSBmYWxzZTsK ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC02NywxNyArNjgsMjAgQEAgYm9vbCB2 aXJpZGlhbl9hcGljX2Fzc2lzdF9jb21wbGV0ZWQoY29uc3Qgc3RydWN0IHZjcHUgKnYpCiAKIHZv aWQgdmlyaWRpYW5fYXBpY19hc3Npc3RfY2xlYXIoY29uc3Qgc3RydWN0IHZjcHUgKnYpCiB7Ci0g ICAgSFZfVlBfQVNTSVNUX1BBR0UgKnB0ciA9IHYtPmFyY2guaHZtLnZpcmlkaWFuLT52cF9hc3Np c3QucHRyOworICAgIHN0cnVjdCB2aXJpZGlhbl92Y3B1ICp2diA9IHYtPmFyY2guaHZtLnZpcmlk aWFuOworICAgIEhWX1ZQX0FTU0lTVF9QQUdFICpwdHIgPSB2di0+dnBfYXNzaXN0LnB0cjsKIAog ICAgIGlmICggIXB0ciApCiAgICAgICAgIHJldHVybjsKIAogICAgIHB0ci0+QXBpY0Fzc2lzdC5u b19lb2kgPSAwOwotICAgIHYtPmFyY2guaHZtLnZpcmlkaWFuLT5hcGljX2Fzc2lzdF9wZW5kaW5n ID0gZmFsc2U7CisgICAgdnYtPmFwaWNfYXNzaXN0X3BlbmRpbmcgPSBmYWxzZTsKIH0KIAogaW50 IHZpcmlkaWFuX3N5bmljX3dybXNyKHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCBpZHgsIHVpbnQ2 NF90IHZhbCkKIHsKKyAgICBzdHJ1Y3QgdmlyaWRpYW5fdmNwdSAqdnYgPSB2LT5hcmNoLmh2bS52 aXJpZGlhbjsKKwogICAgIHN3aXRjaCAoIGlkeCApCiAgICAgewogICAgIGNhc2UgSFZfWDY0X01T Ul9FT0k6CkBAIC05NSwxMiArOTksMTEgQEAgaW50IHZpcmlkaWFuX3N5bmljX3dybXNyKHN0cnVj dCB2Y3B1ICp2LCB1aW50MzJfdCBpZHgsIHVpbnQ2NF90IHZhbCkKIAogICAgIGNhc2UgSFZfWDY0 X01TUl9WUF9BU1NJU1RfUEFHRToKICAgICAgICAgLyogcmVsZWFzZSBhbnkgcHJldmlvdXMgbWFw cGluZyAqLwotICAgICAgICB2aXJpZGlhbl91bm1hcF9ndWVzdF9wYWdlKCZ2LT5hcmNoLmh2bS52 aXJpZGlhbi0+dnBfYXNzaXN0KTsKLSAgICAgICAgdi0+YXJjaC5odm0udmlyaWRpYW4tPnZwX2Fz c2lzdC5tc3IucmF3ID0gdmFsOwotICAgICAgICB2aXJpZGlhbl9kdW1wX2d1ZXN0X3BhZ2Uodiwg IlZQX0FTU0lTVCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdi0+YXJjaC5o dm0udmlyaWRpYW4tPnZwX2Fzc2lzdCk7Ci0gICAgICAgIGlmICggdi0+YXJjaC5odm0udmlyaWRp YW4tPnZwX2Fzc2lzdC5tc3IuZmllbGRzLmVuYWJsZWQgKQotICAgICAgICAgICAgdmlyaWRpYW5f bWFwX2d1ZXN0X3BhZ2UodiwgJnYtPmFyY2guaHZtLnZpcmlkaWFuLT52cF9hc3Npc3QpOworICAg ICAgICB2aXJpZGlhbl91bm1hcF9ndWVzdF9wYWdlKCZ2di0+dnBfYXNzaXN0KTsKKyAgICAgICAg dnYtPnZwX2Fzc2lzdC5tc3IucmF3ID0gdmFsOworICAgICAgICB2aXJpZGlhbl9kdW1wX2d1ZXN0 X3BhZ2UodiwgIlZQX0FTU0lTVCIsICZ2di0+dnBfYXNzaXN0KTsKKyAgICAgICAgaWYgKCB2di0+ dnBfYXNzaXN0Lm1zci5maWVsZHMuZW5hYmxlZCApCisgICAgICAgICAgICB2aXJpZGlhbl9tYXBf Z3Vlc3RfcGFnZSh2LCAmdnYtPnZwX2Fzc2lzdCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgZGVm YXVsdDoKQEAgLTE0NiwxOCArMTQ5LDIyIEBAIGludCB2aXJpZGlhbl9zeW5pY19yZG1zcihjb25z dCBzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgaWR4LCB1aW50NjRfdCAqdmFsKQogdm9pZCB2aXJp ZGlhbl9zeW5pY19zYXZlX3ZjcHVfY3R4dChjb25zdCBzdHJ1Y3QgdmNwdSAqdiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGh2bV92aXJpZGlhbl92Y3B1X2NvbnRl eHQgKmN0eHQpCiB7Ci0gICAgY3R4dC0+YXBpY19hc3Npc3RfcGVuZGluZyA9IHYtPmFyY2guaHZt LnZpcmlkaWFuLT5hcGljX2Fzc2lzdF9wZW5kaW5nOwotICAgIGN0eHQtPnZwX2Fzc2lzdF9tc3Ig PSB2LT5hcmNoLmh2bS52aXJpZGlhbi0+dnBfYXNzaXN0Lm1zci5yYXc7CisgICAgY29uc3Qgc3Ry dWN0IHZpcmlkaWFuX3ZjcHUgKnZ2ID0gdi0+YXJjaC5odm0udmlyaWRpYW47CisKKyAgICBjdHh0 LT5hcGljX2Fzc2lzdF9wZW5kaW5nID0gdnYtPmFwaWNfYXNzaXN0X3BlbmRpbmc7CisgICAgY3R4 dC0+dnBfYXNzaXN0X21zciA9IHZ2LT52cF9hc3Npc3QubXNyLnJhdzsKIH0KIAogdm9pZCB2aXJp ZGlhbl9zeW5pY19sb2FkX3ZjcHVfY3R4dCgKICAgICBzdHJ1Y3QgdmNwdSAqdiwgY29uc3Qgc3Ry dWN0IGh2bV92aXJpZGlhbl92Y3B1X2NvbnRleHQgKmN0eHQpCiB7Ci0gICAgdi0+YXJjaC5odm0u dmlyaWRpYW4tPnZwX2Fzc2lzdC5tc3IucmF3ID0gY3R4dC0+dnBfYXNzaXN0X21zcjsKLSAgICBp ZiAoIHYtPmFyY2guaHZtLnZpcmlkaWFuLT52cF9hc3Npc3QubXNyLmZpZWxkcy5lbmFibGVkICkK LSAgICAgICAgdmlyaWRpYW5fbWFwX2d1ZXN0X3BhZ2UodiwgJnYtPmFyY2guaHZtLnZpcmlkaWFu LT52cF9hc3Npc3QpOworICAgIHN0cnVjdCB2aXJpZGlhbl92Y3B1ICp2diA9IHYtPmFyY2guaHZt LnZpcmlkaWFuOworCisgICAgdnYtPnZwX2Fzc2lzdC5tc3IucmF3ID0gY3R4dC0+dnBfYXNzaXN0 X21zcjsKKyAgICBpZiAoIHZ2LT52cF9hc3Npc3QubXNyLmZpZWxkcy5lbmFibGVkICkKKyAgICAg ICAgdmlyaWRpYW5fbWFwX2d1ZXN0X3BhZ2UodiwgJnZ2LT52cF9hc3Npc3QpOwogCi0gICAgdi0+ YXJjaC5odm0udmlyaWRpYW4tPmFwaWNfYXNzaXN0X3BlbmRpbmcgPSBjdHh0LT5hcGljX2Fzc2lz dF9wZW5kaW5nOworICAgIHZ2LT5hcGljX2Fzc2lzdF9wZW5kaW5nID0gY3R4dC0+YXBpY19hc3Np c3RfcGVuZGluZzsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRp YW4vdGltZS5jIGIveGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi90aW1lLmMKaW5kZXggYTdlOTRh YWRmMC4uNzZmOTYxMjAwMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi90 aW1lLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi90aW1lLmMKQEAgLTE0MSw2ICsx NDEsNyBAQCB2b2lkIHZpcmlkaWFuX3RpbWVfcmVmX2NvdW50X3RoYXcoY29uc3Qgc3RydWN0IGRv bWFpbiAqZCkKIGludCB2aXJpZGlhbl90aW1lX3dybXNyKHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJf dCBpZHgsIHVpbnQ2NF90IHZhbCkKIHsKICAgICBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9tYWlu OworICAgIHN0cnVjdCB2aXJpZGlhbl9kb21haW4gKnZkID0gZC0+YXJjaC5odm0udmlyaWRpYW47 CiAKICAgICBzd2l0Y2ggKCBpZHggKQogICAgIHsKQEAgLTE0OCw5ICsxNDksOSBAQCBpbnQgdmly aWRpYW5fdGltZV93cm1zcihzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgaWR4LCB1aW50NjRfdCB2 YWwpCiAgICAgICAgIGlmICggISh2aXJpZGlhbl9mZWF0dXJlX21hc2soZCkgJiBIVk1QVl9yZWZl cmVuY2VfdHNjKSApCiAgICAgICAgICAgICByZXR1cm4gWDg2RU1VTF9FWENFUFRJT047CiAKLSAg ICAgICAgZC0+YXJjaC5odm0udmlyaWRpYW4tPnJlZmVyZW5jZV90c2MucmF3ID0gdmFsOworICAg ICAgICB2ZC0+cmVmZXJlbmNlX3RzYy5yYXcgPSB2YWw7CiAgICAgICAgIGR1bXBfcmVmZXJlbmNl X3RzYyhkKTsKLSAgICAgICAgaWYgKCBkLT5hcmNoLmh2bS52aXJpZGlhbi0+cmVmZXJlbmNlX3Rz Yy5maWVsZHMuZW5hYmxlZCApCisgICAgICAgIGlmICggdmQtPnJlZmVyZW5jZV90c2MuZmllbGRz LmVuYWJsZWQgKQogICAgICAgICAgICAgdXBkYXRlX3JlZmVyZW5jZV90c2MoZCwgdHJ1ZSk7CiAg ICAgICAgIGJyZWFrOwogCkBAIC0xNjUsNyArMTY2LDggQEAgaW50IHZpcmlkaWFuX3RpbWVfd3Jt c3Ioc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IGlkeCwgdWludDY0X3QgdmFsKQogCiBpbnQgdmly aWRpYW5fdGltZV9yZG1zcihjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgaWR4LCB1aW50 NjRfdCAqdmFsKQogewotICAgIHN0cnVjdCBkb21haW4gKmQgPSB2LT5kb21haW47CisgICAgY29u c3Qgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKKyAgICBzdHJ1Y3QgdmlyaWRpYW5fZG9t YWluICp2ZCA9IGQtPmFyY2guaHZtLnZpcmlkaWFuOwogCiAgICAgc3dpdGNoICggaWR4ICkKICAg ICB7CkBAIC0xODcsMTMgKzE4OSwxMiBAQCBpbnQgdmlyaWRpYW5fdGltZV9yZG1zcihjb25zdCBz dHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgaWR4LCB1aW50NjRfdCAqdmFsKQogICAgICAgICBpZiAo ICEodmlyaWRpYW5fZmVhdHVyZV9tYXNrKGQpICYgSFZNUFZfcmVmZXJlbmNlX3RzYykgKQogICAg ICAgICAgICAgcmV0dXJuIFg4NkVNVUxfRVhDRVBUSU9OOwogCi0gICAgICAgICp2YWwgPSBkLT5h cmNoLmh2bS52aXJpZGlhbi0+cmVmZXJlbmNlX3RzYy5yYXc7CisgICAgICAgICp2YWwgPSB2ZC0+ cmVmZXJlbmNlX3RzYy5yYXc7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBIVl9YNjRfTVNS X1RJTUVfUkVGX0NPVU5UOgogICAgIHsKLSAgICAgICAgc3RydWN0IHZpcmlkaWFuX3RpbWVfcmVm X2NvdW50ICp0cmMgPQotICAgICAgICAgICAgJmQtPmFyY2guaHZtLnZpcmlkaWFuLT50aW1lX3Jl Zl9jb3VudDsKKyAgICAgICAgc3RydWN0IHZpcmlkaWFuX3RpbWVfcmVmX2NvdW50ICp0cmMgPSAm dmQtPnRpbWVfcmVmX2NvdW50OwogCiAgICAgICAgIGlmICggISh2aXJpZGlhbl9mZWF0dXJlX21h c2soZCkgJiBIVk1QVl90aW1lX3JlZl9jb3VudCkgKQogICAgICAgICAgICAgcmV0dXJuIFg4NkVN VUxfRVhDRVBUSU9OOwpAQCAtMjE3LDE3ICsyMTgsMjEgQEAgaW50IHZpcmlkaWFuX3RpbWVfcmRt c3IoY29uc3Qgc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IGlkeCwgdWludDY0X3QgKnZhbCkKIHZv aWQgdmlyaWRpYW5fdGltZV9zYXZlX2RvbWFpbl9jdHh0KAogICAgIGNvbnN0IHN0cnVjdCBkb21h aW4gKmQsIHN0cnVjdCBodm1fdmlyaWRpYW5fZG9tYWluX2NvbnRleHQgKmN0eHQpCiB7Ci0gICAg Y3R4dC0+dGltZV9yZWZfY291bnQgPSBkLT5hcmNoLmh2bS52aXJpZGlhbi0+dGltZV9yZWZfY291 bnQudmFsOwotICAgIGN0eHQtPnJlZmVyZW5jZV90c2MgPSBkLT5hcmNoLmh2bS52aXJpZGlhbi0+ cmVmZXJlbmNlX3RzYy5yYXc7CisgICAgY29uc3Qgc3RydWN0IHZpcmlkaWFuX2RvbWFpbiAqdmQg PSBkLT5hcmNoLmh2bS52aXJpZGlhbjsKKworICAgIGN0eHQtPnRpbWVfcmVmX2NvdW50ID0gdmQt PnRpbWVfcmVmX2NvdW50LnZhbDsKKyAgICBjdHh0LT5yZWZlcmVuY2VfdHNjID0gdmQtPnJlZmVy ZW5jZV90c2MucmF3OwogfQogCiB2b2lkIHZpcmlkaWFuX3RpbWVfbG9hZF9kb21haW5fY3R4dCgK ICAgICBzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBzdHJ1Y3QgaHZtX3ZpcmlkaWFuX2RvbWFpbl9j b250ZXh0ICpjdHh0KQogewotICAgIGQtPmFyY2guaHZtLnZpcmlkaWFuLT50aW1lX3JlZl9jb3Vu dC52YWwgPSBjdHh0LT50aW1lX3JlZl9jb3VudDsKLSAgICBkLT5hcmNoLmh2bS52aXJpZGlhbi0+ cmVmZXJlbmNlX3RzYy5yYXcgPSBjdHh0LT5yZWZlcmVuY2VfdHNjOworICAgIHN0cnVjdCB2aXJp ZGlhbl9kb21haW4gKnZkID0gZC0+YXJjaC5odm0udmlyaWRpYW47CisKKyAgICB2ZC0+dGltZV9y ZWZfY291bnQudmFsID0gY3R4dC0+dGltZV9yZWZfY291bnQ7CisgICAgdmQtPnJlZmVyZW5jZV90 c2MucmF3ID0gY3R4dC0+cmVmZXJlbmNlX3RzYzsKIAotICAgIGlmICggZC0+YXJjaC5odm0udmly aWRpYW4tPnJlZmVyZW5jZV90c2MuZmllbGRzLmVuYWJsZWQgKQorICAgIGlmICggdmQtPnJlZmVy ZW5jZV90c2MuZmllbGRzLmVuYWJsZWQgKQogICAgICAgICB1cGRhdGVfcmVmZXJlbmNlX3RzYyhk LCBmYWxzZSk7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4vdmly aWRpYW4uYyBiL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4vdmlyaWRpYW4uYwppbmRleCA3ODM5 NzE4ZWY0Li43MTA0NzBmZWQ3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFu L3ZpcmlkaWFuLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi92aXJpZGlhbi5jCkBA IC0xMjIsNiArMTIyLDcgQEAgdm9pZCBjcHVpZF92aXJpZGlhbl9sZWF2ZXMoY29uc3Qgc3RydWN0 IHZjcHUgKnYsIHVpbnQzMl90IGxlYWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 MzJfdCBzdWJsZWFmLCBzdHJ1Y3QgY3B1aWRfbGVhZiAqcmVzKQogewogICAgIGNvbnN0IHN0cnVj dCBkb21haW4gKmQgPSB2LT5kb21haW47CisgICAgY29uc3Qgc3RydWN0IHZpcmlkaWFuX2RvbWFp biAqdmQgPSBkLT5hcmNoLmh2bS52aXJpZGlhbjsKIAogICAgIEFTU0VSVChpc192aXJpZGlhbl9k b21haW4oZCkpOwogICAgIEFTU0VSVChsZWFmID49IDB4NDAwMDAwMDAgJiYgbGVhZiA8IDB4NDAw MDAxMDApOwpAQCAtMTQ2LDcgKzE0Nyw3IEBAIHZvaWQgY3B1aWRfdmlyaWRpYW5fbGVhdmVzKGNv bnN0IHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCBsZWFmLAogICAgICAgICAgKiBIeXBlcnZpc29y IGluZm9ybWF0aW9uLCBidXQgb25seSBpZiB0aGUgZ3Vlc3QgaGFzIHNldCBpdHMKICAgICAgICAg ICogb3duIHZlcnNpb24gbnVtYmVyLgogICAgICAgICAgKi8KLSAgICAgICAgaWYgKCBkLT5hcmNo Lmh2bS52aXJpZGlhbi0+Z3Vlc3Rfb3NfaWQucmF3ID09IDAgKQorICAgICAgICBpZiAoIHZkLT5n dWVzdF9vc19pZC5yYXcgPT0gMCApCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgcmVzLT5h ID0gdmlyaWRpYW5fYnVpbGQ7CiAgICAgICAgIHJlcy0+YiA9ICgodWludDMyX3QpdmlyaWRpYW5f bWFqb3IgPDwgMTYpIHwgdmlyaWRpYW5fbWlub3I7CkBAIC0xOTEsOCArMTkyLDcgQEAgdm9pZCBj cHVpZF92aXJpZGlhbl9sZWF2ZXMoY29uc3Qgc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IGxlYWYs CiAKICAgICBjYXNlIDQ6CiAgICAgICAgIC8qIFJlY29tbWVuZGVkIGh5cGVyY2FsbCB1c2FnZS4g Ki8KLSAgICAgICAgaWYgKCAoZC0+YXJjaC5odm0udmlyaWRpYW4tPmd1ZXN0X29zX2lkLnJhdyA9 PSAwKSB8fAotICAgICAgICAgICAgIChkLT5hcmNoLmh2bS52aXJpZGlhbi0+Z3Vlc3Rfb3NfaWQu ZmllbGRzLm9zIDwgNCkgKQorICAgICAgICBpZiAoIHZkLT5ndWVzdF9vc19pZC5yYXcgPT0gMCB8 fCB2ZC0+Z3Vlc3Rfb3NfaWQuZmllbGRzLm9zIDwgNCApCiAgICAgICAgICAgICBicmVhazsKICAg ICAgICAgcmVzLT5hID0gQ1BVSUQ0QV9SRUxBWF9USU1FUl9JTlQ7CiAgICAgICAgIGlmICggdmly aWRpYW5fZmVhdHVyZV9tYXNrKGQpICYgSFZNUFZfaGNhbGxfcmVtb3RlX3RsYl9mbHVzaCApCkBA IC0yODEsMjEgKzI4MSwyMyBAQCBzdGF0aWMgdm9pZCBlbmFibGVfaHlwZXJjYWxsX3BhZ2Uoc3Ry dWN0IGRvbWFpbiAqZCkKIAogaW50IGd1ZXN0X3dybXNyX3ZpcmlkaWFuKHN0cnVjdCB2Y3B1ICp2 LCB1aW50MzJfdCBpZHgsIHVpbnQ2NF90IHZhbCkKIHsKKyAgICBzdHJ1Y3QgdmlyaWRpYW5fdmNw dSAqdnYgPSB2LT5hcmNoLmh2bS52aXJpZGlhbjsKICAgICBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ ZG9tYWluOworICAgIHN0cnVjdCB2aXJpZGlhbl9kb21haW4gKnZkID0gZC0+YXJjaC5odm0udmly aWRpYW47CiAKICAgICBBU1NFUlQoaXNfdmlyaWRpYW5fZG9tYWluKGQpKTsKIAogICAgIHN3aXRj aCAoIGlkeCApCiAgICAgewogICAgIGNhc2UgSFZfWDY0X01TUl9HVUVTVF9PU19JRDoKLSAgICAg ICAgZC0+YXJjaC5odm0udmlyaWRpYW4tPmd1ZXN0X29zX2lkLnJhdyA9IHZhbDsKKyAgICAgICAg dmQtPmd1ZXN0X29zX2lkLnJhdyA9IHZhbDsKICAgICAgICAgZHVtcF9ndWVzdF9vc19pZChkKTsK ICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEhWX1g2NF9NU1JfSFlQRVJDQUxMOgotICAgICAg ICBkLT5hcmNoLmh2bS52aXJpZGlhbi0+aHlwZXJjYWxsX2dwYS5yYXcgPSB2YWw7CisgICAgICAg IHZkLT5oeXBlcmNhbGxfZ3BhLnJhdyA9IHZhbDsKICAgICAgICAgZHVtcF9oeXBlcmNhbGwoZCk7 Ci0gICAgICAgIGlmICggZC0+YXJjaC5odm0udmlyaWRpYW4tPmh5cGVyY2FsbF9ncGEuZmllbGRz LmVuYWJsZWQgKQorICAgICAgICBpZiAoIHZkLT5oeXBlcmNhbGxfZ3BhLmZpZWxkcy5lbmFibGVk ICkKICAgICAgICAgICAgIGVuYWJsZV9oeXBlcmNhbGxfcGFnZShkKTsKICAgICAgICAgYnJlYWs7 CiAKQEAgLTMxNywxMCArMzE5LDEwIEBAIGludCBndWVzdF93cm1zcl92aXJpZGlhbihzdHJ1Y3Qg dmNwdSAqdiwgdWludDMyX3QgaWR4LCB1aW50NjRfdCB2YWwpCiAgICAgY2FzZSBIVl9YNjRfTVNS X0NSQVNIX1AzOgogICAgIGNhc2UgSFZfWDY0X01TUl9DUkFTSF9QNDoKICAgICAgICAgQlVJTERf QlVHX09OKEhWX1g2NF9NU1JfQ1JBU0hfUDQgLSBIVl9YNjRfTVNSX0NSQVNIX1AwID49Ci0gICAg ICAgICAgICAgICAgICAgICBBUlJBWV9TSVpFKHYtPmFyY2guaHZtLnZpcmlkaWFuLT5jcmFzaF9w YXJhbSkpOworICAgICAgICAgICAgICAgICAgICAgQVJSQVlfU0laRSh2di0+Y3Jhc2hfcGFyYW0p KTsKIAogICAgICAgICBpZHggLT0gSFZfWDY0X01TUl9DUkFTSF9QMDsKLSAgICAgICAgdi0+YXJj aC5odm0udmlyaWRpYW4tPmNyYXNoX3BhcmFtW2lkeF0gPSB2YWw7CisgICAgICAgIHZ2LT5jcmFz aF9wYXJhbVtpZHhdID0gdmFsOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgSFZfWDY0X01T Ul9DUkFTSF9DVEw6CkBAIC0zMzcsMTEgKzMzOSw4IEBAIGludCBndWVzdF93cm1zcl92aXJpZGlh bihzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgaWR4LCB1aW50NjRfdCB2YWwpCiAgICAgICAgIHNw aW5fdW5sb2NrKCZkLT5zaHV0ZG93bl9sb2NrKTsKIAogICAgICAgICBncHJpbnRrKFhFTkxPR19X QVJOSU5HLCAiVklSSURJQU4gQ1JBU0g6ICVseCAlbHggJWx4ICVseCAlbHhcbiIsCi0gICAgICAg ICAgICAgICAgdi0+YXJjaC5odm0udmlyaWRpYW4tPmNyYXNoX3BhcmFtWzBdLAotICAgICAgICAg ICAgICAgIHYtPmFyY2guaHZtLnZpcmlkaWFuLT5jcmFzaF9wYXJhbVsxXSwKLSAgICAgICAgICAg ICAgICB2LT5hcmNoLmh2bS52aXJpZGlhbi0+Y3Jhc2hfcGFyYW1bMl0sCi0gICAgICAgICAgICAg ICAgdi0+YXJjaC5odm0udmlyaWRpYW4tPmNyYXNoX3BhcmFtWzNdLAotICAgICAgICAgICAgICAg IHYtPmFyY2guaHZtLnZpcmlkaWFuLT5jcmFzaF9wYXJhbVs0XSk7CisgICAgICAgICAgICAgICAg dnYtPmNyYXNoX3BhcmFtWzBdLCB2di0+Y3Jhc2hfcGFyYW1bMV0sIHZ2LT5jcmFzaF9wYXJhbVsy XSwKKyAgICAgICAgICAgICAgICB2di0+Y3Jhc2hfcGFyYW1bM10sIHZ2LT5jcmFzaF9wYXJhbVs0 XSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtMzU3LDE4ICszNTYsMjAgQEAgaW50IGd1 ZXN0X3dybXNyX3ZpcmlkaWFuKHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCBpZHgsIHVpbnQ2NF90 IHZhbCkKIAogaW50IGd1ZXN0X3JkbXNyX3ZpcmlkaWFuKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCB1 aW50MzJfdCBpZHgsIHVpbnQ2NF90ICp2YWwpCiB7Ci0gICAgc3RydWN0IGRvbWFpbiAqZCA9IHYt PmRvbWFpbjsKKyAgICBjb25zdCBzdHJ1Y3QgdmlyaWRpYW5fdmNwdSAqdnYgPSB2LT5hcmNoLmh2 bS52aXJpZGlhbjsKKyAgICBjb25zdCBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9tYWluOworICAg IGNvbnN0IHN0cnVjdCB2aXJpZGlhbl9kb21haW4gKnZkID0gZC0+YXJjaC5odm0udmlyaWRpYW47 CiAKICAgICBBU1NFUlQoaXNfdmlyaWRpYW5fZG9tYWluKGQpKTsKIAogICAgIHN3aXRjaCAoIGlk eCApCiAgICAgewogICAgIGNhc2UgSFZfWDY0X01TUl9HVUVTVF9PU19JRDoKLSAgICAgICAgKnZh bCA9IGQtPmFyY2guaHZtLnZpcmlkaWFuLT5ndWVzdF9vc19pZC5yYXc7CisgICAgICAgICp2YWwg PSB2ZC0+Z3Vlc3Rfb3NfaWQucmF3OwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgSFZfWDY0 X01TUl9IWVBFUkNBTEw6Ci0gICAgICAgICp2YWwgPSBkLT5hcmNoLmh2bS52aXJpZGlhbi0+aHlw ZXJjYWxsX2dwYS5yYXc7CisgICAgICAgICp2YWwgPSB2ZC0+aHlwZXJjYWxsX2dwYS5yYXc7CiAg ICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBIVl9YNjRfTVNSX1ZQX0lOREVYOgpAQCAtMzkzLDEw ICszOTQsMTAgQEAgaW50IGd1ZXN0X3JkbXNyX3ZpcmlkaWFuKGNvbnN0IHN0cnVjdCB2Y3B1ICp2 LCB1aW50MzJfdCBpZHgsIHVpbnQ2NF90ICp2YWwpCiAgICAgY2FzZSBIVl9YNjRfTVNSX0NSQVNI X1AzOgogICAgIGNhc2UgSFZfWDY0X01TUl9DUkFTSF9QNDoKICAgICAgICAgQlVJTERfQlVHX09O KEhWX1g2NF9NU1JfQ1JBU0hfUDQgLSBIVl9YNjRfTVNSX0NSQVNIX1AwID49Ci0gICAgICAgICAg ICAgICAgICAgICBBUlJBWV9TSVpFKHYtPmFyY2guaHZtLnZpcmlkaWFuLT5jcmFzaF9wYXJhbSkp OworICAgICAgICAgICAgICAgICAgICAgQVJSQVlfU0laRSh2di0+Y3Jhc2hfcGFyYW0pKTsKIAog ICAgICAgICBpZHggLT0gSFZfWDY0X01TUl9DUkFTSF9QMDsKLSAgICAgICAgKnZhbCA9IHYtPmFy Y2guaHZtLnZpcmlkaWFuLT5jcmFzaF9wYXJhbVtpZHhdOworICAgICAgICAqdmFsID0gdnYtPmNy YXNoX3BhcmFtW2lkeF07CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBIVl9YNjRfTVNSX0NS QVNIX0NUTDoKQEAgLTY2NSw5ICs2NjYsMTAgQEAgc3RhdGljIGludCB2aXJpZGlhbl9zYXZlX2Rv bWFpbl9jdHh0KHN0cnVjdCB2Y3B1ICp2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGh2bV9kb21haW5fY29udGV4dF90ICpoKQogewogICAgIGNvbnN0IHN0cnVjdCBkb21h aW4gKmQgPSB2LT5kb21haW47CisgICAgY29uc3Qgc3RydWN0IHZpcmlkaWFuX2RvbWFpbiAqdmQg PSBkLT5hcmNoLmh2bS52aXJpZGlhbjsKICAgICBzdHJ1Y3QgaHZtX3ZpcmlkaWFuX2RvbWFpbl9j b250ZXh0IGN0eHQgPSB7Ci0gICAgICAgIC5oeXBlcmNhbGxfZ3BhID0gZC0+YXJjaC5odm0udmly aWRpYW4tPmh5cGVyY2FsbF9ncGEucmF3LAotICAgICAgICAuZ3Vlc3Rfb3NfaWQgPSBkLT5hcmNo Lmh2bS52aXJpZGlhbi0+Z3Vlc3Rfb3NfaWQucmF3LAorICAgICAgICAuaHlwZXJjYWxsX2dwYSA9 IHZkLT5oeXBlcmNhbGxfZ3BhLnJhdywKKyAgICAgICAgLmd1ZXN0X29zX2lkID0gdmQtPmd1ZXN0 X29zX2lkLnJhdywKICAgICB9OwogCiAgICAgaWYgKCAhaXNfdmlyaWRpYW5fZG9tYWluKGQpICkK QEAgLTY4MSwxMyArNjgzLDE0IEBAIHN0YXRpYyBpbnQgdmlyaWRpYW5fc2F2ZV9kb21haW5fY3R4 dChzdHJ1Y3QgdmNwdSAqdiwKIHN0YXRpYyBpbnQgdmlyaWRpYW5fbG9hZF9kb21haW5fY3R4dChz dHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh2 bV9kb21haW5fY29udGV4dF90ICpoKQogeworICAgIHN0cnVjdCB2aXJpZGlhbl9kb21haW4gKnZk ID0gZC0+YXJjaC5odm0udmlyaWRpYW47CiAgICAgc3RydWN0IGh2bV92aXJpZGlhbl9kb21haW5f Y29udGV4dCBjdHh0OwogCiAgICAgaWYgKCBodm1fbG9hZF9lbnRyeV96ZXJvZXh0ZW5kKFZJUklE SUFOX0RPTUFJTiwgaCwgJmN0eHQpICE9IDAgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAot ICAgIGQtPmFyY2guaHZtLnZpcmlkaWFuLT5oeXBlcmNhbGxfZ3BhLnJhdyA9IGN0eHQuaHlwZXJj YWxsX2dwYTsKLSAgICBkLT5hcmNoLmh2bS52aXJpZGlhbi0+Z3Vlc3Rfb3NfaWQucmF3ID0gY3R4 dC5ndWVzdF9vc19pZDsKKyAgICB2ZC0+aHlwZXJjYWxsX2dwYS5yYXcgPSBjdHh0Lmh5cGVyY2Fs bF9ncGE7CisgICAgdmQtPmd1ZXN0X29zX2lkLnJhdyA9IGN0eHQuZ3Vlc3Rfb3NfaWQ7CiAKICAg ICB2aXJpZGlhbl90aW1lX2xvYWRfZG9tYWluX2N0eHQoZCwgJmN0eHQpOwogCi0tIAoyLjIwLjEK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xp c3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs