From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17123 invoked by alias); 6 Mar 2017 22:03:04 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 17107 invoked by uid 89); 6 Mar 2017 22:03:03 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=qi, Qi, PC, 5197 X-HELO: NAM03-DM3-obe.outbound.protection.outlook.com Received: from mail-dm3nam03on0088.outbound.protection.outlook.com (HELO NAM03-DM3-obe.outbound.protection.outlook.com) (104.47.41.88) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 06 Mar 2017 22:03:00 +0000 Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=caviumnetworks.com; Received: from sellcey-dt.caveonetworks.com (50.233.148.156) by CY1PR07MB2443.namprd07.prod.outlook.com (10.166.195.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12; Mon, 6 Mar 2017 22:02:55 +0000 Message-ID: <1488837762.2866.268.camel@caviumnetworks.com> Subject: [Patch v2 1/2] Enable ILP32 mode in gdb on aarch64 From: Steve Ellcey To: gdb-patches Date: Mon, 06 Mar 2017 22:03:00 -0000 Content-Type: multipart/mixed; boundary="=-tCfbUFy0PhjzEKrEFdWG" Mime-Version: 1.0 X-ClientProxiedBy: BN6PR11CA0012.namprd11.prod.outlook.com (10.172.17.22) To CY1PR07MB2443.namprd07.prod.outlook.com (10.166.195.20) X-MS-Office365-Filtering-Correlation-Id: cd674696-c8ea-4cda-3829-08d464dc8b50 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CY1PR07MB2443; X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2443;3:d62ZVyfMl62SYxgHJqtaU8zMltMGrXZC3LgCW953h/CxCiMWtpbJgVM5C+F3nomopNB4DISWn7VfF/I76S3AZ7KlDPwmtzyEbJ93yKXAkP6LJGgo3Tvjn191iWOZ3LsriOJLe4Qmu8Y/31t/GgZXy0Lz/xpH/bPLuyxdpY284UG34Xu2COoVPto44g9V9yVRWUPNS6vQn+zyxq92gw+1sxHvqkzxWbU6+uKv4WxVumfX3ptqm+9r0UcYS7DM/fHwHXk/cI5XB4/QeEtxKmjN5g==;25:acOnrPZsvmK9wXNYGD7fh/+eV0LeSrO8gZ5eFoq5uUGTiK1GYBfVeUeEBtYzxuepvLm7p/Q+M1TJdqYHBJ8wXV2qn6AkMTaLPrC76zIts6GBTk2TBdub5Holw/6Jy+7ZkMOM+nBu3XOFZ7oHw7zSToesQGWno0zIECod9nf6Wd1oezVPNuXxjyuzuyZsbCr9p6DluPjt1kjQ4SLRWL5ViNqmf4yeGyr19Lg57SntAWCgLWKpYmImBZm5xqqT2dOrTfxjCLI8NsFF5H4yQts0zKU7mQSopKWf6E2rBdHlBt9ASEgvDubZqs4XJNpEItw4VYjXHZzJmIpVB0RoM06z9HfzH1s3/D3I74mQqaRRvx/riRW7LMRA8pZzfMG/NZFpMHNQBQdEEe8KB17yGUlIml/8ydxFgLXjJa0ZfMPhLDD09AFFFXmkwXAo0E3co1/1g6REBLNGFvAbS0kkZvtqJSn0f3ELDwUfuIkmJlFokr5/pAsF1AVhXy8RNhhqw78i X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2443;31:LyziYFzwvf/mSwtaNmAWjxQ6qJpe2zIE8E/4TY5kfuVCK4q27wEEwvxun+XQ53EKalpXKTTnhTD9VKarPJqXCxBjEqQ6YeZTqDKGPiJ4UjyxiIgQuDtvj82VsMYExpTPGnSiycvSErZNYAk899bhq22OJCRMcVaNTVWNvT4B4N8CVQ/gOyKIUCaksCXgefZJHsgSFNqzZ0McNcMupYRvAKIkiQm8cSqUPpxj+v8T/BSVP1J3MAI0hNsitt0kWHXzO5ELDWqX3f99MvkVmmagcQKMzem0vwSRWWWt7kKoYh/NihjqHZ3zH34qQA7VmVdQ;20:iMuIm8NIqnwdUFj4EJ3xh1ycH5tEsCHDNRYf3eW356G24Tkygu1WNJbbOcZRIBm16Piq/0VcbAiA3lvT16vQeYa6cHISdQsMPmS/pTjK888BasjDe8kxLwRz/2OlH07eq96m4iJc5Y0YDBh3CUCtsYNzZ8GYMZIfey1KbnP6RJW673G+Ij1eUP2+L5J38cWd3k86oRZ3Zb7iFuka+6/YFzGXYrPpGPA1e2w/1UkIy8mkkg8CVHsSOhEQp7nIpqZQrywAK2ERu2xOt6UdyFxD7f05JcSDYp+cBHdzgxDphtZDWCdJpNAZ9sPeLzS7orUbpC71oyvRmDFLZIV4TzoDsDGcDsiQ6ZiSsRrJpIA0KDo2MXQceiqgk0ThXbCf+WbBeFjU9LCIWMS9KKr8AHQl54JTdpZM4leTxVvfVPYZ1oScEvnlgY5NSk0KvDYzkAFV43I3h/ZkUrC8FLTCOnuiDRvWj1KCUTfjqrfqXkuUSD5Zs+UFxGBn00hiXhXI7ktBtrH9nyBBi0tU/E4+5KunBlKq6j+cnSwotSVG7UxL/7/z8CZw1WwsAXVe6Slkiq8qdznz+3bcm4baoGG/2i+tx2LtqBjO4o+26CMol84dRgE= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(102415395)(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123562025)(20161123555025)(20161123558025)(20161123564025)(20161123560025)(6072148);SRVR:CY1PR07MB2443;BCL:0;PCL:0;RULEID:;SRVR:CY1PR07MB2443; X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2443;4:UKo7hHVg4pagsLhFgusGy0PTIywPnCd38EGd2sUKom5/Z0iXY/lpM5+zTVdFvXVkkN+nJiC1riSK5U3b83XlyM5hzQjE0ckMBwx7pOlDxrH2igo65u39BJ3YcHeU5SHZW8AUmfSkdOIgoU8NGMpN5kJP50USlp7rkS7cmMpQbhfk9bIVkKv3cZX4uFmqJpoxQ2tAE9nt83XaGy9qXem0tXObf8tMtMJhE+HRXaFFI+VQFvIsdWV6MoHzRal0MblglX1asFFio3ugPJYVA3CGX/0T8734/Im7jWW5sxTLHXT4weL/peicIgx+J5I/VL+JCCkFQkJfcfkGUKgP5vPPuaVvUfjBYRCXIRajpdzd2vGDoZFQ5aPaJ/B8LCg947TLu+NhirvHdPnNPpLKWVNxQjYpyP5wDcJQAT6CjC+Y3P4YssJjGj3UIuhCpeOqvk/XRAOgzVe/wNm6Ji3VLM0watCs4rnEqg9uEUubKC+zFRr4S2E7XwjSRAckINo66trmIjPEK9Id28Icarjd3Rpu22ajv6CB7Uu5IXyi9zSMPwzNKCdaf1HlVLU+70kL9Tnuqx0fWN9zcbZbqtaQJVrfR4tU94rUztBqAVYokgPMXKUZqYLHMu9If5KsetP+G6j0 X-Forefront-PRVS: 0238AEEDB0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(377424004)(54534003)(4610100001)(36756003)(38730400002)(110136004)(512874002)(6506006)(6512007)(81166006)(103116003)(8676002)(5890100001)(3846002)(568964002)(50226002)(6116002)(53936002)(6486002)(189998001)(25786008)(84326002)(66066001)(305945005)(7736002)(42882006)(6666003)(33646002)(6916009)(50986999)(92566002)(5660300001)(53416004)(42186005)(2906002)(450100001)(2476003);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR07MB2443;H:sellcey-dt.caveonetworks.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR07MB2443;23:V/zQW13C9swo5bKNq4iXszXQ281GaQDwJvbiEImta?= =?us-ascii?Q?4+/13CAYbguqX01kHQpC2j4lDXOc7+iSFz/ervADZiyRRpdCiNk6UxvmqCqb?= =?us-ascii?Q?5mQSt9n2orQ9eG4t3JOCUUTXwzAWKaWYVM3tRGnqMhfTitHVfoahZnC83nzp?= =?us-ascii?Q?ILIKOAWgJRCdGF2vBS7GhZ4czIt3DHgi9O0GFmfThLaCtslNwdVhMR/yf9n0?= =?us-ascii?Q?aIza5l5FLc+9BUsBw6uvDXx4TEXZo28PzCQJFqFKs/U6HSg7P/EkdMz1qW7N?= =?us-ascii?Q?0cMoxjVnKY9TyWBWFTWbscIx9AS3SdtJ6kySWn6/hRmAbwR9L6ZpCkC6csDZ?= =?us-ascii?Q?Zi3X3D47/H/wxOZLx38/V0AUw5lJ6rqe0eNJ07EvpfS2dQCAHJTWjB2dAIme?= =?us-ascii?Q?9c0Pih6ccm2k5KOF6xa37/84tl9cS/OR+rCGNuVs981s9/Y8bAExU/FOpKc9?= =?us-ascii?Q?L1myQbrPwXmf648fQasjcn6tui5VRiNEavd1seUV9k9uedKAkQGajssUsCfK?= =?us-ascii?Q?2mcscb7AuDrauKYjulbtSFf9PWTPg8XlZerI+DB+GJSmk/cHiVhHnMrkPKSE?= =?us-ascii?Q?LUSbJgPq1K9SEL01UlNgckMBK7FvZgvAizsIQ5fANbPf8P6E7W8e1bJHpQm5?= =?us-ascii?Q?oze/Mg2y8DsO4ho7xUUz+hUy+YXlAfSpGx6upAOE78Um+ud11BEw5PSiQLzx?= =?us-ascii?Q?YYOL6v3TyeSp2adCjhTMPtlJNnAZbze/WHbwxVs/lMw/Oam8R2iGf+MOqq2S?= =?us-ascii?Q?9HqwiWXOs1oxPFyWpPskPHF+mKTMAOYSLyptJwUF6w/fHdIskQLgoXOvqH1D?= =?us-ascii?Q?iQP+mNSwCIsNRa5+x1jk9LTS7kOvGYzSNLhz38vDbT6PgKtBMlYPV20Prih0?= =?us-ascii?Q?76vB+uAGRH+Fo50z4gbLSRU759lilx5cu1BY1a8JC63Bm7UxIozsYwSMWOmY?= =?us-ascii?Q?Qggu4qkGmPrH3HdZFL/pdqF7pvgfbXjN2EbwN6zU9YlKpKgdcpnziUFGkbFb?= =?us-ascii?Q?u3eEVBZw4LhVHavm5FvcATAmOkylwGVvjQFyHuqRtkGwQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2443;6:LpeTuarbzLi4viCtQjQr4G0T00zS+vSwNY7fsrBvPogcmIxgz4OdSj6Y9a/VL/EHdK3qkcmvSp+evxBqrHZiza1oEwxost44wjJYgu7GzKEsfU3+iuLdjaLTyXjcOlf1CwDD3bZkvSjJHFHxKMXoMi8og+1lyfBllcySZrWeiDtQWgA9cS+t+pLjEYrZS3t/M/daHsggYOkaDK45bpMWKHfccLTKu8G9ddJ7E3Co3n58ZBq7+J9YisOn4ZGyKcj1Ap5xn0qTVuGJOAPxa44Yvqp6Yaj5IXSVRjCxYmgTEdwr9S9NGSFt6pXmI1t2UsUTTIda0j/7zFpqzviv0L5nni1wW+rRaSXyjiMvlZ1tC/YtwfUFjwbD83xn7Hv1ii4ECdHpJrPevGfzyWC1MEkPzw==;5:q5C8xV6g/6QRNNgNT1gz55Tw7oP50QoFv+X/LUTb8k7ylsDYA8IJQds30yQklcTziyTq28NxELwqGAnh6CWBrNrPVl9wZ9I1rNUtfu92ZyNH6vNoPUkWV6Gbje0+gZqejwENWKnVqpC/uZwEt5hxYg==;24:nHdfR00QgIyzQxmrccAveZiz79lACxjfBMV4xCo/PXaKgnYQ/CYM97ne3TTgqrTsEOis6rga0NiL5uqavrMibcAIwKxkSyaHcGdVLtRUJxo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY1PR07MB2443;7:LO+TJIeyJYOLWuORTZBA0kmhTkn5mGv+zfoSuVYZwDcnUlpGIEOgXiIoMgGdKnsXrV3Bq6VkFCLSwbMb3O++0SMLxw3ROwf9sunB2w0XVcsvPNTRxp8zuGRHVB9IvyKtypMH63zxOr0OWfI7mauAMbwclPuQGDrbxTCsG2j08APiEpjyS/orJtqBQPLSgf24oGQ876OseevsHXaXDiTeKoCPNVXwGt7PBT7/vtDCGtb5zhq7JBqknXZq8/zQIh4KlZrKwSYg7yx+vMi7XO8cJr47Eb4JuzQND9OSiRdw2r7oQzlcOCj5ME0jjKOVkqyLVpHlG6zRi3P10/TtDvTIXg== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2017 22:02:55.3871 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR07MB2443 X-SW-Source: 2017-03/txt/msg00051.txt.bz2 --=-tCfbUFy0PhjzEKrEFdWG Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Content-length: 2097 This is the first of two new patches for ILP32 support on aarch64. This one is the gdb changes, the next will be the bfd changes. The standard gdb testsuite run on 64 bit aarch64 executables results in 65 failures (30627 passes), running it on 32 bit aarch64 executables results in 213 failures (30354 passes). I believe most of the new failures are due to two problems.  One is unwinding through signal handlers and the other is accessing thread local data.  I think the thread problem may be due to a version mismatch between the thread_db library that gdb (a 64 bit process) is using and a newer thread_db library that the 32 bit executables being debugged are using and not a problem with the code. I am working on the signal unwinding problem but I was hoping that the part that is already working is sufficiently useful to check in while I work on fixing this problem.  The current code handles the usual gdb functionality of breakpoints, stepping, printing variables, etc. Steve Ellcey sellcey@cavium.com gdb ChangeLog: 2017-03-06  Andrew Pinski       Steve Ellcey       Yao Qi   * aarch64-linux-nat.c (IS_ARM32): New macro. (fetch_gregs_from_thread): Use IS_ARM32 macro. (store_gregs_to_thread): Ditto. (fetch_fpregs_from_thread): Ditto. (store_fpregs_to_thread): Ditto. (ps_get_thread_area): Ditto. (aarch64_linux_siginfo_fixup): Ditto. * aarch64-linux-tdep.c (aarch64_linux_init_abi): Set link map offsets to 32 or 64 bits. * aarch64-tdep.c (aarch64_ilp32_register_type): New function. (aarch64_gdbarch_init): Setup ILP32 support. Make sure the gdbarches have compatible ilp32 flags. Set long and ptr sizes correctly for ilp32. * aarch64-tdep.h (gdbarch_tdep) : New field. gdbserver ChangeLog: 2017-03-06  Andrew Pinski       Steve Ellcey   * linux-aarch64-low.c (aarch64_linux_read_description): Use machine instead of is_elf64 to determine architecture.  Give an error when using 32 bit gdbserver on 64 bit program. --=-tCfbUFy0PhjzEKrEFdWG Content-Disposition: attachment; filename="gdb.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="gdb.patch"; charset="UTF-8" Content-length: 11005 ZGlmZiAtLWdpdCBhL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jIGIvZ2RiL2Fh cmNoNjQtbGludXgtbmF0LmMKaW5kZXggMGQ0NzJlMi4uMGNhYWM3ZiAxMDA2 NDQKLS0tIGEvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKKysrIGIvZ2RiL2Fh cmNoNjQtbGludXgtbmF0LmMKQEAgLTQ5LDYgKzQ5LDkgQEAKICNkZWZpbmUg VFJBUF9IV0JLUFQgMHgwMDA0CiAjZW5kaWYKIAorLyogQ2hlY2sgaWYgd2Ug YXJlIG9uIGFybSAoYXMgb3Bwb3NlZCB0byBhYXJjaDY0KS4gICovCisjZGVm aW5lIElTX0FSTTMyKGdkYmFyY2gpIChnZGJhcmNoX2JmZF9hcmNoX2luZm8o Z2RiYXJjaCktPmFyY2ggPT0gYmZkX2FyY2hfYXJtKQorCiAvKiBQZXItcHJv Y2VzcyBkYXRhLiAgV2UgZG9uJ3QgYmluZCB0aGlzIHRvIGEgcGVyLWluZmVy aW9yIHJlZ2lzdHJ5CiAgICBiZWNhdXNlIG9mIHRhcmdldHMgbGlrZSB4ODYg R05VL0xpbnV4IHRoYXQgbmVlZCB0byBrZWVwIHRyYWNrIG9mCiAgICBwcm9j ZXNzZXMgdGhhdCBhcmVuJ3QgYm91bmQgdG8gYW55IGluZmVyaW9yIChlLmcu LCBmb3JrIGNoaWxkcmVuLApAQCAtMTY2LDcgKzE2OSw3IEBAIGZldGNoX2dy ZWdzX2Zyb21fdGhyZWFkIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlKQog ICB0aWQgPSBwdGlkX2dldF9sd3AgKGluZmVyaW9yX3B0aWQpOwogCiAgIGlv dmVjLmlvdl9iYXNlID0gJnJlZ3M7Ci0gIGlmIChnZGJhcmNoX2JmZF9hcmNo X2luZm8gKGdkYmFyY2gpLT5iaXRzX3Blcl93b3JkID09IDMyKQorICBpZiAo SVNfQVJNMzIgKGdkYmFyY2gpKQogICAgIGlvdmVjLmlvdl9sZW4gPSAxOCAq IDQ7CiAgIGVsc2UKICAgICBpb3ZlYy5pb3ZfbGVuID0gc2l6ZW9mIChyZWdz KTsKQEAgLTE3NSw3ICsxNzgsNyBAQCBmZXRjaF9ncmVnc19mcm9tX3RocmVh ZCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSkKICAgaWYgKHJldCA8IDAp CiAgICAgcGVycm9yX3dpdGhfbmFtZSAoXygiVW5hYmxlIHRvIGZldGNoIGdl bmVyYWwgcmVnaXN0ZXJzLiIpKTsKIAotICBpZiAoZ2RiYXJjaF9iZmRfYXJj aF9pbmZvIChnZGJhcmNoKS0+Yml0c19wZXJfd29yZCA9PSAzMikKKyAgaWYg KElTX0FSTTMyIChnZGJhcmNoKSkKICAgICBhYXJjaDMyX2dwX3JlZ2NhY2hl X3N1cHBseSAocmVnY2FjaGUsICh1aW50MzJfdCAqKSByZWdzLCAxKTsKICAg ZWxzZQogICAgIHsKQEAgLTIwMyw3ICsyMDYsNyBAQCBzdG9yZV9ncmVnc190 b190aHJlYWQgKGNvbnN0IHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUpCiAg IHRpZCA9IHB0aWRfZ2V0X2x3cCAoaW5mZXJpb3JfcHRpZCk7CiAKICAgaW92 ZWMuaW92X2Jhc2UgPSAmcmVnczsKLSAgaWYgKGdkYmFyY2hfYmZkX2FyY2hf aW5mbyAoZ2RiYXJjaCktPmJpdHNfcGVyX3dvcmQgPT0gMzIpCisgIGlmIChJ U19BUk0zMiAoZ2RiYXJjaCkpCiAgICAgaW92ZWMuaW92X2xlbiA9IDE4ICog NDsKICAgZWxzZQogICAgIGlvdmVjLmlvdl9sZW4gPSBzaXplb2YgKHJlZ3Mp OwpAQCAtMjEyLDcgKzIxNSw3IEBAIHN0b3JlX2dyZWdzX3RvX3RocmVhZCAo Y29uc3Qgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSkKICAgaWYgKHJldCA8 IDApCiAgICAgcGVycm9yX3dpdGhfbmFtZSAoXygiVW5hYmxlIHRvIGZldGNo IGdlbmVyYWwgcmVnaXN0ZXJzLiIpKTsKIAotICBpZiAoZ2RiYXJjaF9iZmRf YXJjaF9pbmZvIChnZGJhcmNoKS0+Yml0c19wZXJfd29yZCA9PSAzMikKKyAg aWYgKElTX0FSTTMyIChnZGJhcmNoKSkKICAgICBhYXJjaDMyX2dwX3JlZ2Nh Y2hlX2NvbGxlY3QgKHJlZ2NhY2hlLCAodWludDMyX3QgKikgcmVncywgMSk7 CiAgIGVsc2UKICAgICB7CkBAIC0yNDgsNyArMjUxLDcgQEAgZmV0Y2hfZnBy ZWdzX2Zyb21fdGhyZWFkIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlKQog CiAgIGlvdmVjLmlvdl9iYXNlID0gJnJlZ3M7CiAKLSAgaWYgKGdkYmFyY2hf YmZkX2FyY2hfaW5mbyAoZ2RiYXJjaCktPmJpdHNfcGVyX3dvcmQgPT0gMzIp CisgIGlmIChJU19BUk0zMiAoZ2RiYXJjaCkpCiAgICAgewogICAgICAgaW92 ZWMuaW92X2xlbiA9IFZGUF9SRUdTX1NJWkU7CiAKQEAgLTI5NSw3ICsyOTgs NyBAQCBzdG9yZV9mcHJlZ3NfdG9fdGhyZWFkIChjb25zdCBzdHJ1Y3QgcmVn Y2FjaGUgKnJlZ2NhY2hlKQogCiAgIGlvdmVjLmlvdl9iYXNlID0gJnJlZ3M7 CiAKLSAgaWYgKGdkYmFyY2hfYmZkX2FyY2hfaW5mbyAoZ2RiYXJjaCktPmJp dHNfcGVyX3dvcmQgPT0gMzIpCisgIGlmIChJU19BUk0zMiAoZ2RiYXJjaCkp CiAgICAgewogICAgICAgaW92ZWMuaW92X2xlbiA9IFZGUF9SRUdTX1NJWkU7 CiAKQEAgLTMyOCw3ICszMzEsNyBAQCBzdG9yZV9mcHJlZ3NfdG9fdGhyZWFk IChjb25zdCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlKQogCQkJICAgICAg KGNoYXIgKikgJnJlZ3MuZnBjcik7CiAgICAgfQogCi0gIGlmIChnZGJhcmNo X2JmZF9hcmNoX2luZm8gKGdkYmFyY2gpLT5iaXRzX3Blcl93b3JkID09IDMy KQorICBpZiAoSVNfQVJNMzIgKGdkYmFyY2gpKQogICAgIHsKICAgICAgIHJl dCA9IHB0cmFjZSAoUFRSQUNFX1NFVFJFR1NFVCwgdGlkLCBOVF9BUk1fVkZQ LCAmaW92ZWMpOwogICAgICAgaWYgKHJldCA8IDApCkBAIC00NjAsOCArNDYz LDcgQEAgcHNfZXJyX2UKIHBzX2dldF90aHJlYWRfYXJlYSAoc3RydWN0IHBz X3Byb2NoYW5kbGUgKnBoLAogCQkgICAgbHdwaWRfdCBsd3BpZCwgaW50IGlk eCwgdm9pZCAqKmJhc2UpCiB7Ci0gIGludCBpc182NGJpdF9wCi0gICAgPSAo Z2RiYXJjaF9iZmRfYXJjaF9pbmZvICh0YXJnZXRfZ2RiYXJjaCAoKSktPmJp dHNfcGVyX3dvcmQgPT0gNjQpOworICBpbnQgaXNfNjRiaXRfcCA9ICFJU19B Uk0zMiAodGFyZ2V0X2dkYmFyY2ggKCkpOwogCiAgIHJldHVybiBhYXJjaDY0 X3BzX2dldF90aHJlYWRfYXJlYSAocGgsIGx3cGlkLCBpZHgsIGJhc2UsIGlz XzY0Yml0X3ApOwogfQpAQCAtNTE3LDcgKzUxOSw3IEBAIGFhcmNoNjRfbGlu dXhfc2lnaW5mb19maXh1cCAoc2lnaW5mb190ICpuYXRpdmUsIGdkYl9ieXRl ICppbmYsIGludCBkaXJlY3Rpb24pCiAKICAgLyogSXMgdGhlIGluZmVyaW9y IDMyLWJpdD8gIElmIHNvLCB0aGVuIGRvIGZpeHVwIHRoZSBzaWdpbmZvCiAg ICAgIG9iamVjdC4gICovCi0gIGlmIChnZGJhcmNoX2JmZF9hcmNoX2luZm8g KGdkYmFyY2gpLT5iaXRzX3Blcl93b3JkID09IDMyKQorICBpZiAoSVNfQVJN MzIgKGdkYmFyY2gpKQogICAgIHsKICAgICAgIGlmIChkaXJlY3Rpb24gPT0g MCkKIAlhYXJjaDY0X2NvbXBhdF9zaWdpbmZvX2Zyb21fc2lnaW5mbyAoKHN0 cnVjdCBjb21wYXRfc2lnaW5mbyAqKSBpbmYsCmRpZmYgLS1naXQgYS9nZGIv YWFyY2g2NC1saW51eC10ZGVwLmMgYi9nZGIvYWFyY2g2NC1saW51eC10ZGVw LmMKaW5kZXggYjk0Y2NiMi4uNmQwYzNiZCAxMDA2NDQKLS0tIGEvZ2RiL2Fh cmNoNjQtbGludXgtdGRlcC5jCisrKyBiL2dkYi9hYXJjaDY0LWxpbnV4LXRk ZXAuYwpAQCAtMTAwMCw4ICsxMDAwLDEyIEBAIGFhcmNoNjRfbGludXhfaW5p dF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbywgc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gpCiAKICAgbGludXhfaW5pdF9hYmkgKGluZm8sIGdkYmFy Y2gpOwogCi0gIHNldF9zb2xpYl9zdnI0X2ZldGNoX2xpbmtfbWFwX29mZnNl dHMgKGdkYmFyY2gsCi0JCQkJCSBzdnI0X2xwNjRfZmV0Y2hfbGlua19tYXBf b2Zmc2V0cyk7CisgIGlmICh0ZGVwLT5pbHAzMikKKyAgICBzZXRfc29saWJf c3ZyNF9mZXRjaF9saW5rX21hcF9vZmZzZXRzIChnZGJhcmNoLAorCQkJCQkg ICBzdnI0X2lscDMyX2ZldGNoX2xpbmtfbWFwX29mZnNldHMpOworICBlbHNl CisgICAgc2V0X3NvbGliX3N2cjRfZmV0Y2hfbGlua19tYXBfb2Zmc2V0cyAo Z2RiYXJjaCwKKwkJCQkJICAgc3ZyNF9scDY0X2ZldGNoX2xpbmtfbWFwX29m ZnNldHMpOwogCiAgIC8qIEVuYWJsZSBUTFMgc3VwcG9ydC4gICovCiAgIHNl dF9nZGJhcmNoX2ZldGNoX3Rsc19sb2FkX21vZHVsZV9hZGRyZXNzIChnZGJh cmNoLApkaWZmIC0tZ2l0IGEvZ2RiL2FhcmNoNjQtdGRlcC5jIGIvZ2RiL2Fh cmNoNjQtdGRlcC5jCmluZGV4IDgwMWMwM2QuLjY3ZjFhMmUgMTAwNjQ0Ci0t LSBhL2dkYi9hYXJjaDY0LXRkZXAuYworKysgYi9nZGIvYWFyY2g2NC10ZGVw LmMKQEAgLTIwOTEsNiArMjA5MSwyMiBAQCBhYXJjaDY0X2dlbl9yZXR1cm5f YWRkcmVzcyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiB9CiAMCiAKKy8q IEltcGxlbWVudCB0aGUgInJlZ2lzdGVyX3R5cGUiIGdkYmFyY2ggbWV0aG9k LgorICAgQWRqdXN0IHRoZSByZWdpc3RlciB0eXBlIG9mICRQQyBhbmQgJFNQ IG9uIElMUDMyLiAgKi8KKworc3RhdGljIHN0cnVjdCB0eXBlICoKK2FhcmNo NjRfaWxwMzJfcmVnaXN0ZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsIGludCByZWdudW0pCit7CisgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRk ZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworCisgIGdkYl9hc3NlcnQg KHRkZXAtPmlscDMyKTsKKworICBpZiAocmVnbnVtID09IEFBUkNINjRfU1Bf UkVHTlVNIHx8IHJlZ251bSA9PSBBQVJDSDY0X1BDX1JFR05VTSkKKyAgICBy ZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl91aW50NjQ7 CisgIGVsc2UKKyAgICByZXR1cm4gdGRlc2NfcmVnaXN0ZXJfdHlwZSAoZ2Ri YXJjaCwgcmVnbnVtKTsKK30KKwogLyogUmV0dXJuIHRoZSBwc2V1ZG8gcmVn aXN0ZXIgbmFtZSBjb3JyZXNwb25kaW5nIHRvIHJlZ2lzdGVyIHJlZ251bS4g ICovCiAKIHN0YXRpYyBjb25zdCBjaGFyICoKQEAgLTI4NTEsNiArMjg2Nywx MCBAQCBhYXJjaDY0X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5m byBpbmZvLCBzdHJ1Y3QgZ2RiYXJjaF9saXN0ICphcmNoZXMpCiAgIGNvbnN0 IHN0cnVjdCB0ZGVzY19mZWF0dXJlICpmZWF0dXJlOwogICBpbnQgbnVtX3Jl Z3MgPSAwOwogICBpbnQgbnVtX3BzZXVkb19yZWdzID0gMDsKKyAgYm9vbCBp bHAzMiA9IGZhbHNlOworCisgIGlmIChpbmZvLmJmZF9hcmNoX2luZm8tPm1h Y2ggPT0gYmZkX21hY2hfYWFyY2g2NF9pbHAzMikKKyAgICBpbHAzMiA9IHRy dWU7CiAKICAgLyogRW5zdXJlIHdlIGFsd2F5cyBoYXZlIGEgdGFyZ2V0IGRl c2NyaXB0b3IuICAqLwogICBpZiAoIXRkZXNjX2hhc19yZWdpc3RlcnMgKHRk ZXNjKSkKQEAgLTI5MDgsNiArMjkyOCw5IEBAIGFhcmNoNjRfZ2RiYXJjaF9p bml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm8sIHN0cnVjdCBnZGJhcmNo X2xpc3QgKmFyY2hlcykKICAgICAgICBiZXN0X2FyY2ggIT0gTlVMTDsKICAg ICAgICBiZXN0X2FyY2ggPSBnZGJhcmNoX2xpc3RfbG9va3VwX2J5X2luZm8g KGJlc3RfYXJjaC0+bmV4dCwgJmluZm8pKQogICAgIHsKKyAgICAgIC8qIElM UDMyIGFuZCBMUDY0IGFyZSBpbmNvbXBhdGlibGUuICovCisgICAgICBpZiAo Z2RiYXJjaF90ZGVwIChhcmNoZXMtPmdkYmFyY2gpLT5pbHAzMiAhPSBpbHAz MikKKwljb250aW51ZTsKICAgICAgIC8qIEZvdW5kIGEgbWF0Y2guICAqLwog ICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMjkyNiw2ICsyOTQ5LDcgQEAgYWFy Y2g2NF9nZGJhcmNoX2luaXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbywg c3RydWN0IGdkYmFyY2hfbGlzdCAqYXJjaGVzKQogICB0ZGVwLT5sb3dlc3Rf cGMgPSAweDIwOwogICB0ZGVwLT5qYl9wYyA9IC0xOwkJLyogTG9uZ2p1bXAg c3VwcG9ydCBub3QgZW5hYmxlZCBieSBkZWZhdWx0LiAgKi8KICAgdGRlcC0+ amJfZWx0X3NpemUgPSA4OworICB0ZGVwLT5pbHAzMiA9IGlscDMyOwogCiAg IHNldF9nZGJhcmNoX3B1c2hfZHVtbXlfY2FsbCAoZ2RiYXJjaCwgYWFyY2g2 NF9wdXNoX2R1bW15X2NhbGwpOwogICBzZXRfZ2RiYXJjaF9mcmFtZV9hbGln biAoZ2RiYXJjaCwgYWFyY2g2NF9mcmFtZV9hbGlnbik7CkBAIC0yOTY4LDkg KzI5OTIsOSBAQCBhYXJjaDY0X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFy Y2hfaW5mbyBpbmZvLCBzdHJ1Y3QgZ2RiYXJjaF9saXN0ICphcmNoZXMpCiAg IHNldF9nZGJhcmNoX2Zsb2F0X2JpdCAoZ2RiYXJjaCwgMzIpOwogICBzZXRf Z2RiYXJjaF9kb3VibGVfYml0IChnZGJhcmNoLCA2NCk7CiAgIHNldF9nZGJh cmNoX2xvbmdfZG91YmxlX2JpdCAoZ2RiYXJjaCwgMTI4KTsKLSAgc2V0X2dk YmFyY2hfbG9uZ19iaXQgKGdkYmFyY2gsIDY0KTsKKyAgc2V0X2dkYmFyY2hf bG9uZ19iaXQgKGdkYmFyY2gsIGlscDMyID8gMzIgOiA2NCk7CiAgIHNldF9n ZGJhcmNoX2xvbmdfbG9uZ19iaXQgKGdkYmFyY2gsIDY0KTsKLSAgc2V0X2dk YmFyY2hfcHRyX2JpdCAoZ2RiYXJjaCwgNjQpOworICBzZXRfZ2RiYXJjaF9w dHJfYml0IChnZGJhcmNoLCBpbHAzMiA/IDMyIDogNjQpOwogICBzZXRfZ2Ri YXJjaF9jaGFyX3NpZ25lZCAoZ2RiYXJjaCwgMCk7CiAgIHNldF9nZGJhcmNo X2Zsb2F0X2Zvcm1hdCAoZ2RiYXJjaCwgZmxvYXRmb3JtYXRzX2llZWVfc2lu Z2xlKTsKICAgc2V0X2dkYmFyY2hfZG91YmxlX2Zvcm1hdCAoZ2RiYXJjaCwg ZmxvYXRmb3JtYXRzX2llZWVfZG91YmxlKTsKQEAgLTMwMTIsNiArMzAzNiwx MyBAQCBhYXJjaDY0X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5m byBpbmZvLCBzdHJ1Y3QgZ2RiYXJjaF9saXN0ICphcmNoZXMpCiAKICAgdGRl c2NfdXNlX3JlZ2lzdGVycyAoZ2RiYXJjaCwgdGRlc2MsIHRkZXNjX2RhdGEp OwogCisgIGlmIChpbHAzMikKKyAgICB7CisgICAgICAvKiBPdmVycmlkZSB0 ZGVzY19yZWdpc3Rlcl90eXBlIHRvIGFkanVzdCB0aGUgdHlwZXMgb2YgJFBD IGFuZAorCSAkU1AgaW4gSUxQMzIuICAqLworICAgICAgc2V0X2dkYmFyY2hf cmVnaXN0ZXJfdHlwZSAoZ2RiYXJjaCwgYWFyY2g2NF9pbHAzMl9yZWdpc3Rl cl90eXBlKTsKKyAgICB9CisKICAgLyogQWRkIHN0YW5kYXJkIHJlZ2lzdGVy IGFsaWFzZXMuICAqLwogICBmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSAo YWFyY2g2NF9yZWdpc3Rlcl9hbGlhc2VzKTsgaSsrKQogICAgIHVzZXJfcmVn X2FkZCAoZ2RiYXJjaCwgYWFyY2g2NF9yZWdpc3Rlcl9hbGlhc2VzW2ldLm5h bWUsCmRpZmYgLS1naXQgYS9nZGIvYWFyY2g2NC10ZGVwLmggYi9nZGIvYWFy Y2g2NC10ZGVwLmgKaW5kZXggODVjNmE5Ny4uODdkMzZiNiAxMDA2NDQKLS0t IGEvZ2RiL2FhcmNoNjQtdGRlcC5oCisrKyBiL2dkYi9hYXJjaDY0LXRkZXAu aApAQCAtOTcsNiArOTcsOSBAQCBzdHJ1Y3QgZ2RiYXJjaF90ZGVwCiAKICAg Lyogc3lzY2FsbCByZWNvcmQuICAqLwogICBpbnQgKCphYXJjaDY0X3N5c2Nh bGxfcmVjb3JkKSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgdW5zaWdu ZWQgbG9uZyBzdmNfbnVtYmVyKTsKKyAgLyogSWYgdGhpcyBpcyBJTFAzMiBv ciBMUDY0LiAgKi8KKyAgYm9vbCBpbHAzMjsKKwogfTsKIAogZXh0ZXJuIHN0 cnVjdCB0YXJnZXRfZGVzYyAqdGRlc2NfYWFyY2g2NDsKZGlmZiAtLWdpdCBh L2dkYi9nZGJzZXJ2ZXIvbGludXgtYWFyY2g2NC1sb3cuYyBiL2dkYi9nZGJz ZXJ2ZXIvbGludXgtYWFyY2g2NC1sb3cuYwppbmRleCAzMzQzMTBiLi5lMzFk NWM1IDEwMDY0NAotLS0gYS9nZGIvZ2Ric2VydmVyL2xpbnV4LWFhcmNoNjQt bG93LmMKKysrIGIvZ2RiL2dkYnNlcnZlci9saW51eC1hYXJjaDY0LWxvdy5j CkBAIC00ODQsNyArNDg0LDEyIEBAIGFhcmNoNjRfbGludXhfcmVhZF9kZXNj cmlwdGlvbiAodm9pZCkKIAogICBpc19lbGY2NCA9IGxpbnV4X3BpZF9leGVf aXNfZWxmXzY0X2ZpbGUgKHRpZCwgJm1hY2hpbmUpOwogCi0gIGlmIChpc19l bGY2NCkKKyAgLyogVGhlcmUgYXJlIHByb2JsZW1zIHdpdGggcHRyYWNlIHdo ZW4gZ2Ric2VydmVyIGlzIDMyIGJpdHMgYW5kIHRoZQorICAgICBwcm9ncmFt IGJlaW5nIGRlYnVnZ2VkIGlzIDY0IGJpdHMuICAqLworICBpZiAoc2l6ZW9m ICh2b2lkICopID09IDQgJiYgaXNfZWxmNjQpCisgICAgZXJyb3IgKF8oIkNh bid0IGRlYnVnIDY0LWJpdCBwcm9jZXNzIHdpdGggMzItYml0IEdEQnNlcnZl ciIpKTsKKworICBpZiAobWFjaGluZSA9PSBFTV9BQVJDSDY0KQogICAgIHJl dHVybiB0ZGVzY19hYXJjaDY0OwogICBlbHNlCiAgICAgcmV0dXJuIHRkZXNj X2FybV93aXRoX25lb247Cg== --=-tCfbUFy0PhjzEKrEFdWG--