From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8726 invoked by alias); 5 Feb 2011 00:26:55 -0000 Received: (qmail 8715 invoked by uid 22791); 5 Feb 2011 00:26:54 -0000 X-SWARE-Spam-Status: No, hits=-1.5 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,KAM_STOCKGEN,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS,TW_BJ,TW_GJ,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (74.125.121.67) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 05 Feb 2011 00:26:48 +0000 Received: from wpaz9.hot.corp.google.com (wpaz9.hot.corp.google.com [172.24.198.73]) by smtp-out.google.com with ESMTP id p150Qj9t011182 for ; Fri, 4 Feb 2011 16:26:45 -0800 Received: from vws20 (vws20.prod.google.com [10.241.21.148]) by wpaz9.hot.corp.google.com with ESMTP id p150QZiA031340 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT) for ; Fri, 4 Feb 2011 16:26:44 -0800 Received: by vws20 with SMTP id 20so1847998vws.10 for ; Fri, 04 Feb 2011 16:26:44 -0800 (PST) Received: by 10.220.190.3 with SMTP id dg3mr3146335vcb.254.1296865603834; Fri, 04 Feb 2011 16:26:43 -0800 (PST) MIME-Version: 1.0 Received: by 10.220.87.162 with HTTP; Fri, 4 Feb 2011 16:26:13 -0800 (PST) In-Reply-To: References: <20110203214614.5FD74190A4E@elbrus2.mtv.corp.google.com> From: Paul Pluzhnikov Date: Sat, 05 Feb 2011 00:26:00 -0000 Message-ID: Subject: Re: [patch 2/2] Speed up JIT support To: Tom Tromey Cc: gdb-patches@sourceware.org, pedro@codesourcery.com, vegorov@chromium.org Content-Type: multipart/mixed; boundary=90e6ba53ac18a3544a049b7e0d37 X-System-Of-Record: true X-IsSubscribed: yes 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 X-SW-Source: 2011-02/txt/msg00102.txt.bz2 --90e6ba53ac18a3544a049b7e0d37 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1103 On Fri, Feb 4, 2011 at 12:32 PM, Paul Pluzhnikov w= rote: >> Maybe the cache could point to the symbols themselves. =A0I think that >> would fix the problem and be both safe and efficient. > > Ah, that also nicely takes care of the problematic use of -1 as invalid > core address -- we *know* that 0 and -1 are *not* valid symbol values. Here is the updated patch (applies on top of the [1/2] cosmetic patch). Re-tested on linux/x86_64, no regressions. Thanks, --=20 Paul Pluzhnikov 2010-02-04 Paul Pluzhnikov * breakpoint.c (longjmp_names): New variable. (struct breakpoint_objfile_data): New type. (breakpoint_objfile_key): New variable. (msym_not_found): New variable. (msym_not_found_p): New predicate. (get_breakpoint_objfile_data): New function. (create_overlay_event_breakpoint): Check per-objfile cache for symbols first. (create_longjmp_master_breakpoint): Likewise. (create_std_terminate_master_breakpoint): Likewise. (create_exception_master_breakpoint): Likewise. (_initialize_breakpoint): Register per-objfile data key. --90e6ba53ac18a3544a049b7e0d37 Content-Type: text/plain; charset=US-ASCII; name="gdb-jit-speedup-20110204a.txt" Content-Disposition: attachment; filename="gdb-jit-speedup-20110204a.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gjrs7ypv0 Content-length: 11806 LS0tIGJyZWFrcG9pbnQuYy5vcmlnCTIwMTEtMDItMDQgMTQ6MTE6MzQuMDAw MDAwMDAwIC0wODAwCisrKyBicmVha3BvaW50LmMJMjAxMS0wMi0wNCAxNjox MToxMi4wMDAwMDAwMDAgLTA4MDAKQEAgLTIyMTcsNiArMjIxNyw1OSBAQCBj cmVhdGVfaW50ZXJuYWxfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyCiAgIHJl dHVybiBiOwogfQogCitzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgbG9uZ2pt cF9uYW1lc1tdID0KKyAgeworICAgICJsb25nam1wIiwgIl9sb25nam1wIiwg InNpZ2xvbmdqbXAiLCAiX3NpZ2xvbmdqbXAiCisgIH07CisjZGVmaW5lIE5V TV9MT05HSk1QX05BTUVTIEFSUkFZX1NJWkUobG9uZ2ptcF9uYW1lcykKKwor LyogUGVyLW9iamZpbGUgZGF0YSBwcml2YXRlIHRvIGJyZWFrcG9pbnQuYyAg Ki8KK3N0cnVjdCBicmVha3BvaW50X29iamZpbGVfZGF0YQoreworICAvKiBt aW5pbWFsIHN5bWJvbCBmb3IgIl9vdmx5X2RlYnVnX2V2ZW50IiAoaWYgYW55 KSAgKi8KKyAgc3RydWN0IG1pbmltYWxfc3ltYm9sICpvdmVybGF5X21zeW07 CisKKyAgLyogbWluaW1hbCBzeW1ib2wocykgZm9yICJsb25nam1wIiwgInNp Z2xvbmdqbXAiLCBldGMuIChpZiBhbnkpICAqLworICBzdHJ1Y3QgbWluaW1h bF9zeW1ib2wgKmxvbmdqbXBfbXN5bVtOVU1fTE9OR0pNUF9OQU1FU107CisK KyAgLyogbWluaW1hbCBzeW1ib2wgZm9yICJzdGQ6OnRlcm1pbmF0ZSgpIiAo aWYgYW55KSAgKi8KKyAgc3RydWN0IG1pbmltYWxfc3ltYm9sICp0ZXJtaW5h dGVfbXN5bTsKKworICAvKiBtaW5pbWFsIHN5bWJvbCBmb3IgIl9VbndpbmRf RGVidWdIb29rIiAoaWYgYW55KSAgKi8KKyAgc3RydWN0IG1pbmltYWxfc3lt Ym9sICpleGNlcHRpb25fbXN5bTsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3Qgb2JqZmlsZV9kYXRhICpicmVha3BvaW50X29iamZpbGVfa2V5OworCisv KiBtaW5pbWFsIHN5bWJvbCBub3QgZm91bmQgc2VudGluZWwuICAqLworc3Rh dGljIHN0cnVjdCBtaW5pbWFsX3N5bWJvbCBtc3ltX25vdF9mb3VuZDsKKwor c3RhdGljIGludAorbXN5bV9ub3RfZm91bmRfcCAoY29uc3Qgc3RydWN0IG1p bmltYWxfc3ltYm9sICptc3ltKQoreworICByZXR1cm4gbXN5bSA9PSAmbXN5 bV9ub3RfZm91bmQ7Cit9CisKKy8qIFJldHVybiBwZXItb2JqZmlsZSBkYXRh IG5lZWRlZCBieSBicmVha3BvaW50LmMuCisgICBBbGxvY2F0ZSB0aGUgZGF0 YSBpZiBuZWNlc3NhcnkuICAqLworCitzdGF0aWMgc3RydWN0IGJyZWFrcG9p bnRfb2JqZmlsZV9kYXRhICoKK2dldF9icmVha3BvaW50X29iamZpbGVfZGF0 YSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCit7CisgIHN0cnVjdCBicmVh a3BvaW50X29iamZpbGVfZGF0YSAqYnBfb2JqZmlsZV9kYXRhOworCisgIGJw X29iamZpbGVfZGF0YSA9IG9iamZpbGVfZGF0YSAob2JqZmlsZSwgYnJlYWtw b2ludF9vYmpmaWxlX2tleSk7CisgIGlmIChicF9vYmpmaWxlX2RhdGEgPT0g TlVMTCkKKyAgICB7CisgICAgICBicF9vYmpmaWxlX2RhdGEgPSBvYnN0YWNr X2FsbG9jICgmb2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLAorCQkJCSAgICAg ICBzaXplb2YgKCpicF9vYmpmaWxlX2RhdGEpKTsKKworICAgICAgbWVtc2V0 IChicF9vYmpmaWxlX2RhdGEsIDAsIHNpemVvZiAoKmJwX29iamZpbGVfZGF0 YSkpOworICAgICAgc2V0X29iamZpbGVfZGF0YSAob2JqZmlsZSwgYnJlYWtw b2ludF9vYmpmaWxlX2tleSwgYnBfb2JqZmlsZV9kYXRhKTsKKyAgICB9Cisg IHJldHVybiBicF9vYmpmaWxlX2RhdGE7Cit9CisKIHN0YXRpYyB2b2lkCiBj cmVhdGVfb3ZlcmxheV9ldmVudF9icmVha3BvaW50ICh2b2lkKQogewpAQCAt MjIyNiwxNCArMjI3OSwzMCBAQCBjcmVhdGVfb3ZlcmxheV9ldmVudF9icmVh a3BvaW50ICh2b2lkKQogICBBTExfT0JKRklMRVMgKG9iamZpbGUpCiAgICAg ewogICAgICAgc3RydWN0IGJyZWFrcG9pbnQgKmI7Ci0gICAgICBzdHJ1Y3Qg bWluaW1hbF9zeW1ib2wgKm07CisgICAgICBzdHJ1Y3QgYnJlYWtwb2ludF9v YmpmaWxlX2RhdGEgKmJwX29iamZpbGVfZGF0YTsKKyAgICAgIENPUkVfQURE UiBhZGRyOwogCi0gICAgICBtID0gbG9va3VwX21pbmltYWxfc3ltYm9sX3Rl eHQgKGZ1bmNfbmFtZSwgb2JqZmlsZSk7Ci0gICAgICBpZiAobSA9PSBOVUxM KQotICAgICAgICBjb250aW51ZTsKKyAgICAgIGJwX29iamZpbGVfZGF0YSA9 IGdldF9icmVha3BvaW50X29iamZpbGVfZGF0YSAob2JqZmlsZSk7CisKKyAg ICAgIGlmIChtc3ltX25vdF9mb3VuZF9wIChicF9vYmpmaWxlX2RhdGEtPm92 ZXJsYXlfbXN5bSkpCisJY29udGludWU7CisKKyAgICAgIGlmIChicF9vYmpm aWxlX2RhdGEtPm92ZXJsYXlfbXN5bSA9PSBOVUxMKQorCXsKKwkgIHN0cnVj dCBtaW5pbWFsX3N5bWJvbCAqbTsKKworCSAgbSA9IGxvb2t1cF9taW5pbWFs X3N5bWJvbF90ZXh0IChmdW5jX25hbWUsIG9iamZpbGUpOworCSAgaWYgKG0g PT0gTlVMTCkKKwkgICAgeworCSAgICAgIC8qIEF2b2lkIGZ1dHVyZSBsb29r dXBzIGluIHRoaXMgb2JqZmlsZS4gICovCisJICAgICAgYnBfb2JqZmlsZV9k YXRhLT5vdmVybGF5X21zeW0gPSAmbXN5bV9ub3RfZm91bmQ7CisJICAgICAg Y29udGludWU7CisJICAgIH0KKwkgIGJwX29iamZpbGVfZGF0YS0+b3Zlcmxh eV9tc3ltID0gbTsKKwl9CiAKLSAgICAgIGIgPSBjcmVhdGVfaW50ZXJuYWxf YnJlYWtwb2ludCAoZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSksCi0JCQkJ ICAgICAgU1lNQk9MX1ZBTFVFX0FERFJFU1MgKG0pLAorICAgICAgYWRkciA9 IFNZTUJPTF9WQUxVRV9BRERSRVNTIChicF9vYmpmaWxlX2RhdGEtPm92ZXJs YXlfbXN5bSk7CisgICAgICBiID0gY3JlYXRlX2ludGVybmFsX2JyZWFrcG9p bnQgKGdldF9vYmpmaWxlX2FyY2ggKG9iamZpbGUpLCBhZGRyLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicF9vdmVybGF5X2V2 ZW50KTsKICAgICAgIGItPmFkZHJfc3RyaW5nID0geHN0cmR1cCAoZnVuY19u YW1lKTsKIApAQCAtMjI2NywzMSArMjMzNiw0MiBAQCBjcmVhdGVfbG9uZ2pt cF9tYXN0ZXJfYnJlYWtwb2ludCAodm9pZCkKIAogICAgIEFMTF9PQkpGSUxF UyAob2JqZmlsZSkKICAgICB7Ci0gICAgICBjb25zdCBjaGFyICpjb25zdCBs b25nam1wX25hbWVzW10KLQk9IHsgImxvbmdqbXAiLCAiX2xvbmdqbXAiLCAi c2lnbG9uZ2ptcCIsICJfc2lnbG9uZ2ptcCIgfTsKLSAgICAgIGNvbnN0IGlu dCBudW1fbG9uZ2ptcF9uYW1lcwotCT0gc2l6ZW9mIChsb25nam1wX25hbWVz KSAvIHNpemVvZiAobG9uZ2ptcF9uYW1lc1swXSk7CiAgICAgICBpbnQgaTsK ICAgICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoOworICAgICAgc3RydWN0 IGJyZWFrcG9pbnRfb2JqZmlsZV9kYXRhICpicF9vYmpmaWxlX2RhdGE7CiAK ICAgICAgIGdkYmFyY2ggPSBnZXRfb2JqZmlsZV9hcmNoIChvYmpmaWxlKTsK ICAgICAgIGlmICghZ2RiYXJjaF9nZXRfbG9uZ2ptcF90YXJnZXRfcCAoZ2Ri YXJjaCkpCiAJY29udGludWU7CiAKLSAgICAgIGZvciAoaSA9IDA7IGkgPCBu dW1fbG9uZ2ptcF9uYW1lczsgaSsrKQorICAgICAgYnBfb2JqZmlsZV9kYXRh ID0gZ2V0X2JyZWFrcG9pbnRfb2JqZmlsZV9kYXRhIChvYmpmaWxlKTsKKwor ICAgICAgZm9yIChpID0gMDsgaSA8IE5VTV9MT05HSk1QX05BTUVTOyBpKysp CiAJewogCSAgc3RydWN0IGJyZWFrcG9pbnQgKmI7Ci0JICBzdHJ1Y3QgbWlu aW1hbF9zeW1ib2wgKm07CiAJICBjb25zdCBjaGFyICpmdW5jX25hbWU7CisJ ICBDT1JFX0FERFIgYWRkcjsKIAotCSAgZnVuY19uYW1lID0gbG9uZ2ptcF9u YW1lc1tpXTsKLQkgIG0gPSBsb29rdXBfbWluaW1hbF9zeW1ib2xfdGV4dCAo ZnVuY19uYW1lLCBvYmpmaWxlKTsKLQkgIGlmIChtID09IE5VTEwpCisJICBp ZiAobXN5bV9ub3RfZm91bmRfcCAoYnBfb2JqZmlsZV9kYXRhLT5sb25nam1w X21zeW1baV0pKQogCSAgICBjb250aW51ZTsKIAotCSAgYiA9IGNyZWF0ZV9p bnRlcm5hbF9icmVha3BvaW50IChnZGJhcmNoLAotCQkJCQkgIFNZTUJPTF9W QUxVRV9BRERSRVNTIChtKSwKLQkJCQkJICBicF9sb25nam1wX21hc3Rlcik7 CisJICBmdW5jX25hbWUgPSBsb25nam1wX25hbWVzW2ldOworCSAgaWYgKGJw X29iamZpbGVfZGF0YS0+bG9uZ2ptcF9tc3ltW2ldID09IE5VTEwpCisJICAg IHsKKwkgICAgICBzdHJ1Y3QgbWluaW1hbF9zeW1ib2wgKm07CisKKwkgICAg ICBtID0gbG9va3VwX21pbmltYWxfc3ltYm9sX3RleHQgKGZ1bmNfbmFtZSwg b2JqZmlsZSk7CisJICAgICAgaWYgKG0gPT0gTlVMTCkKKwkJeworCQkgIC8q IFByZXZlbnQgZnV0dXJlIGxvb2t1cHMgaW4gdGhpcyBvYmpmaWxlLiAgKi8K KwkJICBicF9vYmpmaWxlX2RhdGEtPmxvbmdqbXBfbXN5bVtpXSA9ICZtc3lt X25vdF9mb3VuZDsKKwkJICBjb250aW51ZTsKKwkJfQorCSAgICAgIGJwX29i amZpbGVfZGF0YS0+bG9uZ2ptcF9tc3ltW2ldID0gbTsKKwkgICAgfQorCisJ ICBhZGRyID0gU1lNQk9MX1ZBTFVFX0FERFJFU1MgKGJwX29iamZpbGVfZGF0 YS0+bG9uZ2ptcF9tc3ltW2ldKTsKKwkgIGIgPSBjcmVhdGVfaW50ZXJuYWxf YnJlYWtwb2ludCAoZ2RiYXJjaCwgYWRkciwgYnBfbG9uZ2ptcF9tYXN0ZXIp OwogCSAgYi0+YWRkcl9zdHJpbmcgPSB4c3RyZHVwIChmdW5jX25hbWUpOwog CSAgYi0+ZW5hYmxlX3N0YXRlID0gYnBfZGlzYWJsZWQ7CiAJfQpAQCAtMjMw NywzMSArMjM4Nyw1MSBAQCBzdGF0aWMgdm9pZAogY3JlYXRlX3N0ZF90ZXJt aW5hdGVfbWFzdGVyX2JyZWFrcG9pbnQgKHZvaWQpCiB7CiAgIHN0cnVjdCBw cm9ncmFtX3NwYWNlICpwc3BhY2U7Ci0gIHN0cnVjdCBvYmpmaWxlICpvYmpm aWxlOwogICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NoYWluOwogICBjb25zdCBj aGFyICpjb25zdCBmdW5jX25hbWUgPSAic3RkOjp0ZXJtaW5hdGUoKSI7CiAK ICAgb2xkX2NoYWluID0gc2F2ZV9jdXJyZW50X3Byb2dyYW1fc3BhY2UgKCk7 CiAKICAgQUxMX1BTUEFDRVMgKHBzcGFjZSkKKyAgeworICAgIHN0cnVjdCBv YmpmaWxlICpvYmpmaWxlOworICAgIENPUkVfQUREUiBhZGRyOworCisgICAg c2V0X2N1cnJlbnRfcHJvZ3JhbV9zcGFjZSAocHNwYWNlKTsKKwogICAgIEFM TF9PQkpGSUxFUyAob2JqZmlsZSkKICAgICB7CiAgICAgICBzdHJ1Y3QgYnJl YWtwb2ludCAqYjsKLSAgICAgIHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqbTsK KyAgICAgIHN0cnVjdCBicmVha3BvaW50X29iamZpbGVfZGF0YSAqYnBfb2Jq ZmlsZV9kYXRhOwogCi0gICAgICBzZXRfY3VycmVudF9wcm9ncmFtX3NwYWNl IChwc3BhY2UpOworICAgICAgYnBfb2JqZmlsZV9kYXRhID0gZ2V0X2JyZWFr cG9pbnRfb2JqZmlsZV9kYXRhIChvYmpmaWxlKTsKIAotICAgICAgbSA9IGxv b2t1cF9taW5pbWFsX3N5bWJvbCAoZnVuY19uYW1lLCBOVUxMLCBvYmpmaWxl KTsKLSAgICAgIGlmIChtID09IE5VTEwgfHwgKE1TWU1CT0xfVFlQRSAobSkg IT0gbXN0X3RleHQKLQkJCSYmIE1TWU1CT0xfVFlQRSAobSkgIT0gbXN0X2Zp bGVfdGV4dCkpCi0gICAgICAgIGNvbnRpbnVlOworICAgICAgaWYgKG1zeW1f bm90X2ZvdW5kX3AgKGJwX29iamZpbGVfZGF0YS0+dGVybWluYXRlX21zeW0p KQorCWNvbnRpbnVlOworCisgICAgICBpZiAoYnBfb2JqZmlsZV9kYXRhLT50 ZXJtaW5hdGVfbXN5bSA9PSBOVUxMKQorCXsKKwkgIHN0cnVjdCBtaW5pbWFs X3N5bWJvbCAqbTsKKworCSAgbSA9IGxvb2t1cF9taW5pbWFsX3N5bWJvbCAo ZnVuY19uYW1lLCBOVUxMLCBvYmpmaWxlKTsKKwkgIGlmIChtID09IE5VTEwg fHwgKE1TWU1CT0xfVFlQRSAobSkgIT0gbXN0X3RleHQKKwkJCSAgICAmJiBN U1lNQk9MX1RZUEUgKG0pICE9IG1zdF9maWxlX3RleHQpKQorCSAgICB7CisJ ICAgICAgLyogUHJldmVudCBmdXR1cmUgbG9va3VwcyBpbiB0aGlzIG9iamZp bGUuICAqLworCSAgICAgIGJwX29iamZpbGVfZGF0YS0+dGVybWluYXRlX21z eW0gPSAmbXN5bV9ub3RfZm91bmQ7CisJICAgICAgY29udGludWU7CisJICAg IH0KKwkgIGJwX29iamZpbGVfZGF0YS0+dGVybWluYXRlX21zeW0gPSBtOwor CX0KIAotICAgICAgYiA9IGNyZWF0ZV9pbnRlcm5hbF9icmVha3BvaW50IChn ZXRfb2JqZmlsZV9hcmNoIChvYmpmaWxlKSwKLQkJCQkgICAgICBTWU1CT0xf VkFMVUVfQUREUkVTUyAobSksCisgICAgICBhZGRyID0gU1lNQk9MX1ZBTFVF X0FERFJFU1MgKGJwX29iamZpbGVfZGF0YS0+dGVybWluYXRlX21zeW0pOwor ICAgICAgYiA9IGNyZWF0ZV9pbnRlcm5hbF9icmVha3BvaW50IChnZXRfb2Jq ZmlsZV9hcmNoIChvYmpmaWxlKSwgYWRkciwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYnBfc3RkX3Rlcm1pbmF0ZV9tYXN0ZXIp OwogICAgICAgYi0+YWRkcl9zdHJpbmcgPSB4c3RyZHVwIChmdW5jX25hbWUp OwogICAgICAgYi0+ZW5hYmxlX3N0YXRlID0gYnBfZGlzYWJsZWQ7CiAgICAg fQorICB9CisKICAgdXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0ICgxKTsK IAogICBkb19jbGVhbnVwcyAob2xkX2NoYWluKTsKQEAgLTIzNDMsMjQgKzI0 NDMsNDIgQEAgdm9pZAogY3JlYXRlX2V4Y2VwdGlvbl9tYXN0ZXJfYnJlYWtw b2ludCAodm9pZCkKIHsKICAgc3RydWN0IG9iamZpbGUgKm9iamZpbGU7Cisg IGNvbnN0IGNoYXIgKmNvbnN0IGZ1bmNfbmFtZSA9ICJfVW53aW5kX0RlYnVn SG9vayI7CiAKICAgQUxMX09CSkZJTEVTIChvYmpmaWxlKQogICAgIHsKLSAg ICAgIHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqZGVidWdfaG9vazsKKyAgICAg IHN0cnVjdCBicmVha3BvaW50ICpiOworICAgICAgc3RydWN0IGdkYmFyY2gg KmdkYmFyY2g7CisgICAgICBzdHJ1Y3QgYnJlYWtwb2ludF9vYmpmaWxlX2Rh dGEgKmJwX29iamZpbGVfZGF0YTsKKyAgICAgIENPUkVfQUREUiBhZGRyOwor CisgICAgICBicF9vYmpmaWxlX2RhdGEgPSBnZXRfYnJlYWtwb2ludF9vYmpm aWxlX2RhdGEgKG9iamZpbGUpOworCisgICAgICBpZiAobXN5bV9ub3RfZm91 bmRfcCAoYnBfb2JqZmlsZV9kYXRhLT5leGNlcHRpb25fbXN5bSkpCisJY29u dGludWU7CisKKyAgICAgIGdkYmFyY2ggPSBnZXRfb2JqZmlsZV9hcmNoIChv YmpmaWxlKTsKIAotICAgICAgZGVidWdfaG9vayA9IGxvb2t1cF9taW5pbWFs X3N5bWJvbCAoIl9VbndpbmRfRGVidWdIb29rIiwgTlVMTCwgb2JqZmlsZSk7 Ci0gICAgICBpZiAoZGVidWdfaG9vayAhPSBOVUxMKQorICAgICAgaWYgKGJw X29iamZpbGVfZGF0YS0+ZXhjZXB0aW9uX21zeW0gPT0gTlVMTCkKIAl7Ci0J ICBzdHJ1Y3QgYnJlYWtwb2ludCAqYjsKLQkgIENPUkVfQUREUiBhZGRyID0g U1lNQk9MX1ZBTFVFX0FERFJFU1MgKGRlYnVnX2hvb2spOwotCSAgc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfb2JqZmlsZV9hcmNoIChvYmpmaWxl KTsKKwkgIHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqZGVidWdfaG9vazsKIAot CSAgYWRkciA9IGdkYmFyY2hfY29udmVydF9mcm9tX2Z1bmNfcHRyX2FkZHIg KGdkYmFyY2gsIGFkZHIsCi0JCQkJCQkgICAgICZjdXJyZW50X3RhcmdldCk7 Ci0JICBiID0gY3JlYXRlX2ludGVybmFsX2JyZWFrcG9pbnQgKGdkYmFyY2gs IGFkZHIsIGJwX2V4Y2VwdGlvbl9tYXN0ZXIpOwotCSAgYi0+YWRkcl9zdHJp bmcgPSB4c3RyZHVwICgiX1Vud2luZF9EZWJ1Z0hvb2siKTsKLQkgIGItPmVu YWJsZV9zdGF0ZSA9IGJwX2Rpc2FibGVkOworCSAgZGVidWdfaG9vayA9IGxv b2t1cF9taW5pbWFsX3N5bWJvbCAoZnVuY19uYW1lLCBOVUxMLCBvYmpmaWxl KTsKKwkgIGlmIChkZWJ1Z19ob29rID09IE5VTEwpCisJICAgIHsKKwkgICAg ICBicF9vYmpmaWxlX2RhdGEtPmV4Y2VwdGlvbl9tc3ltID0gJm1zeW1fbm90 X2ZvdW5kOworCSAgICAgIGNvbnRpbnVlOworCSAgICB9CisKKwkgIGJwX29i amZpbGVfZGF0YS0+ZXhjZXB0aW9uX21zeW0gPSBkZWJ1Z19ob29rOwogCX0K KworICAgICAgYWRkciA9IFNZTUJPTF9WQUxVRV9BRERSRVNTIChicF9vYmpm aWxlX2RhdGEtPmV4Y2VwdGlvbl9tc3ltKTsKKyAgICAgIGFkZHIgPSBnZGJh cmNoX2NvbnZlcnRfZnJvbV9mdW5jX3B0cl9hZGRyIChnZGJhcmNoLCBhZGRy LAorCQkJCQkJICZjdXJyZW50X3RhcmdldCk7CisgICAgICBiID0gY3JlYXRl X2ludGVybmFsX2JyZWFrcG9pbnQgKGdkYmFyY2gsIGFkZHIsIGJwX2V4Y2Vw dGlvbl9tYXN0ZXIpOworICAgICAgYi0+YWRkcl9zdHJpbmcgPSB4c3RyZHVw IChmdW5jX25hbWUpOworICAgICAgYi0+ZW5hYmxlX3N0YXRlID0gYnBfZGlz YWJsZWQ7CiAgICAgfQogCiAgIHVwZGF0ZV9nbG9iYWxfbG9jYXRpb25fbGlz dCAoMSk7CkBAIC0xMjA3MSw2ICsxMjE4OSw4IEBAIF9pbml0aWFsaXplX2Jy ZWFrcG9pbnQgKHZvaWQpCiAgIG9ic2VydmVyX2F0dGFjaF9pbmZlcmlvcl9l eGl0IChjbGVhcl9zeXNjYWxsX2NvdW50cyk7CiAgIG9ic2VydmVyX2F0dGFj aF9tZW1vcnlfY2hhbmdlZCAoaW52YWxpZGF0ZV9icF92YWx1ZV9vbl9tZW1v cnlfY2hhbmdlKTsKIAorICBicmVha3BvaW50X29iamZpbGVfa2V5ID0gcmVn aXN0ZXJfb2JqZmlsZV9kYXRhICgpOworCiAgIGJyZWFrcG9pbnRfY2hhaW4g PSAwOwogICAvKiBEb24ndCBib3RoZXIgdG8gY2FsbCBzZXRfYnJlYWtwb2lu dF9jb3VudC4gICRicG51bSBpc24ndCB1c2VmdWwKICAgICAgYmVmb3JlIGEg YnJlYWtwb2ludCBpcyBzZXQuICAqLwo= --90e6ba53ac18a3544a049b7e0d37--