From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MSy61-0003lL-VP for qemu-devel@nongnu.org; Mon, 20 Jul 2009 15:00:22 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MSy5w-0003iS-RJ for qemu-devel@nongnu.org; Mon, 20 Jul 2009 15:00:20 -0400 Received: from [199.232.76.173] (port=57631 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MSy5w-0003iL-Ea for qemu-devel@nongnu.org; Mon, 20 Jul 2009 15:00:16 -0400 Received: from mail-fx0-f224.google.com ([209.85.220.224]:44351) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MSy5v-00046a-Ki for qemu-devel@nongnu.org; Mon, 20 Jul 2009 15:00:16 -0400 Received: by fxm24 with SMTP id 24so1151791fxm.34 for ; Mon, 20 Jul 2009 12:00:14 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: Date: Mon, 20 Jul 2009 23:00:14 +0400 Message-ID: Subject: Re: [Qemu-devel] [PATCH] sparc64 replace tsptr with helper routine From: Igor Kovalenko Content-Type: multipart/mixed; boundary=001636b4313d85040d046f27bfc5 List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: qemu-devel@nongnu.org --001636b4313d85040d046f27bfc5 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit On Mon, Jul 20, 2009 at 10:49 AM, Blue Swirl wrote: > On Mon, Jul 20, 2009 at 12:19 AM, Igor > Kovalenko wrote: >> 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. > > I'd rather have the stores to TL fixed instead of introducing a > helper. A new function to set both TL and tsptr may help. Which stores > to TL do not change tsptr? The problem is with translate.c portion about handling wrpr (it sets tl only). My idea is that even remote possibility of tsptr and tl going out of sync guarantees killing one of them. Since tl is a real register I decided to loose tsptr. > > On CPU reset, TL should be MAXTL for POR and MIN(TL+1, MAXTL) in other > cases but your patch would set it to 0. Right but please see that original code did not done that either :) Please see updated patch which additionally sets tl=maxtl. I decided to populate trap level, trap type and pstate with power-on reset values since other reset types are not handled yet. -- Kind regards, Igor V. Kovalenko --001636b4313d85040d046f27bfc5 Content-Type: application/octet-stream; name=sparc64-tsptr-tl-2 Content-Disposition: attachment; filename=sparc64-tsptr-tl-2 Content-Transfer-Encoding: base64 X-Attachment-Id: f_fxdjn2430 SW5kZXg6IHFlbXUtdHJ1bmsvdGFyZ2V0LXNwYXJjL2NwdS5oCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUt dHJ1bmsub3JpZy90YXJnZXQtc3BhcmMvY3B1LmgKKysrIHFlbXUtdHJ1bmsvdGFyZ2V0LXNwYXJj L2NwdS5oCkBAIC00OSw2ICs0OSw3IEBACiAjZGVmaW5lIFRUX05DUF9JTlNOIDB4MjQKICNkZWZp bmUgVFRfVFJBUCAgICAgMHg4MAogI2Vsc2UKKyNkZWZpbmUgVFRfUE9XRVJfT05fUkVTRVQgMHgw MQogI2RlZmluZSBUVF9URkFVTFQgICAweDA4CiAjZGVmaW5lIFRUX0NPREVfQUNDRVNTIDB4MGEK ICNkZWZpbmUgVFRfSUxMX0lOU04gMHgxMApAQCAtMzQwLDcgKzM0MSw2IEBAIHR5cGVkZWYgc3Ry dWN0IENQVVNQQVJDU3RhdGUgewogI2lmIGRlZmluZWQoVEFSR0VUX1NQQVJDNjQpCiAjZGVmaW5l IE1BWFRMX01BWCA4CiAjZGVmaW5lIE1BWFRMX01BU0sgKE1BWFRMX01BWCAtIDEpCi0gICAgdHJh cF9zdGF0ZSAqdHNwdHI7CiAgICAgdHJhcF9zdGF0ZSB0c1tNQVhUTF9NQVhdOwogICAgIHVpbnQz Ml90IHhjYzsgICAgICAgICAgICAgICAvKiBFeHRlbmRlZCBpbnRlZ2VyIGNvbmRpdGlvbiBjb2Rl cyAqLwogICAgIHVpbnQzMl90IGFzaTsKQEAgLTU1Niw2ICs1NTYsNyBAQCB2b2lkIGNwdV9jaGVj a19pcnFzKENQVVNQQVJDU3RhdGUgKmVudik7CiB2b2lkIGNwdV90aWNrX3NldF9jb3VudCh2b2lk ICpvcGFxdWUsIHVpbnQ2NF90IGNvdW50KTsKIHVpbnQ2NF90IGNwdV90aWNrX2dldF9jb3VudCh2 b2lkICpvcGFxdWUpOwogdm9pZCBjcHVfdGlja19zZXRfbGltaXQodm9pZCAqb3BhcXVlLCB1aW50 NjRfdCBsaW1pdCk7Cit0cmFwX3N0YXRlKiBjcHVfdHNwdHIoQ1BVU3RhdGUqIGVudik7CiAjZW5k aWYKIAogc3RhdGljIGlubGluZSB2b2lkIGNwdV9wY19mcm9tX3RiKENQVVN0YXRlICplbnYsIFRy YW5zbGF0aW9uQmxvY2sgKnRiKQpJbmRleDogcWVtdS10cnVuay90YXJnZXQtc3BhcmMvaGVscGVy LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gcWVtdS10cnVuay5vcmlnL3RhcmdldC1zcGFyYy9oZWxwZXIuaAor KysgcWVtdS10cnVuay90YXJnZXQtc3BhcmMvaGVscGVyLmgKQEAgLTUsNiArNSw3IEBAIERFRl9I RUxQRVJfMChyZXR0LCB2b2lkKQogREVGX0hFTFBFUl8xKHdycHNyLCB2b2lkLCB0bCkKIERFRl9I RUxQRVJfMChyZHBzciwgdGwpCiAjZWxzZQorREVGX0hFTFBFUl8xKGdldF90c3B0ciwgcHRyLCBw dHIpCiBERUZfSEVMUEVSXzEod3Jwc3RhdGUsIHZvaWQsIHRsKQogREVGX0hFTFBFUl8wKGRvbmUs IHZvaWQpCiBERUZfSEVMUEVSXzAocmV0cnksIHZvaWQpCkluZGV4OiBxZW11LXRydW5rL3Rhcmdl dC1zcGFyYy90cmFuc2xhdGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11LXRydW5rLm9yaWcvdGFyZ2V0 LXNwYXJjL3RyYW5zbGF0ZS5jCisrKyBxZW11LXRydW5rL3RhcmdldC1zcGFyYy90cmFuc2xhdGUu YwpAQCAtMTk3OCwxMCArMTk3OCwxMSBAQCBzdGF0aWMgdm9pZCBkaXNhc19zcGFyY19pbnNuKERp c2FzQ29udGV4CiAgICAgICAgICAgICAgICAgICAgICAgICBUQ0d2X3B0ciByX3RzcHRyOwogCiAg ICAgICAgICAgICAgICAgICAgICAgICByX3RzcHRyID0gdGNnX3RlbXBfbmV3X3B0cigpOwotICAg ICAgICAgICAgICAgICAgICAgICAgdGNnX2dlbl9sZF9wdHIocl90c3B0ciwgY3B1X2VudiwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKENQVVN0YXRlLCB0 c3B0cikpOworICAgICAgICAgICAgICAgICAgICAgICAgZ2VuX2hlbHBlcl9nZXRfdHNwdHIocl90 c3B0ciwgY3B1X2Vudik7CisKICAgICAgICAgICAgICAgICAgICAgICAgIHRjZ19nZW5fbGRfdGwo Y3B1X3RtcDAsIHJfdHNwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9mZnNldG9mKHRyYXBfc3RhdGUsIHRwYykpOworCiAgICAgICAgICAgICAgICAgICAgICAgICB0 Y2dfdGVtcF9mcmVlX3B0cihyX3RzcHRyKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICBicmVhazsKQEAgLTE5OTAsOCArMTk5MSw3IEBAIHN0YXRpYyB2b2lkIGRp c2FzX3NwYXJjX2luc24oRGlzYXNDb250ZXgKICAgICAgICAgICAgICAgICAgICAgICAgIFRDR3Zf cHRyIHJfdHNwdHI7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIHJfdHNwdHIgPSB0Y2dfdGVt cF9uZXdfcHRyKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0Y2dfZ2VuX2xkX3B0cihyX3Rz cHRyLCBjcHVfZW52LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zm c2V0b2YoQ1BVU3RhdGUsIHRzcHRyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBnZW5faGVs cGVyX2dldF90c3B0cihyX3RzcHRyLCBjcHVfZW52KTsKICAgICAgICAgICAgICAgICAgICAgICAg IHRjZ19nZW5fbGRfdGwoY3B1X3RtcDAsIHJfdHNwdHIsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldG9mKHRyYXBfc3RhdGUsIHRucGMpKTsKICAgICAgICAgICAg ICAgICAgICAgICAgIHRjZ190ZW1wX2ZyZWVfcHRyKHJfdHNwdHIpOwpAQCAtMjAwMiw4ICsyMDAy LDcgQEAgc3RhdGljIHZvaWQgZGlzYXNfc3BhcmNfaW5zbihEaXNhc0NvbnRleAogICAgICAgICAg ICAgICAgICAgICAgICAgVENHdl9wdHIgcl90c3B0cjsKIAogICAgICAgICAgICAgICAgICAgICAg ICAgcl90c3B0ciA9IHRjZ190ZW1wX25ld19wdHIoKTsKLSAgICAgICAgICAgICAgICAgICAgICAg IHRjZ19nZW5fbGRfcHRyKHJfdHNwdHIsIGNwdV9lbnYsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvZmZzZXRvZihDUFVTdGF0ZSwgdHNwdHIpKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgIGdlbl9oZWxwZXJfZ2V0X3RzcHRyKHJfdHNwdHIsIGNwdV9lbnYpOwogICAg ICAgICAgICAgICAgICAgICAgICAgdGNnX2dlbl9sZF90bChjcHVfdG1wMCwgcl90c3B0ciwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHJhcF9zdGF0ZSwg dHN0YXRlKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB0Y2dfdGVtcF9mcmVlX3B0cihyX3Rz cHRyKTsKQEAgLTIwMTQsOCArMjAxMyw3IEBAIHN0YXRpYyB2b2lkIGRpc2FzX3NwYXJjX2luc24o RGlzYXNDb250ZXgKICAgICAgICAgICAgICAgICAgICAgICAgIFRDR3ZfcHRyIHJfdHNwdHI7CiAK ICAgICAgICAgICAgICAgICAgICAgICAgIHJfdHNwdHIgPSB0Y2dfdGVtcF9uZXdfcHRyKCk7Ci0g ICAgICAgICAgICAgICAgICAgICAgICB0Y2dfZ2VuX2xkX3B0cihyX3RzcHRyLCBjcHVfZW52LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoQ1BVU3RhdGUs IHRzcHRyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBnZW5faGVscGVyX2dldF90c3B0cihy X3RzcHRyLCBjcHVfZW52KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRjZ19nZW5fbGRfaTMy KGNwdV90bXAzMiwgcl90c3B0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldG9mKHRyYXBfc3RhdGUsIHR0KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB0 Y2dfdGVtcF9mcmVlX3B0cihyX3RzcHRyKTsKQEAgLTMyNzEsOCArMzI2OSw3IEBAIHN0YXRpYyB2 b2lkIGRpc2FzX3NwYXJjX2luc24oRGlzYXNDb250ZXgKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFRDR3ZfcHRyIHJfdHNwdHI7CiAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJfdHNwdHIgPSB0Y2dfdGVtcF9uZXdfcHRyKCk7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0Y2dfZ2VuX2xkX3B0cihyX3RzcHRyLCBjcHVfZW52LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0 b2YoQ1BVU3RhdGUsIHRzcHRyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnZW5faGVscGVyX2dldF90c3B0cihyX3RzcHRyLCBjcHVfZW52KTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRjZ19nZW5fc3RfdGwoY3B1X3RtcDAsIHJfdHNwdHIsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9m KHRyYXBfc3RhdGUsIHRwYykpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGNnX3RlbXBfZnJlZV9wdHIocl90c3B0cik7CkBAIC0zMjgzLDggKzMyODAsNyBAQCBzdGF0aWMg dm9pZCBkaXNhc19zcGFyY19pbnNuKERpc2FzQ29udGV4CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUQ0d2X3B0ciByX3RzcHRyOwogCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByX3RzcHRyID0gdGNnX3RlbXBfbmV3X3B0cigpOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGNnX2dlbl9sZF9wdHIocl90c3B0ciwgY3B1X2VudiwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dG9mKENQVVN0YXRlLCB0c3B0cikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2VuX2hlbHBlcl9nZXRfdHNwdHIocl90c3B0ciwgY3B1X2Vudik7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0Y2dfZ2VuX3N0X3RsKGNwdV90bXAwLCByX3RzcHRyLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRv Zih0cmFwX3N0YXRlLCB0bnBjKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0Y2dfdGVtcF9mcmVlX3B0cihyX3RzcHRyKTsKQEAgLTMyOTUsOCArMzI5MSw3IEBAIHN0YXRp YyB2b2lkIGRpc2FzX3NwYXJjX2luc24oRGlzYXNDb250ZXgKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRDR3ZfcHRyIHJfdHNwdHI7CiAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJfdHNwdHIgPSB0Y2dfdGVtcF9uZXdfcHRyKCk7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0Y2dfZ2VuX2xkX3B0cihyX3RzcHRyLCBjcHVfZW52 LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zm c2V0b2YoQ1BVU3RhdGUsIHRzcHRyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnZW5faGVscGVyX2dldF90c3B0cihyX3RzcHRyLCBjcHVfZW52KTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRjZ19nZW5fc3RfdGwoY3B1X3RtcDAsIHJfdHNwdHIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dG9mKHRyYXBfc3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRzdGF0ZSkpOwpAQCAtMzMwOCw4ICszMzAzLDcgQEAgc3RhdGlj IHZvaWQgZGlzYXNfc3BhcmNfaW5zbihEaXNhc0NvbnRleAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVENHdl9wdHIgcl90c3B0cjsKIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcl90c3B0ciA9IHRjZ190ZW1wX25ld19wdHIoKTsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRjZ19nZW5fbGRfcHRyKHJfdHNwdHIsIGNwdV9lbnYs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZz ZXRvZihDUFVTdGF0ZSwgdHNwdHIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdlbl9oZWxwZXJfZ2V0X3RzcHRyKHJfdHNwdHIsIGNwdV9lbnYpOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGNnX2dlbl90cnVuY190bF9pMzIoY3B1X3RtcDMyLCBj cHVfdG1wMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Y2dfZ2VuX3N0 X2kzMihjcHVfdG1wMzIsIHJfdHNwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih0cmFwX3N0YXRlLCB0dCkpOwpJbmRleDogcWVt dS10cnVuay90YXJnZXQtc3BhcmMvb3BfaGVscGVyLmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS10cnVu ay5vcmlnL3RhcmdldC1zcGFyYy9vcF9oZWxwZXIuYworKysgcWVtdS10cnVuay90YXJnZXQtc3Bh cmMvb3BfaGVscGVyLmMKQEAgLTMyNDgsMjggKzMyNDgsMzUgQEAgdm9pZCBoZWxwZXJfd3Jwc3Rh dGUodGFyZ2V0X3Vsb25nIG5ld19zdAogICAgIGNoYW5nZV9wc3RhdGUobmV3X3N0YXRlICYgMHhm M2YpOwogfQogCit2b2lkKiBoZWxwZXJfZ2V0X3RzcHRyKHZvaWQgKm9wYXF1ZSkKK3sKKyAgICBy ZXR1cm4gY3B1X3RzcHRyKG9wYXF1ZSk7Cit9CisKIHZvaWQgaGVscGVyX2RvbmUodm9pZCkKIHsK LSAgICBlbnYtPnBjID0gZW52LT50c3B0ci0+dHBjOwotICAgIGVudi0+bnBjID0gZW52LT50c3B0 ci0+dG5wYyArIDQ7Ci0gICAgUFVUX0NDUihlbnYsIGVudi0+dHNwdHItPnRzdGF0ZSA+PiAzMik7 Ci0gICAgZW52LT5hc2kgPSAoZW52LT50c3B0ci0+dHN0YXRlID4+IDI0KSAmIDB4ZmY7Ci0gICAg Y2hhbmdlX3BzdGF0ZSgoZW52LT50c3B0ci0+dHN0YXRlID4+IDgpICYgMHhmM2YpOwotICAgIFBV VF9DV1A2NChlbnYsIGVudi0+dHNwdHItPnRzdGF0ZSAmIDB4ZmYpOworICAgIHRyYXBfc3RhdGUq IHRzcHRyID0gY3B1X3RzcHRyKGVudik7CisKKyAgICBlbnYtPnBjID0gdHNwdHItPnRwYzsKKyAg ICBlbnYtPm5wYyA9IHRzcHRyLT50bnBjICsgNDsKKyAgICBQVVRfQ0NSKGVudiwgdHNwdHItPnRz dGF0ZSA+PiAzMik7CisgICAgZW52LT5hc2kgPSAodHNwdHItPnRzdGF0ZSA+PiAyNCkgJiAweGZm OworICAgIGNoYW5nZV9wc3RhdGUoKHRzcHRyLT50c3RhdGUgPj4gOCkgJiAweGYzZik7CisgICAg UFVUX0NXUDY0KGVudiwgdHNwdHItPnRzdGF0ZSAmIDB4ZmYpOwogICAgIGVudi0+dGwtLTsKLSAg ICBlbnYtPnRzcHRyID0gJmVudi0+dHNbZW52LT50bCAmIE1BWFRMX01BU0tdOwogfQogCiB2b2lk IGhlbHBlcl9yZXRyeSh2b2lkKQogewotICAgIGVudi0+cGMgPSBlbnYtPnRzcHRyLT50cGM7Ci0g ICAgZW52LT5ucGMgPSBlbnYtPnRzcHRyLT50bnBjOwotICAgIFBVVF9DQ1IoZW52LCBlbnYtPnRz cHRyLT50c3RhdGUgPj4gMzIpOwotICAgIGVudi0+YXNpID0gKGVudi0+dHNwdHItPnRzdGF0ZSA+ PiAyNCkgJiAweGZmOwotICAgIGNoYW5nZV9wc3RhdGUoKGVudi0+dHNwdHItPnRzdGF0ZSA+PiA4 KSAmIDB4ZjNmKTsKLSAgICBQVVRfQ1dQNjQoZW52LCBlbnYtPnRzcHRyLT50c3RhdGUgJiAweGZm KTsKKyAgICB0cmFwX3N0YXRlKiB0c3B0ciA9IGNwdV90c3B0cihlbnYpOworCisgICAgZW52LT5w YyA9IHRzcHRyLT50cGM7CisgICAgZW52LT5ucGMgPSB0c3B0ci0+dG5wYzsKKyAgICBQVVRfQ0NS KGVudiwgdHNwdHItPnRzdGF0ZSA+PiAzMik7CisgICAgZW52LT5hc2kgPSAodHNwdHItPnRzdGF0 ZSA+PiAyNCkgJiAweGZmOworICAgIGNoYW5nZV9wc3RhdGUoKHRzcHRyLT50c3RhdGUgPj4gOCkg JiAweGYzZik7CisgICAgUFVUX0NXUDY0KGVudiwgdHNwdHItPnRzdGF0ZSAmIDB4ZmYpOwogICAg IGVudi0+dGwtLTsKLSAgICBlbnYtPnRzcHRyID0gJmVudi0+dHNbZW52LT50bCAmIE1BWFRMX01B U0tdOwogfQogCiB2b2lkIGhlbHBlcl9zZXRfc29mdGludCh1aW50NjRfdCB2YWx1ZSkKQEAgLTMz MzEsOSArMzMzOCwxNSBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGV4Y3BfbmFtZXNbMHg4 CiB9OwogI2VuZGlmCiAKK3RyYXBfc3RhdGUqIGNwdV90c3B0cihDUFVTdGF0ZSogZW52KQorewor ICAgIHJldHVybiAmZW52LT50c1tlbnYtPnRsICYgTUFYVExfTUFTS107Cit9CisKIHZvaWQgZG9f aW50ZXJydXB0KENQVVN0YXRlICplbnYpCiB7CiAgICAgaW50IGludG5vID0gZW52LT5leGNlcHRp b25faW5kZXg7CisgICAgdHJhcF9zdGF0ZSogdHNwdHI7CiAKICNpZmRlZiBERUJVR19QQ0FMTAog ICAgIGlmIChxZW11X2xvZ2xldmVsX21hc2soQ1BVX0xPR19JTlQpKSB7CkBAIC0zMzkwLDEzICsz NDAzLDE0IEBAIHZvaWQgZG9faW50ZXJydXB0KENQVVN0YXRlICplbnYpCiAgICAgICAgIGlmIChl bnYtPnRsIDwgZW52LT5tYXh0bCkKICAgICAgICAgICAgIGVudi0+dGwrKzsKICAgICB9Ci0gICAg ZW52LT50c3B0ciA9ICZlbnYtPnRzW2Vudi0+dGwgJiBNQVhUTF9NQVNLXTsKLSAgICBlbnYtPnRz cHRyLT50c3RhdGUgPSAoKHVpbnQ2NF90KUdFVF9DQ1IoZW52KSA8PCAzMikgfAorICAgIHRzcHRy ID0gY3B1X3RzcHRyKGVudik7CisKKyAgICB0c3B0ci0+dHN0YXRlID0gKCh1aW50NjRfdClHRVRf Q0NSKGVudikgPDwgMzIpIHwKICAgICAgICAgKChlbnYtPmFzaSAmIDB4ZmYpIDw8IDI0KSB8ICgo ZW52LT5wc3RhdGUgJiAweGYzZikgPDwgOCkgfAogICAgICAgICBHRVRfQ1dQNjQoZW52KTsKLSAg ICBlbnYtPnRzcHRyLT50cGMgPSBlbnYtPnBjOwotICAgIGVudi0+dHNwdHItPnRucGMgPSBlbnYt Pm5wYzsKLSAgICBlbnYtPnRzcHRyLT50dCA9IGludG5vOworICAgIHRzcHRyLT50cGMgPSBlbnYt PnBjOworICAgIHRzcHRyLT50bnBjID0gZW52LT5ucGM7CisgICAgdHNwdHItPnR0ID0gaW50bm87 CiAKICAgICBzd2l0Y2ggKGludG5vKSB7CiAgICAgY2FzZSBUVF9JVkVDOgpJbmRleDogcWVtdS10 cnVuay90YXJnZXQtc3BhcmMvaGVscGVyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS10cnVuay5vcmln L3RhcmdldC1zcGFyYy9oZWxwZXIuYworKysgcWVtdS10cnVuay90YXJnZXQtc3BhcmMvaGVscGVy LmMKQEAgLTY4NSw5ICs2ODUsMTAgQEAgdm9pZCBjcHVfcmVzZXQoQ1BVU1BBUkNTdGF0ZSAqZW52 KQogICAgIGVudi0+cHNycHMgPSAxOwogICAgIENDX09QID0gQ0NfT1BfRkxBR1M7CiAjaWZkZWYg VEFSR0VUX1NQQVJDNjQKLSAgICBlbnYtPnBzdGF0ZSA9IFBTX1BSSVY7CisgICAgZW52LT5wc3Rh dGUgPSBQU19QUklWfFBTX1JFRHxQU19QRUZ8UFNfQUc7CiAgICAgZW52LT5ocHN0YXRlID0gSFNf UFJJVjsKLSAgICBlbnYtPnRzcHRyID0gJmVudi0+dHNbZW52LT50bCAmIE1BWFRMX01BU0tdOwor ICAgIGVudi0+dGwgPSBlbnYtPm1heHRsOworICAgIGNwdV90c3B0cihlbnYpLT50dCA9IFRUX1BP V0VSX09OX1JFU0VUOwogICAgIGVudi0+bHN1ID0gMDsKICNlbHNlCiAgICAgZW52LT5tbXVyZWdz WzBdICY9IH4oTU1VX0UgfCBNTVVfTkYpOwpJbmRleDogcWVtdS10cnVuay90YXJnZXQtc3BhcmMv bWFjaGluZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUtdHJ1bmsub3JpZy90YXJnZXQtc3BhcmMvbWFj aGluZS5jCisrKyBxZW11LXRydW5rL3RhcmdldC1zcGFyYy9tYWNoaW5lLmMKQEAgLTE2NCw3ICsx NjQsNiBAQCBpbnQgY3B1X2xvYWQoUUVNVUZpbGUgKmYsIHZvaWQgKm9wYXF1ZSwgCiAgICAgcWVt dV9nZXRfYmUzMnMoZiwgJmVudi0+YXNpKTsKICAgICBxZW11X2dldF9iZTMycyhmLCAmZW52LT5w c3RhdGUpOwogICAgIHFlbXVfZ2V0X2JlMzJzKGYsICZlbnYtPnRsKTsKLSAgICBlbnYtPnRzcHRy ID0gJmVudi0+dHNbZW52LT50bCAmIE1BWFRMX01BU0tdOwogICAgIHFlbXVfZ2V0X2JlMzJzKGYs ICZlbnYtPmNhbnNhdmUpOwogICAgIHFlbXVfZ2V0X2JlMzJzKGYsICZlbnYtPmNhbnJlc3RvcmUp OwogICAgIHFlbXVfZ2V0X2JlMzJzKGYsICZlbnYtPm90aGVyd2luKTsKSW5kZXg6IHFlbXUtdHJ1 bmsvbGludXgtdXNlci9tYWluLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS10cnVuay5vcmlnL2xpbnV4 LXVzZXIvbWFpbi5jCisrKyBxZW11LXRydW5rL2xpbnV4LXVzZXIvbWFpbi5jCkBAIC05NjIsNyAr OTYyLDcgQEAgdm9pZCBjcHVfbG9vcCAoQ1BVU1BBUkNTdGF0ZSAqZW52KQogICAgICAgICAgICAg ICAgIGlmICh0cmFwbnIgPT0gVFRfREZBVUxUKQogICAgICAgICAgICAgICAgICAgICBpbmZvLl9z aWZpZWxkcy5fc2lnZmF1bHQuX2FkZHIgPSBlbnYtPmRtbXVyZWdzWzRdOwogICAgICAgICAgICAg ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgaW5mby5fc2lmaWVsZHMuX3NpZ2ZhdWx0Ll9h ZGRyID0gZW52LT50c3B0ci0+dHBjOworICAgICAgICAgICAgICAgICAgICBpbmZvLl9zaWZpZWxk cy5fc2lnZmF1bHQuX2FkZHIgPSBjcHVfdHNwdHIoZW52KS0+dHBjOwogICAgICAgICAgICAgICAg IHF1ZXVlX3NpZ25hbChlbnYsIGluZm8uc2lfc2lnbm8sICZpbmZvKTsKICAgICAgICAgICAgIH0K ICAgICAgICAgICAgIGJyZWFrOwo= --001636b4313d85040d046f27bfc5--