From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IoPPQ-00057H-My for qemu-devel@nongnu.org; Sat, 03 Nov 2007 16:15:56 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IoPPQ-000575-7E for qemu-devel@nongnu.org; Sat, 03 Nov 2007 16:15:56 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IoPPQ-000572-0g for qemu-devel@nongnu.org; Sat, 03 Nov 2007 16:15:56 -0400 Received: from nf-out-0910.google.com ([64.233.182.187]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IoPPP-00052r-EN for qemu-devel@nongnu.org; Sat, 03 Nov 2007 16:15:55 -0400 Received: by nf-out-0910.google.com with SMTP id 30so989438nfu for ; Sat, 03 Nov 2007 13:15:53 -0700 (PDT) Message-ID: Date: Sat, 3 Nov 2007 22:15:52 +0200 From: "Blue Swirl" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_22317_28946654.1194120952842" Subject: [Qemu-devel] [PATCH, RFC] Disable implicit self-modifying code support for RISC CPUs Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel ------=_Part_22317_28946654.1194120952842 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, RISC CPUs don't support self-modifying code unless the affected area is flushed explicitly. This patch disables the extra effort for SMC. The changes in this version would affect all CPUs except x86, but I'd like to see if there are problems with some target, so that the committed change can be limited. Without comments, I'll just disable SMC for Sparc, as there are no problems. So please comment, especially if you want to "opt in". For some reason, I can't disable all TB/TLB flushing, for example there was already one line with TARGET_HAS_SMC || 1, but removing the || 1 part causes crashing. Does anyone know why? ------=_Part_22317_28946654.1194120952842 Content-Type: text/x-diff; name=disable_smc.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_f8kkkvfn Content-Disposition: attachment; filename=disable_smc.diff SW5kZXg6IHFlbXUvZXhlYy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9leGVjLmMJMjAwNy0x MS0wMyAxMTozOTo0NC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvZXhlYy5jCTIwMDctMTEtMDMg MTg6Mzg6NDguMDAwMDAwMDAwICswMDAwCkBAIC0xMDAsMTAgKzEwMCwxMiBAQAogdHlwZWRlZiBz dHJ1Y3QgUGFnZURlc2MgewogICAgIC8qIGxpc3Qgb2YgVEJzIGludGVyc2VjdGluZyB0aGlzIHJh bSBwYWdlICovCiAgICAgVHJhbnNsYXRpb25CbG9jayAqZmlyc3RfdGI7CisjaWZkZWYgVEFSR0VU X0hBU19TTUMKICAgICAvKiBpbiBvcmRlciB0byBvcHRpbWl6ZSBzZWxmIG1vZGlmeWluZyBjb2Rl LCB3ZSBjb3VudCB0aGUgbnVtYmVyCiAgICAgICAgb2YgbG9va3VwcyB3ZSBkbyB0byBhIGdpdmVu IHBhZ2UgdG8gdXNlIGEgYml0bWFwICovCiAgICAgdW5zaWduZWQgaW50IGNvZGVfd3JpdGVfY291 bnQ7CiAgICAgdWludDhfdCAqY29kZV9iaXRtYXA7CisjZW5kaWYKICNpZiBkZWZpbmVkKENPTkZJ R19VU0VSX09OTFkpCiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICNlbmRpZgpAQCAtMzA2LDYg KzMwOCw3IEBACiAgICAgKnBlbnYgPSBlbnY7CiB9CiAKKyNpZmRlZiBUQVJHRVRfSEFTX1NNQwog c3RhdGljIGlubGluZSB2b2lkIGludmFsaWRhdGVfcGFnZV9iaXRtYXAoUGFnZURlc2MgKnApCiB7 CiAgICAgaWYgKHAtPmNvZGVfYml0bWFwKSB7CkBAIC0zMTQsNiArMzE3LDcgQEAKICAgICB9CiAg ICAgcC0+Y29kZV93cml0ZV9jb3VudCA9IDA7CiB9CisjZW5kaWYKIAogLyogc2V0IHRvIE5VTEwg YWxsIHRoZSAnZmlyc3RfdGInIGZpZWxkcyBpbiBhbGwgUGFnZURlc2NzICovCiBzdGF0aWMgdm9p ZCBwYWdlX2ZsdXNoX3RiKHZvaWQpCkBAIC0zMjYsNyArMzMwLDkgQEAKICAgICAgICAgaWYgKHAp IHsKICAgICAgICAgICAgIGZvcihqID0gMDsgaiA8IEwyX1NJWkU7IGorKykgewogICAgICAgICAg ICAgICAgIHAtPmZpcnN0X3RiID0gTlVMTDsKKyNpZmRlZiBUQVJHRVRfSEFTX1NNQwogICAgICAg ICAgICAgICAgIGludmFsaWRhdGVfcGFnZV9iaXRtYXAocCk7CisjZW5kaWYKICAgICAgICAgICAg ICAgICBwKys7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTMzOSwxMCArMzQ1LDExIEBA CiB7CiAgICAgQ1BVU3RhdGUgKmVudjsKICNpZiBkZWZpbmVkKERFQlVHX0ZMVVNIKQotICAgIHBy aW50ZigicWVtdTogZmx1c2ggY29kZV9zaXplPSVkIG5iX3Ricz0lZCBhdmdfdGJfc2l6ZT0lZFxu IiwKLSAgICAgICAgICAgY29kZV9nZW5fcHRyIC0gY29kZV9nZW5fYnVmZmVyLAorICAgIHByaW50 ZigicWVtdTogZmx1c2ggY29kZV9zaXplPSVsZCBuYl90YnM9JWQgYXZnX3RiX3NpemU9JWxkXG4i LAorICAgICAgICAgICAodW5zaWduZWQgbG9uZykoY29kZV9nZW5fcHRyIC0gY29kZV9nZW5fYnVm ZmVyKSwKICAgICAgICAgICAgbmJfdGJzLAotICAgICAgICAgICBuYl90YnMgPiAwID8gKGNvZGVf Z2VuX3B0ciAtIGNvZGVfZ2VuX2J1ZmZlcikgLyBuYl90YnMgOiAwKTsKKyAgICAgICAgICAgbmJf dGJzID4gMCA/ICgodW5zaWduZWQgbG9uZykoY29kZV9nZW5fcHRyIC0gY29kZV9nZW5fYnVmZmVy KSkKKyAgICAgICAgICAgLyBuYl90YnMgOiAwKTsKICNlbmRpZgogICAgIG5iX3RicyA9IDA7CiAK QEAgLTUwMiwxMiArNTA5LDE2IEBACiAgICAgaWYgKHRiLT5wYWdlX2FkZHJbMF0gIT0gcGFnZV9h ZGRyKSB7CiAgICAgICAgIHAgPSBwYWdlX2ZpbmQodGItPnBhZ2VfYWRkclswXSA+PiBUQVJHRVRf UEFHRV9CSVRTKTsKICAgICAgICAgdGJfcGFnZV9yZW1vdmUoJnAtPmZpcnN0X3RiLCB0Yik7Cisj aWZkZWYgVEFSR0VUX0hBU19TTUMKICAgICAgICAgaW52YWxpZGF0ZV9wYWdlX2JpdG1hcChwKTsK KyNlbmRpZgogICAgIH0KICAgICBpZiAodGItPnBhZ2VfYWRkclsxXSAhPSAtMSAmJiB0Yi0+cGFn ZV9hZGRyWzFdICE9IHBhZ2VfYWRkcikgewogICAgICAgICBwID0gcGFnZV9maW5kKHRiLT5wYWdl X2FkZHJbMV0gPj4gVEFSR0VUX1BBR0VfQklUUyk7CiAgICAgICAgIHRiX3BhZ2VfcmVtb3ZlKCZw LT5maXJzdF90YiwgdGIpOworI2lmZGVmIFRBUkdFVF9IQVNfU01DCiAgICAgICAgIGludmFsaWRh dGVfcGFnZV9iaXRtYXAocCk7CisjZW5kaWYKICAgICB9CiAKICAgICB0Yl9pbnZhbGlkYXRlZF9m bGFnID0gMTsKQEAgLTU2Nyw2ICs1NzgsNyBAQAogICAgIH0KIH0KIAorI2lmZGVmIFRBUkdFVF9I QVNfU01DCiBzdGF0aWMgdm9pZCBidWlsZF9wYWdlX2JpdG1hcChQYWdlRGVzYyAqcCkKIHsKICAg ICBpbnQgbiwgdGJfc3RhcnQsIHRiX2VuZDsKQEAgLTU5Nyw2ICs2MDksNyBAQAogICAgICAgICB0 YiA9IHRiLT5wYWdlX25leHRbbl07CiAgICAgfQogfQorI2VuZGlmCiAKICNpZmRlZiBUQVJHRVRf SEFTX1BSRUNJU0VfU01DCiAKQEAgLTY1MywxMiArNjY2LDE0IEBACiAgICAgcCA9IHBhZ2VfZmlu ZChzdGFydCA+PiBUQVJHRVRfUEFHRV9CSVRTKTsKICAgICBpZiAoIXApCiAgICAgICAgIHJldHVy bjsKKyNpZmRlZiBUQVJHRVRfSEFTX1NNQwogICAgIGlmICghcC0+Y29kZV9iaXRtYXAgJiYKICAg ICAgICAgKytwLT5jb2RlX3dyaXRlX2NvdW50ID49IFNNQ19CSVRNQVBfVVNFX1RIUkVTSE9MRCAm JgogICAgICAgICBpc19jcHVfd3JpdGVfYWNjZXNzKSB7CiAgICAgICAgIC8qIGJ1aWxkIGNvZGUg Yml0bWFwICovCiAgICAgICAgIGJ1aWxkX3BhZ2VfYml0bWFwKHApOwogICAgIH0KKyNlbmRpZgog CiAgICAgLyogd2UgcmVtb3ZlIGFsbCB0aGUgVEJzIGluIHRoZSByYW5nZSBbc3RhcnQsIGVuZFsg Ki8KICAgICAvKiBYWFg6IHNlZSBpZiBpbiBzb21lIGNhc2VzIGl0IGNvdWxkIGJlIGZhc3RlciB0 byBpbnZhbGlkYXRlIGFsbCB0aGUgY29kZSAqLwpAQCAtNzMzLDcgKzc0OCw5IEBACiAjaWYgIWRl ZmluZWQoQ09ORklHX1VTRVJfT05MWSkKICAgICAvKiBpZiBubyBjb2RlIHJlbWFpbmluZywgbm8g bmVlZCB0byBjb250aW51ZSB0byB1c2Ugc2xvdyB3cml0ZXMgKi8KICAgICBpZiAoIXAtPmZpcnN0 X3RiKSB7CisjaWZkZWYgVEFSR0VUX0hBU19TTUMKICAgICAgICAgaW52YWxpZGF0ZV9wYWdlX2Jp dG1hcChwKTsKKyNlbmRpZgogICAgICAgICBpZiAoaXNfY3B1X3dyaXRlX2FjY2VzcykgewogICAg ICAgICAgICAgdGxiX3VucHJvdGVjdF9jb2RlX3BoeXMoZW52LCBzdGFydCwgZW52LT5tZW1fd3Jp dGVfdmFkZHIpOwogICAgICAgICB9CkBAIC03NTYsNyArNzczLDkgQEAKIHN0YXRpYyBpbmxpbmUg dm9pZCB0Yl9pbnZhbGlkYXRlX3BoeXNfcGFnZV9mYXN0KHRhcmdldF91bG9uZyBzdGFydCwgaW50 IGxlbikKIHsKICAgICBQYWdlRGVzYyAqcDsKKyNpZmRlZiBUQVJHRVRfSEFTX1NNQwogICAgIGlu dCBvZmZzZXQsIGI7CisjZW5kaWYKICNpZiAwCiAgICAgaWYgKDEpIHsKICAgICAgICAgaWYgKGxv Z2xldmVsKSB7CkBAIC03NzAsNiArNzg5LDcgQEAKICAgICBwID0gcGFnZV9maW5kKHN0YXJ0ID4+ IFRBUkdFVF9QQUdFX0JJVFMpOwogICAgIGlmICghcCkKICAgICAgICAgcmV0dXJuOworI2lmZGVm IFRBUkdFVF9IQVNfU01DCiAgICAgaWYgKHAtPmNvZGVfYml0bWFwKSB7CiAgICAgICAgIG9mZnNl dCA9IHN0YXJ0ICYgflRBUkdFVF9QQUdFX01BU0s7CiAgICAgICAgIGIgPSBwLT5jb2RlX2JpdG1h cFtvZmZzZXQgPj4gM10gPj4gKG9mZnNldCAmIDcpOwpAQCAtNzc3LDExICs3OTcsMTUgQEAKICAg ICAgICAgICAgIGdvdG8gZG9faW52YWxpZGF0ZTsKICAgICB9IGVsc2UgewogICAgIGRvX2ludmFs aWRhdGU6CisjZW5kaWYKICAgICAgICAgdGJfaW52YWxpZGF0ZV9waHlzX3BhZ2VfcmFuZ2Uoc3Rh cnQsIHN0YXJ0ICsgbGVuLCAxKTsKKyNpZmRlZiBUQVJHRVRfSEFTX1NNQwogICAgIH0KKyNlbmRp ZgogfQogCiAjaWYgIWRlZmluZWQoQ09ORklHX1NPRlRNTVUpCisjaWZuZGVmIFRBUkdFVF9TUEFS Qwogc3RhdGljIHZvaWQgdGJfaW52YWxpZGF0ZV9waHlzX3BhZ2UodGFyZ2V0X3Vsb25nIGFkZHIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBjLCB2 b2lkICpwdWMpCiB7CkBAIC04NDksNiArODczLDcgQEAKICNlbmRpZgogfQogI2VuZGlmCisjZW5k aWYKIAogLyogYWRkIHRoZSB0YiBpbiB0aGUgdGFyZ2V0IHBhZ2UgYW5kIHByb3RlY3QgaXQgaWYg bmVjZXNzYXJ5ICovCiBzdGF0aWMgaW5saW5lIHZvaWQgdGJfYWxsb2NfcGFnZShUcmFuc2xhdGlv bkJsb2NrICp0YiwKQEAgLTg2MiwxMSArODg3LDE0IEBACiAgICAgdGItPnBhZ2VfbmV4dFtuXSA9 IHAtPmZpcnN0X3RiOwogICAgIGxhc3RfZmlyc3RfdGIgPSBwLT5maXJzdF90YjsKICAgICBwLT5m aXJzdF90YiA9IChUcmFuc2xhdGlvbkJsb2NrICopKChsb25nKXRiIHwgbik7CisjaWZkZWYgVEFS R0VUX0hBU19TTUMKICAgICBpbnZhbGlkYXRlX3BhZ2VfYml0bWFwKHApOworI2VuZGlmCiAKICNp ZiBkZWZpbmVkKFRBUkdFVF9IQVNfU01DKSB8fCAxCiAKICNpZiBkZWZpbmVkKENPTkZJR19VU0VS X09OTFkpCisjaWYgIWRlZmluZWQoVEFSR0VUX1NQQVJDKQogICAgIGlmIChwLT5mbGFncyAmIFBB R0VfV1JJVEUpIHsKICAgICAgICAgdGFyZ2V0X3Vsb25nIGFkZHI7CiAgICAgICAgIFBhZ2VEZXNj ICpwMjsKQEAgLTg4OSwxMCArOTE3LDExIEBACiAgICAgICAgIG1wcm90ZWN0KGcyaChwYWdlX2Fk ZHIpLCBxZW11X2hvc3RfcGFnZV9zaXplLAogICAgICAgICAgICAgICAgICAocHJvdCAmIFBBR0Vf QklUUykgJiB+UEFHRV9XUklURSk7CiAjaWZkZWYgREVCVUdfVEJfSU5WQUxJREFURQotICAgICAg ICBwcmludGYoInByb3RlY3RpbmcgY29kZSBwYWdlOiAweCUwOGx4XG4iLAorICAgICAgICBwcmlu dGYoInByb3RlY3RpbmcgY29kZSBwYWdlOiAweCIgVEFSR0VUX0ZNVF9seCAiXG4iLAogICAgICAg ICAgICAgICAgcGFnZV9hZGRyKTsKICNlbmRpZgogICAgIH0KKyNlbmRpZgogI2Vsc2UKICAgICAv KiBpZiBzb21lIGNvZGUgaXMgYWxyZWFkeSBwcmVzZW50LCB0aGVuIHRoZSBwYWdlcyBhcmUgYWxy ZWFkeQogICAgICAgIHByb3RlY3RlZC4gU28gd2UgaGFuZGxlIHRoZSBjYXNlIHdoZXJlIG9ubHkg dGhlIGZpcnN0IFRCIGlzCkBAIC0xNTQwLDYgKzE1NjksNyBAQAogI2VuZGlmCiB9CiAKKyNpZmRl ZiBVU0VfS1FFTVUKIHN0YXRpYyBpbmxpbmUgdm9pZCB0bGJfdXBkYXRlX2RpcnR5KENQVVRMQkVu dHJ5ICp0bGJfZW50cnkpCiB7CiAgICAgcmFtX2FkZHJfdCByYW1fYWRkcjsKQEAgLTE1NzAsNiAr MTYwMCw3IEBACiAjZW5kaWYKICNlbmRpZgogfQorI2VuZGlmCiAKIHN0YXRpYyBpbmxpbmUgdm9p ZCB0bGJfc2V0X2RpcnR5MShDUFVUTEJFbnRyeSAqdGxiX2VudHJ5LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQpCkBAIC0xNzM3LDYgKzE3Njgs NyBAQAogICAgIHJldHVybiByZXQ7CiB9CiAKKyNpZm5kZWYgVEFSR0VUX1NQQVJDCiAvKiBjYWxs ZWQgZnJvbSBzaWduYWwgaGFuZGxlcjogaW52YWxpZGF0ZSB0aGUgY29kZSBhbmQgdW5wcm90ZWN0 IHRoZQogICAgcGFnZS4gUmV0dXJuIFRSVUUgaWYgdGhlIGZhdWx0IHdhcyBzdWNjZXNmdWxseSBo YW5kbGVkLiAqLwogaW50IHBhZ2VfdW5wcm90ZWN0KHRhcmdldF91bG9uZyBhZGRyLCB1bnNpZ25l ZCBsb25nIHBjLCB2b2lkICpwdWMpCkBAIC0xNzc3LDYgKzE4MDksNyBAQAogICAgIHJldHVybiAw OwogI2VuZGlmCiB9CisjZW5kaWYKIAogI2Vsc2UKIApAQCAtMTg1OCwyMyArMTg5MSwyOCBAQAog CiAgICAgc3RhcnQgPSBzdGFydCAmIFRBUkdFVF9QQUdFX01BU0s7CiAgICAgZW5kID0gVEFSR0VU X1BBR0VfQUxJR04oZW5kKTsKKyNpZmRlZiBUQVJHRVRfSEFTX1NNQwogICAgIGlmIChmbGFncyAm IFBBR0VfV1JJVEUpCiAgICAgICAgIGZsYWdzIHw9IFBBR0VfV1JJVEVfT1JHOworI2VuZGlmCiAg ICAgc3Bpbl9sb2NrKCZ0Yl9sb2NrKTsKICAgICBmb3IoYWRkciA9IHN0YXJ0OyBhZGRyIDwgZW5k OyBhZGRyICs9IFRBUkdFVF9QQUdFX1NJWkUpIHsKICAgICAgICAgcCA9IHBhZ2VfZmluZF9hbGxv YyhhZGRyID4+IFRBUkdFVF9QQUdFX0JJVFMpOwogICAgICAgICAvKiBpZiB0aGUgd3JpdGUgcHJv dGVjdGlvbiBpcyBzZXQsIHRoZW4gd2UgaW52YWxpZGF0ZSB0aGUgY29kZQogICAgICAgICAgICBp bnNpZGUgKi8KKyNpZmRlZiBUQVJHRVRfSEFTX1NNQwogICAgICAgICBpZiAoIShwLT5mbGFncyAm IFBBR0VfV1JJVEUpICYmCiAgICAgICAgICAgICAoZmxhZ3MgJiBQQUdFX1dSSVRFKSAmJgogICAg ICAgICAgICAgcC0+Zmlyc3RfdGIpIHsKICAgICAgICAgICAgIHRiX2ludmFsaWRhdGVfcGh5c19w YWdlKGFkZHIsIDAsIE5VTEwpOwogICAgICAgICB9CisjZW5kaWYKICAgICAgICAgcC0+ZmxhZ3Mg PSBmbGFnczsKICAgICB9CiAgICAgc3Bpbl91bmxvY2soJnRiX2xvY2spOwogfQogCisjaWZuZGVm IFRBUkdFVF9TUEFSQwogLyogY2FsbGVkIGZyb20gc2lnbmFsIGhhbmRsZXI6IGludmFsaWRhdGUg dGhlIGNvZGUgYW5kIHVucHJvdGVjdCB0aGUKICAgIHBhZ2UuIFJldHVybiBUUlVFIGlmIHRoZSBm YXVsdCB3YXMgc3VjY2VzZnVsbHkgaGFuZGxlZC4gKi8KIGludCBwYWdlX3VucHJvdGVjdCh0YXJn ZXRfdWxvbmcgYWRkcmVzcywgdW5zaWduZWQgbG9uZyBwYywgdm9pZCAqcHVjKQpAQCAtMTkyOSw2 ICsxOTY3LDcgQEAKICAgICAgICAgcGFnZV91bnByb3RlY3QoYWRkciwgMCwgTlVMTCk7CiAgICAg fQogfQorI2VuZGlmCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCB0bGJfc2V0X2RpcnR5KENQVVN0YXRl ICplbnYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFk ZHIsIHRhcmdldF91bG9uZyB2YWRkcikKQEAgLTI1NDksNiArMjU4OCw3IEBACiAgICAgICAgICAg ICAgICAgLyogUkFNIGNhc2UgKi8KICAgICAgICAgICAgICAgICBwdHIgPSBwaHlzX3JhbV9iYXNl ICsgYWRkcjE7CiAgICAgICAgICAgICAgICAgbWVtY3B5KHB0ciwgYnVmLCBsKTsKKyNpZmRlZiBU QVJHRVRfSEFTX1NNQwogICAgICAgICAgICAgICAgIGlmICghY3B1X3BoeXNpY2FsX21lbW9yeV9p c19kaXJ0eShhZGRyMSkpIHsKICAgICAgICAgICAgICAgICAgICAgLyogaW52YWxpZGF0ZSBjb2Rl ICovCiAgICAgICAgICAgICAgICAgICAgIHRiX2ludmFsaWRhdGVfcGh5c19wYWdlX3JhbmdlKGFk ZHIxLCBhZGRyMSArIGwsIDApOwpAQCAtMjU1Niw2ICsyNTk2LDcgQEAKICAgICAgICAgICAgICAg ICAgICAgcGh5c19yYW1fZGlydHlbYWRkcjEgPj4gVEFSR0VUX1BBR0VfQklUU10gfD0KICAgICAg ICAgICAgICAgICAgICAgICAgICgweGZmICYgfkNPREVfRElSVFlfRkxBRyk7CiAgICAgICAgICAg ICAgICAgfQorI2VuZGlmCiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg ICAgICBpZiAoKHBkICYgflRBUkdFVF9QQUdFX01BU0spID4gSU9fTUVNX1JPTSAmJgpAQCAtMjc5 NCw2ICsyODM1LDcgQEAKICAgICAgICAgLyogUkFNIGNhc2UgKi8KICAgICAgICAgcHRyID0gcGh5 c19yYW1fYmFzZSArIGFkZHIxOwogICAgICAgICBzdGxfcChwdHIsIHZhbCk7CisjaWZkZWYgVEFS R0VUX0hBU19TTUMKICAgICAgICAgaWYgKCFjcHVfcGh5c2ljYWxfbWVtb3J5X2lzX2RpcnR5KGFk ZHIxKSkgewogICAgICAgICAgICAgLyogaW52YWxpZGF0ZSBjb2RlICovCiAgICAgICAgICAgICB0 Yl9pbnZhbGlkYXRlX3BoeXNfcGFnZV9yYW5nZShhZGRyMSwgYWRkcjEgKyA0LCAwKTsKQEAgLTI4 MDEsNiArMjg0Myw3IEBACiAgICAgICAgICAgICBwaHlzX3JhbV9kaXJ0eVthZGRyMSA+PiBUQVJH RVRfUEFHRV9CSVRTXSB8PQogICAgICAgICAgICAgICAgICgweGZmICYgfkNPREVfRElSVFlfRkxB Ryk7CiAgICAgICAgIH0KKyNlbmRpZgogICAgIH0KIH0KIApJbmRleDogcWVtdS90YXJnZXQtc3Bh cmMvaGVscGVyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL3RhcmdldC1zcGFyYy9oZWxwZXIu YwkyMDA3LTExLTAzIDExOjM5OjQ0LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS90YXJnZXQtc3Bh cmMvaGVscGVyLmMJMjAwNy0xMS0wMyAxMTo0NzoxOS4wMDAwMDAwMDAgKzAwMDAKQEAgLTIwMywx MiArMjAzLDYgQEAKIAogICAgIC8qIHRoZSBwYWdlIGNhbiBiZSBwdXQgaW4gdGhlIFRMQiAqLwog ICAgICpwcm90ID0gcGVybV90YWJsZVtpc191c2VyXVthY2Nlc3NfcGVybXNdOwotICAgIGlmICgh KHBkZSAmIFBHX01PRElGSUVEX01BU0spKSB7Ci0gICAgICAgIC8qIG9ubHkgc2V0IHdyaXRlIGFj Y2VzcyBpZiBhbHJlYWR5IGRpcnR5Li4uIG90aGVyd2lzZSB3YWl0Ci0gICAgICAgICAgIGZvciBk aXJ0eSBhY2Nlc3MgKi8KLSAgICAgICAgKnByb3QgJj0gflBBR0VfV1JJVEU7Ci0gICAgfQotCiAg ICAgLyogRXZlbiBpZiBsYXJnZSBwdGVzLCB3ZSBtYXAgb25seSBvbmUgNEtCIHBhZ2UgaW4gdGhl IGNhY2hlIHRvCiAgICAgICAgYXZvaWQgZmlsbGluZyBpdCB0b28gZmFzdCAqLwogICAgICpwaHlz aWNhbCA9ICgodGFyZ2V0X3BoeXNfYWRkcl90KShwZGUgJiBQVEVfQUREUl9NQVNLKSA8PCA0KSAr IHBhZ2Vfb2Zmc2V0OwpJbmRleDogcWVtdS9leGVjLWFsbC5oCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUu b3JpZy9leGVjLWFsbC5oCTIwMDctMTEtMDMgMTE6Mzk6NDQuMDAwMDAwMDAwICswMDAwCisrKyBx ZW11L2V4ZWMtYWxsLmgJMjAwNy0xMS0wMyAxNDozNDoxNC4wMDAwMDAwMDAgKzAwMDAKQEAgLTEw OSw3ICsxMDksOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcHVjKTsKIHZv aWQgY3B1X3Jlc3VtZV9mcm9tX3NpZ25hbChDUFVTdGF0ZSAqZW52MSwgdm9pZCAqcHVjKTsKIHZv aWQgY3B1X2V4ZWNfaW5pdChDUFVTdGF0ZSAqZW52KTsKKyNpZm5kZWYgVEFSR0VUX1NQQVJDCiBp bnQgcGFnZV91bnByb3RlY3QodGFyZ2V0X3Vsb25nIGFkZHJlc3MsIHVuc2lnbmVkIGxvbmcgcGMs IHZvaWQgKnB1Yyk7CisjZW5kaWYKIHZvaWQgdGJfaW52YWxpZGF0ZV9waHlzX3BhZ2VfcmFuZ2Uo dGFyZ2V0X3Vsb25nIHN0YXJ0LCB0YXJnZXRfdWxvbmcgZW5kLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQgaXNfY3B1X3dyaXRlX2FjY2Vzcyk7CiB2b2lkIHRiX2ludmFs aWRhdGVfcGFnZV9yYW5nZSh0YXJnZXRfdWxvbmcgc3RhcnQsIHRhcmdldF91bG9uZyBlbmQpOwpA QCAtMTIyLDggKzEyNCwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdl dF9waHlzX2FkZHJfdCBwYWRkciwgaW50IHByb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IG1tdV9pZHgsIGludCBpc19zb2Z0bW11KQogeworI2lmbmRlZiBUQVJHRVRfU1BB UkMKICAgICBpZiAocHJvdCAmIFBBR0VfUkVBRCkKICAgICAgICAgcHJvdCB8PSBQQUdFX0VYRUM7 CisjZW5kaWYKICAgICByZXR1cm4gdGxiX3NldF9wYWdlX2V4ZWMoZW52LCB2YWRkciwgcGFkZHIs IHByb3QsIG1tdV9pZHgsIGlzX3NvZnRtbXUpOwogfQogCkluZGV4OiBxZW11L2NwdS1leGVjLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2NwdS1leGVjLmMJMjAwNy0xMS0wMyAxNDoyMjoyOC4w MDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvY3B1LWV4ZWMuYwkyMDA3LTExLTAzIDE0OjMwOjAzLjAw MDAwMDAwMCArMDAwMApAQCAtOTY0LDEwICs5NjQsNiBAQAogICAgIHByaW50ZigicWVtdTogU0lH U0VHViBwYz0weCUwOGx4IGFkZHJlc3M9JTA4bHggdz0lZCBvbGRzZXQ9MHglMDhseFxuIiwKICAg ICAgICAgICAgcGMsIGFkZHJlc3MsIGlzX3dyaXRlLCAqKHVuc2lnbmVkIGxvbmcgKilvbGRfc2V0 KTsKICNlbmRpZgotICAgIC8qIFhYWDogbG9ja2luZyBpc3N1ZSAqLwotICAgIGlmIChpc193cml0 ZSAmJiBwYWdlX3VucHJvdGVjdChoMmcoYWRkcmVzcyksIHBjLCBwdWMpKSB7Ci0gICAgICAgIHJl dHVybiAxOwotICAgIH0KICAgICAvKiBzZWUgaWYgaXQgaXMgYW4gTU1VIGZhdWx0ICovCiAgICAg cmV0ID0gY3B1X3NwYXJjX2hhbmRsZV9tbXVfZmF1bHQoZW52LCBhZGRyZXNzLCBpc193cml0ZSwg TU1VX1VTRVJfSURYLCAwKTsKICAgICBpZiAocmV0IDwgMCkKSW5kZXg6IHFlbXUvbGludXgtdXNl ci9zeXNjYWxsLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2xpbnV4LXVzZXIvc3lzY2FsbC5j CTIwMDctMTEtMDMgMTQ6MzY6MjguMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2xpbnV4LXVzZXIv c3lzY2FsbC5jCTIwMDctMTEtMDMgMTQ6MzY6NTAuMDAwMDAwMDAwICswMDAwCkBAIC0yNjI4LDcg KzI2MjgsOSBAQAogICAgICAgICByZXQgPSAwOyAvKiBhdm9pZCB3YXJuaW5nICovCiAgICAgICAg IGJyZWFrOwogICAgIGNhc2UgVEFSR0VUX05SX3JlYWQ6CisjaWZuZGVmIFRBUkdFVF9TUEFSQwog ICAgICAgICBwYWdlX3VucHJvdGVjdF9yYW5nZShhcmcyLCBhcmczKTsKKyNlbmRpZgogICAgICAg ICBwID0gbG9ja191c2VyKGFyZzIsIGFyZzMsIDApOwogICAgICAgICByZXQgPSBnZXRfZXJybm8o cmVhZChhcmcxLCBwLCBhcmczKSk7CiAgICAgICAgIHVubG9ja191c2VyKHAsIGFyZzIsIHJldCk7 CkBAIC00Mzc3LDcgKzQzNzksOSBAQAogICAgICAgICBicmVhazsKICNpZmRlZiBUQVJHRVRfTlJf cHJlYWQKICAgICBjYXNlIFRBUkdFVF9OUl9wcmVhZDoKKyNpZm5kZWYgVEFSR0VUX1NQQVJDCiAg ICAgICAgIHBhZ2VfdW5wcm90ZWN0X3JhbmdlKGFyZzIsIGFyZzMpOworI2VuZGlmCiAgICAgICAg IHAgPSBsb2NrX3VzZXIoYXJnMiwgYXJnMywgMCk7CiAgICAgICAgIHJldCA9IGdldF9lcnJubyhw cmVhZChhcmcxLCBwLCBhcmczLCBhcmc0KSk7CiAgICAgICAgIHVubG9ja191c2VyKHAsIGFyZzIs IHJldCk7Cg== ------=_Part_22317_28946654.1194120952842--