From mboxrd@z Thu Jan 1 00:00:00 1970 From: vijay.kilari@gmail.com Subject: [RFC PATCH v3 02/24] x86: NUMA: Clean up: Fix coding styles and drop unused code Date: Tue, 18 Jul 2017 17:11:24 +0530 Message-ID: <1500378106-2620-3-git-send-email-vijay.kilari@gmail.com> References: <1500378106-2620-1-git-send-email-vijay.kilari@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1500378106-2620-1-git-send-email-vijay.kilari@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: kevin.tian@intel.com, sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, julien.grall@arm.com, jbeulich@suse.com, Vijaya Kumar K List-Id: xen-devel@lists.xenproject.org RnJvbTogVmlqYXlhIEt1bWFyIEsgPFZpamF5YS5LdW1hckBjYXZpdW0uY29tPgoKRml4IGNvZGlu ZyBzdHlsZSwgdHJhaWxpbmcgc3BhY2VzLCB0YWJzIGluIE5VTUEgY29kZS4KQWxzbyBkcm9wIHVu dXNlZCBtYWNyb3MgYW5kIGZ1bmN0aW9ucy4KVGhlcmUgaXMgbm8gZnVuY3Rpb25hbCBjaGFuZ2Uu CgpTaWduZWQtb2ZmLWJ5OiBWaWpheWEgS3VtYXIgSyA8VmlqYXlhLkt1bWFyQGNhdml1bS5jb20+ ClJldmlld2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KdjM6IC0gQ2hh bmdlIGNvbW1pdCBtZXNzYWdlCiAgICAtIENoYW5nZWQgVklSVFVBTF9CVUdfT04gdG8gQVNTRVJU CiAgICAtIERyb3BwZWQgdXNlbGVzcyBpbm5lciBwYXJhbnRoZXNpcyBmb3Igc29tZSBtYWNyb3MK LS0tCiB4ZW4vYXJjaC94ODYvbnVtYS5jICAgICAgICB8IDU1ICsrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L3NyYXQuYyAgICAgICAgfCAg MiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9udW1hLmggfCA1NiArKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS94ZW4vbnVtYS5oICAgICB8 ICAzIC0tLQogNCBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbnVtYS5jIGIveGVuL2FyY2gveDg2L251bWEu YwppbmRleCBkNDUxOTZmYS4uNDQ0ZDdhZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L251bWEu YworKysgYi94ZW4vYXJjaC94ODYvbnVtYS5jCkBAIC0xLDggKzEsOCBAQAotLyogCisvKgogICog R2VuZXJpYyBWTSBpbml0aWFsaXphdGlvbiBmb3IgeDg2LTY0IE5VTUEgc2V0dXBzLgogICogQ29w eXJpZ2h0IDIwMDIsMjAwMyBBbmRpIEtsZWVuLCBTdVNFIExhYnMuCiAgKiBBZGFwdGVkIGZvciBY ZW46IFJ5YW4gSGFycGVyIDxyeWFuaEB1cy5pYm0uY29tPgotICovIAorICovCiAKICNpbmNsdWRl IDx4ZW4vbW0uaD4KICNpbmNsdWRlIDx4ZW4vc3RyaW5nLmg+CkBAIC0yMSwxMyArMjEsNiBAQAog c3RhdGljIGludCBudW1hX3NldHVwKGNoYXIgKnMpOwogY3VzdG9tX3BhcmFtKCJudW1hIiwgbnVt YV9zZXR1cCk7CiAKLSNpZm5kZWYgRHByaW50awotI2RlZmluZSBEcHJpbnRrKHguLi4pCi0jZW5k aWYKLQotLyogZnJvbSBwcm90by5oICovCi0jZGVmaW5lIHJvdW5kX3VwKHgseSkgKCgoKHgpKyh5 KSktMSkgJiAofigoeSktMSkpKQotCiBzdHJ1Y3Qgbm9kZV9kYXRhIG5vZGVfZGF0YVtNQVhfTlVN Tk9ERVNdOwogCiAvKiBNYXBwaW5nIGZyb20gcGR4IHRvIG5vZGUgaWQgKi8KQEAgLTE0NCw4ICsx MzcsOSBAQCBzdGF0aWMgaW50IF9faW5pdCBleHRyYWN0X2xzYl9mcm9tX25vZGVzKGNvbnN0IHN0 cnVjdCBub2RlICpub2RlcywKICAgICBpZiAoIG5vZGVzX3VzZWQgPD0gMSApCiAgICAgICAgIGkg PSBCSVRTX1BFUl9MT05HIC0gMTsKICAgICBlbHNlCi0gICAgICAgIGkgPSBmaW5kX2ZpcnN0X2Jp dCgmYml0ZmllbGQsIHNpemVvZih1bnNpZ25lZCBsb25nKSo4KTsKKyAgICAgICAgaSA9IGZpbmRf Zmlyc3RfYml0KCZiaXRmaWVsZCwgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogOCk7CiAgICAgbWVt bm9kZW1hcHNpemUgPSAobWVtdG9wID4+IGkpICsgMTsKKwogICAgIHJldHVybiBpOwogfQogCkBA IC0xNzMsNyArMTY3LDcgQEAgaW50IF9faW5pdCBjb21wdXRlX2hhc2hfc2hpZnQoc3RydWN0IG5v ZGUgKm5vZGVzLCBpbnQgbnVtbm9kZXMsCiB9CiAvKiBpbml0aWFsaXplIE5PREVfREFUQSBnaXZl biBub2RlaWQgYW5kIHN0YXJ0L2VuZCAqLwogdm9pZCBfX2luaXQgc2V0dXBfbm9kZV9ib290bWVt KG5vZGVpZF90IG5vZGVpZCwgdTY0IHN0YXJ0LCB1NjQgZW5kKQoteyAKK3sKICAgICB1bnNpZ25l ZCBsb25nIHN0YXJ0X3BmbiwgZW5kX3BmbjsKIAogICAgIHN0YXJ0X3BmbiA9IHN0YXJ0ID4+IFBB R0VfU0hJRlQ7CkBAIC0xODMsNyArMTc3LDcgQEAgdm9pZCBfX2luaXQgc2V0dXBfbm9kZV9ib290 bWVtKG5vZGVpZF90IG5vZGVpZCwgdTY0IHN0YXJ0LCB1NjQgZW5kKQogICAgIE5PREVfREFUQShu b2RlaWQpLT5ub2RlX3NwYW5uZWRfcGFnZXMgPSBlbmRfcGZuIC0gc3RhcnRfcGZuOwogCiAgICAg bm9kZV9zZXRfb25saW5lKG5vZGVpZCk7Ci19IAorfQogCiB2b2lkIF9faW5pdCBudW1hX2luaXRf YXJyYXkodm9pZCkKIHsKQEAgLTIxNCw3ICsyMDgsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBudW1h X2VtdWxhdGlvbih1NjQgc3RhcnRfcGZuLCB1NjQgZW5kX3BmbikKIHsKICAgICBpbnQgaTsKICAg ICBzdHJ1Y3Qgbm9kZSBub2Rlc1tNQVhfTlVNTk9ERVNdOwotICAgIHU2NCBzeiA9ICgoZW5kX3Bm biAtIHN0YXJ0X3Bmbik8PFBBR0VfU0hJRlQpIC8gbnVtYV9mYWtlOworICAgIHU2NCBzeiA9ICgo ZW5kX3BmbiAtIHN0YXJ0X3BmbikgPDwgUEFHRV9TSElGVCkgLyBudW1hX2Zha2U7CiAKICAgICAv KiBLbHVkZ2UgbmVlZGVkIGZvciB0aGUgaGFzaCBmdW5jdGlvbiAqLwogICAgIGlmICggaHdlaWdo dDY0KHN6KSA+IDEgKQpAQCAtMjIyLDIxICsyMTYsMjIgQEAgc3RhdGljIGludCBfX2luaXQgbnVt YV9lbXVsYXRpb24odTY0IHN0YXJ0X3BmbiwgdTY0IGVuZF9wZm4pCiAgICAgICAgIHU2NCB4ID0g MTsKICAgICAgICAgd2hpbGUgKCAoeCA8PCAxKSA8IHN6ICkKICAgICAgICAgICAgIHggPDw9IDE7 Ci0gICAgICAgIGlmICggeCA8IHN6LzIgKQotICAgICAgICAgICAgcHJpbnRrKEtFUk5fRVJSICJO dW1hIGVtdWxhdGlvbiB1bmJhbGFuY2VkLiBDb21wbGFpbiB0byBtYWludGFpbmVyXG4iKTsKKyAg ICAgICAgaWYgKCB4IDwgc3ogLyAyICkKKyAgICAgICAgICAgIHByaW50ayhLRVJOX0VSUgorICAg ICAgICAgICAgICAgICAgICJOdW1hIGVtdWxhdGlvbiB1bmJhbGFuY2VkLiBDb21wbGFpbiB0byBt YWludGFpbmVyXG4iKTsKICAgICAgICAgc3ogPSB4OwogICAgIH0KIAogICAgIG1lbXNldCgmbm9k ZXMsMCxzaXplb2Yobm9kZXMpKTsKICAgICBmb3IgKCBpID0gMDsgaSA8IG51bWFfZmFrZTsgaSsr ICkKICAgICB7Ci0gICAgICAgIG5vZGVzW2ldLnN0YXJ0ID0gKHN0YXJ0X3Bmbjw8UEFHRV9TSElG VCkgKyBpKnN6OworICAgICAgICBub2Rlc1tpXS5zdGFydCA9IChzdGFydF9wZm4gPDwgUEFHRV9T SElGVCkgKyBpICogc3o7CiAgICAgICAgIGlmICggaSA9PSBudW1hX2Zha2UgLSAxICkKLSAgICAg ICAgICAgIHN6ID0gKGVuZF9wZm48PFBBR0VfU0hJRlQpIC0gbm9kZXNbaV0uc3RhcnQ7CisgICAg ICAgICAgICBzeiA9IChlbmRfcGZuIDw8IFBBR0VfU0hJRlQpIC0gbm9kZXNbaV0uc3RhcnQ7CiAg ICAgICAgIG5vZGVzW2ldLmVuZCA9IG5vZGVzW2ldLnN0YXJ0ICsgc3o7Ci0gICAgICAgIHByaW50 ayhLRVJOX0lORk8gIkZha2luZyBub2RlICVkIGF0ICUiUFJJeDY0Ii0lIlBSSXg2NCIgKCUiUFJJ dTY0Ik1CKVxuIiwKLSAgICAgICAgICAgICAgIGksCi0gICAgICAgICAgICAgICBub2Rlc1tpXS5z dGFydCwgbm9kZXNbaV0uZW5kLAorICAgICAgICBwcmludGsoS0VSTl9JTkZPCisgICAgICAgICAg ICAgICAiRmFraW5nIG5vZGUgJWQgYXQgJSJQUkl4NjQiLSUiUFJJeDY0IiAoJSJQUkl1NjQiTUIp XG4iLAorICAgICAgICAgICAgICAgaSwgbm9kZXNbaV0uc3RhcnQsIG5vZGVzW2ldLmVuZCwKICAg ICAgICAgICAgICAgIChub2Rlc1tpXS5lbmQgLSBub2Rlc1tpXS5zdGFydCkgPj4gMjApOwogICAg ICAgICBub2RlX3NldF9vbmxpbmUoaSk7CiAgICAgfQpAQCAtMjU2LDcgKzI1MSw3IEBAIHN0YXRp YyBpbnQgX19pbml0IG51bWFfZW11bGF0aW9uKHU2NCBzdGFydF9wZm4sIHU2NCBlbmRfcGZuKQog I2VuZGlmCiAKIHZvaWQgX19pbml0IG51bWFfaW5pdG1lbV9pbml0KHVuc2lnbmVkIGxvbmcgc3Rh cnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pCi17IAorewogICAgIGludCBpOwogCiAjaWZk ZWYgQ09ORklHX05VTUFfRU1VCkBAIC0yOTEsNyArMjg2LDcgQEAgdm9pZCBfX2luaXQgbnVtYV9p bml0bWVtX2luaXQodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgZW5kX3Bm bikKIHZvaWQgbnVtYV9hZGRfY3B1KGludCBjcHUpCiB7CiAgICAgY3B1bWFza19zZXRfY3B1KGNw dSwgJm5vZGVfdG9fY3B1bWFza1tjcHVfdG9fbm9kZShjcHUpXSk7Ci19IAorfQogCiB2b2lkIG51 bWFfc2V0X25vZGUoaW50IGNwdSwgbm9kZWlkX3Qgbm9kZSkKIHsKQEAgLTI5OSwyMyArMjk0LDIz IEBAIHZvaWQgbnVtYV9zZXRfbm9kZShpbnQgY3B1LCBub2RlaWRfdCBub2RlKQogfQogCiAvKiBb bnVtYT1vZmZdICovCi1zdGF0aWMgX19pbml0IGludCBudW1hX3NldHVwKGNoYXIgKm9wdCkgCi17 IAotICAgIGlmICggIXN0cm5jbXAob3B0LCJvZmYiLDMpICkKK3N0YXRpYyBfX2luaXQgaW50IG51 bWFfc2V0dXAoY2hhciAqb3B0KQoreworICAgIGlmICggIXN0cm5jbXAob3B0LCAib2ZmIiwgMykg KQogICAgICAgICBudW1hX29mZiA9IHRydWU7Ci0gICAgaWYgKCAhc3RybmNtcChvcHQsIm9uIiwy KSApCisgICAgaWYgKCAhc3RybmNtcChvcHQsICJvbiIsIDIpICkKICAgICAgICAgbnVtYV9vZmYg PSBmYWxzZTsKICNpZmRlZiBDT05GSUdfTlVNQV9FTVUKICAgICBpZiAoICFzdHJuY21wKG9wdCwg ImZha2U9IiwgNSkgKQogICAgIHsKICAgICAgICAgbnVtYV9vZmYgPSBmYWxzZTsKLSAgICAgICAg bnVtYV9mYWtlID0gc2ltcGxlX3N0cnRvdWwob3B0KzUsTlVMTCwwKTsKKyAgICAgICAgbnVtYV9m YWtlID0gc2ltcGxlX3N0cnRvdWwob3B0ICsgNSwgTlVMTCwgMCk7CiAgICAgICAgIGlmICggbnVt YV9mYWtlID49IE1BWF9OVU1OT0RFUyApCiAgICAgICAgICAgICBudW1hX2Zha2UgPSBNQVhfTlVN Tk9ERVM7CiAgICAgfQogI2VuZGlmCiAjaWZkZWYgQ09ORklHX0FDUElfTlVNQQotICAgIGlmICgg IXN0cm5jbXAob3B0LCJub2FjcGkiLDYpICkKKyAgICBpZiAoICFzdHJuY21wKG9wdCwibm9hY3Bp IiwgNikgKQogICAgIHsKICAgICAgICAgbnVtYV9vZmYgPSBmYWxzZTsKICAgICAgICAgYWNwaV9u dW1hID0gLTE7CkBAIC0zMjMsNyArMzE4LDcgQEAgc3RhdGljIF9faW5pdCBpbnQgbnVtYV9zZXR1 cChjaGFyICpvcHQpCiAjZW5kaWYKIAogICAgIHJldHVybiAxOwotfSAKK30KIAogLyoKICAqIFNl dHVwIGVhcmx5IGNwdV90b19ub2RlLgpAQCAtMzg1LDcgKzM4MCw3IEBAIHN0YXRpYyB2b2lkIGR1 bXBfbnVtYSh1bnNpZ25lZCBjaGFyIGtleSkKICAgICBjb25zdCBzdHJ1Y3Qgdm51bWFfaW5mbyAq dm51bWE7CiAKICAgICBwcmludGsoIiclYycgcHJlc3NlZCAtPiBkdW1waW5nIG51bWEgaW5mbyAo bm93LTB4JVg6JTA4WClcbiIsIGtleSwKLSAgICAgICAgICAgKHUzMikobm93Pj4zMiksICh1MzIp bm93KTsKKyAgICAgICAgICAgKHUzMikobm93ID4+IDMyKSwgKHUzMilub3cpOwogCiAgICAgZm9y X2VhY2hfb25saW5lX25vZGUgKCBpICkKICAgICB7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv c3JhdC5jIGIveGVuL2FyY2gveDg2L3NyYXQuYwppbmRleCBjZDEyODNlLi5lYzA4MTEyIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvc3JhdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zcmF0LmMKQEAg LTcsNyArNyw3IEBACiAgKiBDYWxsZWQgZnJvbSBhY3BpX251bWFfaW5pdCB3aGlsZSByZWFkaW5n IHRoZSBTUkFUIGFuZCBTTElUIHRhYmxlcy4KICAqIEFzc3VtZXMgYWxsIG1lbW9yeSByZWdpb25z IGJlbG9uZ2luZyB0byBhIHNpbmdsZSBwcm94aW1pdHkgZG9tYWluCiAgKiBhcmUgaW4gb25lIGNo dW5rLiBIb2xlcyBiZXR3ZWVuIHRoZW0gd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgbm9kZS4KLSAq IAorICoKICAqIEFkYXB0ZWQgZm9yIFhlbjogUnlhbiBIYXJwZXIgPHJ5YW5oQHVzLmlibS5jb20+ CiAgKi8KIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9udW1hLmggYi94ZW4vaW5j bHVkZS9hc20teDg2L251bWEuaAppbmRleCAzY2YyNmMyLi5jMGRlNTdiIDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS9hc20teDg2L251bWEuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L251bWEu aApAQCAtMSw4ICsxLDExIEBACi0jaWZuZGVmIF9BU01fWDg2NjRfTlVNQV9IIAorI2lmbmRlZiBf QVNNX1g4NjY0X05VTUFfSAogI2RlZmluZSBfQVNNX1g4NjY0X05VTUFfSCAxCiAKICNpbmNsdWRl IDx4ZW4vY3B1bWFzay5oPgogCisjZGVmaW5lIE1BWF9OVU1OT0RFUyAgICBOUl9OT0RFUworI2Rl ZmluZSBOUl9OT0RFX01FTUJMS1MgKE1BWF9OVU1OT0RFUyAqIDIpCisKIHR5cGVkZWYgdTggbm9k ZWlkX3Q7CiAKIGV4dGVybiBpbnQgc3JhdF9yZXY7CkBAIC0xMCwyMSArMTMsMjEgQEAgZXh0ZXJu IGludCBzcmF0X3JldjsKIGV4dGVybiBub2RlaWRfdCAgICAgIGNwdV90b19ub2RlW05SX0NQVVNd OwogZXh0ZXJuIGNwdW1hc2tfdCAgICAgbm9kZV90b19jcHVtYXNrW107CiAKLSNkZWZpbmUgY3B1 X3RvX25vZGUoY3B1KQkJKGNwdV90b19ub2RlW2NwdV0pCi0jZGVmaW5lIHBhcmVudF9ub2RlKG5v ZGUpCQkobm9kZSkKKyNkZWZpbmUgY3B1X3RvX25vZGUoY3B1KSAgICAgICAgIChjcHVfdG9fbm9k ZVtjcHVdKQorI2RlZmluZSBwYXJlbnRfbm9kZShub2RlKSAgICAgICAgKG5vZGUpCiAjZGVmaW5l IG5vZGVfdG9fZmlyc3RfY3B1KG5vZGUpICAoX19mZnMobm9kZV90b19jcHVtYXNrW25vZGVdKSkK ICNkZWZpbmUgbm9kZV90b19jcHVtYXNrKG5vZGUpICAgIChub2RlX3RvX2NwdW1hc2tbbm9kZV0p CiAKLXN0cnVjdCBub2RlIHsgCi0JdTY0IHN0YXJ0LGVuZDsgCitzdHJ1Y3Qgbm9kZSB7CisgICAg dTY0IHN0YXJ0OworICAgIHU2NCBlbmQ7CiB9OwogCiBleHRlcm4gaW50IGNvbXB1dGVfaGFzaF9z aGlmdChzdHJ1Y3Qgbm9kZSAqbm9kZXMsIGludCBudW1ub2RlcywKLQkJCSAgICAgIG5vZGVpZF90 ICpub2RlaWRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVpZF90ICpub2Rl aWRzKTsKIGV4dGVybiBub2RlaWRfdCBweG1fdG9fbm9kZSh1bnNpZ25lZCBpbnQgcHhtKTsKIAog I2RlZmluZSBaT05FX0FMSUdOICgxVUwgPDwgKE1BWF9PUkRFUitQQUdFX1NISUZUKSkKLSNkZWZp bmUgVklSVFVBTF9CVUdfT04oeCkgCiAKIGV4dGVybiB2b2lkIG51bWFfYWRkX2NwdShpbnQgY3B1 KTsKIGV4dGVybiB2b2lkIG51bWFfaW5pdF9hcnJheSh2b2lkKTsKQEAgLTQwLDEzICs0Myw4IEBA IGV4dGVybiB2b2lkIHNldHVwX25vZGVfYm9vdG1lbShub2RlaWRfdCBub2RlaWQsIHU2NCBzdGFy dCwgdTY0IGVuZCk7CiBleHRlcm4gbm9kZWlkX3QgYXBpY2lkX3RvX25vZGVbXTsKIGV4dGVybiB2 b2lkIGluaXRfY3B1X3RvX25vZGUodm9pZCk7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9u b2RlX2NwdW1hc2soaW50IGNwdSkKLXsKLQljcHVtYXNrX2NsZWFyX2NwdShjcHUsICZub2RlX3Rv X2NwdW1hc2tbY3B1X3RvX25vZGUoY3B1KV0pOwotfQotCiAvKiBTaW1wbGUgcGVyZmVjdCBoYXNo IHRvIG1hcCBwZHggdG8gbm9kZSBudW1iZXJzICovCi1leHRlcm4gaW50IG1lbW5vZGVfc2hpZnQ7 IAorZXh0ZXJuIGludCBtZW1ub2RlX3NoaWZ0OwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbWVtbm9k ZW1hcHNpemU7CiBleHRlcm4gdTggKm1lbW5vZGVtYXA7CiAKQEAgLTU3LDIxICs1NSwyMyBAQCBz dHJ1Y3Qgbm9kZV9kYXRhIHsKIAogZXh0ZXJuIHN0cnVjdCBub2RlX2RhdGEgbm9kZV9kYXRhW107 CiAKLXN0YXRpYyBpbmxpbmUgX19hdHRyaWJ1dGVfXygocHVyZSkpIG5vZGVpZF90IHBoeXNfdG9f bmlkKHBhZGRyX3QgYWRkcikKLXsgCi0Jbm9kZWlkX3QgbmlkOwotCVZJUlRVQUxfQlVHX09OKChw YWRkcl90b19wZHgoYWRkcikgPj4gbWVtbm9kZV9zaGlmdCkgPj0gbWVtbm9kZW1hcHNpemUpOwot CW5pZCA9IG1lbW5vZGVtYXBbcGFkZHJfdG9fcGR4KGFkZHIpID4+IG1lbW5vZGVfc2hpZnRdOyAK LQlWSVJUVUFMX0JVR19PTihuaWQgPj0gTUFYX05VTU5PREVTIHx8ICFub2RlX2RhdGFbbmlkXSk7 IAotCXJldHVybiBuaWQ7IAotfSAKLQotI2RlZmluZSBOT0RFX0RBVEEobmlkKQkJKCYobm9kZV9k YXRhW25pZF0pKQotCi0jZGVmaW5lIG5vZGVfc3RhcnRfcGZuKG5pZCkJKE5PREVfREFUQShuaWQp LT5ub2RlX3N0YXJ0X3BmbikKLSNkZWZpbmUgbm9kZV9zcGFubmVkX3BhZ2VzKG5pZCkJKE5PREVf REFUQShuaWQpLT5ub2RlX3NwYW5uZWRfcGFnZXMpCi0jZGVmaW5lIG5vZGVfZW5kX3BmbihuaWQp ICAgICAgIChOT0RFX0RBVEEobmlkKS0+bm9kZV9zdGFydF9wZm4gKyBcCi0JCQkJIE5PREVfREFU QShuaWQpLT5ub2RlX3NwYW5uZWRfcGFnZXMpCitzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX3B1 cmVfXyBub2RlaWRfdCBwaHlzX3RvX25pZChwYWRkcl90IGFkZHIpCit7CisgICBub2RlaWRfdCBu aWQ7CisKKyAgIEFTU0VSVCgocGFkZHJfdG9fcGR4KGFkZHIpID4+IG1lbW5vZGVfc2hpZnQpIDwg bWVtbm9kZW1hcHNpemUpOworICAgbmlkID0gbWVtbm9kZW1hcFtwYWRkcl90b19wZHgoYWRkcikg Pj4gbWVtbm9kZV9zaGlmdF07CisgICBBU1NFUlQobmlkIDw9IE1BWF9OVU1OT0RFUyB8fCAhbm9k ZV9kYXRhW25pZF0ubm9kZV9zdGFydF9wZm4pOworCisgICByZXR1cm4gbmlkOworfQorCisjZGVm aW5lIE5PREVfREFUQShuaWQpICAgICAgICAgICgmKG5vZGVfZGF0YVtuaWRdKSkKKworI2RlZmlu ZSBub2RlX3N0YXJ0X3BmbihuaWQpICAgICBOT0RFX0RBVEEobmlkKS0+bm9kZV9zdGFydF9wZm4K KyNkZWZpbmUgbm9kZV9zcGFubmVkX3BhZ2VzKG5pZCkgTk9ERV9EQVRBKG5pZCktPm5vZGVfc3Bh bm5lZF9wYWdlcworI2RlZmluZSBub2RlX2VuZF9wZm4obmlkKSAgICAgICBOT0RFX0RBVEEobmlk KS0+bm9kZV9zdGFydF9wZm4gKyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO T0RFX0RBVEEobmlkKS0+bm9kZV9zcGFubmVkX3BhZ2VzCiAKIGV4dGVybiBpbnQgdmFsaWRfbnVt YV9yYW5nZSh1NjQgc3RhcnQsIHU2NCBlbmQsIG5vZGVpZF90IG5vZGUpOwogCmRpZmYgLS1naXQg YS94ZW4vaW5jbHVkZS94ZW4vbnVtYS5oIGIveGVuL2luY2x1ZGUveGVuL251bWEuaAppbmRleCA2 YmJhMjllLi4zYmI0YWZjIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vbnVtYS5oCisrKyBi L3hlbi9pbmNsdWRlL3hlbi9udW1hLmgKQEAgLTYsOSArNiw2IEBACiAjZGVmaW5lIE5VTUFfTk9f Tk9ERSAgICAgMHhGRgogI2RlZmluZSBOVU1BX05PX0RJU1RBTkNFIDB4RkYKIAotI2RlZmluZSBN QVhfTlVNTk9ERVMgICAgTlJfTk9ERVMKLSNkZWZpbmUgTlJfTk9ERV9NRU1CTEtTIChNQVhfTlVN Tk9ERVMgKiAyKQotCiAjZGVmaW5lIHZjcHVfdG9fbm9kZSh2KSAoY3B1X3RvX25vZGUoKHYpLT5w cm9jZXNzb3IpKQogCiAjZGVmaW5lIGRvbWFpbl90b19ub2RlKGQpIFwKLS0gCjIuNy40CgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==