From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MPuX4-00019x-6e for qemu-devel@nongnu.org; Sun, 12 Jul 2009 04:35:38 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MPuWz-00016Q-A5 for qemu-devel@nongnu.org; Sun, 12 Jul 2009 04:35:37 -0400 Received: from [199.232.76.173] (port=43372 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MPuWz-00016E-4a for qemu-devel@nongnu.org; Sun, 12 Jul 2009 04:35:33 -0400 Received: from mail-fx0-f211.google.com ([209.85.220.211]:48110) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MPuWy-0007UU-F0 for qemu-devel@nongnu.org; Sun, 12 Jul 2009 04:35:32 -0400 Received: by fxm7 with SMTP id 7so1406298fxm.34 for ; Sun, 12 Jul 2009 01:35:31 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: Date: Sun, 12 Jul 2009 12:35:31 +0400 Message-ID: Subject: Re: [Qemu-devel] [PATCH] sparc64: trap handling corrections From: Igor Kovalenko Content-Type: multipart/mixed; boundary=0016e659fc5a9db338046e7e1639 List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: qemu-devel@nongnu.org --0016e659fc5a9db338046e7e1639 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Sun, Jul 12, 2009 at 12:09 PM, Blue Swirl wrote: > On 7/12/09, Igor Kovalenko wrote: >> Good trap handling is required to process interrupts. >> =A0This patch fixes the following: >> >> =A0- sparc64 has no wim register >> =A0- sparc64 has no psret register, use IE bit of pstate >> =A0 extract IE checking code to cpu_interrupts_enabled >> =A0- alternate globals are not available if cpu has GL feature >> =A0 in this case bit AG of pstate is constant zero >> =A0- write to pstate must actually write pstate >> =A0 even if cpu has GL feature >> >> =A0Also timer interrupt is handled using do_interrupt. > > A bit too much for one patch. Please also remove the code instead of > commenting out. I now excluded timer interrupt related part. To my mind other changes are essentially tied together. > PUT_PSR for Sparc64 needs CC_OP =3D CC_OP_FLAGS; like Sparc32. Fixed, please find attached the updated version. --=20 Kind regards, Igor V. Kovalenko --0016e659fc5a9db338046e7e1639 Content-Type: application/octet-stream; name=sparc64-trap Content-Disposition: attachment; filename=sparc64-trap Content-Transfer-Encoding: base64 X-Attachment-Id: f_fx1if4mz0 SW5kZXg6IHFlbXUtdHJ1bmsvdGFyZ2V0LXNwYXJjL2NwdS5oCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUt dHJ1bmsub3JpZy90YXJnZXQtc3BhcmMvY3B1LmgKKysrIHFlbXUtdHJ1bmsvdGFyZ2V0LXNwYXJj L2NwdS5oCkBAIC0xMTUsMTUgKzExNSwxOCBAQCBlbnVtIHsKICNkZWZpbmUgVEJSX0JBU0VfTUFT SyAweGZmZmZmMDAwCiAKICNpZiBkZWZpbmVkKFRBUkdFVF9TUEFSQzY0KQotI2RlZmluZSBQU19J RyAgICAoMTw8MTEpCi0jZGVmaW5lIFBTX01HICAgICgxPDwxMCkKKyNkZWZpbmUgUFNfVENUICAg KDE8PDEyKSAvKiBVQTIwMDcsIGltcGwuZGVwLiB0cmFwIG9uIGNvbnRyb2wgdHJhbnNmZXIgKi8K KyNkZWZpbmUgUFNfSUcgICAgKDE8PDExKSAvKiB2OSwgemVybyBvbiBVQTIwMDcgKi8KKyNkZWZp bmUgUFNfTUcgICAgKDE8PDEwKSAvKiB2OSwgemVybyBvbiBVQTIwMDcgKi8KKyNkZWZpbmUgUFNf Q0xFICAgKDE8PDkpIC8qIFVBMjAwNyAqLworI2RlZmluZSBQU19UTEUgICAoMTw8OCkgLyogVUEy MDA3ICovCiAjZGVmaW5lIFBTX1JNTyAgICgxPDw3KQotI2RlZmluZSBQU19SRUQgICAoMTw8NSkK LSNkZWZpbmUgUFNfUEVGICAgKDE8PDQpCi0jZGVmaW5lIFBTX0FNICAgICgxPDwzKQorI2RlZmlu ZSBQU19SRUQgICAoMTw8NSkgLyogdjksIHplcm8gb24gVUEyMDA3ICovCisjZGVmaW5lIFBTX1BF RiAgICgxPDw0KSAvKiBlbmFibGUgZnB1ICovCisjZGVmaW5lIFBTX0FNICAgICgxPDwzKSAvKiBh ZGRyZXNzIG1hc2sgKi8KICNkZWZpbmUgUFNfUFJJViAgKDE8PDIpCiAjZGVmaW5lIFBTX0lFICAg ICgxPDwxKQotI2RlZmluZSBQU19BRyAgICAoMTw8MCkKKyNkZWZpbmUgUFNfQUcgICAgKDE8PDAp IC8qIHY5LCB6ZXJvIG9uIFVBMjAwNyAqLwogCiAjZGVmaW5lIEZQUlNfRkVGICgxPDwyKQogCkBA IC0yOTEsMTEgKzI5NCwxNSBAQCB0eXBlZGVmIHN0cnVjdCBDUFVTUEFSQ1N0YXRlIHsKICAgICBm bG9hdDMyIGZwcltUQVJHRVRfRlBSRUdTXTsgIC8qIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycyAq LwogICAgIHVpbnQzMl90IGN3cDsgICAgICAvKiBpbmRleCBvZiBjdXJyZW50IHJlZ2lzdGVyIHdp bmRvdyAoZXh0cmFjdGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gUFNSKSAqLwor I2lmICFkZWZpbmVkKFRBUkdFVF9TUEFSQzY0KSB8fCBkZWZpbmVkKFRBUkdFVF9BQkkzMikKICAg ICB1aW50MzJfdCB3aW07ICAgICAgLyogd2luZG93IGludmFsaWQgbWFzayAqLworI2VuZGlmCiAg ICAgdGFyZ2V0X3Vsb25nIHRicjsgIC8qIHRyYXAgYmFzZSByZWdpc3RlciAqLwogICAgIGludCAg ICAgIHBzcnM7ICAgICAvKiBzdXBlcnZpc29yIG1vZGUgKGV4dHJhY3RlZCBmcm9tIFBTUikgKi8K ICAgICBpbnQgICAgICBwc3JwczsgICAgLyogcHJldmlvdXMgc3VwZXJ2aXNvciBtb2RlICovCisj aWYgIWRlZmluZWQoVEFSR0VUX1NQQVJDNjQpCiAgICAgaW50ICAgICAgcHNyZXQ7ICAgIC8qIGVu YWJsZSB0cmFwcyAqLworI2VuZGlmCiAgICAgdWludDMyX3QgcHNycGlsOyAgIC8qIGludGVycnVw dCBibG9ja2luZyBsZXZlbCAqLwogICAgIHVpbnQzMl90IHBpbF9pbjsgICAvKiBpbmNvbWluZyBp bnRlcnJ1cHQgbGV2ZWwgYml0bWFwICovCiAgICAgaW50ICAgICAgcHNyZWY7ICAgIC8qIGVuYWJs ZSBmcHUgKi8KQEAgLTM3OCwxMiArMzg1LDIxIEBAIHZvaWQgZ2VuX2ludGVybWVkaWF0ZV9jb2Rl X2luaXQoQ1BVU1BBUkMKIC8qIGNwdS1leGVjLmMgKi8KIGludCBjcHVfc3BhcmNfZXhlYyhDUFVT UEFSQ1N0YXRlICpzKTsKIAorI2lmICFkZWZpbmVkIChUQVJHRVRfU1BBUkM2NCkKICNkZWZpbmUg R0VUX1BTUihlbnYpIChlbnYtPnZlcnNpb24gfCAoZW52LT5wc3IgJiBQU1JfSUNDKSB8ICAgICAg ICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAoZW52LT5wc3JlZj8gUFNSX0VGIDogMCkg fCAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAoZW52LT5w c3JwaWwgPDwgOCkgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAg ICAgICAgICAgICAoZW52LT5wc3JzPyBQU1JfUyA6IDApIHwgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAoZW52LT5wc3Jwcz8gUFNSX1BTIDogMCkgfCAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAoZW52LT5wc3Jl dD8gUFNSX0VUIDogMCkgfCBlbnYtPmN3cCkKKyNlbHNlCisjZGVmaW5lIEdFVF9QU1IoZW52KSAo ZW52LT52ZXJzaW9uIHwgKGVudi0+cHNyICYgUFNSX0lDQykgfCAgICAgICAgICAgICBcCisgICAg ICAgICAgICAgICAgICAgICAgKGVudi0+cHNyZWY/IFBTUl9FRiA6IDApIHwgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgKGVudi0+cHNycGlsIDw8IDgpIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgKGVu di0+cHNycz8gUFNSX1MgOiAwKSB8ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg ICAgICAgICAgICAgICAgKGVudi0+cHNycHM/IFBTUl9QUyA6IDApIHwgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgZW52LT5jd3ApCisjZW5kaWYKIAogI2lm bmRlZiBOT19DUFVfSU9fREVGUwogc3RhdGljIGlubGluZSB2b2lkIG1lbWNweTMyKHRhcmdldF91 bG9uZyAqZHN0LCBjb25zdCB0YXJnZXRfdWxvbmcgKnNyYykKQEAgLTQyNSw2ICs0NDEsNyBAQCBz dGF0aWMgaW5saW5lIGludCBjcHVfY3dwX2RlYyhDUFVTUEFSQ1N0CiB9CiAjZW5kaWYKIAorI2lm ICFkZWZpbmVkIChUQVJHRVRfU1BBUkM2NCkKICNkZWZpbmUgUFVUX1BTUihlbnYsIHZhbCkgZG8g eyBpbnQgX3RtcCA9IHZhbDsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgZW52 LT5wc3IgPSBfdG1wICYgUFNSX0lDQzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKICAgICAgICAgZW52LT5wc3JlZiA9IChfdG1wICYgUFNSX0VGKT8gMSA6IDA7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTQzNSw2ICs0NTIsMTcgQEAgc3RhdGljIGlubGlu ZSBpbnQgY3B1X2N3cF9kZWMoQ1BVU1BBUkNTdAogICAgICAgICBjcHVfc2V0X2N3cChlbnYsIF90 bXAgJiBQU1JfQ1dQKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBD Q19PUCA9IENDX09QX0ZMQUdTOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogICAgIH0gd2hpbGUgKDApCisjZWxzZQorI2RlZmluZSBQVVRfUFNSKGVudiwgdmFs KSBkbyB7IGludCBfdG1wID0gdmFsOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg ICBlbnYtPnBzciA9IF90bXAgJiBQU1JfSUNDOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICAgICAgICBlbnYtPnBzcmVmID0gKF90bXAgJiBQU1JfRUYpPyAxIDogMDsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBlbnYtPnBzcnBpbCA9IChfdG1w ICYgUFNSX1BJTCkgPj4gODsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBl bnYtPnBzcnMgPSAoX3RtcCAmIFBTUl9TKT8gMSA6IDA7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgICBlbnYtPnBzcnBzID0gKF90bXAgJiBQU1JfUFMpPyAxIDogMDsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBjcHVfc2V0X2N3cChlbnYsIF90bXAg JiBQU1JfQ1dQKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBDQ19P UCA9IENDX09QX0ZMQUdTOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgIH0gd2hpbGUgKDApCisjZW5kaWYKIAogI2lmZGVmIFRBUkdFVF9TUEFSQzY0CiAj ZGVmaW5lIEdFVF9DQ1IoZW52KSAoKChlbnYtPnhjYyA+PiAyMCkgPDwgNCkgfCAoKGVudi0+cHNy ICYgUFNSX0lDQykgPj4gMjApKQpJbmRleDogcWVtdS10cnVuay90YXJnZXQtc3BhcmMvZXhlYy5o Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIHFlbXUtdHJ1bmsub3JpZy90YXJnZXQtc3BhcmMvZXhlYy5oCisrKyBx ZW11LXRydW5rL3RhcmdldC1zcGFyYy9leGVjLmgKQEAgLTI0LDEwICsyNCwyMyBAQCBzdGF0aWMg aW5saW5lIHZvaWQgcmVnc190b19lbnYodm9pZCkKIC8qIG9wX2hlbHBlci5jICovCiB2b2lkIGRv X2ludGVycnVwdChDUFVTdGF0ZSAqZW52KTsKIAorc3RhdGljIGlubGluZSBpbnQgY3B1X2ludGVy cnVwdHNfZW5hYmxlZChDUFVTdGF0ZSAqZW52MSkKK3sKKyNpZiAhZGVmaW5lZCAoVEFSR0VUX1NQ QVJDNjQpCisgICAgaWYgKGVudjEtPnBzcmV0ICE9IDApCisgICAgICAgIHJldHVybiAxOworI2Vs c2UKKyAgICBpZiAoZW52MS0+cHN0YXRlICYgUFNfSUUpCisgICAgICAgIHJldHVybiAxOworI2Vu ZGlmCisKKyAgICByZXR1cm4gMDsKK30KKwogc3RhdGljIGlubGluZSBpbnQgY3B1X2hhc193b3Jr KENQVVN0YXRlICplbnYxKQogewogICAgIHJldHVybiAoZW52MS0+aW50ZXJydXB0X3JlcXVlc3Qg JiBDUFVfSU5URVJSVVBUX0hBUkQpICYmCi0gICAgICAgICAgIChlbnYxLT5wc3JldCAhPSAwKTsK KyAgICAgICAgICAgY3B1X2ludGVycnVwdHNfZW5hYmxlZChlbnYxKTsKIH0KIAogCkluZGV4OiBx ZW11LXRydW5rL3RhcmdldC1zcGFyYy9oZWxwZXIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11LXRydW5r Lm9yaWcvdGFyZ2V0LXNwYXJjL2hlbHBlci5jCisrKyBxZW11LXRydW5rL3RhcmdldC1zcGFyYy9o ZWxwZXIuYwpAQCAtNjY3LDcgKzY2Nyw5IEBAIHZvaWQgY3B1X3Jlc2V0KENQVVNQQVJDU3RhdGUg KmVudikKIAogICAgIHRsYl9mbHVzaChlbnYsIDEpOwogICAgIGVudi0+Y3dwID0gMDsKKyNpZm5k ZWYgVEFSR0VUX1NQQVJDNjQKICAgICBlbnYtPndpbSA9IDE7CisjZW5kaWYKICAgICBlbnYtPnJl Z3dwdHIgPSBlbnYtPnJlZ2Jhc2UgKyAoZW52LT5jd3AgKiAxNik7CiAjaWYgZGVmaW5lZChDT05G SUdfVVNFUl9PTkxZKQogI2lmZGVmIFRBUkdFVF9TUEFSQzY0CkBAIC02NzcsNyArNjc5LDkgQEAg dm9pZCBjcHVfcmVzZXQoQ1BVU1BBUkNTdGF0ZSAqZW52KQogICAgIGVudi0+YXNpID0gMHg4Mjsg Ly8gUHJpbWFyeSBuby1mYXVsdAogI2VuZGlmCiAjZWxzZQorI2lmICFkZWZpbmVkKFRBUkdFVF9T UEFSQzY0KQogICAgIGVudi0+cHNyZXQgPSAwOworI2VuZGlmCiAgICAgZW52LT5wc3JzID0gMTsK ICAgICBlbnYtPnBzcnBzID0gMTsKICAgICBDQ19PUCA9IENDX09QX0ZMQUdTOwpJbmRleDogcWVt dS10cnVuay90YXJnZXQtc3BhcmMvb3BfaGVscGVyLmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS10cnVu ay5vcmlnL3RhcmdldC1zcGFyYy9vcF9oZWxwZXIuYworKysgcWVtdS10cnVuay90YXJnZXQtc3Bh cmMvb3BfaGVscGVyLmMKQEAgLTMyMjUsOCArMzIyNSwxNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQg Y2hhbmdlX3BzdGF0ZSh1aW50NjRfCiAgICAgdWludDY0X3QgcHN0YXRlX3JlZ3MsIG5ld19wc3Rh dGVfcmVnczsKICAgICB1aW50NjRfdCAqc3JjLCAqZHN0OwogCisgICAgaWYgKGVudi0+ZGVmLT5m ZWF0dXJlcyAmIENQVV9GRUFUVVJFX0dMKSB7CisgICAgICAgIC8vIFBTX0FHIGlzIG5vdCBpbXBs ZW1lbnRlZCBpbiB0aGlzIGNhc2UKKyAgICAgICAgbmV3X3BzdGF0ZSAmPSB+UFNfQUc7CisgICAg fQorCiAgICAgcHN0YXRlX3JlZ3MgPSBlbnYtPnBzdGF0ZSAmIDB4YzAxOwogICAgIG5ld19wc3Rh dGVfcmVncyA9IG5ld19wc3RhdGUgJiAweGMwMTsKKwogICAgIGlmIChuZXdfcHN0YXRlX3JlZ3Mg IT0gcHN0YXRlX3JlZ3MpIHsKICAgICAgICAgLy8gU3dpdGNoIGdsb2JhbCByZWdpc3RlciBiYW5r CiAgICAgICAgIHNyYyA9IGdldF9ncmVnc2V0KG5ld19wc3RhdGVfcmVncyk7CkBAIC0zMjM5LDgg KzMyNDUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY2hhbmdlX3BzdGF0ZSh1aW50NjRfCiAKIHZv aWQgaGVscGVyX3dycHN0YXRlKHRhcmdldF91bG9uZyBuZXdfc3RhdGUpCiB7Ci0gICAgaWYgKCEo ZW52LT5kZWYtPmZlYXR1cmVzICYgQ1BVX0ZFQVRVUkVfR0wpKQotICAgICAgICBjaGFuZ2VfcHN0 YXRlKG5ld19zdGF0ZSAmIDB4ZjNmKTsKKyAgICBjaGFuZ2VfcHN0YXRlKG5ld19zdGF0ZSAmIDB4 ZjNmKTsKIH0KIAogdm9pZCBoZWxwZXJfZG9uZSh2b2lkKQpAQCAtMzM5MiwyMyArMzM5NywyMyBA QCB2b2lkIGRvX2ludGVycnVwdChDUFVTdGF0ZSAqZW52KQogICAgIGVudi0+dHNwdHItPnRwYyA9 IGVudi0+cGM7CiAgICAgZW52LT50c3B0ci0+dG5wYyA9IGVudi0+bnBjOwogICAgIGVudi0+dHNw dHItPnR0ID0gaW50bm87Ci0gICAgaWYgKCEoZW52LT5kZWYtPmZlYXR1cmVzICYgQ1BVX0ZFQVRV UkVfR0wpKSB7Ci0gICAgICAgIHN3aXRjaCAoaW50bm8pIHsKLSAgICAgICAgY2FzZSBUVF9JVkVD OgotICAgICAgICAgICAgY2hhbmdlX3BzdGF0ZShQU19QRUYgfCBQU19QUklWIHwgUFNfSUcpOwot ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVFRfVEZBVUxUOgotICAgICAgICBjYXNl IFRUX1RNSVNTOgotICAgICAgICBjYXNlIFRUX0RGQVVMVDoKLSAgICAgICAgY2FzZSBUVF9ETUlT UzoKLSAgICAgICAgY2FzZSBUVF9EUFJPVDoKLSAgICAgICAgICAgIGNoYW5nZV9wc3RhdGUoUFNf UEVGIHwgUFNfUFJJViB8IFBTX01HKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZh dWx0OgotICAgICAgICAgICAgY2hhbmdlX3BzdGF0ZShQU19QRUYgfCBQU19QUklWIHwgUFNfQUcp OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KKworICAgIHN3aXRjaCAoaW50bm8pIHsK KyAgICBjYXNlIFRUX0lWRUM6CisgICAgICAgIGNoYW5nZV9wc3RhdGUoUFNfUEVGIHwgUFNfUFJJ ViB8IFBTX0lHKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUVF9URkFVTFQ6CisgICAgY2Fz ZSBUVF9UTUlTUzoKKyAgICBjYXNlIFRUX0RGQVVMVDoKKyAgICBjYXNlIFRUX0RNSVNTOgorICAg IGNhc2UgVFRfRFBST1Q6CisgICAgICAgIGNoYW5nZV9wc3RhdGUoUFNfUEVGIHwgUFNfUFJJViB8 IFBTX01HKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgY2hhbmdlX3Bz dGF0ZShQU19QRUYgfCBQU19QUklWIHwgUFNfQUcpOworICAgICAgICBicmVhazsKICAgICB9CisK ICAgICBpZiAoaW50bm8gPT0gVFRfQ0xSV0lOKQogICAgICAgICBjcHVfc2V0X2N3cChlbnYsIGNw dV9jd3BfZGVjKGVudiwgZW52LT5jd3AgLSAxKSk7CiAgICAgZWxzZSBpZiAoKGludG5vICYgMHgx YzApID09IFRUX1NQSUxMKQpJbmRleDogcWVtdS10cnVuay9jcHUtZXhlYy5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHFlbXUtdHJ1bmsub3JpZy9jcHUtZXhlYy5jCisrKyBxZW11LXRydW5rL2NwdS1leGVjLmMK QEAgLTQ3NSw3ICs0NzUsNyBAQCBpbnQgY3B1X2V4ZWMoQ1BVU3RhdGUgKmVudjEpCiAgICAgICAg ICAgICAgICAgICAgIH0KICNlbGlmIGRlZmluZWQoVEFSR0VUX1NQQVJDKQogICAgICAgICAgICAg ICAgICAgICBpZiAoKGludGVycnVwdF9yZXF1ZXN0ICYgQ1BVX0lOVEVSUlVQVF9IQVJEKSAmJgot CQkJKGVudi0+cHNyZXQgIT0gMCkpIHsKKwkJCWNwdV9pbnRlcnJ1cHRzX2VuYWJsZWQoZW52KSkg ewogCQkJaW50IHBpbCA9IGVudi0+aW50ZXJydXB0X2luZGV4ICYgMTU7CiAJCQlpbnQgdHlwZSA9 IGVudi0+aW50ZXJydXB0X2luZGV4ICYgMHhmMDsKIApAQCAtNDg2LDcgKzQ4Niw3IEBAIGludCBj cHVfZXhlYyhDUFVTdGF0ZSAqZW52MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnYt PmV4Y2VwdGlvbl9pbmRleCA9IGVudi0+aW50ZXJydXB0X2luZGV4OwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRvX2ludGVycnVwdChlbnYpOwogCQkJICAgIGVudi0+aW50ZXJydXB0X2lu ZGV4ID0gMDsKLSNpZiAhZGVmaW5lZChUQVJHRVRfU1BBUkM2NCkgJiYgIWRlZmluZWQoQ09ORklH X1VTRVJfT05MWSkKKyNpZiAhZGVmaW5lZChDT05GSUdfVVNFUl9PTkxZKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNwdV9jaGVja19pcnFzKGVudik7CiAjZW5kaWYKICAgICAgICAgICAg ICAgICAgICAgICAgIG5leHRfdGIgPSAwOwo= --0016e659fc5a9db338046e7e1639--