From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 694 invoked by alias); 8 Jul 2009 20:08:17 -0000 Received: (qmail 668 invoked by uid 22791); 8 Jul 2009 20:08:15 -0000 X-SWARE-Spam-Status: No, hits=-0.5 required=5.0 tests=AWL,BAYES_00,KAM_STOCKGEN,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 08 Jul 2009 20:08:06 +0000 Received: from zps36.corp.google.com (zps36.corp.google.com [172.25.146.36]) by smtp-out.google.com with ESMTP id n68K84k7028978 for ; Wed, 8 Jul 2009 13:08:04 -0700 Received: from ewy18 (ewy18.prod.google.com [10.241.103.18]) by zps36.corp.google.com with ESMTP id n68K81Dc013748 for ; Wed, 8 Jul 2009 13:08:01 -0700 Received: by ewy18 with SMTP id 18so6456487ewy.45 for ; Wed, 08 Jul 2009 13:08:00 -0700 (PDT) MIME-Version: 1.0 Received: by 10.216.1.69 with SMTP id 47mr2046513wec.224.1247083680530; Wed, 08 Jul 2009 13:08:00 -0700 (PDT) Date: Wed, 08 Jul 2009 20:49:00 -0000 Message-ID: <7e6c8d660907081308r13bff580rdcf4822c77df8403@mail.gmail.com> Subject: [RFA] Use data cache for stack accesses From: Jacob Potter To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=0016364d2933c883c1046e374be5 X-System-Of-Record: true 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: 2009-07/txt/msg00271.txt.bz2 --0016364d2933c883c1046e374be5 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-length: 2188 This is the second half of the pair of patches I first submitted last week. Differences from the first pass are: - Added a NEWS entry for the new option - Changed the stackcache option to default to on, rather than off - Got rid of the unnecessary new value_at_lazy_stack() function - Flush the cache when switching inferiors. I haven't changed the new read_stack function to take a target_ops, since it's intended to be consistent with read_memory(); converting read_memory() to take target_ops would be out of the scope of this patch (it and target_read_memory have a *lot* of callers). Other than that, I think I've addressed all the issues with the first pass; is there anything else to fix? Thanks! - Jacob 2009-07-08 Jacob Potter * NEWS: Add description of stackcache option. * corefile.c (read_stack): New helper for stack reads. * gdbcore.h (read_stack): Declare. * dcache.c (dcache_enabled_p, remotecache_enabled_p): Rename dcache_enabled_p to remotecache_enabled_p. (stack_cache_enabled_p): New flag. (show_dcache_enabled_p): Change for use with stack cache flag. (show_remotecache_enabled_p): New function. (_initialize_dcache): Rewrite flag documentation; add new flag. * dwarf2loc.c (dwarf2_evaluate_loc_desc): Mark value as stack. * frame-unwind.c (frame_unwind_got_memory): Mark value as stack. * target.c (memory_xfer_partial): Add a target_object parameter to indicate the type of access; use dcache for stack. (target_read_stack): New helper for stack reads. * target.h (enum target_object): Add TARGET_OBJECT_STACK_MEMORY. (target_read_stack): Declare. * thread.c (switch_to_thread): Flush cache when pid changes. * valops.c (get_value_at): Refactor common code from value_at() and value_at_lazy() into new helper function. (value_fetch_lazy): Read from stack when necessary. * value.c (struct value): Add new field "stack" for values on the stack. (value_stack, set_value_stack): New accessors. * value.h (value_stack, set_value_stack): Declare. --0016364d2933c883c1046e374be5 Content-Type: text/plain; charset=US-ASCII; name="part2-use-cache-for-stack.patch.txt" Content-Disposition: attachment; filename="part2-use-cache-for-stack.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fwwhejnp0 Content-length: 18923 ZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKaW5kZXggNjg3NzZh NS4uYjMwZjI2NiAxMDA2NDQKLS0tIGEvZ2RiL05FV1MKKysrIGIvZ2RiL05F V1MKQEAgLTM0Miw2ICszNDIsMTIgQEAgc2hvdyBzY2hlZHVsZS1tdWx0aXBs ZQogICBBbGxvdyBHREIgdG8gcmVzdW1lIGFsbCB0aHJlYWRzIG9mIGFsbCBw cm9jZXNzZXMgb3Igb25seSB0aHJlYWRzIG9mCiAgIHRoZSBjdXJyZW50IHBy b2Nlc3MuCiAKK3NldCBzdGFja2NhY2hlCitzaG93IHN0YWNrY2FjaGUKKyAg VXNlIG1vcmUgYWdncmVzc2l2ZSBjYWNoaW5nIGZvciBhY2Nlc3NlcyB0byB0 aGUgc3RhY2suIFRoaXMgaW1wcm92ZXMKKyAgcGVyZm9ybWFuY2Ugb2YgcmVt b3RlIGRlYnVnZ2luZyAocGFydGljdWxhcmx5IHRyYWNlYmFja3MpIHdpdGhv dXQKKyAgYWZmZWN0aW5nIGNvcnJlY3RuZXNzLgorCiAqIFJlbW92ZWQgY29t bWFuZHMKIAogaW5mbyBmb3JrcwpkaWZmIC0tZ2l0IGEvZ2RiL2NvcmVmaWxl LmMgYi9nZGIvY29yZWZpbGUuYwppbmRleCA2ZGUwNzcyLi5lNzA2ODhlIDEw MDY0NAotLS0gYS9nZGIvY29yZWZpbGUuYworKysgYi9nZGIvY29yZWZpbGUu YwpAQCAtMjI4LDYgKzIyOCw3IEBAIG1lbW9yeV9lcnJvciAoaW50IHN0YXR1 cywgQ09SRV9BRERSIG1lbWFkZHIpCiB9CiAKIC8qIFNhbWUgYXMgdGFyZ2V0 X3JlYWRfbWVtb3J5LCBidXQgcmVwb3J0IGFuIGVycm9yIGlmIGNhbid0IHJl YWQuICAqLworCiB2b2lkCiByZWFkX21lbW9yeSAoQ09SRV9BRERSIG1lbWFk ZHIsIGdkYl9ieXRlICpteWFkZHIsIGludCBsZW4pCiB7CkBAIC0yMzcsNiAr MjM4LDE3IEBAIHJlYWRfbWVtb3J5IChDT1JFX0FERFIgbWVtYWRkciwgZ2Ri X2J5dGUgKm15YWRkciwgaW50IGxlbikKICAgICBtZW1vcnlfZXJyb3IgKHN0 YXR1cywgbWVtYWRkcik7CiB9CiAKKy8qIFNhbWUgYXMgdGFyZ2V0X3JlYWRf c3RhY2ssIGJ1dCByZXBvcnQgYW4gZXJyb3IgaWYgY2FuJ3QgcmVhZC4gICov CisKK3ZvaWQKK3JlYWRfc3RhY2sgKENPUkVfQUREUiBtZW1hZGRyLCBnZGJf Ynl0ZSAqbXlhZGRyLCBpbnQgbGVuKQoreworICBpbnQgc3RhdHVzOworICBz dGF0dXMgPSB0YXJnZXRfcmVhZF9zdGFjayAobWVtYWRkciwgbXlhZGRyLCBs ZW4pOworICBpZiAoc3RhdHVzICE9IDApCisgICAgbWVtb3J5X2Vycm9yIChz dGF0dXMsIG1lbWFkZHIpOworfQorCiAvKiBBcmd1bWVudCAvIHJldHVybiBy ZXN1bHQgc3RydWN0IGZvciB1c2Ugd2l0aAogICAgZG9fY2FwdHVyZWRfcmVh ZF9tZW1vcnlfaW50ZWdlcigpLiAgTUVNQUREUiBhbmQgTEVOIGFyZSBmaWxs ZWQgaW4KICAgIGJ5IGdkYl9yZWFkX21lbW9yeV9pbnRlZ2VyKCkuICBSRVNV TFQgaXMgdGhlIGNvbnRlbnRzIHRoYXQgd2VyZQpkaWZmIC0tZ2l0IGEvZ2Ri L2RjYWNoZS5jIGIvZ2RiL2RjYWNoZS5jCmluZGV4IDA2OTU2Y2IuLmY5MTUw NzQgMTAwNjQ0Ci0tLSBhL2dkYi9kY2FjaGUuYworKysgYi9nZGIvZGNhY2hl LmMKQEAgLTExNiwxNSArMTE2LDIzIEBAIHN0YXRpYyB2b2lkIGRjYWNoZV9p bmZvIChjaGFyICpleHAsIGludCB0dHkpOwogCiB2b2lkIF9pbml0aWFsaXpl X2RjYWNoZSAodm9pZCk7CiAKLXN0YXRpYyBpbnQgZGNhY2hlX2VuYWJsZWRf cCA9IDA7CitpbnQgZGNhY2hlX3N0YWNrX2VuYWJsZWRfcCA9IDE7CisKK2lu dCByZW1vdGVjYWNoZV9lbmFibGVkX3AgPSAwOwkJLyogT0JTT0xFVEUgKi8K IAogc3RhdGljIHZvaWQKIHNob3dfZGNhY2hlX2VuYWJsZWRfcCAoc3RydWN0 IHVpX2ZpbGUgKmZpbGUsIGludCBmcm9tX3R0eSwKIAkJICAgICAgIHN0cnVj dCBjbWRfbGlzdF9lbGVtZW50ICpjLCBjb25zdCBjaGFyICp2YWx1ZSkKIHsK LSAgZnByaW50Zl9maWx0ZXJlZCAoZmlsZSwgXygiQ2FjaGUgdXNlIGZvciBy ZW1vdGUgdGFyZ2V0cyBpcyAlcy5cbiIpLCB2YWx1ZSk7CisgIGZwcmludGZf ZmlsdGVyZWQgKGZpbGUsIF8oIkNhY2hlIHVzZSBmb3Igc3RhY2sgYWNjZXNz ZXMgaXMgJXMuXG4iKSwgdmFsdWUpOwogfQogCitzdGF0aWMgdm9pZAorc2hv d19yZW1vdGVjYWNoZV9lbmFibGVkX3AgKHN0cnVjdCB1aV9maWxlICpmaWxl LCBpbnQgZnJvbV90dHksCisJCSAgICAgICBzdHJ1Y3QgY21kX2xpc3RfZWxl bWVudCAqYywgY29uc3QgY2hhciAqdmFsdWUpCit7CisgIGZwcmludGZfZmls dGVyZWQgKGZpbGUsIF8oIkRlcHJlY2F0ZWQgcmVtb3RlY2FjaGUgZmxhZyBp cyAlcy5cbiIpLCB2YWx1ZSk7Cit9CiAKIERDQUNIRSAqbGFzdF9jYWNoZTsJ CS8qIFVzZWQgYnkgaW5mbyBkY2FjaGUgKi8KIApAQCAtNTA2LDIwICs1MTQs MzMgQEAgZGNhY2hlX2luZm8gKGNoYXIgKmV4cCwgaW50IHR0eSkKIHZvaWQK IF9pbml0aWFsaXplX2RjYWNoZSAodm9pZCkKIHsKLSAgYWRkX3NldHNob3df Ym9vbGVhbl9jbWQgKCJyZW1vdGVjYWNoZSIsIGNsYXNzX3N1cHBvcnQsCi0J CQkgICAmZGNhY2hlX2VuYWJsZWRfcCwgXygiXAotU2V0IGNhY2hlIHVzZSBm b3IgcmVtb3RlIHRhcmdldHMuIiksIF8oIlwKLVNob3cgY2FjaGUgdXNlIGZv ciByZW1vdGUgdGFyZ2V0cy4iKSwgXygiXAotV2hlbiBvbiwgdXNlIGRhdGEg Y2FjaGluZyBmb3IgcmVtb3RlIHRhcmdldHMuICBGb3IgbWFueSByZW1vdGUg dGFyZ2V0c1xuXAotdGhpcyBvcHRpb24gY2FuIG9mZmVyIGJldHRlciB0aHJv dWdocHV0IGZvciByZWFkaW5nIHRhcmdldCBtZW1vcnkuXG5cCi1VbmZvcnR1 bmF0ZWx5LCBnZGIgZG9lcyBub3QgY3VycmVudGx5IGtub3cgYW55dGhpbmcg YWJvdXQgdm9sYXRpbGVcblwKLXJlZ2lzdGVycyBhbmQgdGh1cyBkYXRhIGNh Y2hpbmcgd2lsbCBwcm9kdWNlIGluY29ycmVjdCByZXN1bHRzIHdpdGhcblwK LXZvbGF0aWxlIHJlZ2lzdGVycyBhcmUgaW4gdXNlLiAgQnkgZGVmYXVsdCwg dGhpcyBvcHRpb24gaXMgb2ZmLiIpLAorICBhZGRfc2V0c2hvd19ib29sZWFu X2NtZCAoInN0YWNrY2FjaGUiLCBjbGFzc19zdXBwb3J0LAorCQkJICAgJmRj YWNoZV9zdGFja19lbmFibGVkX3AsIF8oIlwKK1NldCBjYWNoZSB1c2UgZm9y IHN0YWNrIGFjY2Vzcy4iKSwgXygiXAorU2hvdyBjYWNoZSB1c2UgZm9yIHN0 YWNrIGFjY2Vzcy4iKSwgXygiXAorV2hlbiBvbiwgdXNlIHRoZSBkYXRhIGNh Y2hlIGZvciBhbGwgc3RhY2sgYWNjZXNzLCByZWdhcmRsZXNzIG9mIGFueVxu XAorY29uZmlndXJlZCBtZW1vcnkgcmVnaW9ucy4gIFRoaXMgaW1wcm92ZXMg cmVtb3RlIHBlcmZvcm1hbmNlIHNpZ25pZmljYW50bHkuXG5cCitCeSBkZWZh dWx0LCBjYWNoaW5nIGZvciBzdGFjayBhY2Nlc3MgaXMgb24uIiksCiAJCQkg ICBOVUxMLAogCQkJICAgc2hvd19kY2FjaGVfZW5hYmxlZF9wLAogCQkJICAg JnNldGxpc3QsICZzaG93bGlzdCk7CiAKKyAgYWRkX3NldHNob3dfYm9vbGVh bl9jbWQgKCJyZW1vdGVjYWNoZSIsIGNsYXNzX3N1cHBvcnQsCisJCQkgICAm cmVtb3RlY2FjaGVfZW5hYmxlZF9wLCBfKCJcCitTZXQgcmVtb3RlY2FjaGUg ZmxhZy4iKSwgXygiXAorU2hvdyByZW1vdGVjYWNoZSBmbGFnLiIpLCBfKCJc CitUaGlzIHVzZWQgdG8gZW5hYmxlIHRoZSBkYXRhIGNhY2hlIGZvciByZW1v dGUgdGFyZ2V0cy4gIFRoZSBjYWNoZVxuXAorZnVuY3Rpb25hbGl0eSBpcyBu b3cgY29udHJvbGxlZCBieSB0aGUgbWVtb3J5IHJlZ2lvbiBzeXN0ZW0gYW5k IHRoZVxuXAorXCJzdGFja2NhY2hlXCIgZmxhZzsgXCJyZW1vdGVjYWNoZVwi IG5vdyBkb2VzIG5vdGhpbmcgYW5kIGV4aXN0cyBvbmx5XG5cCitmb3IgY29t cGF0aWJpbGl0eSByZWFzb25zLiIpLAorCQkJICAgTlVMTCwKKwkJCSAgIHNo b3dfcmVtb3RlY2FjaGVfZW5hYmxlZF9wLAorCQkJICAgJnNldGxpc3QsICZz aG93bGlzdCk7CisKICAgYWRkX2luZm8gKCJkY2FjaGUiLCBkY2FjaGVfaW5m bywKIAkgICAgXygiXAotUHJpbnQgaW5mb3JtYXRpb24gb24gdGhlIGRjYWNo ZSBwZXJmb3JtYW5jZS4iKSk7CitQcmludCBpbmZvcm1hdGlvbiBvbiB0aGUg ZGNhY2hlIHBlcmZvcm1hbmNlLlxuXAorV2l0aCBubyBhcmd1bWVudHMsIHRo aXMgY29tbWFuZCBwcmludHMgdGhlIGNhY2hlIGNvbmZpZ3VyYXRpb24gYW5k IGFcblwKK3N1bW1hcnkgb2YgZWFjaCBsaW5lIGluIHRoZSBjYWNoZS4gIFVz ZSBcImluZm8gZGNhY2hlIDxsaW5lbm8+IHRvIGR1bXBcIlxuXAordGhlIGNv bnRlbnRzIG9mIGEgZ2l2ZW4gbGluZS4iKSk7CiB9CmRpZmYgLS1naXQgYS9n ZGIvZHdhcmYybG9jLmMgYi9nZGIvZHdhcmYybG9jLmMKaW5kZXggN2E1NGY0 My4uMjNhZTA1MiAxMDA2NDQKLS0tIGEvZ2RiL2R3YXJmMmxvYy5jCisrKyBi L2dkYi9kd2FyZjJsb2MuYwpAQCAtMjcxLDYgKzI3MSw3IEBAIGR3YXJmMl9l dmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3Qg ZnJhbWVfaW5mbyAqZnJhbWUsCiAgICAgICByZXR2YWwgPSBhbGxvY2F0ZV92 YWx1ZSAoU1lNQk9MX1RZUEUgKHZhcikpOwogICAgICAgVkFMVUVfTFZBTCAo cmV0dmFsKSA9IGx2YWxfbWVtb3J5OwogICAgICAgc2V0X3ZhbHVlX2xhenkg KHJldHZhbCwgMSk7CisgICAgICBzZXRfdmFsdWVfc3RhY2sgKHJldHZhbCwg MSk7CiAgICAgICBzZXRfdmFsdWVfYWRkcmVzcyAocmV0dmFsLCBhZGRyZXNz KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL2dkYi9mcmFtZS11bndpbmQuYyBi L2dkYi9mcmFtZS11bndpbmQuYwppbmRleCAyMzhjNmExLi5mMGMyYTY0IDEw MDY0NAotLS0gYS9nZGIvZnJhbWUtdW53aW5kLmMKKysrIGIvZ2RiL2ZyYW1l LXVud2luZC5jCkBAIC0xNTMsOCArMTUzLDEwIEBAIHN0cnVjdCB2YWx1ZSAq CiBmcmFtZV91bndpbmRfZ290X21lbW9yeSAoc3RydWN0IGZyYW1lX2luZm8g KmZyYW1lLCBpbnQgcmVnbnVtLCBDT1JFX0FERFIgYWRkcikKIHsKICAgc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBmcmFtZV91bndpbmRfYXJjaCAoZnJh bWUpOworICBzdHJ1Y3QgdmFsdWUgKnYgPSB2YWx1ZV9hdF9sYXp5IChyZWdp c3Rlcl90eXBlIChnZGJhcmNoLCByZWdudW0pLCBhZGRyKTsKIAotICByZXR1 cm4gdmFsdWVfYXRfbGF6eSAocmVnaXN0ZXJfdHlwZSAoZ2RiYXJjaCwgcmVn bnVtKSwgYWRkcik7CisgIHNldF92YWx1ZV9zdGFjayAodiwgMSk7CisgIHJl dHVybiB2OwogfQogCiAvKiBSZXR1cm4gYSB2YWx1ZSB3aGljaCBpbmRpY2F0 ZXMgdGhhdCBGUkFNRSdzIHNhdmVkIHZlcnNpb24gb2YKZGlmZiAtLWdpdCBh L2dkYi9nZGJjb3JlLmggYi9nZGIvZ2RiY29yZS5oCmluZGV4IGUzMzljMGIu LjdhN2RjYjIgMTAwNjQ0Ci0tLSBhL2dkYi9nZGJjb3JlLmgKKysrIGIvZ2Ri L2dkYmNvcmUuaApAQCAtNDcsNiArNDcsMTAgQEAgZXh0ZXJuIHZvaWQgbWVt b3J5X2Vycm9yIChpbnQgc3RhdHVzLCBDT1JFX0FERFIgbWVtYWRkcik7CiAK IGV4dGVybiB2b2lkIHJlYWRfbWVtb3J5IChDT1JFX0FERFIgbWVtYWRkciwg Z2RiX2J5dGUgKm15YWRkciwgaW50IGxlbik7CiAKKy8qIExpa2UgdGFyZ2V0 X3JlYWRfc3RhY2ssIGJ1dCByZXBvcnQgYW4gZXJyb3IgaWYgY2FuJ3QgcmVh ZC4gICovCisKK2V4dGVybiB2b2lkIHJlYWRfc3RhY2sgKENPUkVfQUREUiBt ZW1hZGRyLCBnZGJfYnl0ZSAqbXlhZGRyLCBpbnQgbGVuKTsKKwogLyogUmVh ZCBhbiBpbnRlZ2VyIGZyb20gZGVidWdnZWQgbWVtb3J5LCBnaXZlbiBhZGRy ZXNzIGFuZCBudW1iZXIgb2YKICAgIGJ5dGVzLiAgKi8KIApkaWZmIC0tZ2l0 IGEvZ2RiL3RhcmdldC5jIGIvZ2RiL3RhcmdldC5jCmluZGV4IDA2MjNiYzMu Ljg5ODEwZWMgMTAwNjQ0Ci0tLSBhL2dkYi90YXJnZXQuYworKysgYi9nZGIv dGFyZ2V0LmMKQEAgLTExNDMsOCArMTE0Myw5IEBAIHRhcmdldF9zZWN0aW9u X2J5X2FkZHIgKHN0cnVjdCB0YXJnZXRfb3BzICp0YXJnZXQsIENPUkVfQURE UiBhZGRyKQogICAgdmFsdWUgYXJlIGp1c3QgYXMgZm9yIHRhcmdldF94ZmVy X3BhcnRpYWwuICAqLwogCiBzdGF0aWMgTE9OR0VTVAotbWVtb3J5X3hmZXJf cGFydGlhbCAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywgdm9pZCAqcmVhZGJ1 ZiwgY29uc3Qgdm9pZCAqd3JpdGVidWYsCi0JCSAgICAgVUxPTkdFU1QgbWVt YWRkciwgTE9OR0VTVCBsZW4pCittZW1vcnlfeGZlcl9wYXJ0aWFsIChzdHJ1 Y3QgdGFyZ2V0X29wcyAqb3BzLCBlbnVtIHRhcmdldF9vYmplY3Qgb2JqZWN0 LAorCQkgICAgIHZvaWQgKnJlYWRidWYsIGNvbnN0IHZvaWQgKndyaXRlYnVm LCBVTE9OR0VTVCBtZW1hZGRyLAorCQkgICAgIExPTkdFU1QgbGVuKQogewog ICBMT05HRVNUIHJlczsKICAgaW50IHJlZ19sZW47CkBAIC0xMjIzLDcgKzEy MjQsOCBAQCBtZW1vcnlfeGZlcl9wYXJ0aWFsIChzdHJ1Y3QgdGFyZ2V0X29w cyAqb3BzLCB2b2lkICpyZWFkYnVmLCBjb25zdCB2b2lkICp3cml0ZWJ1Zgog ICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAotICBpZiAocmVnaW9uLT5hdHRy aWIuY2FjaGUpCisgIGlmIChyZWdpb24tPmF0dHJpYi5jYWNoZQorICAgICAg fHwgKGRjYWNoZV9zdGFja19lbmFibGVkX3AgJiYgb2JqZWN0ID09IFRBUkdF VF9PQkpFQ1RfU1RBQ0tfTUVNT1JZKSkKICAgICB7CiAgICAgICBpZiAocmVh ZGJ1ZiAhPSBOVUxMKQogCXJlcyA9IGRjYWNoZV94ZmVyX21lbW9yeSAob3Bz LCB0YXJnZXRfZGNhY2hlLCBtZW1hZGRyLCByZWFkYnVmLApAQCAtMTI0NSw2 ICsxMjQ3LDE1IEBAIG1lbW9yeV94ZmVyX3BhcnRpYWwgKHN0cnVjdCB0YXJn ZXRfb3BzICpvcHMsIHZvaWQgKnJlYWRidWYsIGNvbnN0IHZvaWQgKndyaXRl YnVmCiAJfQogICAgIH0KIAorICAvKiBNYWtlIHN1cmUgdGhlIGNhY2hlIGdl dHMgdXBkYXRlZCBubyBtYXR0ZXIgd2hhdCAtIGlmIHdlIGFyZSB3cml0aW5n CisgICAgIHRvIHRoZSBzdGFjaywgZXZlbiBpZiB0aGlzIHdyaXRlIGlzIG5v dCB0YWdnZWQgYXMgc3VjaCwgd2Ugc3RpbGwgbmVlZAorICAgICB0byB1cGRh dGUgdGhlIGNhY2hlLiAqLworICBpZiAocmVhZGJ1ZiA9PSBOVUxMICYmICFy ZWdpb24tPmF0dHJpYi5jYWNoZSAmJgorICAgICAgZGNhY2hlX3N0YWNrX2Vu YWJsZWRfcCAmJiBvYmplY3QgIT0gVEFSR0VUX09CSkVDVF9TVEFDS19NRU1P UlkpCisgICAgeworICAgICAgZGNhY2hlX3VwZGF0ZSAodGFyZ2V0X2RjYWNo ZSwgbWVtYWRkciwgKHZvaWQgKikgd3JpdGVidWYsIHJlZ19sZW4pOworICAg IH0KKwogICAvKiBJZiBub25lIG9mIHRob3NlIG1ldGhvZHMgZm91bmQgdGhl IG1lbW9yeSB3ZSB3YW50ZWQsIGZhbGwgYmFjawogICAgICB0byBhIHRhcmdl dCBwYXJ0aWFsIHRyYW5zZmVyLiAgTm9ybWFsbHkgYSBzaW5nbGUgY2FsbCB0 bwogICAgICB0b194ZmVyX3BhcnRpYWwgaXMgZW5vdWdoOyBpZiBpdCBkb2Vz bid0IHJlY29nbml6ZSBhbiBvYmplY3QKQEAgLTEzMDgsOCArMTMxOSw5IEBA IHRhcmdldF94ZmVyX3BhcnRpYWwgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMs CiAgIC8qIElmIHRoaXMgaXMgYSBtZW1vcnkgdHJhbnNmZXIsIGxldCB0aGUg bWVtb3J5LXNwZWNpZmljIGNvZGUKICAgICAgaGF2ZSBhIGxvb2sgYXQgaXQg aW5zdGVhZC4gIE1lbW9yeSB0cmFuc2ZlcnMgYXJlIG1vcmUKICAgICAgY29t cGxpY2F0ZWQuICAqLwotICBpZiAob2JqZWN0ID09IFRBUkdFVF9PQkpFQ1Rf TUVNT1JZKQotICAgIHJldHZhbCA9IG1lbW9yeV94ZmVyX3BhcnRpYWwgKG9w cywgcmVhZGJ1Ziwgd3JpdGVidWYsIG9mZnNldCwgbGVuKTsKKyAgaWYgKG9i amVjdCA9PSBUQVJHRVRfT0JKRUNUX01FTU9SWSB8fCBvYmplY3QgPT0gVEFS R0VUX09CSkVDVF9TVEFDS19NRU1PUlkpCisgICAgcmV0dmFsID0gbWVtb3J5 X3hmZXJfcGFydGlhbCAob3BzLCBvYmplY3QsIHJlYWRidWYsCisJCQkJICB3 cml0ZWJ1Ziwgb2Zmc2V0LCBsZW4pOwogICBlbHNlCiAgICAgewogICAgICAg ZW51bSB0YXJnZXRfb2JqZWN0IHJhd19vYmplY3QgPSBvYmplY3Q7CkBAIC0x MzkxLDYgKzE0MDMsMjMgQEAgdGFyZ2V0X3JlYWRfbWVtb3J5IChDT1JFX0FE RFIgbWVtYWRkciwgZ2RiX2J5dGUgKm15YWRkciwgaW50IGxlbikKICAgICBy ZXR1cm4gRUlPOwogfQogCisvKiBMaWtlIHRhcmdldF9yZWFkX21lbW9yeSwg YnV0IHNwZWNpZnkgZXhwbGljaXRseSB0aGF0IHRoaXMgaXMgYSByZWFkIGZy b20KKyAgIHRoZSB0YXJnZXQncyBzdGFjay4gVGhpcyBtYXkgdHJpZ2dlciBk aWZmZXJlbnQgY2FjaGUgYmVoYXZpb3IuICovCisKK2ludAordGFyZ2V0X3Jl YWRfc3RhY2sgKENPUkVfQUREUiBtZW1hZGRyLCBnZGJfYnl0ZSAqbXlhZGRy LCBpbnQgbGVuKQoreworICAvKiBEaXNwYXRjaCB0byB0aGUgdG9wbW9zdCB0 YXJnZXQsIG5vdCB0aGUgZmxhdHRlbmVkIGN1cnJlbnRfdGFyZ2V0LgorICAg ICBNZW1vcnkgYWNjZXNzZXMgY2hlY2sgdGFyZ2V0LT50b19oYXNfKGFsbF8p bWVtb3J5LCBhbmQgdGhlCisgICAgIGZsYXR0ZW5lZCB0YXJnZXQgZG9lc24n dCBpbmhlcml0IHRob3NlLiAgKi8KKworICBpZiAodGFyZ2V0X3JlYWQgKGN1 cnJlbnRfdGFyZ2V0LmJlbmVhdGgsIFRBUkdFVF9PQkpFQ1RfU1RBQ0tfTUVN T1JZLCBOVUxMLAorCQkgICBteWFkZHIsIG1lbWFkZHIsIGxlbikgPT0gbGVu KQorICAgIHJldHVybiAwOworICBlbHNlCisgICAgcmV0dXJuIEVJTzsKK30K KwogaW50CiB0YXJnZXRfd3JpdGVfbWVtb3J5IChDT1JFX0FERFIgbWVtYWRk ciwgY29uc3QgZ2RiX2J5dGUgKm15YWRkciwgaW50IGxlbikKIHsKZGlmZiAt LWdpdCBhL2dkYi90YXJnZXQuaCBiL2dkYi90YXJnZXQuaAppbmRleCAyNGM4 MDNjLi5mYzZiNTAzIDEwMDY0NAotLS0gYS9nZGIvdGFyZ2V0LmgKKysrIGIv Z2RiL3RhcmdldC5oCkBAIC0yMDIsNiArMjAyLDEwIEBAIGVudW0gdGFyZ2V0 X29iamVjdAogICAgICBUYXJnZXQgaW1wbGVtZW50YXRpb25zIG9mIHRvX3hm ZXJfcGFydGlhbCBuZXZlciBuZWVkIHRvIGhhbmRsZQogICAgICB0aGlzIG9i amVjdCwgYW5kIG1vc3QgY2FsbGVycyBzaG91bGQgbm90IHVzZSBpdC4gICov CiAgIFRBUkdFVF9PQkpFQ1RfUkFXX01FTU9SWSwKKyAgLyogTWVtb3J5IGtu b3duIHRvIGJlIHBhcnQgb2YgdGhlIHRhcmdldCdzIHN0YWNrLiBUaGlzIGlz IGNhY2hlZCBldmVuCisgICAgIGlmIGl0IGlzIG5vdCBpbiBhIHJlZ2lvbiBt YXJrZWQgYXMgc3VjaCwgc2luY2UgaXQgaXMga25vd24gdG8gYmUKKyAgICAg Im5vcm1hbCIgUkFNLiAqLworICBUQVJHRVRfT0JKRUNUX1NUQUNLX01FTU9S WSwKICAgLyogS2VybmVsIFVud2luZCBUYWJsZS4gIFNlZSAiaWE2NC10ZGVw LmMiLiAgKi8KICAgVEFSR0VUX09CSkVDVF9VTldJTkRfVEFCTEUsCiAgIC8q IFRyYW5zZmVyIGF1eGlsbGlhcnkgdmVjdG9yLiAgKi8KQEAgLTY2Nyw2ICs2 NzEsOCBAQCBleHRlcm4gaW50IHRhcmdldF9yZWFkX3N0cmluZyAoQ09SRV9B RERSLCBjaGFyICoqLCBpbnQsIGludCAqKTsKIAogZXh0ZXJuIGludCB0YXJn ZXRfcmVhZF9tZW1vcnkgKENPUkVfQUREUiBtZW1hZGRyLCBnZGJfYnl0ZSAq bXlhZGRyLCBpbnQgbGVuKTsKIAorZXh0ZXJuIGludCB0YXJnZXRfcmVhZF9z dGFjayAoQ09SRV9BRERSIG1lbWFkZHIsIGdkYl9ieXRlICpteWFkZHIsIGlu dCBsZW4pOworCiBleHRlcm4gaW50IHRhcmdldF93cml0ZV9tZW1vcnkgKENP UkVfQUREUiBtZW1hZGRyLCBjb25zdCBnZGJfYnl0ZSAqbXlhZGRyLAogCQkJ CWludCBsZW4pOwogCmRpZmYgLS1naXQgYS9nZGIvdGhyZWFkLmMgYi9nZGIv dGhyZWFkLmMKaW5kZXggYTdhYzNjOC4uMGFkM2VjNyAxMDA2NDQKLS0tIGEv Z2RiL3RocmVhZC5jCisrKyBiL2dkYi90aHJlYWQuYwpAQCAtODQ4LDYgKzg0 OCw5IEBAIHN3aXRjaF90b190aHJlYWQgKHB0aWRfdCBwdGlkKQogICBpZiAo cHRpZF9lcXVhbCAocHRpZCwgaW5mZXJpb3JfcHRpZCkpCiAgICAgcmV0dXJu OwogCisgIGlmIChwdGlkX2dldF9waWQgKHB0aWQpICE9IHB0aWRfZ2V0X3Bp ZCAoaW5mZXJpb3JfcHRpZCkpCisgICAgZGNhY2hlX2ludmFsaWRhdGUgKHRh cmdldF9kY2FjaGUpOworCiAgIGluZmVyaW9yX3B0aWQgPSBwdGlkOwogICBy ZWluaXRfZnJhbWVfY2FjaGUgKCk7CiAgIHJlZ2lzdGVyc19jaGFuZ2VkICgp OwpkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9wcy5jCmlu ZGV4IDJkMjBiNDEuLmM2NDU5OGMgMTAwNjQ0Ci0tLSBhL2dkYi92YWxvcHMu YworKysgYi9nZGIvdmFsb3BzLmMKQEAgLTU2NSw2ICs1NjUsMzIgQEAgdmFs dWVfb25lIChzdHJ1Y3QgdHlwZSAqdHlwZSwgZW51bSBsdmFsX3R5cGUgbHYp CiAgIHJldHVybiB2YWw7CiB9CiAKKy8qIEhlbHBlciBmdW5jdGlvbiBmb3Ig dmFsdWVfYXQsIHZhbHVlX2F0X2xhenksIGFuZCB2YWx1ZV9hdF9sYXp5X3N0 YWNrLiAgKi8KKworc3RhdGljIHN0cnVjdCB2YWx1ZSAqCitnZXRfdmFsdWVf YXQgKHN0cnVjdCB0eXBlICp0eXBlLCBDT1JFX0FERFIgYWRkciwgaW50IGxh enkpCit7CisgIHN0cnVjdCB2YWx1ZSAqdmFsOworCisgIGlmIChUWVBFX0NP REUgKGNoZWNrX3R5cGVkZWYgKHR5cGUpKSA9PSBUWVBFX0NPREVfVk9JRCkK KyAgICBlcnJvciAoXygiQXR0ZW1wdCB0byBkZXJlZmVyZW5jZSBhIGdlbmVy aWMgcG9pbnRlci4iKSk7CisKKyAgaWYgKGxhenkpCisgICAgeworICAgICAg dmFsID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAodHlwZSk7CisgICAgfQorICBl bHNlCisgICAgeworICAgICAgdmFsID0gYWxsb2NhdGVfdmFsdWUgKHR5cGUp OworICAgICAgcmVhZF9tZW1vcnkgKGFkZHIsIHZhbHVlX2NvbnRlbnRzX2Fs bF9yYXcgKHZhbCksIFRZUEVfTEVOR1RIICh0eXBlKSk7CisgICAgfQorCisg IFZBTFVFX0xWQUwgKHZhbCkgPSBsdmFsX21lbW9yeTsKKyAgc2V0X3ZhbHVl X2FkZHJlc3MgKHZhbCwgYWRkcik7CisKKyAgcmV0dXJuIHZhbDsKK30KKwog LyogUmV0dXJuIGEgdmFsdWUgd2l0aCB0eXBlIFRZUEUgbG9jYXRlZCBhdCBB RERSLgogCiAgICBDYWxsIHZhbHVlX2F0IG9ubHkgaWYgdGhlIGRhdGEgbmVl ZHMgdG8gYmUgZmV0Y2hlZCBpbW1lZGlhdGVseTsKQEAgLTU4MCwxOSArNjA2 LDcgQEAgdmFsdWVfb25lIChzdHJ1Y3QgdHlwZSAqdHlwZSwgZW51bSBsdmFs X3R5cGUgbHYpCiBzdHJ1Y3QgdmFsdWUgKgogdmFsdWVfYXQgKHN0cnVjdCB0 eXBlICp0eXBlLCBDT1JFX0FERFIgYWRkcikKIHsKLSAgc3RydWN0IHZhbHVl ICp2YWw7Ci0KLSAgaWYgKFRZUEVfQ09ERSAoY2hlY2tfdHlwZWRlZiAodHlw ZSkpID09IFRZUEVfQ09ERV9WT0lEKQotICAgIGVycm9yIChfKCJBdHRlbXB0 IHRvIGRlcmVmZXJlbmNlIGEgZ2VuZXJpYyBwb2ludGVyLiIpKTsKLQotICB2 YWwgPSBhbGxvY2F0ZV92YWx1ZSAodHlwZSk7Ci0KLSAgcmVhZF9tZW1vcnkg KGFkZHIsIHZhbHVlX2NvbnRlbnRzX2FsbF9yYXcgKHZhbCksIFRZUEVfTEVO R1RIICh0eXBlKSk7Ci0KLSAgVkFMVUVfTFZBTCAodmFsKSA9IGx2YWxfbWVt b3J5OwotICBzZXRfdmFsdWVfYWRkcmVzcyAodmFsLCBhZGRyKTsKLQotICBy ZXR1cm4gdmFsOworICByZXR1cm4gZ2V0X3ZhbHVlX2F0ICh0eXBlLCBhZGRy LCAwKTsKIH0KIAogLyogUmV0dXJuIGEgbGF6eSB2YWx1ZSB3aXRoIHR5cGUg VFlQRSBsb2NhdGVkIGF0IEFERFIgKGNmLiB2YWx1ZV9hdCkuICAqLwpAQCAt NjAwLDE3ICs2MTQsNyBAQCB2YWx1ZV9hdCAoc3RydWN0IHR5cGUgKnR5cGUs IENPUkVfQUREUiBhZGRyKQogc3RydWN0IHZhbHVlICoKIHZhbHVlX2F0X2xh enkgKHN0cnVjdCB0eXBlICp0eXBlLCBDT1JFX0FERFIgYWRkcikKIHsKLSAg c3RydWN0IHZhbHVlICp2YWw7Ci0KLSAgaWYgKFRZUEVfQ09ERSAoY2hlY2tf dHlwZWRlZiAodHlwZSkpID09IFRZUEVfQ09ERV9WT0lEKQotICAgIGVycm9y IChfKCJBdHRlbXB0IHRvIGRlcmVmZXJlbmNlIGEgZ2VuZXJpYyBwb2ludGVy LiIpKTsKLQotICB2YWwgPSBhbGxvY2F0ZV92YWx1ZV9sYXp5ICh0eXBlKTsK LQotICBWQUxVRV9MVkFMICh2YWwpID0gbHZhbF9tZW1vcnk7Ci0gIHNldF92 YWx1ZV9hZGRyZXNzICh2YWwsIGFkZHIpOwotCi0gIHJldHVybiB2YWw7Cisg IHJldHVybiBnZXRfdmFsdWVfYXQgKHR5cGUsIGFkZHIsIDEpOwogfQogCiAv KiBDYWxsZWQgb25seSBmcm9tIHRoZSB2YWx1ZV9jb250ZW50cyBhbmQgdmFs dWVfY29udGVudHNfYWxsKCkKQEAgLTYzNyw4ICs2NDEsMTIgQEAgdmFsdWVf ZmV0Y2hfbGF6eSAoc3RydWN0IHZhbHVlICp2YWwpCiAgICAgICBDT1JFX0FE RFIgYWRkciA9IHZhbHVlX2FkZHJlc3MgKHZhbCk7CiAgICAgICBpbnQgbGVu Z3RoID0gVFlQRV9MRU5HVEggKGNoZWNrX3R5cGVkZWYgKHZhbHVlX2VuY2xv c2luZ190eXBlICh2YWwpKSk7CiAKLSAgICAgIGlmIChsZW5ndGgpCi0JcmVh ZF9tZW1vcnkgKGFkZHIsIHZhbHVlX2NvbnRlbnRzX2FsbF9yYXcgKHZhbCks IGxlbmd0aCk7CisgICAgICBpZiAobGVuZ3RoKSB7CisJaWYgKHZhbHVlX3N0 YWNrICh2YWwpKQorCSAgcmVhZF9zdGFjayAoYWRkciwgdmFsdWVfY29udGVu dHNfYWxsX3JhdyAodmFsKSwgbGVuZ3RoKTsKKyAgICAgICAgZWxzZQorCSAg cmVhZF9tZW1vcnkgKGFkZHIsIHZhbHVlX2NvbnRlbnRzX2FsbF9yYXcgKHZh bCksIGxlbmd0aCk7CisgICAgICB9CiAgICAgfQogICBlbHNlIGlmIChWQUxV RV9MVkFMICh2YWwpID09IGx2YWxfcmVnaXN0ZXIpCiAgICAgewpkaWZmIC0t Z2l0IGEvZ2RiL3ZhbHVlLmMgYi9nZGIvdmFsdWUuYwppbmRleCBmZmZjMTgz Li5mZDBkZjAyIDEwMDY0NAotLS0gYS9nZGIvdmFsdWUuYworKysgYi9nZGIv dmFsdWUuYwpAQCAtMTkxLDYgKzE5MSwxMCBAQCBzdHJ1Y3QgdmFsdWUKICAg LyogSWYgdmFsdWUgaXMgYSB2YXJpYWJsZSwgaXMgaXQgaW5pdGlhbGl6ZWQg b3Igbm90LiAgKi8KICAgaW50IGluaXRpYWxpemVkOwogCisgIC8qIElmIHZh bHVlIGlzIGZyb20gdGhlIHN0YWNrLiBJZiB0aGlzIGlzIHNldCwgcmVhZF9z dGFjayB3aWxsIGJlCisgICAgIHVzZWQgaW5zdGVhZCBvZiByZWFkX21lbW9y eSB0byBlbmFibGUgZXh0cmEgY2FjaGluZy4gKi8KKyAgaW50IHN0YWNrOwor CiAgIC8qIEFjdHVhbCBjb250ZW50cyBvZiB0aGUgdmFsdWUuICBUYXJnZXQg Ynl0ZS1vcmRlci4gIE5VTEwgb3Igbm90CiAgICAgIHZhbGlkIGlmIGxhenkg aXMgbm9uemVyby4gICovCiAgIGdkYl9ieXRlICpjb250ZW50czsKQEAgLTQy Nyw2ICs0MzEsMTggQEAgc2V0X3ZhbHVlX2xhenkgKHN0cnVjdCB2YWx1ZSAq dmFsdWUsIGludCB2YWwpCiAgIHZhbHVlLT5sYXp5ID0gdmFsOwogfQogCitp bnQKK3ZhbHVlX3N0YWNrIChzdHJ1Y3QgdmFsdWUgKnZhbHVlKQoreworICBy ZXR1cm4gdmFsdWUtPnN0YWNrOworfQorCit2b2lkCitzZXRfdmFsdWVfc3Rh Y2sgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2YWwpCit7CisgIHZhbHVl LT5zdGFjayA9IHZhbDsKK30KKwogY29uc3QgZ2RiX2J5dGUgKgogdmFsdWVf Y29udGVudHMgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpCiB7CmRpZmYgLS1naXQg YS9nZGIvdmFsdWUuaCBiL2dkYi92YWx1ZS5oCmluZGV4IGQ4MTYxNTYuLjky NTk3NjggMTAwNjQ0Ci0tLSBhL2dkYi92YWx1ZS5oCisrKyBiL2dkYi92YWx1 ZS5oCkBAIC0yMTQsNiArMjE0LDkgQEAgZXh0ZXJuIHZvaWQgKnZhbHVlX2Nv bXB1dGVkX2Nsb3N1cmUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpOwogZXh0ZXJu IGludCB2YWx1ZV9sYXp5IChzdHJ1Y3QgdmFsdWUgKik7CiBleHRlcm4gdm9p ZCBzZXRfdmFsdWVfbGF6eSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IHZh bCk7CiAKK2V4dGVybiBpbnQgdmFsdWVfc3RhY2sgKHN0cnVjdCB2YWx1ZSAq KTsKK2V4dGVybiB2b2lkIHNldF92YWx1ZV9zdGFjayAoc3RydWN0IHZhbHVl ICp2YWx1ZSwgaW50IHZhbCk7CisKIC8qIHZhbHVlX2NvbnRlbnRzKCkgYW5k IHZhbHVlX2NvbnRlbnRzX3JhdygpIGJvdGggcmV0dXJuIHRoZSBhZGRyZXNz CiAgICBvZiB0aGUgZ2RiIGJ1ZmZlciB1c2VkIHRvIGhvbGQgYSBjb3B5IG9m IHRoZSBjb250ZW50cyBvZiB0aGUgbHZhbC4KICAgIHZhbHVlX2NvbnRlbnRz KCkgaXMgdXNlZCB3aGVuIHRoZSBjb250ZW50cyBvZiB0aGUgYnVmZmVyIGFy ZSBuZWVkZWQK --0016364d2933c883c1046e374be5--