From mboxrd@z Thu Jan 1 00:00:00 1970 From: vijay.kilari@gmail.com Subject: [RFC PATCH v3 06/24] x86: NUMA: Rename some generic functions Date: Tue, 18 Jul 2017 17:11:28 +0530 Message-ID: <1500378106-2620-7-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 RnJvbTogVmlqYXlhIEt1bWFyIEsgPFZpamF5YS5LdW1hckBjYXZpdW0uY29tPgoKUmVuYW1lIHNv bWUgZnVuY3Rpb24gaW4gQUNQSSBjb2RlIGFzIGZvbGxvdwogLSBSZW5hbWUgc2V0dXBfbm9kZSB0 byBhY3BpX3NldHVwX25vZGUKIC0gUmVuYW1lIGJhZF9zcmF0IHRvIG51bWFfZmFpbGVkCiAtIFJl bmFtZSBub2Rlc19jb3Zlcl9tZW1vcnkgdG8gYXJjaF9zYW5pdGl6ZV9ub2Rlc19tZW1vcnkKICAg YW5kIGNoYW5nZWQgcmV0dXJuIHR5cGUgdG8gYm9vbAogLSBSZW5hbWUgYWNwaV9zY2FuX25vZGVz IHRvIG51bWFfc2Nhbl9ub2RlcwoKQWxzbyBpbnRyb2R1Y2UgcmVzZXRfcHhtMm5vZGUoKSB0byBy ZXNldCBweG0ybm9kZSB2YXJpYWJsZS4KVGhpcyBhdm9pZHMgZXhwb3J0aW5nIHB4bTJub2RlLgoK U2lnbmVkLW9mZi1ieTogVmlqYXlhIEt1bWFyIEsgPFZpamF5YS5LdW1hckBjYXZpdW0uY29tPgot LS0KIHYzOiBDaGFuZ2VkIHJldHVybiB0eXBlIG9mIGFyY2hfc2FuaXRpemVfbm9kZXNfbWVtb3J5 Ci0tLQogeGVuL2FyY2gveDg2L251bWEuYyAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L3Nt cGJvb3QuYyAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L3NyYXQuYyAgICAgICAgfCA1NSArKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYv eDg2XzY0L21tLmMgICB8ICAyICstCiB4ZW4vaW5jbHVkZS9hc20teDg2L2FjcGkuaCB8ICAyICst CiB4ZW4vaW5jbHVkZS9hc20teDg2L251bWEuaCB8ICAyICstCiA2IGZpbGVzIGNoYW5nZWQsIDM2 IGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9udW1hLmMgYi94ZW4vYXJjaC94ODYvbnVtYS5jCmluZGV4IDJlYTJlYzAuLjQ0YzJlMDggMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9udW1hLmMKKysrIGIveGVuL2FyY2gveDg2L251bWEuYwpA QCAtMjcxLDcgKzI3MSw3IEBAIHZvaWQgX19pbml0IG51bWFfaW5pdG1lbV9pbml0KHVuc2lnbmVk IGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pCiAKICNpZmRlZiBDT05GSUdf QUNQSV9OVU1BCiAgICAgaWYgKCAhbnVtYV9vZmYgJiYKLSAgICAgICAgICFhY3BpX3NjYW5fbm9k ZXMocGZuX3RvX3BhZGRyKHN0YXJ0X3BmbiksIHBmbl90b19wYWRkcihlbmRfcGZuKSkgKQorICAg ICAgICAgIW51bWFfc2Nhbl9ub2RlcyhwZm5fdG9fcGFkZHIoc3RhcnRfcGZuKSwgcGZuX3RvX3Bh ZGRyKGVuZF9wZm4pKSApCiAgICAgICAgIHJldHVybjsKICNlbmRpZgogCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvc21wYm9vdC5jIGIveGVuL2FyY2gveDg2L3NtcGJvb3QuYwppbmRleCA4ZDkx ZjZjLi43OGFmMGQyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc21wYm9vdC5jCisrKyBiL3hl bi9hcmNoL3g4Ni9zbXBib290LmMKQEAgLTk1Nyw3ICs5NTcsNyBAQCBpbnQgY3B1X2FkZCh1aW50 MzJfdCBhcGljX2lkLCB1aW50MzJfdCBhY3BpX2lkLCB1aW50MzJfdCBweG0pCiAKICAgICBpZiAo ICFzcmF0X2Rpc2FibGVkKCkgKQogICAgIHsKLSAgICAgICAgbm9kZWlkX3Qgbm9kZSA9IHNldHVw X25vZGUocHhtKTsKKyAgICAgICAgbm9kZWlkX3Qgbm9kZSA9IGFjcGlfc2V0dXBfbm9kZShweG0p OwogCiAgICAgICAgIGlmICggbm9kZSA9PSBOVU1BX05PX05PREUgKQogICAgICAgICB7CmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvc3JhdC5jIGIveGVuL2FyY2gveDg2L3NyYXQuYwppbmRleCA0 MmNjYTVhLi4wM2JjMzdkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc3JhdC5jCisrKyBiL3hl bi9hcmNoL3g4Ni9zcmF0LmMKQEAgLTg1LDYgKzg1LDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBu b2RlX2ZvdW5kKHVuc2lnbmVkIGludCBpZHgsIHVuc2lnbmVkIGludCBweG0pCiAJCShweG0ybm9k ZVtpZHhdLm5vZGUgIT0gTlVNQV9OT19OT0RFKSk7CiB9CiAKK3N0YXRpYyB2b2lkIHJlc2V0X3B4 bTJub2RlKHZvaWQpCit7CisJdW5zaWduZWQgaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJS QVlfU0laRShweG0ybm9kZSk7IGkrKykKKwkJcHhtMm5vZGVbaV0ubm9kZSA9IE5VTUFfTk9fTk9E RTsKK30KKwogbm9kZWlkX3QgcHhtX3RvX25vZGUodW5zaWduZWQgaW50IHB4bSkKIHsKIAl1bnNp Z25lZCBpbnQgaTsKQEAgLTk5LDcgKzEwNyw3IEBAIG5vZGVpZF90IHB4bV90b19ub2RlKHVuc2ln bmVkIGludCBweG0pCiAJcmV0dXJuIE5VTUFfTk9fTk9ERTsKIH0KIAotbm9kZWlkX3Qgc2V0dXBf bm9kZSh1bnNpZ25lZCBpbnQgcHhtKQorbm9kZWlkX3QgYWNwaV9zZXR1cF9ub2RlKHVuc2lnbmVk IGludCBweG0pCiB7CiAJbm9kZWlkX3Qgbm9kZTsKIAl1bnNpZ25lZCBpbnQgaWR4OwpAQCAtMTg4 LDE1ICsxOTYsMTQgQEAgc3RhdGljIHZvaWQgX19pbml0IGN1dG9mZl9ub2RlKG5vZGVpZF90IGks IHBhZGRyX3Qgc3RhcnQsIHBhZGRyX3QgZW5kKQogCX0KIH0KIAotc3RhdGljIHZvaWQgX19pbml0 IGJhZF9zcmF0KHZvaWQpCitzdGF0aWMgdm9pZCBfX2luaXQgbnVtYV9mYWlsZWQodm9pZCkKIHsK IAlpbnQgaTsKIAlwcmludGsoS0VSTl9FUlIgIlNSQVQ6IFNSQVQgbm90IHVzZWQuXG4iKTsKIAlh Y3BpX251bWEgPSAtMTsKIAlmb3IgKGkgPSAwOyBpIDwgTUFYX0xPQ0FMX0FQSUM7IGkrKykKIAkJ YXBpY2lkX3RvX25vZGVbaV0gPSBOVU1BX05PX05PREU7Ci0JZm9yIChpID0gMDsgaSA8IEFSUkFZ X1NJWkUocHhtMm5vZGUpOyBpKyspCi0JCXB4bTJub2RlW2ldLm5vZGUgPSBOVU1BX05PX05PREU7 CisJcmVzZXRfcHhtMm5vZGUoKTsKIAltZW1faG90cGx1ZyA9IDA7CiB9CiAKQEAgLTI1Miw3ICsy NTksNyBAQCBhY3BpX251bWFfeDJhcGljX2FmZmluaXR5X2luaXQoY29uc3Qgc3RydWN0IGFjcGlf c3JhdF94MmFwaWNfY3B1X2FmZmluaXR5ICpwYSkKIAlpZiAoc3JhdF9kaXNhYmxlZCgpKQogCQly ZXR1cm47CiAJaWYgKHBhLT5oZWFkZXIubGVuZ3RoIDwgc2l6ZW9mKHN0cnVjdCBhY3BpX3NyYXRf eDJhcGljX2NwdV9hZmZpbml0eSkpIHsKLQkJYmFkX3NyYXQoKTsKKwkJbnVtYV9mYWlsZWQoKTsK IAkJcmV0dXJuOwogCX0KIAlpZiAoIShwYS0+ZmxhZ3MgJiBBQ1BJX1NSQVRfQ1BVX0VOQUJMRUQp KQpAQCAtMjYzLDkgKzI3MCw5IEBAIGFjcGlfbnVtYV94MmFwaWNfYWZmaW5pdHlfaW5pdChjb25z dCBzdHJ1Y3QgYWNwaV9zcmF0X3gyYXBpY19jcHVfYWZmaW5pdHkgKnBhKQogCX0KIAogCXB4bSA9 IHBhLT5wcm94aW1pdHlfZG9tYWluOwotCW5vZGUgPSBzZXR1cF9ub2RlKHB4bSk7CisJbm9kZSA9 IGFjcGlfc2V0dXBfbm9kZShweG0pOwogCWlmIChub2RlID09IE5VTUFfTk9fTk9ERSkgewotCQli YWRfc3JhdCgpOworCQludW1hX2ZhaWxlZCgpOwogCQlyZXR1cm47CiAJfQogCkBAIC0yODYsNyAr MjkzLDcgQEAgYWNwaV9udW1hX3Byb2Nlc3Nvcl9hZmZpbml0eV9pbml0KGNvbnN0IHN0cnVjdCBh Y3BpX3NyYXRfY3B1X2FmZmluaXR5ICpwYSkKIAlpZiAoc3JhdF9kaXNhYmxlZCgpKQogCQlyZXR1 cm47CiAJaWYgKHBhLT5oZWFkZXIubGVuZ3RoICE9IHNpemVvZihzdHJ1Y3QgYWNwaV9zcmF0X2Nw dV9hZmZpbml0eSkpIHsKLQkJYmFkX3NyYXQoKTsKKwkJbnVtYV9mYWlsZWQoKTsKIAkJcmV0dXJu OwogCX0KIAlpZiAoIShwYS0+ZmxhZ3MgJiBBQ1BJX1NSQVRfQ1BVX0VOQUJMRUQpKQpAQCAtMjk3 LDkgKzMwNCw5IEBAIGFjcGlfbnVtYV9wcm9jZXNzb3JfYWZmaW5pdHlfaW5pdChjb25zdCBzdHJ1 Y3QgYWNwaV9zcmF0X2NwdV9hZmZpbml0eSAqcGEpCiAJCXB4bSB8PSBwYS0+cHJveGltaXR5X2Rv bWFpbl9oaVsxXSA8PCAxNjsKIAkJcHhtIHw9IHBhLT5wcm94aW1pdHlfZG9tYWluX2hpWzJdIDw8 IDI0OwogCX0KLQlub2RlID0gc2V0dXBfbm9kZShweG0pOworCW5vZGUgPSBhY3BpX3NldHVwX25v ZGUocHhtKTsKIAlpZiAobm9kZSA9PSBOVU1BX05PX05PREUpIHsKLQkJYmFkX3NyYXQoKTsKKwkJ bnVtYV9mYWlsZWQoKTsKIAkJcmV0dXJuOwogCX0KIAlhcGljaWRfdG9fbm9kZVtwYS0+YXBpY19p ZF0gPSBub2RlOwpAQCAtMzIyLDcgKzMyOSw3IEBAIGFjcGlfbnVtYV9tZW1vcnlfYWZmaW5pdHlf aW5pdChjb25zdCBzdHJ1Y3QgYWNwaV9zcmF0X21lbV9hZmZpbml0eSAqbWEpCiAJaWYgKHNyYXRf ZGlzYWJsZWQoKSkKIAkJcmV0dXJuOwogCWlmIChtYS0+aGVhZGVyLmxlbmd0aCAhPSBzaXplb2Yo c3RydWN0IGFjcGlfc3JhdF9tZW1fYWZmaW5pdHkpKSB7Ci0JCWJhZF9zcmF0KCk7CisJCW51bWFf ZmFpbGVkKCk7CiAJCXJldHVybjsKIAl9CiAJaWYgKCEobWEtPmZsYWdzICYgQUNQSV9TUkFUX01F TV9FTkFCTEVEKSkKQEAgLTMzMiw3ICszMzksNyBAQCBhY3BpX251bWFfbWVtb3J5X2FmZmluaXR5 X2luaXQoY29uc3Qgc3RydWN0IGFjcGlfc3JhdF9tZW1fYWZmaW5pdHkgKm1hKQogCXsKIAkJZHBy aW50ayhYRU5MT0dfV0FSTklORywKICAgICAgICAgICAgICAgICAiVG9vIG1hbnkgbnVtYSBlbnRy eSwgdHJ5IGJpZ2dlciBOUl9OT0RFX01FTUJMS1MgXG4iKTsKLQkJYmFkX3NyYXQoKTsKKwkJbnVt YV9mYWlsZWQoKTsKIAkJcmV0dXJuOwogCX0KIApAQCAtMzQxLDkgKzM0OCw5IEBAIGFjcGlfbnVt YV9tZW1vcnlfYWZmaW5pdHlfaW5pdChjb25zdCBzdHJ1Y3QgYWNwaV9zcmF0X21lbV9hZmZpbml0 eSAqbWEpCiAJcHhtID0gbWEtPnByb3hpbWl0eV9kb21haW47CiAJaWYgKHNyYXRfcmV2IDwgMikK IAkJcHhtICY9IDB4ZmY7Ci0Jbm9kZSA9IHNldHVwX25vZGUocHhtKTsKKwlub2RlID0gYWNwaV9z ZXR1cF9ub2RlKHB4bSk7CiAJaWYgKG5vZGUgPT0gTlVNQV9OT19OT0RFKSB7Ci0JCWJhZF9zcmF0 KCk7CisJCW51bWFfZmFpbGVkKCk7CiAJCXJldHVybjsKIAl9CiAJLyogSXQgaXMgZmluZSB0byBh ZGQgdGhpcyBhcmVhIHRvIHRoZSBub2RlcyBkYXRhIGl0IHdpbGwgYmUgdXNlZCBsYXRlciovCkBA IC0zNjAsNyArMzY3LDcgQEAgYWNwaV9udW1hX21lbW9yeV9hZmZpbml0eV9pbml0KGNvbnN0IHN0 cnVjdCBhY3BpX3NyYXRfbWVtX2FmZmluaXR5ICptYSkKIAkJICAgICAgIG1pc21hdGNoID8gS0VS Tl9FUlIgOiBLRVJOX1dBUk5JTkcsIHB4bSwgc3RhcnQsIGVuZCwKIAkJICAgICAgIG1lbWJsay0+ c3RhcnQsIG1lbWJsay0+ZW5kKTsKIAkJaWYgKG1pc21hdGNoKSB7Ci0JCQliYWRfc3JhdCgpOwor CQkJbnVtYV9mYWlsZWQoKTsKIAkJCXJldHVybjsKIAkJfQogCX0gZWxzZSB7CkBAIC0zNzAsNyAr Mzc3LDcgQEAgYWNwaV9udW1hX21lbW9yeV9hZmZpbml0eV9pbml0KGNvbnN0IHN0cnVjdCBhY3Bp X3NyYXRfbWVtX2FmZmluaXR5ICptYSkKIAkJICAgICAgICJTUkFUOiBQWE0gJXUgKCUiUFJJeDY0 Ii0lIlBSSXg2NCIpIG92ZXJsYXBzIHdpdGggUFhNICV1ICglIlBSSXg2NCItJSJQUkl4NjQiKVxu IiwKIAkJICAgICAgIHB4bSwgc3RhcnQsIGVuZCwgbm9kZV90b19weG0oZ2V0X21lbWJsa19ub2Rl aWQoaSkpLAogCQkgICAgICAgbWVtYmxrLT5zdGFydCwgbWVtYmxrLT5lbmQpOwotCQliYWRfc3Jh dCgpOworCQludW1hX2ZhaWxlZCgpOwogCQlyZXR1cm47CiAJfQogCWlmICghKG1hLT5mbGFncyAm IEFDUElfU1JBVF9NRU1fSE9UX1BMVUdHQUJMRSkpIHsKQEAgLTM5Miw3ICszOTksNyBAQCBhY3Bp X251bWFfbWVtb3J5X2FmZmluaXR5X2luaXQoY29uc3Qgc3RydWN0IGFjcGlfc3JhdF9tZW1fYWZm aW5pdHkgKm1hKQogCiAJaWYgKG51bWFfYWRkX21lbWJsayhub2RlLCBzdGFydCwgbWEtPmxlbmd0 aCkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJTUkFUOiBub2RlLWlkICV1IG91dCBvZiByYW5nZVxu Iiwgbm9kZSk7Ci0JCWJhZF9zcmF0KCk7CisJCW51bWFfZmFpbGVkKCk7CiAJCXJldHVybjsKIAl9 CiAKQEAgLTQwNSw3ICs0MTIsNyBAQCBhY3BpX251bWFfbWVtb3J5X2FmZmluaXR5X2luaXQoY29u c3Qgc3RydWN0IGFjcGlfc3JhdF9tZW1fYWZmaW5pdHkgKm1hKQogCiAvKiBTYW5pdHkgY2hlY2sg dG8gY2F0Y2ggbW9yZSBiYWQgU1JBVHMgKHRoZXkgYXJlIGFtYXppbmdseSBjb21tb24pLgogICAg TWFrZSBzdXJlIHRoZSBQWE1zIGNvdmVyIGFsbCBtZW1vcnkuICovCi1zdGF0aWMgaW50IF9faW5p dCBub2Rlc19jb3Zlcl9tZW1vcnkodm9pZCkKK3N0YXRpYyBib29sIF9faW5pdCBhcmNoX3Nhbml0 aXplX25vZGVzX21lbW9yeSh2b2lkKQogewogCWludCBpOwogCkBAIC00NDMsMTAgKzQ1MCwxMCBA QCBzdGF0aWMgaW50IF9faW5pdCBub2Rlc19jb3Zlcl9tZW1vcnkodm9pZCkKIAkJaWYgKHN0YXJ0 IDwgZW5kKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgIlNSQVQ6IE5vIFBYTSBmb3IgZTgyMCByYW5n ZTogIgogCQkJCSIlMDE2THggLSAlMDE2THhcbiIsIHN0YXJ0LCBlbmQpOwotCQkJcmV0dXJuIDA7 CisJCQlyZXR1cm4gZmFsc2U7CiAJCX0KIAl9Ci0JcmV0dXJuIDE7CisJcmV0dXJuIHRydWU7CiB9 CiAKIHZvaWQgX19pbml0IGFjcGlfbnVtYV9hcmNoX2ZpeHVwKHZvaWQpIHt9CkBAIC01MDMsNyAr NTEwLDcgQEAgdm9pZCBfX2luaXQgc3JhdF9wYXJzZV9yZWdpb25zKHBhZGRyX3QgYWRkcikKIH0K IAogLyogVXNlIHRoZSBpbmZvcm1hdGlvbiBkaXNjb3ZlcmVkIGFib3ZlIHRvIGFjdHVhbGx5IHNl dCB1cCB0aGUgbm9kZXMuICovCi1pbnQgX19pbml0IGFjcGlfc2Nhbl9ub2RlcyhwYWRkcl90IHN0 YXJ0LCBwYWRkcl90IGVuZCkKK2ludCBfX2luaXQgbnVtYV9zY2FuX25vZGVzKHBhZGRyX3Qgc3Rh cnQsIHBhZGRyX3QgZW5kKQogewogCXVuc2lnbmVkIGludCBpOwogCW5vZGVtYXNrX3QgYWxsX25v ZGVzX3BhcnNlZDsKQEAgLTUxNyw4ICs1MjQsOCBAQCBpbnQgX19pbml0IGFjcGlfc2Nhbl9ub2Rl cyhwYWRkcl90IHN0YXJ0LCBwYWRkcl90IGVuZCkKIAlpZiAoYWNwaV9udW1hIDw9IDApCiAJCXJl dHVybiAtMTsKIAotCWlmICghbm9kZXNfY292ZXJfbWVtb3J5KCkpIHsKLQkJYmFkX3NyYXQoKTsK KwlpZiAoIWFyY2hfc2FuaXRpemVfbm9kZXNfbWVtb3J5KCkpIHsKKwkJbnVtYV9mYWlsZWQoKTsK IAkJcmV0dXJuIC0xOwogCX0KIApAQCAtNTI5LDcgKzUzNiw3IEBAIGludCBfX2luaXQgYWNwaV9z Y2FuX25vZGVzKHBhZGRyX3Qgc3RhcnQsIHBhZGRyX3QgZW5kKQogCQltZW1ub2RlX3NoaWZ0ID0g MDsKIAkJcHJpbnRrKEtFUk5fRVJSCiAJCSAgICAgIlNSQVQ6IE5vIE5VTUEgbm9kZSBoYXNoIGZ1 bmN0aW9uIGZvdW5kLiBDb250YWN0IG1haW50YWluZXJcbiIpOwotCQliYWRfc3JhdCgpOworCQlu dW1hX2ZhaWxlZCgpOwogCQlyZXR1cm4gLTE7CiAJfQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYveDg2XzY0L21tLmMgYi94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMKaW5kZXggYWExYjk0Zi4u YTRmZmExZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jCisrKyBiL3hlbi9h cmNoL3g4Ni94ODZfNjQvbW0uYwpAQCAtMTM2OCw3ICsxMzY4LDcgQEAgaW50IG1lbW9yeV9hZGQo dW5zaWduZWQgbG9uZyBzcGZuLCB1bnNpZ25lZCBsb25nIGVwZm4sIHVuc2lnbmVkIGludCBweG0p CiAgICAgaWYgKCAhbWVtX2hvdGFkZF9jaGVjayhzcGZuLCBlcGZuKSApCiAgICAgICAgIHJldHVy biAtRUlOVkFMOwogCi0gICAgaWYgKCAobm9kZSA9IHNldHVwX25vZGUocHhtKSkgPT0gTlVNQV9O T19OT0RFICkKKyAgICBpZiAoIChub2RlID0gYWNwaV9zZXR1cF9ub2RlKHB4bSkpID09IE5VTUFf Tk9fTk9ERSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCiAgICAgaWYgKCAhdmFsaWRfbnVt YV9yYW5nZShzcGZuIDw8IFBBR0VfU0hJRlQsIGVwZm4gPDwgUEFHRV9TSElGVCwgbm9kZSkgKQpk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9hY3BpLmggYi94ZW4vaW5jbHVkZS9hc20t eDg2L2FjcGkuaAppbmRleCBhNmZhZDFlLi4yMjBjMmQ3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS9hc20teDg2L2FjcGkuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2FjcGkuaApAQCAtMTA0 LDcgKzEwNCw3IEBAIGV4dGVybiB2b2lkIGFjcGlfcmVzZXJ2ZV9ib290bWVtKHZvaWQpOwogI2Rl ZmluZSBBUkNIX0hBU19QT1dFUl9JTklUCTEKIAogZXh0ZXJuIHM4IGFjcGlfbnVtYTsKLWV4dGVy biBpbnQgYWNwaV9zY2FuX25vZGVzKHBhZGRyX3Qgc3RhcnQsIHBhZGRyX3QgZW5kKTsKK2V4dGVy biBpbnQgbnVtYV9zY2FuX25vZGVzKHBhZGRyX3Qgc3RhcnQsIHBhZGRyX3QgZW5kKTsKIAogI2lm ZGVmIENPTkZJR19BQ1BJX1NMRUVQCiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYv bnVtYS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9udW1hLmgKaW5kZXggMWJhYzI1Yy4uYWNmNTA5 YyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9udW1hLmgKKysrIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9udW1hLmgKQEAgLTM2LDcgKzM2LDcgQEAgZXh0ZXJuIGJvb2wgbnVtYV9vZmY7 CiAKIGV4dGVybiBpbnQgc3JhdF9kaXNhYmxlZCh2b2lkKTsKIGV4dGVybiB2b2lkIG51bWFfc2V0 X25vZGUoaW50IGNwdSwgbm9kZWlkX3Qgbm9kZSk7Ci1leHRlcm4gbm9kZWlkX3Qgc2V0dXBfbm9k ZSh1bnNpZ25lZCBpbnQgcHhtKTsKK2V4dGVybiBub2RlaWRfdCBhY3BpX3NldHVwX25vZGUodW5z aWduZWQgaW50IHB4bSk7CiBleHRlcm4gdm9pZCBzcmF0X2RldGVjdF9ub2RlKGludCBjcHUpOwog CiBleHRlcm4gdm9pZCBzZXR1cF9ub2RlX2Jvb3RtZW0obm9kZWlkX3Qgbm9kZWlkLCBwYWRkcl90 IHN0YXJ0LCBwYWRkcl90IGVuZCk7Ci0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=