From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 12/13] x86/sysctl: Implement XEN_SYSCTL_get_cpu_policy Date: Fri, 13 Jul 2018 21:03:13 +0100 Message-ID: <1531512194-6865-13-git-send-email-andrew.cooper3@citrix.com> References: <1531512194-6865-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1531512194-6865-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Sergey Dyasli , Wei Liu , Andrew Cooper , Ian Jackson , Jan Beulich , Daniel De Graaf , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org RnJvbTogU2VyZ2V5IER5YXNsaSA8c2VyZ2V5LmR5YXNsaUBjaXRyaXguY29tPgoKUHJvdmlkZSBh IFNZU0NUTCBmb3IgdGhlIHRvb2xzdGFjayB0byBvYnRhaW4gY29tcGxldGUgc3lzdGVtIENQVUlE IGFuZCBNU1IKcG9saWN5IGluZm9ybWF0aW9uLgoKRm9yIHRoZSBYU00gc2lkZSBvZiB0aGluZ3Ms IHRoaXMgc3Vib3AgaXMgY2xvc2VseSByZWxhdGVkIHRvCntwaHlzLGNwdXRvcG8sbnVtYX1pbmZv LCBzbyBzaGFyZXMgdGhlIHBoeXNpbmZvIGFjY2VzcyB2ZWN0b3IuCgpFeHRlbmQgdGhlIHhlbi1j cHVpZCB1dGlsaXR5IHRvIGJlIGFibGUgdG8gZHVtcCB0aGUgc3lzdGVtIHBvbGljaWVzLiAgQW4K ZXhhbXBsZSBvdXRwdXQgaXM6CgogIFhlbiByZXBvcnRzIHRoZXJlIGFyZSBtYXhpbXVtIDExMyBs ZWF2ZXMgYW5kIDMgTVNScwogIFJhdyBwb2xpY3k6IDkzIGxlYXZlcywgMyBNU1JzCiAgIENQVUlE OgogICAgbGVhZiAgICAgc3VibGVhZiAgLT4gZWF4ICAgICAgZWJ4ICAgICAgZWN4ICAgICAgZWR4 CiAgICAwMDAwMDAwMDpmZmZmZmZmZiAtPiAwMDAwMDAwZDo3NTZlNjU0Nzo2YzY1NzQ2ZTo0OTY1 NmU2OQogICAgMDAwMDAwMDE6ZmZmZmZmZmYgLT4gMDAwMzA2YzM6MDAxMDA4MDA6N2ZmYWZiZmY6 YmZlYmZiZmYKICAgIDAwMDAwMDAyOmZmZmZmZmZmIC0+IDc2MDM2MzAxOjAwZjBiNWZmOjAwMDAw MDAwOjAwYzEwMDAwCiAgICAwMDAwMDAwNDowMDAwMDAwMCAtPiAxYzAwNDEyMTowMWMwMDAzZjow MDAwMDAzZjowMDAwMDAwMAogICAgMDAwMDAwMDQ6MDAwMDAwMDEgLT4gMWMwMDQxMjI6MDFjMDAw M2Y6MDAwMDAwM2Y6MDAwMDAwMDAKICAgIDAwMDAwMDA0OjAwMDAwMDAyIC0+IDFjMDA0MTQzOjAx YzAwMDNmOjAwMDAwMWZmOjAwMDAwMDAwCiAgICAwMDAwMDAwNDowMDAwMDAwMyAtPiAxYzAzYzE2 MzowM2MwMDAzZjowMDAwMWZmZjowMDAwMDAwNgogICAgMDAwMDAwMDU6ZmZmZmZmZmYgLT4gMDAw MDAwNDA6MDAwMDAwNDA6MDAwMDAwMDM6MDAwNDIxMjAKICAgIDAwMDAwMDA2OmZmZmZmZmZmIC0+ IDAwMDAwMDc3OjAwMDAwMDAyOjAwMDAwMDA5OjAwMDAwMDAwCiAgICAwMDAwMDAwNzowMDAwMDAw MCAtPiAwMDAwMDAwMDowMDAwMjdhYjowMDAwMDAwMDo5YzAwMDAwMAogICAgMDAwMDAwMGE6ZmZm ZmZmZmYgLT4gMDczMDA0MDM6MDAwMDAwMDA6MDAwMDAwMDA6MDAwMDA2MDMKICAgIDAwMDAwMDBi OjAwMDAwMDAwIC0+IDAwMDAwMDAxOjAwMDAwMDAyOjAwMDAwMTAwOjAwMDAwMDAwCiAgICAwMDAw MDAwYjowMDAwMDAwMSAtPiAwMDAwMDAwNDowMDAwMDAwODowMDAwMDIwMTowMDAwMDAwMAogICAg MDAwMDAwMGQ6MDAwMDAwMDAgLT4gMDAwMDAwMDc6MDAwMDAzNDA6MDAwMDAzNDA6MDAwMDAwMDAK ICAgIDAwMDAwMDBkOjAwMDAwMDAxIC0+IDAwMDAwMDAxOjAwMDAwMDAwOjAwMDAwMDAwOjAwMDAw MDAwCiAgICAwMDAwMDAwZDowMDAwMDAwMiAtPiAwMDAwMDEwMDowMDAwMDI0MDowMDAwMDAwMDow MDAwMDAwMAogICAgODAwMDAwMDA6ZmZmZmZmZmYgLT4gODAwMDAwMDg6MDAwMDAwMDA6MDAwMDAw MDA6MDAwMDAwMDAKICAgIDgwMDAwMDAxOmZmZmZmZmZmIC0+IDAwMDAwMDAwOjAwMDAwMDAwOjAw MDAwMDIxOjJjMTAwODAwCiAgICA4MDAwMDAwMjpmZmZmZmZmZiAtPiA2NTc0NmU0OToyOTUyMjg2 Yzo2ZjY1NTgyMDoyOTUyMjg2ZQogICAgODAwMDAwMDM6ZmZmZmZmZmYgLT4gNTU1MDQzMjA6MmQz MzQ1MjA6MzAzNDMyMzE6MjAzMzc2MjAKICAgIDgwMDAwMDA0OmZmZmZmZmZmIC0+IDJlMzMyMDQw OjQ4NDczMDM0OjAwMDAwMDdhOjAwMDAwMDAwCiAgICA4MDAwMDAwNjpmZmZmZmZmZiAtPiAwMDAw MDAwMDowMDAwMDAwMDowMTAwNjA0MDowMDAwMDAwMAogICAgODAwMDAwMDc6ZmZmZmZmZmYgLT4g MDAwMDAwMDA6MDAwMDAwMDA6MDAwMDAwMDA6MDAwMDAxMDAKICAgIDgwMDAwMDA4OmZmZmZmZmZm IC0+IDAwMDAzMDI3OjAwMDAwMDAwOjAwMDAwMDAwOjAwMDAwMDAwCiAgIE1TUnM6CiAgICBpbmRl eCAgICAtPiB2YWx1ZQogICAgMDAwMDAwY2UgLT4gMDAwMDAwMDA4MDAwMDAwMAoKU2lnbmVkLW9m Zi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KU2lnbmVkLW9m Zi1ieTogU2VyZ2V5IER5YXNsaSA8c2VyZ2V5LmR5YXNsaUBjaXRyaXguY29tPgpTaWduZWQtb2Zm LWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4g QmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+CkNDOiBJYW4gSmFja3NvbiA8SWFuLkphY2tzb25A ZXUuY2l0cml4LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBSb2dl ciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KQ0M6IFNlcmdleSBEeWFzbGkgPHNl cmdleS5keWFzbGlAY2l0cml4LmNvbT4KQ0M6IERhbmllbCBEZSBHcmFhZiA8ZGdkZWdyYUB0eWNo by5uc2EuZ292PgoKdjI6CiAqIEF2b2lkIGludHJvZHVjaW5nIGEgU3BlY3RyZSBWMSBnYWRnZXQK LS0tCiB0b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCAgICAgICB8ICA2ICsrKwogdG9vbHMv bGlieGMveGNfY3B1aWRfeDg2LmMgICAgICAgICAgfCA1OSArKysrKysrKysrKysrKysrKysrKysr KysrCiB0b29scy9taXNjL3hlbi1jcHVpZC5jICAgICAgICAgICAgICB8IDg3ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0KIHhlbi9hcmNoL3g4Ni9zeXNjdGwuYyAgICAgICAg ICAgICAgIHwgNzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9w dWJsaWMvc3lzY3RsLmggICAgICAgICB8IDE3ICsrKysrKysrCiB4ZW4veHNtL2ZsYXNrL2hvb2tz LmMgICAgICAgICAgICAgICB8ICAxICsKIHhlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0 b3JzIHwgIDIgKy0KIDcgZmlsZXMgY2hhbmdlZCwgMjM5IGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29s cy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAppbmRleCBkZDdkOGE5Li5lZTNhYjA5IDEwMDY0NAot LS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNs dWRlL3hlbmN0cmwuaApAQCAtMjU1Myw2ICsyNTUzLDEyIEBAIGludCB4Y19nZXRfY3B1X2xldmVs bGluZ19jYXBzKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCAqY2Fwcyk7CiBpbnQgeGNfZ2V0 X2NwdV9mZWF0dXJlc2V0KHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBpbmRleCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKm5yX2ZlYXR1cmVzLCB1aW50MzJfdCAqZmVh dHVyZXNldCk7CiAKK2ludCB4Y19nZXRfY3B1X3BvbGljeV9zaXplKHhjX2ludGVyZmFjZSAqeGNo LCB1aW50MzJfdCAqbnJfbGVhdmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMy X3QgKm5yX21zcnMpOworaW50IHhjX2dldF9zeXN0ZW1fY3B1X3BvbGljeSh4Y19pbnRlcmZhY2Ug KnhjaCwgdWludDMyX3QgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQz Ml90ICpucl9sZWF2ZXMsIHhlbl9jcHVpZF9sZWFmX3QgKmxlYXZlcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyX3QgKm5yX21zcnMsIHhlbl9tc3JfZW50cnlfdCAqbXNycyk7 CisKIHVpbnQzMl90IHhjX2dldF9jcHVfZmVhdHVyZXNldF9zaXplKHZvaWQpOwogCiBlbnVtIHhj X3N0YXRpY19jcHVfZmVhdHVyZW1hc2sgewpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfY3B1 aWRfeDg2LmMgYi90b29scy9saWJ4Yy94Y19jcHVpZF94ODYuYwppbmRleCBjYzczMDBjLi44ZmQw NGVmIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19jcHVpZF94ODYuYworKysgYi90b29scy9s aWJ4Yy94Y19jcHVpZF94ODYuYwpAQCAtMTMyLDYgKzEzMiw2NSBAQCBjb25zdCB1aW50MzJfdCAq eGNfZ2V0X3N0YXRpY19jcHVfZmVhdHVyZW1hc2soCiAgICAgfQogfQogCitpbnQgeGNfZ2V0X2Nw dV9wb2xpY3lfc2l6ZSh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgKm5yX2xlYXZlcywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpucl9tc3JzKQoreworICAgIHN0cnVj dCB4ZW5fc3lzY3RsIHN5c2N0bCA9IHt9OworICAgIGludCByZXQ7CisKKyAgICBzeXNjdGwuY21k ID0gWEVOX1NZU0NUTF9nZXRfY3B1X3BvbGljeTsKKworICAgIHJldCA9IGRvX3N5c2N0bCh4Y2gs ICZzeXNjdGwpOworCisgICAgaWYgKCAhcmV0ICkKKyAgICB7CisgICAgICAgICpucl9sZWF2ZXMg PSBzeXNjdGwudS5jcHVfcG9saWN5Lm5yX2xlYXZlczsKKyAgICAgICAgKm5yX21zcnMgPSBzeXNj dGwudS5jcHVfcG9saWN5Lm5yX21zcnM7CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKwor aW50IHhjX2dldF9zeXN0ZW1fY3B1X3BvbGljeSh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3Qg aW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpucl9sZWF2ZXMs IHhlbl9jcHVpZF9sZWFmX3QgKmxlYXZlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgKm5yX21zcnMsIHhlbl9tc3JfZW50cnlfdCAqbXNycykKK3sKKyAgICBzdHJ1Y3Qg eGVuX3N5c2N0bCBzeXNjdGwgPSB7fTsKKyAgICBERUNMQVJFX0hZUEVSQ0FMTF9CT1VOQ0UobGVh dmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbnJfbGVhdmVzICogc2l6ZW9mKCps ZWF2ZXMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYQ19IWVBFUkNBTExfQlVGRkVS X0JPVU5DRV9PVVQpOworICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JPVU5DRShtc3JzLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqbnJfbXNycyAqIHNpemVvZigqbXNycyksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFhDX0hZUEVSQ0FMTF9CVUZGRVJfQk9VTkNFX09VVCk7Cisg ICAgaW50IHJldDsKKworICAgIGlmICggeGNfaHlwZXJjYWxsX2JvdW5jZV9wcmUoeGNoLCBsZWF2 ZXMpICkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgaWYgKCB4Y19oeXBlcmNhbGxfYm91bmNl X3ByZSh4Y2gsIG1zcnMpICkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgc3lzY3RsLmNtZCA9 IFhFTl9TWVNDVExfZ2V0X2NwdV9wb2xpY3k7CisgICAgc3lzY3RsLnUuY3B1X3BvbGljeS5pbmRl eCA9IGluZGV4OworICAgIHN5c2N0bC51LmNwdV9wb2xpY3kubnJfbGVhdmVzID0gKm5yX2xlYXZl czsKKyAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZShzeXNjdGwudS5jcHVfcG9saWN5LmNwdWlkX3Bv bGljeSwgbGVhdmVzKTsKKyAgICBzeXNjdGwudS5jcHVfcG9saWN5Lm5yX21zcnMgPSAqbnJfbXNy czsKKyAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZShzeXNjdGwudS5jcHVfcG9saWN5Lm1zcl9wb2xp Y3ksIG1zcnMpOworCisgICAgcmV0ID0gZG9fc3lzY3RsKHhjaCwgJnN5c2N0bCk7CisKKyAgICB4 Y19oeXBlcmNhbGxfYm91bmNlX3Bvc3QoeGNoLCBsZWF2ZXMpOworICAgIHhjX2h5cGVyY2FsbF9i b3VuY2VfcG9zdCh4Y2gsIG1zcnMpOworCisgICAgaWYgKCAhcmV0ICkKKyAgICB7CisgICAgICAg ICpucl9sZWF2ZXMgPSBzeXNjdGwudS5jcHVfcG9saWN5Lm5yX2xlYXZlczsKKyAgICAgICAgKm5y X21zcnMgPSBzeXNjdGwudS5jcHVfcG9saWN5Lm5yX21zcnM7CisgICAgfQorCisgICAgcmV0dXJu IHJldDsKK30KKwogc3RydWN0IGNwdWlkX2RvbWFpbl9pbmZvCiB7CiAgICAgZW51bQpkaWZmIC0t Z2l0IGEvdG9vbHMvbWlzYy94ZW4tY3B1aWQuYyBiL3Rvb2xzL21pc2MveGVuLWNwdWlkLmMKaW5k ZXggNGE0MDQ0YS4uMWMxNGQ5MyAxMDA2NDQKLS0tIGEvdG9vbHMvbWlzYy94ZW4tY3B1aWQuYwor KysgYi90b29scy9taXNjL3hlbi1jcHVpZC5jCkBAIC0yNzcsOSArMjc3LDM3IEBAIHN0YXRpYyB2 b2lkIGR1bXBfaW5mbyh4Y19pbnRlcmZhY2UgKnhjaCwgYm9vbCBkZXRhaWwpCiAgICAgICAgIGZy ZWUoZmVhdHVyZXNldHNbaV0uZnMpOwogfQogCitzdGF0aWMgdm9pZCBwcmludF9wb2xpY3koY29u c3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fY3B1aWRfbGVhZl90 ICpsZWF2ZXMsIHVpbnQzMl90IG5yX2xlYXZlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICB4 ZW5fbXNyX2VudHJ5X3QgKm1zcnMsIHVpbnQzMl90IG5yX21zcnMpCit7CisgICAgdW5zaWduZWQg aW50IGw7CisKKyAgICBwcmludGYoIiVzIHBvbGljeTogJXUgbGVhdmVzLCAldSBNU1JzXG4iLCBu YW1lLCBucl9sZWF2ZXMsIG5yX21zcnMpOworICAgIHByaW50ZigiIENQVUlEOlxuIik7CisgICAg cHJpbnRmKCIgICUtOHMgJS04cyAtPiAlLThzICUtOHMgJS04cyAlLThzXG4iLAorICAgICAgICAg ICAibGVhZiIsICJzdWJsZWFmIiwgImVheCIsICJlYngiLCAiZWN4IiwgImVkeCIpOworICAgIGZv ciAoIGwgPSAwOyBsIDwgbnJfbGVhdmVzOyArK2wgKQorICAgIHsKKyAgICAgICAgLyogU2tpcCBl bXB0eSBsZWF2ZXMuICovCisgICAgICAgIGlmICggIWxlYXZlc1tsXS5hICYmICFsZWF2ZXNbbF0u YiAmJiAhbGVhdmVzW2xdLmMgJiYgIWxlYXZlc1tsXS5kICkKKyAgICAgICAgICAgIGNvbnRpbnVl OworCisgICAgICAgIHByaW50ZigiICAlMDh4OiUwOHggLT4gJTA4eDolMDh4OiUwOHg6JTA4eFxu IiwKKyAgICAgICAgICAgICAgIGxlYXZlc1tsXS5sZWFmLCBsZWF2ZXNbbF0uc3VibGVhZiwKKyAg ICAgICAgICAgICAgIGxlYXZlc1tsXS5hLCBsZWF2ZXNbbF0uYiwgbGVhdmVzW2xdLmMsIGxlYXZl c1tsXS5kKTsKKyAgICB9CisKKyAgICBwcmludGYoIiBNU1JzOlxuIik7CisgICAgcHJpbnRmKCIg ICUtOHMgLT4gJS0xNnNcbiIsICJpbmRleCIsICJ2YWx1ZSIpOworICAgIGZvciAoIGwgPSAwOyBs IDwgbnJfbXNyczsgKytsICkKKyAgICAgICAgcHJpbnRmKCIgICUwOHggLT4gJTAxNmx4XG4iLAor ICAgICAgICAgICAgICAgbXNyc1tsXS5pZHgsIG1zcnNbbF0udmFsKTsKK30KKwogaW50IG1haW4o aW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewotICAgIGVudW0geyBNT0RFX1VOS05PV04sIE1PREVf SU5GTywgTU9ERV9ERVRBSUwsIE1PREVfSU5URVJQUkVUIH0KKyAgICBlbnVtIHsgTU9ERV9VTktO T1dOLCBNT0RFX0lORk8sIE1PREVfREVUQUlMLCBNT0RFX0lOVEVSUFJFVCwgTU9ERV9QT0xJQ1kg fQogICAgIG1vZGUgPSBNT0RFX1VOS05PV047CiAKICAgICBucl9mZWF0dXJlcyA9IHhjX2dldF9j cHVfZmVhdHVyZXNldF9zaXplKCk7CkBAIC0yOTMsMTAgKzMyMSwxMSBAQCBpbnQgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgICAgICB7ICJpbmZvIiwgbm9fYXJndW1lbnQsIE5V TEwsICdpJyB9LAogICAgICAgICAgICAgeyAiZGV0YWlsIiwgbm9fYXJndW1lbnQsIE5VTEwsICdk JyB9LAogICAgICAgICAgICAgeyAidmVyYm9zZSIsIG5vX2FyZ3VtZW50LCBOVUxMLCAndicgfSwK KyAgICAgICAgICAgIHsgInBvbGljeSIsIG5vX2FyZ3VtZW50LCBOVUxMLCAncCcgfSwKICAgICAg ICAgICAgIHsgTlVMTCwgMCwgTlVMTCwgMCB9LAogICAgICAgICB9OwogCi0gICAgICAgIGMgPSBn ZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiaGlkdiIsIGxvbmdfb3B0aW9ucywgJm9wdGlvbl9pbmRl eCk7CisgICAgICAgIGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiaGlkdnAiLCBsb25nX29w dGlvbnMsICZvcHRpb25faW5kZXgpOwogCiAgICAgICAgIGlmICggYyA9PSAtMSApCiAgICAgICAg ICAgICBicmVhazsKQEAgLTMxNCw2ICszNDMsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQogICAgICAgICAgICAgbW9kZSA9IE1PREVfSU5GTzsKICAgICAgICAgICAgIGJyZWFr OwogCisgICAgICAgIGNhc2UgJ3AnOgorICAgICAgICAgICAgbW9kZSA9IE1PREVfUE9MSUNZOwor ICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgY2FzZSAnZCc6CiAgICAgICAgIGNhc2UgJ3Yn OgogICAgICAgICAgICAgbW9kZSA9IE1PREVfREVUQUlMOwpAQCAtMzQ0LDcgKzM3Nyw1NSBAQCBp bnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgICAgICBtb2RlID0gTU9ERV9J TlRFUlBSRVQ7CiAgICAgfQogCi0gICAgaWYgKCBtb2RlID09IE1PREVfSU5GTyB8fCBtb2RlID09 IE1PREVfREVUQUlMICkKKyAgICBpZiAoIG1vZGUgPT0gTU9ERV9QT0xJQ1kgKQorICAgIHsKKyAg ICAgICAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHN5c19wb2xpY2llc1tdID0geworICAgICAg ICAgICAgWyBYRU5fU1lTQ1RMX2NwdV9wb2xpY3lfcmF3IF0gICAgICAgICAgPSAiUmF3IiwKKyAg ICAgICAgICAgIFsgWEVOX1NZU0NUTF9jcHVfcG9saWN5X2hvc3QgXSAgICAgICAgID0gIkhvc3Qi LAorICAgICAgICAgICAgWyBYRU5fU1lTQ1RMX2NwdV9wb2xpY3lfcHZfbWF4IF0gICAgICAgPSAi UFYgTWF4IiwKKyAgICAgICAgICAgIFsgWEVOX1NZU0NUTF9jcHVfcG9saWN5X2h2bV9tYXggXSAg ICAgID0gIkhWTSBNYXgiLAorICAgICAgICAgICAgWyBYRU5fU1lTQ1RMX2NwdV9wb2xpY3lfcHZf ZGVmYXVsdCBdICAgPSAiUFYgRGVmYXVsdCIsCisgICAgICAgICAgICBbIFhFTl9TWVNDVExfY3B1 X3BvbGljeV9odm1fZGVmYXVsdCBdICA9ICJIVk0gRGVmYXVsdCIsCisgICAgICAgIH07CisgICAg ICAgIHhlbl9jcHVpZF9sZWFmX3QgKmxlYXZlczsKKyAgICAgICAgeGVuX21zcl9lbnRyeV90ICpt c3JzOworICAgICAgICB1aW50MzJfdCBwb2wsIG1heF9sZWF2ZXMsIG1heF9tc3JzOworCisgICAg ICAgIHhjX2ludGVyZmFjZSAqeGNoID0geGNfaW50ZXJmYWNlX29wZW4oMCwgMCwgMCk7CisKKyAg ICAgICAgaWYgKCAheGNoICkKKyAgICAgICAgICAgIGVycigxLCAieGNfaW50ZXJmYWNlX29wZW4i KTsKKworICAgICAgICBpZiAoIHhjX2dldF9jcHVfcG9saWN5X3NpemUoeGNoLCAmbWF4X2xlYXZl cywgJm1heF9tc3JzKSApCisgICAgICAgICAgICBlcnIoMSwgInhjX2dldF9jcHVfcG9saWN5X3Np emUoLi4uKSIpOworICAgICAgICBwcmludGYoIlhlbiByZXBvcnRzIHRoZXJlIGFyZSBtYXhpbXVt ICV1IGxlYXZlcyBhbmQgJXUgTVNSc1xuIiwKKyAgICAgICAgICAgICAgICBtYXhfbGVhdmVzLCBt YXhfbXNycyk7CisKKyAgICAgICAgbGVhdmVzID0gY2FsbG9jKG1heF9sZWF2ZXMsIHNpemVvZih4 ZW5fY3B1aWRfbGVhZl90KSk7CisgICAgICAgIGlmICggIWxlYXZlcyApCisgICAgICAgICAgICBl cnIoMSwgImNhbGxvYyhtYXhfbGVhdmVzKSIpOworICAgICAgICBtc3JzID0gY2FsbG9jKG1heF9t c3JzLCBzaXplb2YoeGVuX21zcl9lbnRyeV90KSk7CisgICAgICAgIGlmICggIW1zcnMgKQorICAg ICAgICAgICAgZXJyKDEsICJjYWxsb2MobWF4X21zcnMpIik7CisKKyAgICAgICAgZm9yICggcG9s ID0gMDsgcG9sIDwgQVJSQVlfU0laRShzeXNfcG9saWNpZXMpOyArK3BvbCApCisgICAgICAgIHsK KyAgICAgICAgICAgIHVpbnQzMl90IG5yX2xlYXZlcyA9IG1heF9sZWF2ZXM7CisgICAgICAgICAg ICB1aW50MzJfdCBucl9tc3JzID0gbWF4X21zcnM7CisKKyAgICAgICAgICAgIGlmICggeGNfZ2V0 X3N5c3RlbV9jcHVfcG9saWN5KHhjaCwgcG9sLCAmbnJfbGVhdmVzLCBsZWF2ZXMsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbnJfbXNycywgbXNycykgKQor ICAgICAgICAgICAgICAgIGVycigxLCAieGNfZ2V0X3N5c3RlbV9jcHVfcG9saWN5KCwgJXMsLCki LAorICAgICAgICAgICAgICAgICAgICBzeXNfcG9saWNpZXNbcG9sXSk7CisKKyAgICAgICAgICAg IHByaW50X3BvbGljeShzeXNfcG9saWNpZXNbcG9sXSwgbGVhdmVzLCBucl9sZWF2ZXMsIG1zcnMs IG5yX21zcnMpOworICAgICAgICB9CisKKyAgICAgICAgZnJlZShsZWF2ZXMpOworICAgICAgICBm cmVlKG1zcnMpOworICAgICAgICB4Y19pbnRlcmZhY2VfY2xvc2UoeGNoKTsKKyAgICB9CisgICAg ZWxzZSBpZiAoIG1vZGUgPT0gTU9ERV9JTkZPIHx8IG1vZGUgPT0gTU9ERV9ERVRBSUwgKQogICAg IHsKICAgICAgICAgeGNfaW50ZXJmYWNlICp4Y2ggPSB4Y19pbnRlcmZhY2Vfb3BlbigwLCAwLCAw KTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3N5c2N0bC5jIGIveGVuL2FyY2gveDg2L3N5 c2N0bC5jCmluZGV4IDk5ODYzOTMuLjI5ZDQwM2MgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9z eXNjdGwuYworKysgYi94ZW4vYXJjaC94ODYvc3lzY3RsLmMKQEAgLTksNiArOSw3IEBACiAjaW5j bHVkZSA8eGVuL3R5cGVzLmg+CiAjaW5jbHVkZSA8eGVuL2xpYi5oPgogI2luY2x1ZGUgPHhlbi9t bS5oPgorI2luY2x1ZGUgPHhlbi9ub3NwZWMuaD4KICNpbmNsdWRlIDx4ZW4vZ3Vlc3RfYWNjZXNz Lmg+CiAjaW5jbHVkZSA8eGVuL2h5cGVyY2FsbC5oPgogI2luY2x1ZGUgPHB1YmxpYy9zeXNjdGwu aD4KQEAgLTMyMiw2ICszMjMsNzYgQEAgbG9uZyBhcmNoX2RvX3N5c2N0bCgKICAgICAgICAgYnJl YWs7CiAgICAgfQogCisgICAgY2FzZSBYRU5fU1lTQ1RMX2dldF9jcHVfcG9saWN5OgorICAgIHsK KyAgICAgICAgY29uc3Qgc3RydWN0IGNwdV9wb2xpY3kgKnBvbGljeTsKKworICAgICAgICAvKiBC YWQgcG9saWN5IGluZGV4PyAqLworICAgICAgICBpZiAoIHN5c2N0bC0+dS5jcHVfcG9saWN5Lmlu ZGV4ID49IEFSUkFZX1NJWkUoc3lzdGVtX3BvbGljaWVzKSApCisgICAgICAgIHsKKyAgICAgICAg ICAgIHJldCA9IC1FSU5WQUw7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg ICBwb2xpY3kgPSAmc3lzdGVtX3BvbGljaWVzWworICAgICAgICAgICAgYXJyYXlfaW5kZXhfbm9z cGVjKHN5c2N0bC0+dS5jcHVfcG9saWN5LmluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFSUkFZX1NJWkUoc3lzdGVtX3BvbGljaWVzKSldOworCisgICAgICAgIC8qIFJlcXVl c3QgZm9yIG1heGltdW0gbnVtYmVyIG9mIGxlYXZlcy9NU1JzPyAqLworICAgICAgICBpZiAoIGd1 ZXN0X2hhbmRsZV9pc19udWxsKHN5c2N0bC0+dS5jcHVfcG9saWN5LmNwdWlkX3BvbGljeSkgKQor ICAgICAgICB7CisgICAgICAgICAgICBzeXNjdGwtPnUuY3B1X3BvbGljeS5ucl9sZWF2ZXMgPSBD UFVJRF9NQVhfU0VSSUFMSVNFRF9MRUFWRVM7CisgICAgICAgICAgICBpZiAoIF9fY29weV9maWVs ZF90b19ndWVzdCh1X3N5c2N0bCwgc3lzY3RsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdS5jcHVfcG9saWN5Lm5yX2xlYXZlcykgKQorICAgICAgICAgICAgeworICAg ICAgICAgICAgICAgIHJldCA9IC1FRkFVTFQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCBndWVzdF9oYW5kbGVfaXNfbnVsbChz eXNjdGwtPnUuY3B1X3BvbGljeS5tc3JfcG9saWN5KSApCisgICAgICAgIHsKKyAgICAgICAgICAg IHN5c2N0bC0+dS5jcHVfcG9saWN5Lm5yX21zcnMgPSBNU1JfTUFYX1NFUklBTElTRURfRU5UUklF UzsKKyAgICAgICAgICAgIGlmICggX19jb3B5X2ZpZWxkX3RvX2d1ZXN0KHVfc3lzY3RsLCBzeXNj dGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1LmNwdV9wb2xpY3ku bnJfbXNycykgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldCA9IC1FRkFVTFQ7 CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg ICAgICAvKiBTZXJpYWxpc2UgdGhlIGluZm9ybWF0aW9uIHRoZSBjYWxsZXIgd2FudHMuICovCisg ICAgICAgIGlmICggIWd1ZXN0X2hhbmRsZV9pc19udWxsKHN5c2N0bC0+dS5jcHVfcG9saWN5LmNw dWlkX3BvbGljeSkgKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIChyZXQgPSB4ODZfY3B1 aWRfY29weV90b19idWZmZXIoCisgICAgICAgICAgICAgICAgICAgICAgcG9saWN5LT5jcHVpZCwK KyAgICAgICAgICAgICAgICAgICAgICBzeXNjdGwtPnUuY3B1X3BvbGljeS5jcHVpZF9wb2xpY3ks CisgICAgICAgICAgICAgICAgICAgICAgJnN5c2N0bC0+dS5jcHVfcG9saWN5Lm5yX2xlYXZlcykp ICkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgaWYgKCBfX2NvcHlfZmll bGRfdG9fZ3Vlc3QodV9zeXNjdGwsIHN5c2N0bCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHUuY3B1X3BvbGljeS5ucl9sZWF2ZXMpICApCisgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgcmV0ID0gLUVGQVVMVDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoICFndWVzdF9oYW5kbGVfaXNfbnVs bChzeXNjdGwtPnUuY3B1X3BvbGljeS5tc3JfcG9saWN5KSApCisgICAgICAgIHsKKyAgICAgICAg ICAgIGlmICggKHJldCA9IHg4Nl9tc3JfY29weV90b19idWZmZXIoCisgICAgICAgICAgICAgICAg ICAgICAgcG9saWN5LT5tc3IsCisgICAgICAgICAgICAgICAgICAgICAgc3lzY3RsLT51LmNwdV9w b2xpY3kubXNyX3BvbGljeSwKKyAgICAgICAgICAgICAgICAgICAgICAmc3lzY3RsLT51LmNwdV9w b2xpY3kubnJfbXNycykpICkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAg aWYgKCBfX2NvcHlfZmllbGRfdG9fZ3Vlc3QodV9zeXNjdGwsIHN5c2N0bCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUuY3B1X3BvbGljeS5ucl9tc3JzKSAgKQorICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldCA9IC1FRkFVTFQ7CisgICAgICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAg fQorCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0ID0gLUVOT1NZUzsKICAgICAgICAgYnJlYWs7 CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3RsLmggYi94ZW4vaW5jbHVkZS9w dWJsaWMvc3lzY3RsLmgKaW5kZXggN2VjMmRkOS4uNjQ2NDhiZCAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUvcHVibGljL3N5c2N0bC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9zeXNjdGwuaApA QCAtMTA3NSwxMiArMTA3NSwyNSBAQCBzdHJ1Y3QgeGVuX3N5c2N0bF9zZXRfcGFyYW1ldGVyIHsK ICAqICAtIERlZmF1bHRfKjogRGVmYXVsdCBzZXQgb2YgZmVhdHVyZXMgYSBQViBvciBIVk0gZ3Vl c3QgY2FuIHVzZS4gIFRoaXMgaXMKICAqICAgICAgICAgICAgICAgdGhlIHNlY3VyaXR5IHN1cHBv cnRlZCBzZXQuCiAgKi8KK3N0cnVjdCB4ZW5fc3lzY3RsX2NwdV9wb2xpY3kgewogI2RlZmluZSBY RU5fU1lTQ1RMX2NwdV9wb2xpY3lfcmF3ICAgICAgICAgIDAKICNkZWZpbmUgWEVOX1NZU0NUTF9j cHVfcG9saWN5X2hvc3QgICAgICAgICAxCiAjZGVmaW5lIFhFTl9TWVNDVExfY3B1X3BvbGljeV9w dl9tYXggICAgICAgMgogI2RlZmluZSBYRU5fU1lTQ1RMX2NwdV9wb2xpY3lfaHZtX21heCAgICAg IDMKICNkZWZpbmUgWEVOX1NZU0NUTF9jcHVfcG9saWN5X3B2X2RlZmF1bHQgICA0CiAjZGVmaW5l IFhFTl9TWVNDVExfY3B1X3BvbGljeV9odm1fZGVmYXVsdCAgNQorICAgIHVpbnQzMl90IGluZGV4 OyAgICAgICAvKiBJTjogV2hpY2ggcG9saWN5IHRvIHF1ZXJ5PyAqLworICAgIHVpbnQzMl90IG5y X2xlYXZlczsgICAvKiBJTi9PVVQ6IE51bWJlciBvZiBsZWF2ZXMgaW4vd3JpdHRlbiB0bworICAg ICAgICAgICAgICAgICAgICAgICAgICAgKiAnY3B1aWRfcG9saWN5Jywgb3IgdGhlIG1heGltdW0g bnVtYmVyIG9mIGxlYXZlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBpZiB0aGUgZ3Vl c3QgaGFuZGxlIGlzIE5VTEwuICovCisgICAgdWludDMyX3QgbnJfbXNyczsgICAgIC8qIElOL09V VDogTnVtYmVyIG9mIE1TUnMgaW4vd3JpdHRlbiB0bworICAgICAgICAgICAgICAgICAgICAgICAg ICAgKiAnbXNyX3BvbGljeScsIG9yIHRoZSBtYXhpbXVtIG51bWJlciBvZiBNU1JzIGlmCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAqIHRoZSBndWVzdCBoYW5kbGUgaXMgTlVMTC4gKi8KKyAg ICBYRU5fR1VFU1RfSEFORExFXzY0KHhlbl9jcHVpZF9sZWFmX3QpIGNwdWlkX3BvbGljeTsgLyog T1VUOiAqLworICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQoeGVuX21zcl9lbnRyeV90KSBtc3JfcG9s aWN5OyAgICAvKiBPVVQ6ICovCit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9jcHVfcG9s aWN5IHhlbl9zeXNjdGxfY3B1X3BvbGljeV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVu X3N5c2N0bF9jcHVfcG9saWN5X3QpOwogI2VuZGlmCiAKIHN0cnVjdCB4ZW5fc3lzY3RsIHsKQEAg LTExMTIsNiArMTEyNSw3IEBAIHN0cnVjdCB4ZW5fc3lzY3RsIHsKICNkZWZpbmUgWEVOX1NZU0NU TF9nZXRfY3B1X2ZlYXR1cmVzZXQgICAgICAgICAgICAyNgogI2RlZmluZSBYRU5fU1lTQ1RMX2xp dmVwYXRjaF9vcCAgICAgICAgICAgICAgICAgIDI3CiAjZGVmaW5lIFhFTl9TWVNDVExfc2V0X3Bh cmFtZXRlciAgICAgICAgICAgICAgICAgMjgKKyNkZWZpbmUgWEVOX1NZU0NUTF9nZXRfY3B1X3Bv bGljeSAgICAgICAgICAgICAgICAyOQogICAgIHVpbnQzMl90IGludGVyZmFjZV92ZXJzaW9uOyAv KiBYRU5fU1lTQ1RMX0lOVEVSRkFDRV9WRVJTSU9OICovCiAgICAgdW5pb24gewogICAgICAgICBz dHJ1Y3QgeGVuX3N5c2N0bF9yZWFkY29uc29sZSAgICAgICByZWFkY29uc29sZTsKQEAgLTExNDEs NiArMTE1NSw5IEBAIHN0cnVjdCB4ZW5fc3lzY3RsIHsKICAgICAgICAgc3RydWN0IHhlbl9zeXNj dGxfY3B1X2ZlYXR1cmVzZXQgICAgY3B1X2ZlYXR1cmVzZXQ7CiAgICAgICAgIHN0cnVjdCB4ZW5f c3lzY3RsX2xpdmVwYXRjaF9vcCAgICAgIGxpdmVwYXRjaDsKICAgICAgICAgc3RydWN0IHhlbl9z eXNjdGxfc2V0X3BhcmFtZXRlciAgICAgc2V0X3BhcmFtZXRlcjsKKyNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCisgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2Nw dV9wb2xpY3kgICAgICAgIGNwdV9wb2xpY3k7CisjZW5kaWYKICAgICAgICAgdWludDhfdCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGFkWzEyOF07CiAgICAgfSB1OwogfTsKZGlmZiAtLWdp dCBhL3hlbi94c20vZmxhc2svaG9va3MuYyBiL3hlbi94c20vZmxhc2svaG9va3MuYwppbmRleCA3 OGJjMzI2Li5mNjE0MjcyIDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysrIGIv eGVuL3hzbS9mbGFzay9ob29rcy5jCkBAIC04MDEsNiArODAxLDcgQEAgc3RhdGljIGludCBmbGFz a19zeXNjdGwoaW50IGNtZCkKICAgICBjYXNlIFhFTl9TWVNDVExfY3B1dG9wb2luZm86CiAgICAg Y2FzZSBYRU5fU1lTQ1RMX251bWFpbmZvOgogICAgIGNhc2UgWEVOX1NZU0NUTF9wY2l0b3BvaW5m bzoKKyAgICBjYXNlIFhFTl9TWVNDVExfZ2V0X2NwdV9wb2xpY3k6CiAgICAgICAgIHJldHVybiBk b21haW5faGFzX3hlbihjdXJyZW50LT5kb21haW4sIFhFTl9fUEhZU0lORk8pOwogCiAgICAgY2Fz ZSBYRU5fU1lTQ1RMX3Bzcl9jbXRfb3A6CmRpZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL3BvbGlj eS9hY2Nlc3NfdmVjdG9ycyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCmlu ZGV4IGM1ZDg1NDguLjhjNWJhZmYgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svcG9saWN5L2Fj Y2Vzc192ZWN0b3JzCisrKyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCkBA IC0yOCw3ICsyOCw3IEBAIGNsYXNzIHhlbgogIyBYRU5QRl9taWNyb2NvZGVfdXBkYXRlCiAgICAg bWljcm9jb2RlCiAjIFhFTl9TWVNDVExfcGh5c2luZm8sIFhFTl9TWVNDVExfY3B1dG9wb2luZm8s IFhFTl9TWVNDVExfbnVtYWluZm8KLSMgWEVOX1NZU0NUTF9wY2l0b3BvaW5mbworIyBYRU5fU1lT Q1RMX3BjaXRvcG9pbmZvLCBYRU5fU1lTQ1RMX2dldF9jcHVfcG9saWN5CiAgICAgcGh5c2luZm8K ICMgWEVOUEZfcGxhdGZvcm1fcXVpcmsKICAgICBxdWlyawotLSAKMi4xLjQKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2pl Y3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs