From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MY301-0007vz-Hf for qemu-devel@nongnu.org; Mon, 03 Aug 2009 15:15:09 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MY2zw-0007lt-J2 for qemu-devel@nongnu.org; Mon, 03 Aug 2009 15:15:08 -0400 Received: from [199.232.76.173] (port=49252 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MY2zw-0007lS-BZ for qemu-devel@nongnu.org; Mon, 03 Aug 2009 15:15:04 -0400 Received: from mail-fx0-f211.google.com ([209.85.220.211]:49614) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MY2zv-0000Oh-Uy for qemu-devel@nongnu.org; Mon, 03 Aug 2009 15:15:04 -0400 Received: by fxm7 with SMTP id 7so2690710fxm.34 for ; Mon, 03 Aug 2009 12:15:02 -0700 (PDT) MIME-Version: 1.0 Date: Mon, 3 Aug 2009 23:15:02 +0400 Message-ID: From: Igor Kovalenko Content-Type: multipart/mixed; boundary=00163641671b3aed040470419628 Subject: [Qemu-devel] [PATCH v1] sparc64 replace tsptr with helper routine List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel --00163641671b3aed040470419628 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit tl and tsptr of members sparc64 cpu state must be changed simultaneously to keep trap state window in sync with current trap level. Currently translation of store to tl does not change tsptr, which leads to corrupt trap state on corresponding trap level. This patch removes tsptr from sparc64 cpu state and replaces all uses with call to helper routine. Changes v0->v1: - reimplemented helper routine with tcg generator - on cpu reset trap type and pstate are populated with power-on reset values, including tl=maxtl Signed-off-by: igor.v.kovalenko@gmail.com -- Kind regards, Igor V. Kovalenko --00163641671b3aed040470419628 Content-Type: application/octet-stream; name=sparc64-tsptr-tl Content-Disposition: attachment; filename=sparc64-tsptr-tl Content-Transfer-Encoding: base64 X-Attachment-Id: f_fxxku5nl0 SW5kZXg6IHFlbXUtdHJ1bmsvdGFyZ2V0LXNwYXJjL2NwdS5oCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUt dHJ1bmsub3JpZy90YXJnZXQtc3BhcmMvY3B1LmgKKysrIHFlbXUtdHJ1bmsvdGFyZ2V0LXNwYXJj L2NwdS5oCkBAIC00OSw2ICs0OSw3IEBACiAjZGVmaW5lIFRUX05DUF9JTlNOIDB4MjQKICNkZWZp bmUgVFRfVFJBUCAgICAgMHg4MAogI2Vsc2UKKyNkZWZpbmUgVFRfUE9XRVJfT05fUkVTRVQgMHgw MQogI2RlZmluZSBUVF9URkFVTFQgICAweDA4CiAjZGVmaW5lIFRUX0NPREVfQUNDRVNTIDB4MGEK ICNkZWZpbmUgVFRfSUxMX0lOU04gMHgxMApAQCAtMzc3LDcgKzM3OCw2IEBAIHR5cGVkZWYgc3Ry dWN0IENQVVNQQVJDU3RhdGUgewogI2lmIGRlZmluZWQoVEFSR0VUX1NQQVJDNjQpCiAjZGVmaW5l IE1BWFRMX01BWCA4CiAjZGVmaW5lIE1BWFRMX01BU0sgKE1BWFRMX01BWCAtIDEpCi0gICAgdHJh cF9zdGF0ZSAqdHNwdHI7CiAgICAgdHJhcF9zdGF0ZSB0c1tNQVhUTF9NQVhdOwogICAgIHVpbnQz Ml90IHhjYzsgICAgICAgICAgICAgICAvKiBFeHRlbmRlZCBpbnRlZ2VyIGNvbmRpdGlvbiBjb2Rl cyAqLwogICAgIHVpbnQzMl90IGFzaTsKQEAgLTU5Myw2ICs1OTMsNyBAQCB2b2lkIGNwdV9jaGVj a19pcnFzKENQVVNQQVJDU3RhdGUgKmVudik7CiB2b2lkIGNwdV90aWNrX3NldF9jb3VudCh2b2lk ICpvcGFxdWUsIHVpbnQ2NF90IGNvdW50KTsKIHVpbnQ2NF90IGNwdV90aWNrX2dldF9jb3VudCh2 b2lkICpvcGFxdWUpOwogdm9pZCBjcHVfdGlja19zZXRfbGltaXQodm9pZCAqb3BhcXVlLCB1aW50 NjRfdCBsaW1pdCk7Cit0cmFwX3N0YXRlKiBjcHVfdHNwdHIoQ1BVU3RhdGUqIGVudik7CiAjZW5k aWYKIAogc3RhdGljIGlubGluZSB2b2lkIGNwdV9wY19mcm9tX3RiKENQVVN0YXRlICplbnYsIFRy YW5zbGF0aW9uQmxvY2sgKnRiKQpJbmRleDogcWVtdS10cnVuay90YXJnZXQtc3BhcmMvdHJhbnNs YXRlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gcWVtdS10cnVuay5vcmlnL3RhcmdldC1zcGFyYy90cmFuc2xh dGUuYworKysgcWVtdS10cnVuay90YXJnZXQtc3BhcmMvdHJhbnNsYXRlLmMKQEAgLTE2NTMsNiAr MTY1MywzMyBAQCBzdGF0aWMgaW5saW5lIFRDR3YgZ2V0X3NyYzIodW5zaWduZWQgaW50CiAgICAg cmV0dXJuIHJfcnMyOwogfQogCisjaWZkZWYgVEFSR0VUX1NQQVJDNjQKK3N0YXRpYyBpbmxpbmUg dm9pZCBnZW5fbG9hZF90cmFwX3N0YXRlX2F0X3RsKFRDR3ZfcHRyIHJfdHNwdHIsIFRDR3ZfcHRy IGNwdV9lbnYpCit7CisgICAgVENHdiByX3RsID0gdGNnX3RlbXBfbmV3KCk7CisKKyAgICAvKiBs b2FkIGVudi0+dGwgaW50byByX3RsICovCisgICAgeworICAgICAgICBUQ0d2X2kzMiByX3RsX3Rt cCA9IHRjZ190ZW1wX25ld19pMzIoKTsKKyAgICAgICAgdGNnX2dlbl9sZF9pMzIocl90bF90bXAs IGNwdV9lbnYsIG9mZnNldG9mKENQVVNQQVJDU3RhdGUsIHRsKSk7CisgICAgICAgIHRjZ19nZW5f ZXh0X2kzMl90bChyX3RsLCByX3RsX3RtcCk7CisgICAgICAgIHRjZ190ZW1wX2ZyZWVfaTMyKHJf dGxfdG1wKTsKKyAgICB9CisKKyAgICAvKiB0bCA9IFswIC4uLiBNQVhUTF9NQVNLXSB3aGVyZSBN QVhUTF9NQVNLIG11c3QgYmUgcG93ZXIgb2YgMiAqLworICAgIHRjZ19nZW5fYW5kaV90bChyX3Rs LCByX3RsLCBNQVhUTF9NQVNLKTsKKworICAgIC8qIGNhbGN1bGF0ZSBvZmZzZXQgdG8gY3VycmVu dCB0cmFwIHN0YXRlIGZyb20gZW52LT50cywgcmV1c2Ugcl90bCAqLworICAgIHRjZ19nZW5fbXVs aV90bChyX3RsLCByX3RsLCBzaXplb2YgKHRyYXBfc3RhdGUpKTsKKyAgICB0Y2dfZ2VuX2FkZGlf cHRyKHJfdHNwdHIsIGNwdV9lbnYsIG9mZnNldG9mKENQVVN0YXRlLCB0cykpOworCisgICAgLyog dHNwdHIgPSBlbnYtPnRzW2Vudi0+dGwgJiBNQVhUTF9NQVNLXSAqLworICAgIHRjZ19nZW5fYWRk X3B0cihyX3RzcHRyLCByX3RzcHRyLCByX3RsKTsKKworICAgIHRjZ190ZW1wX2ZyZWUocl90bCk7 Cit9CisjZW5kaWYKKwogI2RlZmluZSBDSEVDS19JVV9GRUFUVVJFKGRjLCBGRUFUVVJFKSAgICAg ICAgICAgICAgICAgICAgICBcCiAgICAgaWYgKCEoKGRjKS0+ZGVmLT5mZWF0dXJlcyAmIENQVV9G RUFUVVJFXyAjIyBGRUFUVVJFKSkgIFwKICAgICAgICAgZ290byBpbGxlZ2FsX2luc247CkBAIC0x OTc4LDggKzIwMDUsNyBAQCBzdGF0aWMgdm9pZCBkaXNhc19zcGFyY19pbnNuKERpc2FzQ29udGV4 CiAgICAgICAgICAgICAgICAgICAgICAgICBUQ0d2X3B0ciByX3RzcHRyOwogCiAgICAgICAgICAg ICAgICAgICAgICAgICByX3RzcHRyID0gdGNnX3RlbXBfbmV3X3B0cigpOwotICAgICAgICAgICAg ICAgICAgICAgICAgdGNnX2dlbl9sZF9wdHIocl90c3B0ciwgY3B1X2VudiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKENQVVN0YXRlLCB0c3B0cikpOwor ICAgICAgICAgICAgICAgICAgICAgICAgZ2VuX2xvYWRfdHJhcF9zdGF0ZV9hdF90bChyX3RzcHRy LCBjcHVfZW52KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRjZ19nZW5fbGRfdGwoY3B1X3Rt cDAsIHJfdHNwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dG9mKHRyYXBfc3RhdGUsIHRwYykpOwogICAgICAgICAgICAgICAgICAgICAgICAgdGNnX3RlbXBf ZnJlZV9wdHIocl90c3B0cik7CkBAIC0xOTkwLDggKzIwMTYsNyBAQCBzdGF0aWMgdm9pZCBkaXNh c19zcGFyY19pbnNuKERpc2FzQ29udGV4CiAgICAgICAgICAgICAgICAgICAgICAgICBUQ0d2X3B0 ciByX3RzcHRyOwogCiAgICAgICAgICAgICAgICAgICAgICAgICByX3RzcHRyID0gdGNnX3RlbXBf bmV3X3B0cigpOwotICAgICAgICAgICAgICAgICAgICAgICAgdGNnX2dlbl9sZF9wdHIocl90c3B0 ciwgY3B1X2VudiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dG9mKENQVVN0YXRlLCB0c3B0cikpOworICAgICAgICAgICAgICAgICAgICAgICAgZ2VuX2xvYWRf dHJhcF9zdGF0ZV9hdF90bChyX3RzcHRyLCBjcHVfZW52KTsKICAgICAgICAgICAgICAgICAgICAg ICAgIHRjZ19nZW5fbGRfdGwoY3B1X3RtcDAsIHJfdHNwdHIsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKHRyYXBfc3RhdGUsIHRucGMpKTsKICAgICAgICAg ICAgICAgICAgICAgICAgIHRjZ190ZW1wX2ZyZWVfcHRyKHJfdHNwdHIpOwpAQCAtMjAwMiw4ICsy MDI3LDcgQEAgc3RhdGljIHZvaWQgZGlzYXNfc3BhcmNfaW5zbihEaXNhc0NvbnRleAogICAgICAg ICAgICAgICAgICAgICAgICAgVENHdl9wdHIgcl90c3B0cjsKIAogICAgICAgICAgICAgICAgICAg ICAgICAgcl90c3B0ciA9IHRjZ190ZW1wX25ld19wdHIoKTsKLSAgICAgICAgICAgICAgICAgICAg ICAgIHRjZ19nZW5fbGRfcHRyKHJfdHNwdHIsIGNwdV9lbnYsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihDUFVTdGF0ZSwgdHNwdHIpKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgIGdlbl9sb2FkX3RyYXBfc3RhdGVfYXRfdGwocl90c3B0ciwgY3B1X2Vu dik7CiAgICAgICAgICAgICAgICAgICAgICAgICB0Y2dfZ2VuX2xkX3RsKGNwdV90bXAwLCByX3Rz cHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih0cmFw X3N0YXRlLCB0c3RhdGUpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRjZ190ZW1wX2ZyZWVf cHRyKHJfdHNwdHIpOwpAQCAtMjAxNCw4ICsyMDM4LDcgQEAgc3RhdGljIHZvaWQgZGlzYXNfc3Bh cmNfaW5zbihEaXNhc0NvbnRleAogICAgICAgICAgICAgICAgICAgICAgICAgVENHdl9wdHIgcl90 c3B0cjsKIAogICAgICAgICAgICAgICAgICAgICAgICAgcl90c3B0ciA9IHRjZ190ZW1wX25ld19w dHIoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRjZ19nZW5fbGRfcHRyKHJfdHNwdHIsIGNw dV9lbnYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihD UFVTdGF0ZSwgdHNwdHIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdlbl9sb2FkX3RyYXBf c3RhdGVfYXRfdGwocl90c3B0ciwgY3B1X2Vudik7CiAgICAgICAgICAgICAgICAgICAgICAgICB0 Y2dfZ2VuX2xkX2kzMihjcHVfdG1wMzIsIHJfdHNwdHIsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvZmZzZXRvZih0cmFwX3N0YXRlLCB0dCkpOwogICAgICAgICAgICAg ICAgICAgICAgICAgdGNnX3RlbXBfZnJlZV9wdHIocl90c3B0cik7CkBAIC0zMjcxLDggKzMyOTQs NyBAQCBzdGF0aWMgdm9pZCBkaXNhc19zcGFyY19pbnNuKERpc2FzQ29udGV4CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBUQ0d2X3B0ciByX3RzcHRyOwogCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByX3RzcHRyID0gdGNnX3RlbXBfbmV3X3B0cigpOwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGNnX2dlbl9sZF9wdHIocl90c3B0 ciwgY3B1X2VudiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9mZnNldG9mKENQVVN0YXRlLCB0c3B0cikpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ2VuX2xvYWRfdHJhcF9zdGF0ZV9hdF90bChyX3RzcHRyLCBjcHVfZW52 KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRjZ19nZW5fc3RfdGwoY3B1 X3RtcDAsIHJfdHNwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG9mZnNldG9mKHRyYXBfc3RhdGUsIHRwYykpOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGNnX3RlbXBfZnJlZV9wdHIocl90c3B0cik7CkBAIC0zMjgzLDgg KzMzMDUsNyBAQCBzdGF0aWMgdm9pZCBkaXNhc19zcGFyY19pbnNuKERpc2FzQ29udGV4CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQ0d2X3B0ciByX3RzcHRyOwogCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByX3RzcHRyID0gdGNnX3RlbXBfbmV3X3B0 cigpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGNnX2dlbl9sZF9wdHIo cl90c3B0ciwgY3B1X2VudiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9mZnNldG9mKENQVVN0YXRlLCB0c3B0cikpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2VuX2xvYWRfdHJhcF9zdGF0ZV9hdF90bChyX3RzcHRyLCBj cHVfZW52KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRjZ19nZW5fc3Rf dGwoY3B1X3RtcDAsIHJfdHNwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldG9mKHRyYXBfc3RhdGUsIHRucGMpKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRjZ190ZW1wX2ZyZWVfcHRyKHJfdHNwdHIpOwpAQCAt MzI5NSw4ICszMzE2LDcgQEAgc3RhdGljIHZvaWQgZGlzYXNfc3BhcmNfaW5zbihEaXNhc0NvbnRl eAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVENHdl9wdHIgcl90c3B0cjsK IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcl90c3B0ciA9IHRjZ190ZW1w X25ld19wdHIoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRjZ19nZW5f bGRfcHRyKHJfdHNwdHIsIGNwdV9lbnYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihDUFVTdGF0ZSwgdHNwdHIpKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbl9sb2FkX3RyYXBfc3RhdGVfYXRfdGwocl90 c3B0ciwgY3B1X2Vudik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Y2df Z2VuX3N0X3RsKGNwdV90bXAwLCByX3RzcHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih0cmFwX3N0YXRlLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0c3RhdGUpKTsK QEAgLTMzMDgsOCArMzMyOCw3IEBAIHN0YXRpYyB2b2lkIGRpc2FzX3NwYXJjX2luc24oRGlzYXND b250ZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRDR3ZfcHRyIHJfdHNw dHI7CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJfdHNwdHIgPSB0Y2df dGVtcF9uZXdfcHRyKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Y2df Z2VuX2xkX3B0cihyX3RzcHRyLCBjcHVfZW52LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoQ1BVU3RhdGUsIHRzcHRyKSk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5fbG9hZF90cmFwX3N0YXRlX2F0X3Rs KHJfdHNwdHIsIGNwdV9lbnYpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGNnX2dlbl90cnVuY190bF9pMzIoY3B1X3RtcDMyLCBjcHVfdG1wMCk7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0Y2dfZ2VuX3N0X2kzMihjcHVfdG1wMzIsIHJfdHNwdHIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZz ZXRvZih0cmFwX3N0YXRlLCB0dCkpOwpJbmRleDogcWVtdS10cnVuay90YXJnZXQtc3BhcmMvb3Bf aGVscGVyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS10cnVuay5vcmlnL3RhcmdldC1zcGFyYy9vcF9o ZWxwZXIuYworKysgcWVtdS10cnVuay90YXJnZXQtc3BhcmMvb3BfaGVscGVyLmMKQEAgLTMzMTEs MjYgKzMzMTEsMjggQEAgdm9pZCBoZWxwZXJfd3Jwc3RhdGUodGFyZ2V0X3Vsb25nIG5ld19zdAog CiB2b2lkIGhlbHBlcl9kb25lKHZvaWQpCiB7Ci0gICAgZW52LT5wYyA9IGVudi0+dHNwdHItPnRw YzsKLSAgICBlbnYtPm5wYyA9IGVudi0+dHNwdHItPnRucGMgKyA0OwotICAgIFBVVF9DQ1IoZW52 LCBlbnYtPnRzcHRyLT50c3RhdGUgPj4gMzIpOwotICAgIGVudi0+YXNpID0gKGVudi0+dHNwdHIt PnRzdGF0ZSA+PiAyNCkgJiAweGZmOwotICAgIGNoYW5nZV9wc3RhdGUoKGVudi0+dHNwdHItPnRz dGF0ZSA+PiA4KSAmIDB4ZjNmKTsKLSAgICBQVVRfQ1dQNjQoZW52LCBlbnYtPnRzcHRyLT50c3Rh dGUgJiAweGZmKTsKKyAgICB0cmFwX3N0YXRlKiB0c3B0ciA9IGNwdV90c3B0cihlbnYpOworCisg ICAgZW52LT5wYyA9IHRzcHRyLT50cGM7CisgICAgZW52LT5ucGMgPSB0c3B0ci0+dG5wYyArIDQ7 CisgICAgUFVUX0NDUihlbnYsIHRzcHRyLT50c3RhdGUgPj4gMzIpOworICAgIGVudi0+YXNpID0g KHRzcHRyLT50c3RhdGUgPj4gMjQpICYgMHhmZjsKKyAgICBjaGFuZ2VfcHN0YXRlKCh0c3B0ci0+ dHN0YXRlID4+IDgpICYgMHhmM2YpOworICAgIFBVVF9DV1A2NChlbnYsIHRzcHRyLT50c3RhdGUg JiAweGZmKTsKICAgICBlbnYtPnRsLS07Ci0gICAgZW52LT50c3B0ciA9ICZlbnYtPnRzW2Vudi0+ dGwgJiBNQVhUTF9NQVNLXTsKIH0KIAogdm9pZCBoZWxwZXJfcmV0cnkodm9pZCkKIHsKLSAgICBl bnYtPnBjID0gZW52LT50c3B0ci0+dHBjOwotICAgIGVudi0+bnBjID0gZW52LT50c3B0ci0+dG5w YzsKLSAgICBQVVRfQ0NSKGVudiwgZW52LT50c3B0ci0+dHN0YXRlID4+IDMyKTsKLSAgICBlbnYt PmFzaSA9IChlbnYtPnRzcHRyLT50c3RhdGUgPj4gMjQpICYgMHhmZjsKLSAgICBjaGFuZ2VfcHN0 YXRlKChlbnYtPnRzcHRyLT50c3RhdGUgPj4gOCkgJiAweGYzZik7Ci0gICAgUFVUX0NXUDY0KGVu diwgZW52LT50c3B0ci0+dHN0YXRlICYgMHhmZik7CisgICAgdHJhcF9zdGF0ZSogdHNwdHIgPSBj cHVfdHNwdHIoZW52KTsKKworICAgIGVudi0+cGMgPSB0c3B0ci0+dHBjOworICAgIGVudi0+bnBj ID0gdHNwdHItPnRucGM7CisgICAgUFVUX0NDUihlbnYsIHRzcHRyLT50c3RhdGUgPj4gMzIpOwor ICAgIGVudi0+YXNpID0gKHRzcHRyLT50c3RhdGUgPj4gMjQpICYgMHhmZjsKKyAgICBjaGFuZ2Vf cHN0YXRlKCh0c3B0ci0+dHN0YXRlID4+IDgpICYgMHhmM2YpOworICAgIFBVVF9DV1A2NChlbnYs IHRzcHRyLT50c3RhdGUgJiAweGZmKTsKICAgICBlbnYtPnRsLS07Ci0gICAgZW52LT50c3B0ciA9 ICZlbnYtPnRzW2Vudi0+dGwgJiBNQVhUTF9NQVNLXTsKIH0KIAogdm9pZCBoZWxwZXJfc2V0X3Nv ZnRpbnQodWludDY0X3QgdmFsdWUpCkBAIC0zMzkyLDkgKzMzOTQsMTUgQEAgc3RhdGljIGNvbnN0 IGNoYXIgKiBjb25zdCBleGNwX25hbWVzWzB4OAogfTsKICNlbmRpZgogCit0cmFwX3N0YXRlKiBj cHVfdHNwdHIoQ1BVU3RhdGUqIGVudikKK3sKKyAgICByZXR1cm4gJmVudi0+dHNbZW52LT50bCAm IE1BWFRMX01BU0tdOworfQorCiB2b2lkIGRvX2ludGVycnVwdChDUFVTdGF0ZSAqZW52KQogewog ICAgIGludCBpbnRubyA9IGVudi0+ZXhjZXB0aW9uX2luZGV4OworICAgIHRyYXBfc3RhdGUqIHRz cHRyOwogCiAjaWZkZWYgREVCVUdfUENBTEwKICAgICBpZiAocWVtdV9sb2dsZXZlbF9tYXNrKENQ VV9MT0dfSU5UKSkgewpAQCAtMzQ1MSwxMyArMzQ1OSwxNCBAQCB2b2lkIGRvX2ludGVycnVwdChD UFVTdGF0ZSAqZW52KQogICAgICAgICBpZiAoZW52LT50bCA8IGVudi0+bWF4dGwpCiAgICAgICAg ICAgICBlbnYtPnRsKys7CiAgICAgfQotICAgIGVudi0+dHNwdHIgPSAmZW52LT50c1tlbnYtPnRs ICYgTUFYVExfTUFTS107Ci0gICAgZW52LT50c3B0ci0+dHN0YXRlID0gKCh1aW50NjRfdClHRVRf Q0NSKGVudikgPDwgMzIpIHwKKyAgICB0c3B0ciA9IGNwdV90c3B0cihlbnYpOworCisgICAgdHNw dHItPnRzdGF0ZSA9ICgodWludDY0X3QpR0VUX0NDUihlbnYpIDw8IDMyKSB8CiAgICAgICAgICgo ZW52LT5hc2kgJiAweGZmKSA8PCAyNCkgfCAoKGVudi0+cHN0YXRlICYgMHhmM2YpIDw8IDgpIHwK ICAgICAgICAgR0VUX0NXUDY0KGVudik7Ci0gICAgZW52LT50c3B0ci0+dHBjID0gZW52LT5wYzsK LSAgICBlbnYtPnRzcHRyLT50bnBjID0gZW52LT5ucGM7Ci0gICAgZW52LT50c3B0ci0+dHQgPSBp bnRubzsKKyAgICB0c3B0ci0+dHBjID0gZW52LT5wYzsKKyAgICB0c3B0ci0+dG5wYyA9IGVudi0+ bnBjOworICAgIHRzcHRyLT50dCA9IGludG5vOwogCiAgICAgc3dpdGNoIChpbnRubykgewogICAg IGNhc2UgVFRfSVZFQzoKSW5kZXg6IHFlbXUtdHJ1bmsvdGFyZ2V0LXNwYXJjL2hlbHBlci5jCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIHFlbXUtdHJ1bmsub3JpZy90YXJnZXQtc3BhcmMvaGVscGVyLmMKKysrIHFl bXUtdHJ1bmsvdGFyZ2V0LXNwYXJjL2hlbHBlci5jCkBAIC02OTksOSArNjk5LDEwIEBAIHZvaWQg Y3B1X3Jlc2V0KENQVVNQQVJDU3RhdGUgKmVudikKICAgICBlbnYtPnBzcnBzID0gMTsKICAgICBD Q19PUCA9IENDX09QX0ZMQUdTOwogI2lmZGVmIFRBUkdFVF9TUEFSQzY0Ci0gICAgZW52LT5wc3Rh dGUgPSBQU19QUklWOworICAgIGVudi0+cHN0YXRlID0gUFNfUFJJVnxQU19SRUR8UFNfUEVGfFBT X0FHOwogICAgIGVudi0+aHBzdGF0ZSA9IEhTX1BSSVY7Ci0gICAgZW52LT50c3B0ciA9ICZlbnYt PnRzW2Vudi0+dGwgJiBNQVhUTF9NQVNLXTsKKyAgICBlbnYtPnRsID0gZW52LT5tYXh0bDsKKyAg ICBjcHVfdHNwdHIoZW52KS0+dHQgPSBUVF9QT1dFUl9PTl9SRVNFVDsKICAgICBlbnYtPmxzdSA9 IDA7CiAjZWxzZQogICAgIGVudi0+bW11cmVnc1swXSAmPSB+KE1NVV9FIHwgTU1VX05GKTsKSW5k ZXg6IHFlbXUtdHJ1bmsvdGFyZ2V0LXNwYXJjL21hY2hpbmUuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11 LXRydW5rLm9yaWcvdGFyZ2V0LXNwYXJjL21hY2hpbmUuYworKysgcWVtdS10cnVuay90YXJnZXQt c3BhcmMvbWFjaGluZS5jCkBAIC0xNjQsNyArMTY0LDYgQEAgaW50IGNwdV9sb2FkKFFFTVVGaWxl ICpmLCB2b2lkICpvcGFxdWUsIAogICAgIHFlbXVfZ2V0X2JlMzJzKGYsICZlbnYtPmFzaSk7CiAg ICAgcWVtdV9nZXRfYmUzMnMoZiwgJmVudi0+cHN0YXRlKTsKICAgICBxZW11X2dldF9iZTMycyhm LCAmZW52LT50bCk7Ci0gICAgZW52LT50c3B0ciA9ICZlbnYtPnRzW2Vudi0+dGwgJiBNQVhUTF9N QVNLXTsKICAgICBxZW11X2dldF9iZTMycyhmLCAmZW52LT5jYW5zYXZlKTsKICAgICBxZW11X2dl dF9iZTMycyhmLCAmZW52LT5jYW5yZXN0b3JlKTsKICAgICBxZW11X2dldF9iZTMycyhmLCAmZW52 LT5vdGhlcndpbik7CkluZGV4OiBxZW11LXRydW5rL2xpbnV4LXVzZXIvbWFpbi5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIHFlbXUtdHJ1bmsub3JpZy9saW51eC11c2VyL21haW4uYworKysgcWVtdS10cnVuay9s aW51eC11c2VyL21haW4uYwpAQCAtOTYyLDcgKzk2Miw3IEBAIHZvaWQgY3B1X2xvb3AgKENQVVNQ QVJDU3RhdGUgKmVudikKICAgICAgICAgICAgICAgICBpZiAodHJhcG5yID09IFRUX0RGQVVMVCkK ICAgICAgICAgICAgICAgICAgICAgaW5mby5fc2lmaWVsZHMuX3NpZ2ZhdWx0Ll9hZGRyID0gZW52 LT5kbW11cmVnc1s0XTsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAg IGluZm8uX3NpZmllbGRzLl9zaWdmYXVsdC5fYWRkciA9IGVudi0+dHNwdHItPnRwYzsKKyAgICAg ICAgICAgICAgICAgICAgaW5mby5fc2lmaWVsZHMuX3NpZ2ZhdWx0Ll9hZGRyID0gY3B1X3RzcHRy KGVudiktPnRwYzsKICAgICAgICAgICAgICAgICBxdWV1ZV9zaWduYWwoZW52LCBpbmZvLnNpX3Np Z25vLCAmaW5mbyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsK --00163641671b3aed040470419628--