From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22708 invoked by alias); 31 Jan 2017 23:16:18 -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 22688 invoked by uid 89); 31 Jan 2017 23:16:17 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.6 required=5.0 tests=AWL,BAYES_50,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=gdb_byte, sk:set_gdb, multi-arch, 976 X-Spam-User: qpsmtpd, 2 recipients X-HELO: NAM01-BY2-obe.outbound.protection.outlook.com Received: from mail-by2nam01on0053.outbound.protection.outlook.com (HELO NAM01-BY2-obe.outbound.protection.outlook.com) (104.47.34.53) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 31 Jan 2017 23:16:07 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Steve.Ellcey@cavium.com; Received: from sellcey-dt.caveonetworks.com (50.233.148.156) by CO2PR0701MB1063.namprd07.prod.outlook.com (10.160.8.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.860.13; Tue, 31 Jan 2017 23:16:04 +0000 Message-ID: <1485904559.22118.17.camel@caviumnetworks.com> Subject: Re: [PATCH] Patch 2 of 2 for aarch64 ILP32 support in gdb From: Steve Ellcey To: Yao Qi CC: binutils , gdb-patches , Yury Norov , , "Pinski, Andrew" Date: Tue, 31 Jan 2017 23:16:00 -0000 In-Reply-To: <20170129224045.ekflcodtmfs4hv54@localhost> References: <1485303639.29977.10.camel@caviumnetworks.com> <20170126141414.GY28060@E107787-LIN> <1485555939.2509.5.camel@caviumnetworks.com> <20170129224045.ekflcodtmfs4hv54@localhost> Content-Type: multipart/mixed; boundary="=-wMrDlRwbpOk6Mmt1H/Mj" MIME-Version: 1.0 X-ClientProxiedBy: BY2PR11CA0034.namprd11.prod.outlook.com (10.163.150.44) To CO2PR0701MB1063.namprd07.prod.outlook.com (10.160.8.142) X-MS-Office365-Filtering-Correlation-Id: 624f3726-fd76-4491-72cd-08d44a2f20f6 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CO2PR0701MB1063; X-Microsoft-Exchange-Diagnostics: 1;CO2PR0701MB1063;3:am3R4tgGlhzovuOsB32+3+PU2uY2rJHL8rbSFh5Z0nxILUqleHAt+QRfSmkSyzkm0lkX0Y9ii92tjMG3X2JSt8g9yRUpahDcO5Oj/N1w5/MytL1ZQwpnPXkU8JjK+D/2p7MDmoyBzwphoKDyySB0YvihKM2qbEJEnDnZoMxnDB1+xrArpgGcSwKDz2IVTl2O443xHb0Z9H0tIsthRiX5ViP3ibDt63SOZfGC9iNQtCCddlQZ3YNt/BUu2W7wlc8d1XGF1XGJHCC6P7Hcc5puEw==;25:sJUWKZb6aWPA9EXQQevPa9i3PmLhTNj8RVaLZ6HOk7g+RwdzZT+UzPPRFDcDlbkdYKV5LubPxWdQ6r5PB+Cbxjw9pv+NujHnXXVUbX1I0J/wL52PZb9xxlPqkwtm65sPq+jOqqS2x1YI6QA8QF4S+Lh/TiNDKXoDkpUGBqTM7yuU2a8Sz6wLngqy9d36WTmLqMOJ0HhaXNJr3KpuhlV6LVH1s5FdQaVtsGKTxAEmXiJFhUuSTmENhE8zXkXtzBSOz0S8UMAyTf8uJPv8ZojnlN+I1qc3fAuqVZosVlAsJRQB1PNg21DLaOP4Np0XVy3z2su/RyIhUzkTf5hreOKYsoi2eW7EVkAliB66oWd1+ltSc+Lz05XSutmmtmCsSCmG4Fu7gb0fRlgeQtbACkbfXbK8inV3Uk8W4jjV1X42PVej4o6r2N4+0193vjXzygBLWvnmt40wZvBo4vRsg7/kTmodd1P/2pQv1iT0kLyOCM55WT3zhw2fXQAm2vkiuZt8q96USvHij/GV+GKf8WjOQw== X-Microsoft-Exchange-Diagnostics: 1;CO2PR0701MB1063;31:/g3WB1wCEAyZfFEpr23Oms96/8x9HjqeSA8R894/e/7uX9g54GTUAv3jdVnzUtxpbVq/lFJ1+Owj3PbxeNtVpmymbfdjfDe7PMEEE78twssfrogFmsWoihLnWjb35Gu87A7NebQIDwqbmO6EfHC7LoNbhdyVlgua0LYNPcNkORAxJLkwgClycZzrNV3K1AD9QtV+95NclzuUVkCU5Sv5IMWhsA3OJsFFNydiDfs5meOCY9lnj4MbSxl3POJXHDHjlSETayz/1WkcQJAEcRNaIqewx6LP4p+PjzymHtF82v0=;20:e7lwDxzUuTsnBmZBmcFQaKTZUASZ1JfFC8DTpmmufKBNdlVaNsfYFXca9z/ZXCuWhYgKtVbfzBnSIQIY9pcDWnQLiPo/2+EDJMkY58TsEh2mzdg36+J20hbi0KFppN2b3e3YbCzALmdOTwaT7BF2i5x7wGBu7zsgNa+2VPHR+AjVwYevlzenhihoHSljRC3a9nXVQEyDT446vcA9Nv/f9BXCPEBDk7v8jzsusuSKUomn5UNpLcUr5mzy7JFo3wvLidM5W5FAgOtSlEGrIuk66XQ89VSB2hGAQPS3eVieneU9RsR71TPCy5t5AJP6pYjxvo8llcLKloRr5R0nb8UMeX0g5kxdZFjvBmuDADKGM1BWQ5mRq5g42HGuwPSZHlay16rYlzG2yEi/5fhDH5UJRAEvTeK1NP/+fOc6JGRP7LDfMwHbWDDVIdKwIMQv4XoVSY5GY/TWC6aKHXtaFP+3y2RwcK/z+CUj4dn+0XxHW4qR6tVzYILBvA/agmSdACWjdcFiCkzOgGbDrKCKhyyNCsSiP/ROvAfjWF67F5+hx4PBXDIEtyrgLmG528fg4FMzZ8soUOPB7AB4rYL+BFGuWg2S0AFzGOULxxHgIbrL6H0= 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)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123562025)(20161123564025)(20161123555025)(20161123558021)(20161123560025)(6072148);SRVR:CO2PR0701MB1063;BCL:0;PCL:0;RULEID:;SRVR:CO2PR0701MB1063; X-Microsoft-Exchange-Diagnostics: 1;CO2PR0701MB1063;4:uPXeRST5TzR1M3EbQM1SjzNCUmSKcPPzsON22wExVziYxuJiDysccxizVoFVxDkLrShWFnTHyDMPo4w1dfh2emddwi72DvFNGOXdkG/2nIwy+sloHa6JQm+aNRKWsFJa4+kd3YrLgAwz1D+qBShVdVmjuakCECbPsZNsmTxYEJkOSCLSURViwPtI0idFk0stc8xjuCEuUh6SqRla7qg/Dr5BRXRHdxXlG2iBS3SRtP6wZpFRlbI2NMTy6Jvgt9Ojz2MyOrjlEadmLB9zbREeadhMzQxLrHprIMFVWdJ//QLoMc3M5eg3jEsE+RhN1wMOC1xKripHar76OmhkRrPaDIzJjEgi62jmbh2W/KV6Q3nWbbb1hcPkt44COZ0FHxKNKieV9M1yTs+Yj9i6QruRHmMfgANrFuu9BramdTn8rLe6cmKbYLDATJhPMMZwO3Bl6QO0u73JWRtnkroRiCmSRJQFs6uGBwCVDpoeS0fLzc117/HjVzkzSjqX51SA0SscgVenTdQIvVWtWQ9NY7Vq9cPM809IkfRezYQVP6QPTPEvbTW3/VpPGuuAdaNSjckl8AcbPbM+1bZeZ2g9gFitGXQpoteMimpgpayEtj7rkRjQphqBHDTLYcU8HJoTijff X-Forefront-PRVS: 0204F0BDE2 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(54534003)(24454002)(377424004)(199003)(189002)(189998001)(568964002)(25786008)(105586002)(92566002)(2950100002)(6666003)(4001430100002)(6116002)(97736004)(93886004)(5890100001)(3846002)(6916009)(84326002)(42882006)(76176999)(66066001)(512874002)(69596002)(4326007)(107886002)(2476003)(2906002)(53936002)(106356001)(39060400001)(305945005)(36756003)(38730400001)(50986999)(33646002)(54906002)(81156014)(229853002)(53416004)(6506006)(103116003)(8676002)(42186005)(1411001)(4610100001)(110136003)(81166006)(68736007)(50226002)(101416001)(6512007)(7736002)(6486002)(5660300001)(99106002);DIR:OUT;SFP:1101;SCL:1;SRVR:CO2PR0701MB1063;H:sellcey-dt.caveonetworks.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CO2PR0701MB1063;23:V8r/J3ob7+kGJlk7Dop0Gr1EJDlOnWKhQ+6ojAU?= =?us-ascii?Q?L1GeAWYhBIHNF8zWyAxd4DXAE8hjSgowByypeRUpedLmLaTjHplbsQF/sw3N?= =?us-ascii?Q?Oh9DH4aEdF3SgshpPXw5kR+I68FwOSKi/g23qSmNTWO84ZbKvh0FKvKvCb+a?= =?us-ascii?Q?4psPsKGFzffF//a90ItK3z//ap0SQXBOLOmiVI4wZaWJ9Tc/391lrrRCLHsK?= =?us-ascii?Q?R40Cfw7XodQR0Beuswsi82U8buOxingtHDapIoMACllVjgWDghU3yIjyOgNl?= =?us-ascii?Q?ZSeGnQYpNhpTcOy6sZ5JgiL3NqDyaGkI3l8FIy6l/Yx8/xA41tZF5a4u9LSU?= =?us-ascii?Q?ISJjFCGDNGGB5i495lmVNTYEwee/C3yMfkzeQ38hLGekUXh7ORDIC3hCIGX8?= =?us-ascii?Q?BKIb9Ee66bF9FbhpyorU1QH2UwEP9veLKZgDc5zbZ2FTMQG0ziEjBmDBaYd+?= =?us-ascii?Q?YromWBGH2DDiS5vTesAh+cZEgZH+bbRE2WaLz4/pSfWIZ13JCoUwuuisGVWi?= =?us-ascii?Q?nOse6MvPORu8rusrF7KdhMjSy+BTNK+PwTOjo+QMmVLwFVjh36iJsR5nplFk?= =?us-ascii?Q?L8AyZajaTTYTaA3Wr9DjDvgJCTt7Vuaw03GpOZc6cpk4/58CEgbKTVf1fHoz?= =?us-ascii?Q?cXrPZ8hIlVsm3GLHGWmZe4wlA7uKFeSMG77AjO1o3QI6I7TFlz/pRXT/ZcPZ?= =?us-ascii?Q?7FlAO1Om7fnNyz2ApfzPw+1uQlpxdRAGQv7OKzUlwk+lzFyRpeeiAqLB9GVK?= =?us-ascii?Q?pNunwM7ZA2IPgnDi8v1jS90hrb7hlbK2fMTzuuHNj4qb/PvW3dmjNhB2EYmH?= =?us-ascii?Q?ZDq/XIo0C2L4eFh9DXpY+K2KR8clhAyGVQaGZgQMV8CVv8CarJNLd4HYJ6m3?= =?us-ascii?Q?1xeaxfu4K/4JMfOIwkMsqHlrd791nhKfPh7j06IE8/cxJf3X13jJ/z9TDFpb?= =?us-ascii?Q?egEoA8b1W3j4gOz7HTIfhZsHw6CSOq71l6yw0MvTk8FF0XQqqzRv1AwSdxqV?= =?us-ascii?Q?FwURRLVA2Nr/xbpex+rAr5aV4tHaKqLv7Z4eC4FREABO5vjz96U7V+AIxWKL?= =?us-ascii?Q?qTuXJ1fDOX/AAgxulNiE0NUgp50ETq9j+ty3MtdTrK5D+lz8Rsk/tYIeYidX?= =?us-ascii?Q?2pom1lJ2SfUhzfRF2tQ5jyfYBLtynQtVElMRxHocGEmMwpy7zhr8Vlra3cX7?= =?us-ascii?Q?hGLFQ1C/jykKwfA+yFVu2Ctwv1KPvnwXk9+5a1/bISLb4jFKMjn1ARqt3l+O?= =?us-ascii?Q?W2Yuzj8ncXRqGRO37QggBIF01av3uAgaPG1uDlZg18fp0uqL/uRAPFcCb7Fe?= =?us-ascii?Q?dipSxEv4LlA3M67ECUXIVd6RlMW2TtNgxQhpNg19RKAYP7d0OyjjpEKb+NY4?= =?us-ascii?Q?yOcuryEO5JcQqlDY+8e+GL4QmUg6jtoyDWdPTCkifojAHRD9FTMul/PNdqsj?= =?us-ascii?Q?q++W/3LVGJ6XYr0JB+0N4xNfXf1A5C01D+5wyVcvF3ZdyKBRPKE9c?= X-Microsoft-Exchange-Diagnostics: 1;CO2PR0701MB1063;6:Cfj7AWEatQBITmqrf8Lsb164cFaF2bntAFtKanYSgw6AMatamerekN3cBh7m8peiGsoccwcCoN4naDRDDag/HP2yR4Qen0qDYA9sP6XLKctOy+Et69tsnJWYvrHoGZ+W8mnaifVzzBDeVbsTCW+EeZ0211AJ8QFzxhlDjaSUDJb1kB0bVgYReXdlV44+1FZF2aNaq7LNtttmYIqpECaAYvpVIo+fh0hgz/rSkVWu8fttm6qL8drMIGBefHYxRCPp8KzTZ5tUE+CX9Wqy0RON+zaiTRPPHH879MTAAH71I1E3+cgrudH+RGwdFC8HvrukQ3MFybnm3bf4Uwy+RvAp4lDDaKH8Kgxeqd/s6lOWtt/Ay8r5sRYGhhe1JrpL03ZUXDoJDw/AsH1CN1SttvMQiDyKv5yod+9KWLJtGpCf2oQ=;5:43hHf5qd7vznHYQfFjpV+xpGdwYNwl/vNRnayk9xgusEWyamVyu+nbjmrm4dgAXCxIxzmvgIOOyGzsn7jG66ZfPdoXTs+5mXFK5IOvu8YYqsJbS1s4Meh1krIg5FSpd/yAiojvgC7BK2fclX3/i+Og==;24:FQeGQtC8AxywSDiZ9AmgZWN+qZYXZ4kbwPM6neR+m1qmfuP8ayrFmcs46iIxF4IMJdLWtSV9NcAilMt2zoJ4vNca5Q0fpKgLJEUso68fQ6w= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CO2PR0701MB1063;7:IQAkXynolMv1rgoYgZbX/7Bz6/VowUQiovBJeTC9wjgjLfO7cmhvIo2oT/nhlCTg6SZAh3pDxrj+NVWCFzquR1ertha1uL4WhVQdKOy5O4/WXapSfStXrMEuFZg5aodDE1xBmj2BvjlQx4pxhyTnN6iK98PF2boI85wl3An3Or4sbt+NH4HOL+0vS+ge8SjNMfYXfJOIma4p4poq2nuLcUc3tZ/HKOuq13uOuZq54d9U/cznD2oz3CNUF8vU65A1hZjrmGlMwnX/fGcNdwSsYi+Ih6z0/IxKjhoBl06kEdbH0YjRNsh6OByWMhsTMLdowPcMh8UGvQkC/C2SyeCz7X2slxeptyvkLT/BCGCUrhGWK6j9nf0LLrejxHzJlW60xFuBVEHi+gfalQCxIZCcMVCtH6Njhr9QXJXnShfbXRNS5ksu88rQYdqlMjciFoyuQ4ynkfjbCJkeJRaS9ushVLjRTk0QxD/xJRfRsxhY2kHxKW6Q6vtbhhh1hzjX2hCp4uF87mv6+KyoBX7avYLl4E6Z45kjgai0+dQn8Hc7CCbUterJBrVitCSGD3W+5L3b X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2017 23:16:04.0679 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0701MB1063 X-SW-Source: 2017-01/txt/msg00678.txt.bz2 --=-wMrDlRwbpOk6Mmt1H/Mj Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Content-length: 3267 On Sun, 2017-01-29 at 22:40 +0000, Yao Qi wrote: > This changes the word size and address size, which is used to determine > the inferior is arm or aarch64 by checking "bits_per_word == 32" in > multi-arch debugging.  You can find some instances of such check in > aarch64-linux-nat.c.  If the bits_per_word is 32 in ILP32, GDB thinks > the inferior is an ARM one, rather than an AArch64 ILP32 one. which is > wrong.  We need to tweak the condition above to correctly identify the > ARM inferior. >  > Do you compare the ILP32 gdb test result with normal aarch64 one? OK, I fixed up arch64-linux-nat.c and didn't find any other places were the bits_per_word was being checked and I fixed the TRUE/true FALSE/false constants.  If I run gdb without any changes or with this patch but debugging 64 bit code I get around 500 failures.  The number doesn't seem to be constant, I have gotten anywhere from 488 to 503 failures testing the same code.  My last run had: # of expected passes            30428 # of unexpected failures        503 # of expected failures          53 # of unknown successes          2 # of known failures             64 # of untested testcases         66 # of unresolved testcases       6 # of unsupported tests          293 Many of the failures seem to be thread related and I see a lot of messages about timeouts and 'program is no longer running'.  When I run gdb on 32 bit programs with: RUNTESTFLAGS="--target_board=unix/-mabi=ilp32" I get 700+ failures.  My last run had: # of expected passes            29482 # of unexpected failures        740 # of expected failures          30 # of unknown successes          2 # of known failures             65 # of untested testcases         79 # of unresolved testcases       4 # of unsupported tests          288 So there are more failures in ILP32 mode but there seem to be enough passes that I think it still makes sense to check in the patch to get some gdb functionality working. Here is the latest patch. Steve Ellcey sellcey@cavium.com gdb ChangeLog: 2017-01-31  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-01-31  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. --=-wMrDlRwbpOk6Mmt1H/Mj Content-Disposition: attachment; filename="gdb.patch" Content-Type: text/x-patch; name="gdb.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 Content-length: 10997 ZGlmZiAtLWdpdCBhL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jIGIvZ2RiL2Fh cmNoNjQtbGludXgtbmF0LmMKaW5kZXggMGQ0NzJlMi4uZjZmZDE5YSAxMDA2 NDQKLS0tIGEvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKKysrIGIvZ2RiL2Fh cmNoNjQtbGludXgtbmF0LmMKQEAgLTQ5LDYgKzQ5LDkgQEAKICNkZWZpbmUg VFJBUF9IV0JLUFQgMHgwMDA0CiAjZW5kaWYKIAorLyogQ2hlY2sgaWYgd2Ug YXJlIG9uIGFybSAoYXMgb3Bwb3NlZCB0byBhYXJjaDY0KS4gICovCisjZGVm aW5lIElTX0FSTTMyKGFyY2gpIChnZGJhcmNoX2JmZF9hcmNoX2luZm8oYXJj aCktPm1hY2ggPT0gYmZkX21hY2hfYXJtKQorCiAvKiBQZXItcHJvY2VzcyBk YXRhLiAgV2UgZG9uJ3QgYmluZCB0aGlzIHRvIGEgcGVyLWluZmVyaW9yIHJl Z2lzdHJ5CiAgICBiZWNhdXNlIG9mIHRhcmdldHMgbGlrZSB4ODYgR05VL0xp bnV4IHRoYXQgbmVlZCB0byBrZWVwIHRyYWNrIG9mCiAgICBwcm9jZXNzZXMg dGhhdCBhcmVuJ3QgYm91bmQgdG8gYW55IGluZmVyaW9yIChlLmcuLCBmb3Jr IGNoaWxkcmVuLApAQCAtMTY2LDcgKzE2OSw3IEBAIGZldGNoX2dyZWdzX2Zy b21fdGhyZWFkIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlKQogICB0aWQg PSBwdGlkX2dldF9sd3AgKGluZmVyaW9yX3B0aWQpOwogCiAgIGlvdmVjLmlv dl9iYXNlID0gJnJlZ3M7Ci0gIGlmIChnZGJhcmNoX2JmZF9hcmNoX2luZm8g KGdkYmFyY2gpLT5iaXRzX3Blcl93b3JkID09IDMyKQorICBpZiAoSVNfQVJN MzIgKGdkYmFyY2gpKQogICAgIGlvdmVjLmlvdl9sZW4gPSAxOCAqIDQ7CiAg IGVsc2UKICAgICBpb3ZlYy5pb3ZfbGVuID0gc2l6ZW9mIChyZWdzKTsKQEAg LTE3NSw3ICsxNzgsNyBAQCBmZXRjaF9ncmVnc19mcm9tX3RocmVhZCAoc3Ry dWN0IHJlZ2NhY2hlICpyZWdjYWNoZSkKICAgaWYgKHJldCA8IDApCiAgICAg cGVycm9yX3dpdGhfbmFtZSAoXygiVW5hYmxlIHRvIGZldGNoIGdlbmVyYWwg cmVnaXN0ZXJzLiIpKTsKIAotICBpZiAoZ2RiYXJjaF9iZmRfYXJjaF9pbmZv IChnZGJhcmNoKS0+Yml0c19wZXJfd29yZCA9PSAzMikKKyAgaWYgKElTX0FS TTMyIChnZGJhcmNoKSkKICAgICBhYXJjaDMyX2dwX3JlZ2NhY2hlX3N1cHBs eSAocmVnY2FjaGUsICh1aW50MzJfdCAqKSByZWdzLCAxKTsKICAgZWxzZQog ICAgIHsKQEAgLTIwMyw3ICsyMDYsNyBAQCBzdG9yZV9ncmVnc190b190aHJl YWQgKGNvbnN0IHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUpCiAgIHRpZCA9 IHB0aWRfZ2V0X2x3cCAoaW5mZXJpb3JfcHRpZCk7CiAKICAgaW92ZWMuaW92 X2Jhc2UgPSAmcmVnczsKLSAgaWYgKGdkYmFyY2hfYmZkX2FyY2hfaW5mbyAo Z2RiYXJjaCktPmJpdHNfcGVyX3dvcmQgPT0gMzIpCisgIGlmIChJU19BUk0z MiAoZ2RiYXJjaCkpCiAgICAgaW92ZWMuaW92X2xlbiA9IDE4ICogNDsKICAg ZWxzZQogICAgIGlvdmVjLmlvdl9sZW4gPSBzaXplb2YgKHJlZ3MpOwpAQCAt MjEyLDcgKzIxNSw3IEBAIHN0b3JlX2dyZWdzX3RvX3RocmVhZCAoY29uc3Qg c3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSkKICAgaWYgKHJldCA8IDApCiAg ICAgcGVycm9yX3dpdGhfbmFtZSAoXygiVW5hYmxlIHRvIGZldGNoIGdlbmVy YWwgcmVnaXN0ZXJzLiIpKTsKIAotICBpZiAoZ2RiYXJjaF9iZmRfYXJjaF9p bmZvIChnZGJhcmNoKS0+Yml0c19wZXJfd29yZCA9PSAzMikKKyAgaWYgKElT X0FSTTMyIChnZGJhcmNoKSkKICAgICBhYXJjaDMyX2dwX3JlZ2NhY2hlX2Nv bGxlY3QgKHJlZ2NhY2hlLCAodWludDMyX3QgKikgcmVncywgMSk7CiAgIGVs c2UKICAgICB7CkBAIC0yNDgsNyArMjUxLDcgQEAgZmV0Y2hfZnByZWdzX2Zy b21fdGhyZWFkIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlKQogCiAgIGlv dmVjLmlvdl9iYXNlID0gJnJlZ3M7CiAKLSAgaWYgKGdkYmFyY2hfYmZkX2Fy Y2hfaW5mbyAoZ2RiYXJjaCktPmJpdHNfcGVyX3dvcmQgPT0gMzIpCisgIGlm IChJU19BUk0zMiAoZ2RiYXJjaCkpCiAgICAgewogICAgICAgaW92ZWMuaW92 X2xlbiA9IFZGUF9SRUdTX1NJWkU7CiAKQEAgLTI5NSw3ICsyOTgsNyBAQCBz dG9yZV9mcHJlZ3NfdG9fdGhyZWFkIChjb25zdCBzdHJ1Y3QgcmVnY2FjaGUg KnJlZ2NhY2hlKQogCiAgIGlvdmVjLmlvdl9iYXNlID0gJnJlZ3M7CiAKLSAg aWYgKGdkYmFyY2hfYmZkX2FyY2hfaW5mbyAoZ2RiYXJjaCktPmJpdHNfcGVy X3dvcmQgPT0gMzIpCisgIGlmIChJU19BUk0zMiAoZ2RiYXJjaCkpCiAgICAg ewogICAgICAgaW92ZWMuaW92X2xlbiA9IFZGUF9SRUdTX1NJWkU7CiAKQEAg LTMyOCw3ICszMzEsNyBAQCBzdG9yZV9mcHJlZ3NfdG9fdGhyZWFkIChjb25z dCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlKQogCQkJICAgICAgKGNoYXIg KikgJnJlZ3MuZnBjcik7CiAgICAgfQogCi0gIGlmIChnZGJhcmNoX2JmZF9h cmNoX2luZm8gKGdkYmFyY2gpLT5iaXRzX3Blcl93b3JkID09IDMyKQorICBp ZiAoSVNfQVJNMzIgKGdkYmFyY2gpKQogICAgIHsKICAgICAgIHJldCA9IHB0 cmFjZSAoUFRSQUNFX1NFVFJFR1NFVCwgdGlkLCBOVF9BUk1fVkZQLCAmaW92 ZWMpOwogICAgICAgaWYgKHJldCA8IDApCkBAIC00NjAsOCArNDYzLDcgQEAg cHNfZXJyX2UKIHBzX2dldF90aHJlYWRfYXJlYSAoc3RydWN0IHBzX3Byb2No YW5kbGUgKnBoLAogCQkgICAgbHdwaWRfdCBsd3BpZCwgaW50IGlkeCwgdm9p ZCAqKmJhc2UpCiB7Ci0gIGludCBpc182NGJpdF9wCi0gICAgPSAoZ2RiYXJj aF9iZmRfYXJjaF9pbmZvICh0YXJnZXRfZ2RiYXJjaCAoKSktPmJpdHNfcGVy X3dvcmQgPT0gNjQpOworICBpbnQgaXNfNjRiaXRfcCA9ICFJU19BUk0zMiAo dGFyZ2V0X2dkYmFyY2ggKCkpOwogCiAgIHJldHVybiBhYXJjaDY0X3BzX2dl dF90aHJlYWRfYXJlYSAocGgsIGx3cGlkLCBpZHgsIGJhc2UsIGlzXzY0Yml0 X3ApOwogfQpAQCAtNTE3LDcgKzUxOSw3IEBAIGFhcmNoNjRfbGludXhfc2ln aW5mb19maXh1cCAoc2lnaW5mb190ICpuYXRpdmUsIGdkYl9ieXRlICppbmYs IGludCBkaXJlY3Rpb24pCiAKICAgLyogSXMgdGhlIGluZmVyaW9yIDMyLWJp dD8gIElmIHNvLCB0aGVuIGRvIGZpeHVwIHRoZSBzaWdpbmZvCiAgICAgIG9i amVjdC4gICovCi0gIGlmIChnZGJhcmNoX2JmZF9hcmNoX2luZm8gKGdkYmFy Y2gpLT5iaXRzX3Blcl93b3JkID09IDMyKQorICBpZiAoSVNfQVJNMzIgKGdk YmFyY2gpKQogICAgIHsKICAgICAgIGlmIChkaXJlY3Rpb24gPT0gMCkKIAlh YXJjaDY0X2NvbXBhdF9zaWdpbmZvX2Zyb21fc2lnaW5mbyAoKHN0cnVjdCBj b21wYXRfc2lnaW5mbyAqKSBpbmYsCmRpZmYgLS1naXQgYS9nZGIvYWFyY2g2 NC1saW51eC10ZGVwLmMgYi9nZGIvYWFyY2g2NC1saW51eC10ZGVwLmMKaW5k ZXggYjk0Y2NiMi4uNmQwYzNiZCAxMDA2NDQKLS0tIGEvZ2RiL2FhcmNoNjQt bGludXgtdGRlcC5jCisrKyBiL2dkYi9hYXJjaDY0LWxpbnV4LXRkZXAuYwpA QCAtMTAwMCw4ICsxMDAwLDEyIEBAIGFhcmNoNjRfbGludXhfaW5pdF9hYmkg KHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbywgc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gpCiAKICAgbGludXhfaW5pdF9hYmkgKGluZm8sIGdkYmFyY2gpOwog Ci0gIHNldF9zb2xpYl9zdnI0X2ZldGNoX2xpbmtfbWFwX29mZnNldHMgKGdk YmFyY2gsCi0JCQkJCSBzdnI0X2xwNjRfZmV0Y2hfbGlua19tYXBfb2Zmc2V0 cyk7CisgIGlmICh0ZGVwLT5pbHAzMikKKyAgICBzZXRfc29saWJfc3ZyNF9m ZXRjaF9saW5rX21hcF9vZmZzZXRzIChnZGJhcmNoLAorCQkJCQkgICBzdnI0 X2lscDMyX2ZldGNoX2xpbmtfbWFwX29mZnNldHMpOworICBlbHNlCisgICAg c2V0X3NvbGliX3N2cjRfZmV0Y2hfbGlua19tYXBfb2Zmc2V0cyAoZ2RiYXJj aCwKKwkJCQkJICAgc3ZyNF9scDY0X2ZldGNoX2xpbmtfbWFwX29mZnNldHMp OwogCiAgIC8qIEVuYWJsZSBUTFMgc3VwcG9ydC4gICovCiAgIHNldF9nZGJh cmNoX2ZldGNoX3Rsc19sb2FkX21vZHVsZV9hZGRyZXNzIChnZGJhcmNoLApk aWZmIC0tZ2l0IGEvZ2RiL2FhcmNoNjQtdGRlcC5jIGIvZ2RiL2FhcmNoNjQt dGRlcC5jCmluZGV4IDgwMWMwM2QuLjY3ZjFhMmUgMTAwNjQ0Ci0tLSBhL2dk Yi9hYXJjaDY0LXRkZXAuYworKysgYi9nZGIvYWFyY2g2NC10ZGVwLmMKQEAg LTIwOTEsNiArMjA5MSwyMiBAQCBhYXJjaDY0X2dlbl9yZXR1cm5fYWRkcmVz cyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiB9CiAMCiAKKy8qIEltcGxl bWVudCB0aGUgInJlZ2lzdGVyX3R5cGUiIGdkYmFyY2ggbWV0aG9kLgorICAg QWRqdXN0IHRoZSByZWdpc3RlciB0eXBlIG9mICRQQyBhbmQgJFNQIG9uIElM UDMyLiAgKi8KKworc3RhdGljIHN0cnVjdCB0eXBlICoKK2FhcmNoNjRfaWxw MzJfcmVnaXN0ZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGlu dCByZWdudW0pCit7CisgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBn ZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworCisgIGdkYl9hc3NlcnQgKHRkZXAt PmlscDMyKTsKKworICBpZiAocmVnbnVtID09IEFBUkNINjRfU1BfUkVHTlVN IHx8IHJlZ251bSA9PSBBQVJDSDY0X1BDX1JFR05VTSkKKyAgICByZXR1cm4g YnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl91aW50NjQ7CisgIGVs c2UKKyAgICByZXR1cm4gdGRlc2NfcmVnaXN0ZXJfdHlwZSAoZ2RiYXJjaCwg cmVnbnVtKTsKK30KKwogLyogUmV0dXJuIHRoZSBwc2V1ZG8gcmVnaXN0ZXIg bmFtZSBjb3JyZXNwb25kaW5nIHRvIHJlZ2lzdGVyIHJlZ251bS4gICovCiAK IHN0YXRpYyBjb25zdCBjaGFyICoKQEAgLTI4NTEsNiArMjg2NywxMCBAQCBh YXJjaDY0X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5mbyBpbmZv LCBzdHJ1Y3QgZ2RiYXJjaF9saXN0ICphcmNoZXMpCiAgIGNvbnN0IHN0cnVj dCB0ZGVzY19mZWF0dXJlICpmZWF0dXJlOwogICBpbnQgbnVtX3JlZ3MgPSAw OwogICBpbnQgbnVtX3BzZXVkb19yZWdzID0gMDsKKyAgYm9vbCBpbHAzMiA9 IGZhbHNlOworCisgIGlmIChpbmZvLmJmZF9hcmNoX2luZm8tPm1hY2ggPT0g YmZkX21hY2hfYWFyY2g2NF9pbHAzMikKKyAgICBpbHAzMiA9IHRydWU7CiAK ICAgLyogRW5zdXJlIHdlIGFsd2F5cyBoYXZlIGEgdGFyZ2V0IGRlc2NyaXB0 b3IuICAqLwogICBpZiAoIXRkZXNjX2hhc19yZWdpc3RlcnMgKHRkZXNjKSkK QEAgLTI5MDgsNiArMjkyOCw5IEBAIGFhcmNoNjRfZ2RiYXJjaF9pbml0IChz dHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm8sIHN0cnVjdCBnZGJhcmNoX2xpc3Qg KmFyY2hlcykKICAgICAgICBiZXN0X2FyY2ggIT0gTlVMTDsKICAgICAgICBi ZXN0X2FyY2ggPSBnZGJhcmNoX2xpc3RfbG9va3VwX2J5X2luZm8gKGJlc3Rf YXJjaC0+bmV4dCwgJmluZm8pKQogICAgIHsKKyAgICAgIC8qIElMUDMyIGFu ZCBMUDY0IGFyZSBpbmNvbXBhdGlibGUuICovCisgICAgICBpZiAoZ2RiYXJj aF90ZGVwIChhcmNoZXMtPmdkYmFyY2gpLT5pbHAzMiAhPSBpbHAzMikKKwlj b250aW51ZTsKICAgICAgIC8qIEZvdW5kIGEgbWF0Y2guICAqLwogICAgICAg YnJlYWs7CiAgICAgfQpAQCAtMjkyNiw2ICsyOTQ5LDcgQEAgYWFyY2g2NF9n ZGJhcmNoX2luaXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbywgc3RydWN0 IGdkYmFyY2hfbGlzdCAqYXJjaGVzKQogICB0ZGVwLT5sb3dlc3RfcGMgPSAw eDIwOwogICB0ZGVwLT5qYl9wYyA9IC0xOwkJLyogTG9uZ2p1bXAgc3VwcG9y dCBub3QgZW5hYmxlZCBieSBkZWZhdWx0LiAgKi8KICAgdGRlcC0+amJfZWx0 X3NpemUgPSA4OworICB0ZGVwLT5pbHAzMiA9IGlscDMyOwogCiAgIHNldF9n ZGJhcmNoX3B1c2hfZHVtbXlfY2FsbCAoZ2RiYXJjaCwgYWFyY2g2NF9wdXNo X2R1bW15X2NhbGwpOwogICBzZXRfZ2RiYXJjaF9mcmFtZV9hbGlnbiAoZ2Ri YXJjaCwgYWFyY2g2NF9mcmFtZV9hbGlnbik7CkBAIC0yOTY4LDkgKzI5OTIs OSBAQCBhYXJjaDY0X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5m byBpbmZvLCBzdHJ1Y3QgZ2RiYXJjaF9saXN0ICphcmNoZXMpCiAgIHNldF9n ZGJhcmNoX2Zsb2F0X2JpdCAoZ2RiYXJjaCwgMzIpOwogICBzZXRfZ2RiYXJj aF9kb3VibGVfYml0IChnZGJhcmNoLCA2NCk7CiAgIHNldF9nZGJhcmNoX2xv bmdfZG91YmxlX2JpdCAoZ2RiYXJjaCwgMTI4KTsKLSAgc2V0X2dkYmFyY2hf bG9uZ19iaXQgKGdkYmFyY2gsIDY0KTsKKyAgc2V0X2dkYmFyY2hfbG9uZ19i aXQgKGdkYmFyY2gsIGlscDMyID8gMzIgOiA2NCk7CiAgIHNldF9nZGJhcmNo X2xvbmdfbG9uZ19iaXQgKGdkYmFyY2gsIDY0KTsKLSAgc2V0X2dkYmFyY2hf cHRyX2JpdCAoZ2RiYXJjaCwgNjQpOworICBzZXRfZ2RiYXJjaF9wdHJfYml0 IChnZGJhcmNoLCBpbHAzMiA/IDMyIDogNjQpOwogICBzZXRfZ2RiYXJjaF9j aGFyX3NpZ25lZCAoZ2RiYXJjaCwgMCk7CiAgIHNldF9nZGJhcmNoX2Zsb2F0 X2Zvcm1hdCAoZ2RiYXJjaCwgZmxvYXRmb3JtYXRzX2llZWVfc2luZ2xlKTsK ICAgc2V0X2dkYmFyY2hfZG91YmxlX2Zvcm1hdCAoZ2RiYXJjaCwgZmxvYXRm b3JtYXRzX2llZWVfZG91YmxlKTsKQEAgLTMwMTIsNiArMzAzNiwxMyBAQCBh YXJjaDY0X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5mbyBpbmZv LCBzdHJ1Y3QgZ2RiYXJjaF9saXN0ICphcmNoZXMpCiAKICAgdGRlc2NfdXNl X3JlZ2lzdGVycyAoZ2RiYXJjaCwgdGRlc2MsIHRkZXNjX2RhdGEpOwogCisg IGlmIChpbHAzMikKKyAgICB7CisgICAgICAvKiBPdmVycmlkZSB0ZGVzY19y ZWdpc3Rlcl90eXBlIHRvIGFkanVzdCB0aGUgdHlwZXMgb2YgJFBDIGFuZAor CSAkU1AgaW4gSUxQMzIuICAqLworICAgICAgc2V0X2dkYmFyY2hfcmVnaXN0 ZXJfdHlwZSAoZ2RiYXJjaCwgYWFyY2g2NF9pbHAzMl9yZWdpc3Rlcl90eXBl KTsKKyAgICB9CisKICAgLyogQWRkIHN0YW5kYXJkIHJlZ2lzdGVyIGFsaWFz ZXMuICAqLwogICBmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSAoYWFyY2g2 NF9yZWdpc3Rlcl9hbGlhc2VzKTsgaSsrKQogICAgIHVzZXJfcmVnX2FkZCAo Z2RiYXJjaCwgYWFyY2g2NF9yZWdpc3Rlcl9hbGlhc2VzW2ldLm5hbWUsCmRp ZmYgLS1naXQgYS9nZGIvYWFyY2g2NC10ZGVwLmggYi9nZGIvYWFyY2g2NC10 ZGVwLmgKaW5kZXggODVjNmE5Ny4uODdkMzZiNiAxMDA2NDQKLS0tIGEvZ2Ri L2FhcmNoNjQtdGRlcC5oCisrKyBiL2dkYi9hYXJjaDY0LXRkZXAuaApAQCAt OTcsNiArOTcsOSBAQCBzdHJ1Y3QgZ2RiYXJjaF90ZGVwCiAKICAgLyogc3lz Y2FsbCByZWNvcmQuICAqLwogICBpbnQgKCphYXJjaDY0X3N5c2NhbGxfcmVj b3JkKSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgdW5zaWduZWQgbG9u ZyBzdmNfbnVtYmVyKTsKKyAgLyogSWYgdGhpcyBpcyBJTFAzMiBvciBMUDY0 LiAgKi8KKyAgYm9vbCBpbHAzMjsKKwogfTsKIAogZXh0ZXJuIHN0cnVjdCB0 YXJnZXRfZGVzYyAqdGRlc2NfYWFyY2g2NDsKZGlmZiAtLWdpdCBhL2dkYi9n ZGJzZXJ2ZXIvbGludXgtYWFyY2g2NC1sb3cuYyBiL2dkYi9nZGJzZXJ2ZXIv bGludXgtYWFyY2g2NC1sb3cuYwppbmRleCAzMzQzMTBiLi5lMzFkNWM1IDEw MDY0NAotLS0gYS9nZGIvZ2Ric2VydmVyL2xpbnV4LWFhcmNoNjQtbG93LmMK KysrIGIvZ2RiL2dkYnNlcnZlci9saW51eC1hYXJjaDY0LWxvdy5jCkBAIC00 ODQsNyArNDg0LDEyIEBAIGFhcmNoNjRfbGludXhfcmVhZF9kZXNjcmlwdGlv biAodm9pZCkKIAogICBpc19lbGY2NCA9IGxpbnV4X3BpZF9leGVfaXNfZWxm XzY0X2ZpbGUgKHRpZCwgJm1hY2hpbmUpOwogCi0gIGlmIChpc19lbGY2NCkK KyAgLyogVGhlcmUgYXJlIHByb2JsZW1zIHdpdGggcHRyYWNlIHdoZW4gZ2Ri c2VydmVyIGlzIDMyIGJpdHMgYW5kIHRoZQorICAgICBwcm9ncmFtIGJlaW5n IGRlYnVnZ2VkIGlzIDY0IGJpdHMuICAqLworICBpZiAoc2l6ZW9mICh2b2lk ICopID09IDQgJiYgaXNfZWxmNjQpCisgICAgZXJyb3IgKF8oIkNhbid0IGRl YnVnIDY0LWJpdCBwcm9jZXNzIHdpdGggMzItYml0IEdEQnNlcnZlciIpKTsK KworICBpZiAobWFjaGluZSA9PSBFTV9BQVJDSDY0KQogICAgIHJldHVybiB0 ZGVzY19hYXJjaDY0OwogICBlbHNlCiAgICAgcmV0dXJuIHRkZXNjX2FybV93 aXRoX25lb247Cg== --=-wMrDlRwbpOk6Mmt1H/Mj--