From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31155 invoked by alias); 13 Jul 2009 18:16:57 -0000 Received: (qmail 31136 invoked by uid 22791); 13 Jul 2009 18:16:54 -0000 X-SWARE-Spam-Status: No, hits=-0.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_37,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; Mon, 13 Jul 2009 18:16:45 +0000 Received: from zps36.corp.google.com (zps36.corp.google.com [172.25.146.36]) by smtp-out.google.com with ESMTP id n6DIGgOb008116 for ; Mon, 13 Jul 2009 11:16:42 -0700 Received: from bwz17 (bwz17.prod.google.com [10.188.26.17]) by zps36.corp.google.com with ESMTP id n6DIGB6W009435 for ; Mon, 13 Jul 2009 11:16:40 -0700 Received: by bwz17 with SMTP id 17so455879bwz.45 for ; Mon, 13 Jul 2009 11:16:39 -0700 (PDT) MIME-Version: 1.0 Received: by 10.204.112.16 with SMTP id u16mr5481237bkp.121.1247508999401; Mon, 13 Jul 2009 11:16:39 -0700 (PDT) In-Reply-To: <200907101033.29377.pedro@codesourcery.com> References: <7e6c8d660907081308r13bff580rdcf4822c77df8403@mail.gmail.com> <20090708205140.GA2926@caradoc.them.org> <7e6c8d660907091659l7db08484xf3aa6bb3f33f1a5e@mail.gmail.com> <200907101033.29377.pedro@codesourcery.com> Date: Mon, 13 Jul 2009 19:25:00 -0000 Message-ID: <7e6c8d660907131116k4474493ye66609050251f669@mail.gmail.com> Subject: Re: [RFA] Use data cache for stack accesses From: Jacob Potter To: gdb-patches@sourceware.org Cc: Pedro Alves Content-Type: multipart/mixed; boundary=00504502cfafc374f6046e9a5222 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/msg00364.txt.bz2 --00504502cfafc374f6046e9a5222 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 476 On Fri, Jul 10, 2009 at 2:33 AM, Pedro Alves wrote: > You can't do that unconditionaly. =A0struct inferior's are mostly a > process_stratum and inferior control entity: it is an internal error to > call it when there's no current inferior (but note that it is still valid > to read memory from the executable). OK, how's this look? I've: - moved target_dcache to be in struct inferior - added documentation on the flag changes to gdb.texinfo - Jacob --00504502cfafc374f6046e9a5222 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_fx3imz5t0 Content-length: 28825 ZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKaW5kZXggYjQ0NGY3 NC4uYjcwYmNjOSAxMDA2NDQKLS0tIGEvZ2RiL05FV1MKKysrIGIvZ2RiL05F V1MKQEAgLTM0NSw2ICszNDUsMTIgQEAgc2hvdyBzY2hlZHVsZS1tdWx0aXBs 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 L2RjYWNoZS5jIGIvZ2RiL2RjYWNoZS5jCmluZGV4IDA2OTU2Y2IuLmNmNTMx ZGYgMTAwNjQ0Ci0tLSBhL2dkYi9kY2FjaGUuYworKysgYi9nZGIvZGNhY2hl LmMKQEAgLTExNiwxNSArMTE2LDIzIEBAIHN0YXRpYyB2b2lkIGRjYWNoZV9p bmZvIChjaGFyICpleHAsIGludCB0dHkpOwogCiB2b2lkIF9pbml0aWFsaXpl X2RjYWNoZSAodm9pZCk7CiAKLXN0YXRpYyBpbnQgZGNhY2hlX2VuYWJsZWRf cCA9IDA7CitpbnQgZGNhY2hlX3N0YWNrX2VuYWJsZWRfcCA9IDE7CisKK2lu dCByZW1vdGVjYWNoZV9lbmFibGVkX3AgPSAwOwkJLyogT0JTT0xFVEUgKi8K IAogc3RhdGljIHZvaWQKIHNob3dfZGNhY2hlX2VuYWJsZWRfcCAoc3RydWN0 IHVpX2ZpbGUgKmZpbGUsIGludCBmcm9tX3R0eSwKIAkJICAgICAgIHN0cnVj dCBjbWRfbGlzdF9lbGVtZW50ICpjLCBjb25zdCBjaGFyICp2YWx1ZSkKIHsK LSAgZnByaW50Zl9maWx0ZXJlZCAoZmlsZSwgXygiQ2FjaGUgdXNlIGZvciBy ZW1vdGUgdGFyZ2V0cyBpcyAlcy5cbiIpLCB2YWx1ZSk7CisgIGZwcmludGZf ZmlsdGVyZWQgKGZpbGUsIF8oIkNhY2hlIHVzZSBmb3Igc3RhY2sgYWNjZXNz ZXMgaXMgJXMuXG4iKSwgdmFsdWUpOwogfQogCitzdGF0aWMgdm9pZAorc2hv d19yZW1vdGVjYWNoZV9lbmFibGVkX3AgKHN0cnVjdCB1aV9maWxlICpmaWxl LCBpbnQgZnJvbV90dHksCisJCSAgICAgICBzdHJ1Y3QgY21kX2xpc3RfZWxl bWVudCAqYywgY29uc3QgY2hhciAqdmFsdWUpCit7CisgIGZwcmludGZfZmls dGVyZWQgKGZpbGUsIF8oIkRlcHJlY2F0ZWQgcmVtb3RlY2FjaGUgZmxhZyBp cyAlcy5cbiIpLCB2YWx1ZSk7Cit9CiAKIERDQUNIRSAqbGFzdF9jYWNoZTsJ CS8qIFVzZWQgYnkgaW5mbyBkY2FjaGUgKi8KIApAQCAtMTM1LDYgKzE0Myw4 IEBAIGRjYWNoZV9pbnZhbGlkYXRlIChEQ0FDSEUgKmRjYWNoZSkKIHsKICAg c3RydWN0IGRjYWNoZV9ibG9jayAqYmxvY2ssICpuZXh0OwogCisgIGlmICgh ZGNhY2hlKSByZXR1cm47CisKICAgYmxvY2sgPSBkY2FjaGUtPm9sZGVzdDsK IAogICB3aGlsZSAoYmxvY2spCkBAIC0xNTksMTMgKzE2OSwxNyBAQCBkY2Fj aGVfaW52YWxpZGF0ZSAoRENBQ0hFICpkY2FjaGUpCiBzdGF0aWMgc3RydWN0 IGRjYWNoZV9ibG9jayAqCiBkY2FjaGVfaGl0IChEQ0FDSEUgKmRjYWNoZSwg Q09SRV9BRERSIGFkZHIpCiB7CisgIHN0cnVjdCBkY2FjaGVfYmxvY2sgKmRi OworCiAgIHNwbGF5X3RyZWVfbm9kZSBub2RlID0gc3BsYXlfdHJlZV9sb29r dXAgKGRjYWNoZS0+dHJlZSwKIAkJCQkJICAgIChzcGxheV90cmVlX2tleSkg TUFTSyhhZGRyKSk7CiAKLSAgaWYgKG5vZGUpCi0gICAgcmV0dXJuIChzdHJ1 Y3QgZGNhY2hlX2Jsb2NrICopIG5vZGUtPnZhbHVlOwotICBlbHNlCisgIGlm ICghbm9kZSkKICAgICByZXR1cm4gTlVMTDsKKworICBkYiA9IChzdHJ1Y3Qg ZGNhY2hlX2Jsb2NrICopIG5vZGUtPnZhbHVlOworICBkYi0+cmVmcysrOwor ICByZXR1cm4gZGI7CiB9CiAKIApAQCAtNTA2LDIwICs1MjAsMzMgQEAgZGNh Y2hlX2luZm8gKGNoYXIgKmV4cCwgaW50IHR0eSkKIHZvaWQKIF9pbml0aWFs aXplX2RjYWNoZSAodm9pZCkKIHsKLSAgYWRkX3NldHNob3dfYm9vbGVhbl9j bWQgKCJyZW1vdGVjYWNoZSIsIGNsYXNzX3N1cHBvcnQsCi0JCQkgICAmZGNh Y2hlX2VuYWJsZWRfcCwgXygiXAotU2V0IGNhY2hlIHVzZSBmb3IgcmVtb3Rl IHRhcmdldHMuIiksIF8oIlwKLVNob3cgY2FjaGUgdXNlIGZvciByZW1vdGUg dGFyZ2V0cy4iKSwgXygiXAotV2hlbiBvbiwgdXNlIGRhdGEgY2FjaGluZyBm b3IgcmVtb3RlIHRhcmdldHMuICBGb3IgbWFueSByZW1vdGUgdGFyZ2V0c1xu XAotdGhpcyBvcHRpb24gY2FuIG9mZmVyIGJldHRlciB0aHJvdWdocHV0IGZv ciByZWFkaW5nIHRhcmdldCBtZW1vcnkuXG5cCi1VbmZvcnR1bmF0ZWx5LCBn ZGIgZG9lcyBub3QgY3VycmVudGx5IGtub3cgYW55dGhpbmcgYWJvdXQgdm9s YXRpbGVcblwKLXJlZ2lzdGVycyBhbmQgdGh1cyBkYXRhIGNhY2hpbmcgd2ls bCBwcm9kdWNlIGluY29ycmVjdCByZXN1bHRzIHdpdGhcblwKLXZvbGF0aWxl IHJlZ2lzdGVycyBhcmUgaW4gdXNlLiAgQnkgZGVmYXVsdCwgdGhpcyBvcHRp b24gaXMgb2ZmLiIpLAorICBhZGRfc2V0c2hvd19ib29sZWFuX2NtZCAoInN0 YWNrY2FjaGUiLCBjbGFzc19zdXBwb3J0LAorCQkJICAgJmRjYWNoZV9zdGFj a19lbmFibGVkX3AsIF8oIlwKK1NldCBjYWNoZSB1c2UgZm9yIHN0YWNrIGFj Y2Vzcy4iKSwgXygiXAorU2hvdyBjYWNoZSB1c2UgZm9yIHN0YWNrIGFjY2Vz cy4iKSwgXygiXAorV2hlbiBvbiwgdXNlIHRoZSBkYXRhIGNhY2hlIGZvciBh bGwgc3RhY2sgYWNjZXNzLCByZWdhcmRsZXNzIG9mIGFueVxuXAorY29uZmln dXJlZCBtZW1vcnkgcmVnaW9ucy4gIFRoaXMgaW1wcm92ZXMgcmVtb3RlIHBl cmZvcm1hbmNlIHNpZ25pZmljYW50bHkuXG5cCitCeSBkZWZhdWx0LCBjYWNo aW5nIGZvciBzdGFjayBhY2Nlc3MgaXMgb24uIiksCiAJCQkgICBOVUxMLAog CQkJICAgc2hvd19kY2FjaGVfZW5hYmxlZF9wLAogCQkJICAgJnNldGxpc3Qs ICZzaG93bGlzdCk7CiAKKyAgYWRkX3NldHNob3dfYm9vbGVhbl9jbWQgKCJy ZW1vdGVjYWNoZSIsIGNsYXNzX3N1cHBvcnQsCisJCQkgICAmcmVtb3RlY2Fj aGVfZW5hYmxlZF9wLCBfKCJcCitTZXQgcmVtb3RlY2FjaGUgZmxhZy4iKSwg XygiXAorU2hvdyByZW1vdGVjYWNoZSBmbGFnLiIpLCBfKCJcCitUaGlzIHVz ZWQgdG8gZW5hYmxlIHRoZSBkYXRhIGNhY2hlIGZvciByZW1vdGUgdGFyZ2V0 cy4gIFRoZSBjYWNoZVxuXAorZnVuY3Rpb25hbGl0eSBpcyBub3cgY29udHJv bGxlZCBieSB0aGUgbWVtb3J5IHJlZ2lvbiBzeXN0ZW0gYW5kIHRoZVxuXAor XCJzdGFja2NhY2hlXCIgZmxhZzsgXCJyZW1vdGVjYWNoZVwiIG5vdyBkb2Vz IG5vdGhpbmcgYW5kIGV4aXN0cyBvbmx5XG5cCitmb3IgY29tcGF0aWJpbGl0 eSByZWFzb25zLiIpLAorCQkJICAgTlVMTCwKKwkJCSAgIHNob3dfcmVtb3Rl Y2FjaGVfZW5hYmxlZF9wLAorCQkJICAgJnNldGxpc3QsICZzaG93bGlzdCk7 CisKICAgYWRkX2luZm8gKCJkY2FjaGUiLCBkY2FjaGVfaW5mbywKIAkgICAg XygiXAotUHJpbnQgaW5mb3JtYXRpb24gb24gdGhlIGRjYWNoZSBwZXJmb3Jt YW5jZS4iKSk7CitQcmludCBpbmZvcm1hdGlvbiBvbiB0aGUgZGNhY2hlIHBl cmZvcm1hbmNlLlxuXAorV2l0aCBubyBhcmd1bWVudHMsIHRoaXMgY29tbWFu ZCBwcmludHMgdGhlIGNhY2hlIGNvbmZpZ3VyYXRpb24gYW5kIGFcblwKK3N1 bW1hcnkgb2YgZWFjaCBsaW5lIGluIHRoZSBjYWNoZS4gIFVzZSBcImluZm8g ZGNhY2hlIDxsaW5lbm8+IHRvIGR1bXBcIlxuXAordGhlIGNvbnRlbnRzIG9m IGEgZ2l2ZW4gbGluZS4iKSk7CiB9CmRpZmYgLS1naXQgYS9nZGIvZG9jL2dk Yi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwppbmRleCBmYzVlNjBm Li42MjgwZTk3IDEwMDY0NAotLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCisr KyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KQEAgLTgzOTcsMzIgKzgzOTcsNDcg QEAgY2hhcmFjdGVyLgogQHNlY3Rpb24gQ2FjaGluZyBEYXRhIG9mIFJlbW90 ZSBUYXJnZXRzCiBAY2luZGV4IGNhY2hpbmcgZGF0YSBvZiByZW1vdGUgdGFy Z2V0cwogCi1AdmFsdWV7R0RCTn0gY2FuIGNhY2hlIGRhdGEgZXhjaGFuZ2Vk IGJldHdlZW4gdGhlIGRlYnVnZ2VyIGFuZCBhCitAdmFsdWV7R0RCTn0gY2Fj aGVzIGRhdGEgZXhjaGFuZ2VkIGJldHdlZW4gdGhlIGRlYnVnZ2VyIGFuZCBh CiByZW1vdGUgdGFyZ2V0IChAcHhyZWZ7UmVtb3RlIERlYnVnZ2luZ30pLiAg U3VjaCBjYWNoaW5nIGdlbmVyYWxseSBpbXByb3ZlcwogcGVyZm9ybWFuY2Us IGJlY2F1c2UgaXQgcmVkdWNlcyB0aGUgb3ZlcmhlYWQgb2YgdGhlIHJlbW90 ZSBwcm90b2NvbCBieQotYnVuZGxpbmcgbWVtb3J5IHJlYWRzIGFuZCB3cml0 ZXMgaW50byBsYXJnZSBjaHVua3MuICBVbmZvcnR1bmF0ZWx5LAotQHZhbHVl e0dEQk59IGRvZXMgbm90IGN1cnJlbnRseSBrbm93IGFueXRoaW5nIGFib3V0 IHZvbGF0aWxlCi1yZWdpc3RlcnMsIGFuZCB0aHVzIGRhdGEgY2FjaGluZyB3 aWxsIHByb2R1Y2UgaW5jb3JyZWN0IHJlc3VsdHMgd2hlbgotdm9sYXRpbGUg cmVnaXN0ZXJzIGFyZSBpbiB1c2UuCitidW5kbGluZyBtZW1vcnkgcmVhZHMg YW5kIHdyaXRlcyBpbnRvIGxhcmdlIGNodW5rcy4gIFVuZm9ydHVuYXRlbHks IHNpbXBseQorY2FjaGluZyBldmVyeXRoaW5nIHdvdWxkIGxlYWQgdG8gaW5j b3JyZWN0IHJlc3VsdHMsIHNpbmNlIEB2YWx1ZXtHREJOfSAKK2RvZXMgbm90 IG5lY2Vzc2FyaWx5IGtub3cgYW55dGhpbmcgYWJvdXQgdm9sYXRpbGUgdmFs dWVzLCBtZW1vcnktbWFwcGVkIEkvTworYWRkcmVzc2VzLCBldGMuICBUaGVy ZWZvcmUsIGJ5IGRlZmF1bHQsIEB2YWx1ZXtHREJOfSBvbmx5IGNhY2hlcyBk YXRhCitrbm93biB0byBiZSBvbiB0aGUgc3RhY2suICBPdGhlciByZWdpb25z IG9mIG1lbW9yeSBjYW4gYmUgZXhwbGljaXRseSBtYXJrZWQKK2NhY2hlYWJs ZTsgc2VlIEBweHJlZntNZW1vcnkgUmVnaW9uIEF0dHJpYnV0ZXN9LgogCiBA dGFibGUgQGNvZGUKIEBraW5kZXggc2V0IHJlbW90ZWNhY2hlCiBAaXRlbSBz ZXQgcmVtb3RlY2FjaGUgb24KIEBpdGVteCBzZXQgcmVtb3RlY2FjaGUgb2Zm Ci1TZXQgY2FjaGluZyBzdGF0ZSBmb3IgcmVtb3RlIHRhcmdldHMuICBXaGVu IEBjb2Rle09OfSwgdXNlIGRhdGEKLWNhY2hpbmcuICBCeSBkZWZhdWx0LCB0 aGlzIG9wdGlvbiBpcyBAY29kZXtPRkZ9LgorVGhpcyBvcHRpb24gbm8gbG9u Z2VyIGRvZXMgYW55dGhpbmc7IGl0IGV4aXN0cyBmb3IgY29tcGF0aWJpbGl0 eQord2l0aCBvbGQgc2NyaXB0cy4KIAogQGtpbmRleCBzaG93IHJlbW90ZWNh Y2hlCiBAaXRlbSBzaG93IHJlbW90ZWNhY2hlCi1TaG93IHRoZSBjdXJyZW50 IHN0YXRlIG9mIGRhdGEgY2FjaGluZyBmb3IgcmVtb3RlIHRhcmdldHMuCitT aG93IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBvYnNvbGV0ZSByZW1vdGVj YWNoZSBmbGFnLgorCitAa2luZGV4IHNldCBzdGFja2NhY2hlCitAaXRlbSBz ZXQgc3RhY2tjYWNoZSBvbgorQGl0ZW14IHNldCBzdGFja2NhY2hlIG9mZgor RW5hYmxlIG9yIGRpYWJsZSBjYWNoaW5nIG9mIHN0YWNrIGFjY2Vzc2VzLiAg V2hlbiBAY29kZXtPTn0sIHVzZQorY2FjaGluZy4gIEJ5IGRlZmF1bHQsIHRo aXMgb3B0aW9uIGlzIEBjb2Rle09OfS4KKworQGtpbmRleCBzaG93IHJlbW90 ZWNhY2hlCitAaXRlbSBzaG93IHJlbW90ZWNhY2hlCitTaG93IHRoZSBjdXJy ZW50IHN0YXRlIG9mIGRhdGEgY2FjaGluZyBmb3Igc3RhY2sgYWNjZXNzZXMu CiAKIEBraW5kZXggaW5mbyBkY2FjaGUKLUBpdGVtIGluZm8gZGNhY2hlCitA aXRlbSBpbmZvIGRjYWNoZSBAcntbfWxpbmVAcntdfQogUHJpbnQgdGhlIGlu Zm9ybWF0aW9uIGFib3V0IHRoZSBkYXRhIGNhY2hlIHBlcmZvcm1hbmNlLiAg VGhlCi1pbmZvcm1hdGlvbiBkaXNwbGF5ZWQgaW5jbHVkZXM6IHRoZSBkY2Fj aGUgd2lkdGggYW5kIGRlcHRoOyBhbmQgZm9yCi1lYWNoIGNhY2hlIGxpbmUs IGhvdyBtYW55IHRpbWVzIGl0IHdhcyByZWZlcmVuY2VkLCBhbmQgaXRzIGRh dGEgYW5kCi1zdGF0ZSAoaW52YWxpZCwgZGlydHksIHZhbGlkKS4gIFRoaXMg Y29tbWFuZCBpcyB1c2VmdWwgZm9yIGRlYnVnZ2luZwotdGhlIGRhdGEgY2Fj aGUgb3BlcmF0aW9uLgoraW5mb3JtYXRpb24gZGlzcGxheWVkIGluY2x1ZGVz IHRoZSBkY2FjaGUgd2lkdGggYW5kIGRlcHRoLCBhbmQgZm9yCitlYWNoIGNh Y2hlIGxpbmUsIGl0cyBudW1iZXIsIGFkZHJlc3MsIGFuZCBob3cgbWFueSB0 aW1lcyBpdCB3YXMKK3JlZmVyZW5jZWQuICBUaGlzIGNvbW1hbmQgaXMgdXNl ZnVsIGZvciBkZWJ1Z2dpbmcgdGhlIGRhdGEgY2FjaGUKK29wZXJhdGlvbi4K KworSWYgYSBsaW5lIG51bWJlciBpcyBzcGVjaWZpZWQsIHRoZSBjb250ZW50 cyBvZiB0aGF0IGxpbmUgd2lsbCBiZQorcHJpbnRlZCBpbiBoZXguCiBAZW5k IHRhYmxlCiAKIEBub2RlIFNlYXJjaGluZyBNZW1vcnkKZGlmZiAtLWdpdCBh L2dkYi9kd2FyZjJsb2MuYyBiL2dkYi9kd2FyZjJsb2MuYwppbmRleCBiMTYz MjMxLi5kYThmNTNjIDEwMDY0NAotLS0gYS9nZGIvZHdhcmYybG9jLmMKKysr IGIvZ2RiL2R3YXJmMmxvYy5jCkBAIC0yNzEsNiArMjcxLDcgQEAgZHdhcmYy X2V2YWx1YXRlX2xvY19kZXNjIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVj dCBmcmFtZV9pbmZvICpmcmFtZSwKICAgICAgIHJldHZhbCA9IGFsbG9jYXRl X3ZhbHVlIChTWU1CT0xfVFlQRSAodmFyKSk7CiAgICAgICBWQUxVRV9MVkFM IChyZXR2YWwpID0gbHZhbF9tZW1vcnk7CiAgICAgICBzZXRfdmFsdWVfbGF6 eSAocmV0dmFsLCAxKTsKKyAgICAgIHNldF92YWx1ZV9zdGFjayAocmV0dmFs LCAxKTsKICAgICAgIHNldF92YWx1ZV9hZGRyZXNzIChyZXR2YWwsIGFkZHJl c3MpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvZ2RiL2ZyYW1lLXVud2luZC5j IGIvZ2RiL2ZyYW1lLXVud2luZC5jCmluZGV4IDIzOGM2YTEuLmYwYzJhNjQg MTAwNjQ0Ci0tLSBhL2dkYi9mcmFtZS11bndpbmQuYworKysgYi9nZGIvZnJh bWUtdW53aW5kLmMKQEAgLTE1Myw4ICsxNTMsMTAgQEAgc3RydWN0IHZhbHVl ICoKIGZyYW1lX3Vud2luZF9nb3RfbWVtb3J5IChzdHJ1Y3QgZnJhbWVfaW5m byAqZnJhbWUsIGludCByZWdudW0sIENPUkVfQUREUiBhZGRyKQogewogICBz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGZyYW1lX3Vud2luZF9hcmNoIChm cmFtZSk7CisgIHN0cnVjdCB2YWx1ZSAqdiA9IHZhbHVlX2F0X2xhenkgKHJl Z2lzdGVyX3R5cGUgKGdkYmFyY2gsIHJlZ251bSksIGFkZHIpOwogCi0gIHJl dHVybiB2YWx1ZV9hdF9sYXp5IChyZWdpc3Rlcl90eXBlIChnZGJhcmNoLCBy ZWdudW0pLCBhZGRyKTsKKyAgc2V0X3ZhbHVlX3N0YWNrICh2LCAxKTsKKyAg cmV0dXJuIHY7CiB9CiAKIC8qIFJldHVybiBhIHZhbHVlIHdoaWNoIGluZGlj YXRlcyB0aGF0IEZSQU1FJ3Mgc2F2ZWQgdmVyc2lvbiBvZgpkaWZmIC0tZ2l0 IGEvZ2RiL2dkYmNvcmUuaCBiL2dkYi9nZGJjb3JlLmgKaW5kZXggZTMzOWMw Yi4uN2E3ZGNiMiAxMDA2NDQKLS0tIGEvZ2RiL2dkYmNvcmUuaAorKysgYi9n ZGIvZ2RiY29yZS5oCkBAIC00Nyw2ICs0NywxMCBAQCBleHRlcm4gdm9pZCBt ZW1vcnlfZXJyb3IgKGludCBzdGF0dXMsIENPUkVfQUREUiBtZW1hZGRyKTsK IAogZXh0ZXJuIHZvaWQgcmVhZF9tZW1vcnkgKENPUkVfQUREUiBtZW1hZGRy LCBnZGJfYnl0ZSAqbXlhZGRyLCBpbnQgbGVuKTsKIAorLyogTGlrZSB0YXJn ZXRfcmVhZF9zdGFjaywgYnV0IHJlcG9ydCBhbiBlcnJvciBpZiBjYW4ndCBy ZWFkLiAgKi8KKworZXh0ZXJuIHZvaWQgcmVhZF9zdGFjayAoQ09SRV9BRERS IG1lbWFkZHIsIGdkYl9ieXRlICpteWFkZHIsIGludCBsZW4pOworCiAvKiBS ZWFkIGFuIGludGVnZXIgZnJvbSBkZWJ1Z2dlZCBtZW1vcnksIGdpdmVuIGFk ZHJlc3MgYW5kIG51bWJlciBvZgogICAgYnl0ZXMuICAqLwogCmRpZmYgLS1n aXQgYS9nZGIvaW5mZXJpb3IuYyBiL2dkYi9pbmZlcmlvci5jCmluZGV4IDQz ZWFjZGEuLjhiMDk2NGMgMTAwNjQ0Ci0tLSBhL2dkYi9pbmZlcmlvci5jCisr KyBiL2dkYi9pbmZlcmlvci5jCkBAIC00OSw2ICs0OSw3IEBAIGZyZWVfaW5m ZXJpb3IgKHN0cnVjdCBpbmZlcmlvciAqaW5mKQogewogICBkaXNjYXJkX2Fs bF9pbmZlcmlvcl9jb250aW51YXRpb25zIChpbmYpOwogICB4ZnJlZSAoaW5m LT5wcml2YXRlKTsKKyAgZGNhY2hlX2ZyZWUgKGluZi0+ZGNhY2hlKTsKICAg eGZyZWUgKGluZik7CiB9CiAKQEAgLTg1LDYgKzg2LDggQEAgYWRkX2luZmVy aW9yX3NpbGVudCAoaW50IHBpZCkKICAgaW5mLT5uZXh0ID0gaW5mZXJpb3Jf bGlzdDsKICAgaW5mZXJpb3JfbGlzdCA9IGluZjsKIAorICBpbmYtPmRjYWNo ZSA9IGRjYWNoZV9pbml0ICgpOworCiAgIG9ic2VydmVyX25vdGlmeV9uZXdf aW5mZXJpb3IgKHBpZCk7CiAKICAgcmV0dXJuIGluZjsKQEAgLTI4NSw2ICsy ODgsMTQgQEAgaGF2ZV9pbmZlcmlvcnMgKHZvaWQpCiAgIHJldHVybiBpbmZl cmlvcl9saXN0ICE9IE5VTEw7CiB9CiAKK3ZvaWQKK2ludmFsaWRhdGVfaW5m ZXJpb3JfZGNhY2hlICh2b2lkKQoreworICBzdHJ1Y3QgaW5mZXJpb3IgKmlu ZiA9IGZpbmRfaW5mZXJpb3JfcGlkIChwdGlkX2dldF9waWQgKGluZmVyaW9y X3B0aWQpKTsKKyAgaWYgKCFpbmYpIHJldHVybjsKKyAgZGNhY2hlX2ludmFs aWRhdGUgKGluZi0+ZGNhY2hlKTsKK30KKwogaW50CiBoYXZlX2xpdmVfaW5m ZXJpb3JzICh2b2lkKQogewpkaWZmIC0tZ2l0IGEvZ2RiL2luZmVyaW9yLmgg Yi9nZGIvaW5mZXJpb3IuaAppbmRleCA3MzEyZTUxLi5mMzY5MGI2IDEwMDY0 NAotLS0gYS9nZGIvaW5mZXJpb3IuaAorKysgYi9nZGIvaW5mZXJpb3IuaApA QCAtNDIzLDYgKzQyMyw5IEBAIHN0cnVjdCBpbmZlcmlvcgogICAvKiBUZXJt aW5hbCBpbmZvIGFuZCBzdGF0ZSBtYW5hZ2VkIGJ5IGluZmxvdy5jLiAgKi8K ICAgc3RydWN0IHRlcm1pbmFsX2luZm8gKnRlcm1pbmFsX2luZm87CiAKKyAg LyogRGF0YSBjYWNoZSB1c2VkIGJ5IGRjYWNoZS5jLiAgKi8KKyAgRENBQ0hF ICpkY2FjaGU7CisKICAgLyogUHJpdmF0ZSBkYXRhIHVzZWQgYnkgdGhlIHRh cmdldCB2ZWN0b3IgaW1wbGVtZW50YXRpb24uICAqLwogICBzdHJ1Y3QgcHJp dmF0ZV9pbmZlcmlvciAqcHJpdmF0ZTsKIH07CkBAIC00OTQsNiArNDk3LDEw IEBAIGV4dGVybiB2b2lkIHByaW50X2luZmVyaW9yIChzdHJ1Y3QgdWlfb3V0 ICp1aW91dCwgaW50IHJlcXVlc3RlZF9pbmZlcmlvcik7CiAvKiBSZXR1cm5z IHRydWUgaWYgdGhlIGluZmVyaW9yIGxpc3QgaXMgbm90IGVtcHR5LiAgKi8K IGV4dGVybiBpbnQgaGF2ZV9pbmZlcmlvcnMgKHZvaWQpOwogCisvKiBJZiB0 aGVyZSBpcyBhbiBhY3RpdmUgaW5mZXJpb3IsIGludmFsaWRhdGUgaXRzIGRj YWNoZS4gIElmIG5vdCwKKyAgIGRvIG5vdGhpbmcuICAqLworZXh0ZXJuIHZv aWQgaW52YWxpZGF0ZV9pbmZlcmlvcl9kY2FjaGUgKHZvaWQpOworCiAvKiBS ZXR1cm5zIHRydWUgaWYgdGhlcmUgYXJlIGFueSBsaXZlIGluZmVyaW9ycyBp biB0aGUgaW5mZXJpb3IgbGlzdAogICAgKG5vdCBjb3Jlcywgbm90IGV4ZWN1 dGFibGVzLCByZWFsIGxpdmUgcHJvY2Vzc2VzKS4gICovCiBleHRlcm4gaW50 IGhhdmVfbGl2ZV9pbmZlcmlvcnMgKHZvaWQpOwpkaWZmIC0tZ2l0IGEvZ2Ri L21lbWF0dHIuYyBiL2dkYi9tZW1hdHRyLmMKaW5kZXggMzU2YjRkNi4uNTAz MGUwNiAxMDA2NDQKLS0tIGEvZ2RiL21lbWF0dHIuYworKysgYi9nZGIvbWVt YXR0ci5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAibGFuZ3VhZ2Uu aCIKICNpbmNsdWRlICJ2ZWMuaCIKICNpbmNsdWRlICJnZGJfc3RyaW5nLmgi CisjaW5jbHVkZSAiaW5mZXJpb3IuaCIKIAogY29uc3Qgc3RydWN0IG1lbV9h dHRyaWIgZGVmYXVsdF9tZW1fYXR0cmliID0KIHsKQEAgLTU3MSw3ICs1NzIs NyBAQCBtZW1fZW5hYmxlX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGludCBmcm9t X3R0eSkKIAogICByZXF1aXJlX3VzZXJfcmVnaW9ucyAoZnJvbV90dHkpOwog Ci0gIGRjYWNoZV9pbnZhbGlkYXRlICh0YXJnZXRfZGNhY2hlKTsKKyAgaW52 YWxpZGF0ZV9pbmZlcmlvcl9kY2FjaGUgKCk7CiAKICAgaWYgKHAgPT0gMCkK ICAgICB7CkBAIC02MjUsNyArNjI2LDcgQEAgbWVtX2Rpc2FibGVfY29tbWFu ZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQogCiAgIHJlcXVpcmVfdXNl cl9yZWdpb25zIChmcm9tX3R0eSk7CiAKLSAgZGNhY2hlX2ludmFsaWRhdGUg KHRhcmdldF9kY2FjaGUpOworICBpbnZhbGlkYXRlX2luZmVyaW9yX2RjYWNo ZSAoKTsKIAogICBpZiAocCA9PSAwKQogICAgIHsKQEAgLTY4Niw3ICs2ODcs NyBAQCBtZW1fZGVsZXRlX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGludCBmcm9t X3R0eSkKIAogICByZXF1aXJlX3VzZXJfcmVnaW9ucyAoZnJvbV90dHkpOwog Ci0gIGRjYWNoZV9pbnZhbGlkYXRlICh0YXJnZXRfZGNhY2hlKTsKKyAgaW52 YWxpZGF0ZV9pbmZlcmlvcl9kY2FjaGUgKCk7CiAKICAgaWYgKHAgPT0gMCkK ICAgICB7CmRpZmYgLS1naXQgYS9nZGIvdGFyZ2V0LmMgYi9nZGIvdGFyZ2V0 LmMKaW5kZXggMDYyM2JjMy4uYWI3MzkzNiAxMDA2NDQKLS0tIGEvZ2RiL3Rh cmdldC5jCisrKyBiL2dkYi90YXJnZXQuYwpAQCAtMjEwLDggKzIxMCw2IEBA IHNob3dfdGFyZ2V0ZGVidWcgKHN0cnVjdCB1aV9maWxlICpmaWxlLCBpbnQg ZnJvbV90dHksCiAKIHN0YXRpYyB2b2lkIHNldHVwX3RhcmdldF9kZWJ1ZyAo dm9pZCk7CiAKLURDQUNIRSAqdGFyZ2V0X2RjYWNoZTsKLQogLyogVGhlIHVz ZXIganVzdCB0eXBlZCAndGFyZ2V0JyB3aXRob3V0IHRoZSBuYW1lIG9mIGEg dGFyZ2V0LiAgKi8KIAogc3RhdGljIHZvaWQKQEAgLTQxMyw3ICs0MTEsNyBA QCB0YXJnZXRfa2lsbCAodm9pZCkKIHZvaWQKIHRhcmdldF9sb2FkIChjaGFy ICphcmcsIGludCBmcm9tX3R0eSkKIHsKLSAgZGNhY2hlX2ludmFsaWRhdGUg KHRhcmdldF9kY2FjaGUpOworICBpbnZhbGlkYXRlX2luZmVyaW9yX2RjYWNo ZSAoKTsKICAgKCpjdXJyZW50X3RhcmdldC50b19sb2FkKSAoYXJnLCBmcm9t X3R0eSk7CiB9CiAKQEAgLTExNDMsMTIgKzExNDEsMTQgQEAgdGFyZ2V0X3Nl Y3Rpb25fYnlfYWRkciAoc3RydWN0IHRhcmdldF9vcHMgKnRhcmdldCwgQ09S RV9BRERSIGFkZHIpCiAgICB2YWx1ZSBhcmUganVzdCBhcyBmb3IgdGFyZ2V0 X3hmZXJfcGFydGlhbC4gICovCiAKIHN0YXRpYyBMT05HRVNUCi1tZW1vcnlf eGZlcl9wYXJ0aWFsIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLCB2b2lkICpy ZWFkYnVmLCBjb25zdCB2b2lkICp3cml0ZWJ1ZiwKLQkJICAgICBVTE9OR0VT VCBtZW1hZGRyLCBMT05HRVNUIGxlbikKK21lbW9yeV94ZmVyX3BhcnRpYWwg KHN0cnVjdCB0YXJnZXRfb3BzICpvcHMsIGVudW0gdGFyZ2V0X29iamVjdCBv YmplY3QsCisJCSAgICAgdm9pZCAqcmVhZGJ1ZiwgY29uc3Qgdm9pZCAqd3Jp dGVidWYsIFVMT05HRVNUIG1lbWFkZHIsCisJCSAgICAgTE9OR0VTVCBsZW4p CiB7CiAgIExPTkdFU1QgcmVzOwogICBpbnQgcmVnX2xlbjsKICAgc3RydWN0 IG1lbV9yZWdpb24gKnJlZ2lvbjsKKyAgc3RydWN0IGluZmVyaW9yICppbmY7 CiAKICAgLyogWmVybyBsZW5ndGggcmVxdWVzdHMgYXJlIG9rIGFuZCByZXF1 aXJlIG5vIHdvcmsuICAqLwogICBpZiAobGVuID09IDApCkBAIC0xMjIzLDE2 ICsxMjIzLDIwIEBAIG1lbW9yeV94ZmVyX3BhcnRpYWwgKHN0cnVjdCB0YXJn ZXRfb3BzICpvcHMsIHZvaWQgKnJlYWRidWYsIGNvbnN0IHZvaWQgKndyaXRl YnVmCiAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCi0gIGlmIChyZWdpb24t PmF0dHJpYi5jYWNoZSkKKyAgaW5mID0gZmluZF9pbmZlcmlvcl9waWQgKHB0 aWRfZ2V0X3BpZCAoaW5mZXJpb3JfcHRpZCkpOworCisgIGlmICgocmVnaW9u LT5hdHRyaWIuY2FjaGUKKyAgICAgICB8fCAoZGNhY2hlX3N0YWNrX2VuYWJs ZWRfcCAmJiBvYmplY3QgPT0gVEFSR0VUX09CSkVDVF9TVEFDS19NRU1PUlkp KQorICAgICAgJiYgaW5mKQogICAgIHsKICAgICAgIGlmIChyZWFkYnVmICE9 IE5VTEwpCi0JcmVzID0gZGNhY2hlX3hmZXJfbWVtb3J5IChvcHMsIHRhcmdl dF9kY2FjaGUsIG1lbWFkZHIsIHJlYWRidWYsCisJcmVzID0gZGNhY2hlX3hm ZXJfbWVtb3J5IChvcHMsIGluZi0+ZGNhY2hlLCBtZW1hZGRyLCByZWFkYnVm LAogCQkJCSAgcmVnX2xlbiwgMCk7CiAgICAgICBlbHNlCiAJLyogRklYTUUg ZHJvdy8yMDA2LTA4LTA5OiBJZiB3ZSdyZSBnb2luZyB0byBwcmVzZXJ2ZSBj b25zdAogCSAgIGNvcnJlY3RuZXNzIGRjYWNoZV94ZmVyX21lbW9yeSBzaG91 bGQgdGFrZSByZWFkYnVmIGFuZAogCSAgIHdyaXRlYnVmLiAgKi8KLQlyZXMg PSBkY2FjaGVfeGZlcl9tZW1vcnkgKG9wcywgdGFyZ2V0X2RjYWNoZSwgbWVt YWRkciwKKwlyZXMgPSBkY2FjaGVfeGZlcl9tZW1vcnkgKG9wcywgaW5mLT5k Y2FjaGUsIG1lbWFkZHIsCiAJCQkJICAodm9pZCAqKSB3cml0ZWJ1ZiwKIAkJ CQkgIHJlZ19sZW4sIDEpOwogICAgICAgaWYgKHJlcyA8PSAwKQpAQCAtMTI0 NSw2ICsxMjQ5LDE1IEBAIG1lbW9yeV94ZmVyX3BhcnRpYWwgKHN0cnVjdCB0 YXJnZXRfb3BzICpvcHMsIHZvaWQgKnJlYWRidWYsIGNvbnN0IHZvaWQgKndy aXRlYnVmCiAJfQogICAgIH0KIAorICAvKiBNYWtlIHN1cmUgdGhlIGNhY2hl IGdldHMgdXBkYXRlZCBubyBtYXR0ZXIgd2hhdCAtIGlmIHdlIGFyZSB3cml0 aW5nCisgICAgIHRvIHRoZSBzdGFjaywgZXZlbiBpZiB0aGlzIHdyaXRlIGlz IG5vdCB0YWdnZWQgYXMgc3VjaCwgd2Ugc3RpbGwgbmVlZAorICAgICB0byB1 cGRhdGUgdGhlIGNhY2hlLiAqLworICBpZiAoaW5mICYmIHJlYWRidWYgPT0g TlVMTCAmJiAhcmVnaW9uLT5hdHRyaWIuY2FjaGUgJiYKKyAgICAgIGRjYWNo ZV9zdGFja19lbmFibGVkX3AgJiYgb2JqZWN0ICE9IFRBUkdFVF9PQkpFQ1Rf U1RBQ0tfTUVNT1JZKQorICAgIHsKKyAgICAgIGRjYWNoZV91cGRhdGUgKGlu Zi0+ZGNhY2hlLCBtZW1hZGRyLCAodm9pZCAqKSB3cml0ZWJ1ZiwgcmVnX2xl bik7CisgICAgfQorCiAgIC8qIElmIG5vbmUgb2YgdGhvc2UgbWV0aG9kcyBm b3VuZCB0aGUgbWVtb3J5IHdlIHdhbnRlZCwgZmFsbCBiYWNrCiAgICAgIHRv IGEgdGFyZ2V0IHBhcnRpYWwgdHJhbnNmZXIuICBOb3JtYWxseSBhIHNpbmds ZSBjYWxsIHRvCiAgICAgIHRvX3hmZXJfcGFydGlhbCBpcyBlbm91Z2g7IGlm IGl0IGRvZXNuJ3QgcmVjb2duaXplIGFuIG9iamVjdApAQCAtMTMwOCw4ICsx MzIxLDkgQEAgdGFyZ2V0X3hmZXJfcGFydGlhbCAoc3RydWN0IHRhcmdldF9v cHMgKm9wcywKICAgLyogSWYgdGhpcyBpcyBhIG1lbW9yeSB0cmFuc2Zlciwg bGV0IHRoZSBtZW1vcnktc3BlY2lmaWMgY29kZQogICAgICBoYXZlIGEgbG9v ayBhdCBpdCBpbnN0ZWFkLiAgTWVtb3J5IHRyYW5zZmVycyBhcmUgbW9yZQog ICAgICBjb21wbGljYXRlZC4gICovCi0gIGlmIChvYmplY3QgPT0gVEFSR0VU X09CSkVDVF9NRU1PUlkpCi0gICAgcmV0dmFsID0gbWVtb3J5X3hmZXJfcGFy dGlhbCAob3BzLCByZWFkYnVmLCB3cml0ZWJ1Ziwgb2Zmc2V0LCBsZW4pOwor ICBpZiAob2JqZWN0ID09IFRBUkdFVF9PQkpFQ1RfTUVNT1JZIHx8IG9iamVj dCA9PSBUQVJHRVRfT0JKRUNUX1NUQUNLX01FTU9SWSkKKyAgICByZXR2YWwg PSBtZW1vcnlfeGZlcl9wYXJ0aWFsIChvcHMsIG9iamVjdCwgcmVhZGJ1ZiwK KwkJCQkgIHdyaXRlYnVmLCBvZmZzZXQsIGxlbik7CiAgIGVsc2UKICAgICB7 CiAgICAgICBlbnVtIHRhcmdldF9vYmplY3QgcmF3X29iamVjdCA9IG9iamVj dDsKQEAgLTEzOTEsNiArMTQwNSwyMyBAQCB0YXJnZXRfcmVhZF9tZW1vcnkg KENPUkVfQUREUiBtZW1hZGRyLCBnZGJfYnl0ZSAqbXlhZGRyLCBpbnQgbGVu KQogICAgIHJldHVybiBFSU87CiB9CiAKKy8qIExpa2UgdGFyZ2V0X3JlYWRf bWVtb3J5LCBidXQgc3BlY2lmeSBleHBsaWNpdGx5IHRoYXQgdGhpcyBpcyBh IHJlYWQgZnJvbQorICAgdGhlIHRhcmdldCdzIHN0YWNrLiBUaGlzIG1heSB0 cmlnZ2VyIGRpZmZlcmVudCBjYWNoZSBiZWhhdmlvci4gKi8KKworaW50Cit0 YXJnZXRfcmVhZF9zdGFjayAoQ09SRV9BRERSIG1lbWFkZHIsIGdkYl9ieXRl ICpteWFkZHIsIGludCBsZW4pCit7CisgIC8qIERpc3BhdGNoIHRvIHRoZSB0 b3Btb3N0IHRhcmdldCwgbm90IHRoZSBmbGF0dGVuZWQgY3VycmVudF90YXJn ZXQuCisgICAgIE1lbW9yeSBhY2Nlc3NlcyBjaGVjayB0YXJnZXQtPnRvX2hh c18oYWxsXyltZW1vcnksIGFuZCB0aGUKKyAgICAgZmxhdHRlbmVkIHRhcmdl dCBkb2Vzbid0IGluaGVyaXQgdGhvc2UuICAqLworCisgIGlmICh0YXJnZXRf cmVhZCAoY3VycmVudF90YXJnZXQuYmVuZWF0aCwgVEFSR0VUX09CSkVDVF9T VEFDS19NRU1PUlksIE5VTEwsCisJCSAgIG15YWRkciwgbWVtYWRkciwgbGVu KSA9PSBsZW4pCisgICAgcmV0dXJuIDA7CisgIGVsc2UKKyAgICByZXR1cm4g RUlPOworfQorCiBpbnQKIHRhcmdldF93cml0ZV9tZW1vcnkgKENPUkVfQURE UiBtZW1hZGRyLCBjb25zdCBnZGJfYnl0ZSAqbXlhZGRyLCBpbnQgbGVuKQog ewpAQCAtMjAzMSw3ICsyMDYyLDcgQEAgdGFyZ2V0X3Jlc3VtZSAocHRpZF90 IHB0aWQsIGludCBzdGVwLCBlbnVtIHRhcmdldF9zaWduYWwgc2lnbmFsKQog ewogICBzdHJ1Y3QgdGFyZ2V0X29wcyAqdDsKIAotICBkY2FjaGVfaW52YWxp ZGF0ZSAodGFyZ2V0X2RjYWNoZSk7CisgIGludmFsaWRhdGVfaW5mZXJpb3Jf ZGNhY2hlICgpOwogCiAgIGZvciAodCA9IGN1cnJlbnRfdGFyZ2V0LmJlbmVh dGg7IHQgIT0gTlVMTDsgdCA9IHQtPmJlbmVhdGgpCiAgICAgewpAQCAtMzQ1 Myw2ICszNDg0LDQgQEAgVGVsbHMgZ2RiIHdoZXRoZXIgdG8gY29udHJvbCB0 aGUgaW5mZXJpb3IgaW4gYXN5bmNocm9ub3VzIG1vZGUuIiksCiAJCQkgICBz aG93X21haW50ZW5hbmNlX3RhcmdldF9hc3luY19wZXJtaXR0ZWQsCiAJCQkg ICAmc2V0bGlzdCwKIAkJCSAgICZzaG93bGlzdCk7Ci0KLSAgdGFyZ2V0X2Rj YWNoZSA9IGRjYWNoZV9pbml0ICgpOwogfQpkaWZmIC0tZ2l0IGEvZ2RiL3Rh cmdldC5oIGIvZ2RiL3RhcmdldC5oCmluZGV4IGM0MjVhNWIuLjM1MWNjMzIg MTAwNjQ0Ci0tLSBhL2dkYi90YXJnZXQuaAorKysgYi9nZGIvdGFyZ2V0LmgK QEAgLTIwMiw2ICsyMDIsMTAgQEAgZW51bSB0YXJnZXRfb2JqZWN0CiAgICAg IFRhcmdldCBpbXBsZW1lbnRhdGlvbnMgb2YgdG9feGZlcl9wYXJ0aWFsIG5l dmVyIG5lZWQgdG8gaGFuZGxlCiAgICAgIHRoaXMgb2JqZWN0LCBhbmQgbW9z dCBjYWxsZXJzIHNob3VsZCBub3QgdXNlIGl0LiAgKi8KICAgVEFSR0VUX09C SkVDVF9SQVdfTUVNT1JZLAorICAvKiBNZW1vcnkga25vd24gdG8gYmUgcGFy dCBvZiB0aGUgdGFyZ2V0J3Mgc3RhY2suIFRoaXMgaXMgY2FjaGVkIGV2ZW4K KyAgICAgaWYgaXQgaXMgbm90IGluIGEgcmVnaW9uIG1hcmtlZCBhcyBzdWNo LCBzaW5jZSBpdCBpcyBrbm93biB0byBiZQorICAgICAibm9ybWFsIiBSQU0u ICovCisgIFRBUkdFVF9PQkpFQ1RfU1RBQ0tfTUVNT1JZLAogICAvKiBLZXJu ZWwgVW53aW5kIFRhYmxlLiAgU2VlICJpYTY0LXRkZXAuYyIuICAqLwogICBU QVJHRVRfT0JKRUNUX1VOV0lORF9UQUJMRSwKICAgLyogVHJhbnNmZXIgYXV4 aWxsaWFyeSB2ZWN0b3IuICAqLwpAQCAtNjc2LDYgKzY4MCw4IEBAIGV4dGVy biBpbnQgdGFyZ2V0X3JlYWRfc3RyaW5nIChDT1JFX0FERFIsIGNoYXIgKios IGludCwgaW50ICopOwogCiBleHRlcm4gaW50IHRhcmdldF9yZWFkX21lbW9y eSAoQ09SRV9BRERSIG1lbWFkZHIsIGdkYl9ieXRlICpteWFkZHIsIGludCBs ZW4pOwogCitleHRlcm4gaW50IHRhcmdldF9yZWFkX3N0YWNrIChDT1JFX0FE RFIgbWVtYWRkciwgZ2RiX2J5dGUgKm15YWRkciwgaW50IGxlbik7CisKIGV4 dGVybiBpbnQgdGFyZ2V0X3dyaXRlX21lbW9yeSAoQ09SRV9BRERSIG1lbWFk ZHIsIGNvbnN0IGdkYl9ieXRlICpteWFkZHIsCiAJCQkJaW50IGxlbik7CiAK ZGlmZiAtLWdpdCBhL2dkYi90aHJlYWQuYyBiL2dkYi90aHJlYWQuYwppbmRl eCBhN2FjM2M4Li5jYTM2MzQ5IDEwMDY0NAotLS0gYS9nZGIvdGhyZWFkLmMK KysrIGIvZ2RiL3RocmVhZC5jCkBAIC04NDksNiArODQ5LDcgQEAgc3dpdGNo X3RvX3RocmVhZCAocHRpZF90IHB0aWQpCiAgICAgcmV0dXJuOwogCiAgIGlu ZmVyaW9yX3B0aWQgPSBwdGlkOworICBpbnZhbGlkYXRlX2luZmVyaW9yX2Rj YWNoZSAoKTsKICAgcmVpbml0X2ZyYW1lX2NhY2hlICgpOwogICByZWdpc3Rl cnNfY2hhbmdlZCAoKTsKIApkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIv Z2RiL3ZhbG9wcy5jCmluZGV4IDJkMjBiNDEuLmM2NDU5OGMgMTAwNjQ0Ci0t LSBhL2dkYi92YWxvcHMuYworKysgYi9nZGIvdmFsb3BzLmMKQEAgLTU2NSw2 ICs1NjUsMzIgQEAgdmFsdWVfb25lIChzdHJ1Y3QgdHlwZSAqdHlwZSwgZW51 bSBsdmFsX3R5cGUgbHYpCiAgIHJldHVybiB2YWw7CiB9CiAKKy8qIEhlbHBl ciBmdW5jdGlvbiBmb3IgdmFsdWVfYXQsIHZhbHVlX2F0X2xhenksIGFuZCB2 YWx1ZV9hdF9sYXp5X3N0YWNrLiAgKi8KKworc3RhdGljIHN0cnVjdCB2YWx1 ZSAqCitnZXRfdmFsdWVfYXQgKHN0cnVjdCB0eXBlICp0eXBlLCBDT1JFX0FE RFIgYWRkciwgaW50IGxhenkpCit7CisgIHN0cnVjdCB2YWx1ZSAqdmFsOwor CisgIGlmIChUWVBFX0NPREUgKGNoZWNrX3R5cGVkZWYgKHR5cGUpKSA9PSBU WVBFX0NPREVfVk9JRCkKKyAgICBlcnJvciAoXygiQXR0ZW1wdCB0byBkZXJl ZmVyZW5jZSBhIGdlbmVyaWMgcG9pbnRlci4iKSk7CisKKyAgaWYgKGxhenkp CisgICAgeworICAgICAgdmFsID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAodHlw ZSk7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgdmFsID0gYWxsb2Nh dGVfdmFsdWUgKHR5cGUpOworICAgICAgcmVhZF9tZW1vcnkgKGFkZHIsIHZh bHVlX2NvbnRlbnRzX2FsbF9yYXcgKHZhbCksIFRZUEVfTEVOR1RIICh0eXBl KSk7CisgICAgfQorCisgIFZBTFVFX0xWQUwgKHZhbCkgPSBsdmFsX21lbW9y eTsKKyAgc2V0X3ZhbHVlX2FkZHJlc3MgKHZhbCwgYWRkcik7CisKKyAgcmV0 dXJuIHZhbDsKK30KKwogLyogUmV0dXJuIGEgdmFsdWUgd2l0aCB0eXBlIFRZ UEUgbG9jYXRlZCBhdCBBRERSLgogCiAgICBDYWxsIHZhbHVlX2F0IG9ubHkg aWYgdGhlIGRhdGEgbmVlZHMgdG8gYmUgZmV0Y2hlZCBpbW1lZGlhdGVseTsK QEAgLTU4MCwxOSArNjA2LDcgQEAgdmFsdWVfb25lIChzdHJ1Y3QgdHlwZSAq dHlwZSwgZW51bSBsdmFsX3R5cGUgbHYpCiBzdHJ1Y3QgdmFsdWUgKgogdmFs dWVfYXQgKHN0cnVjdCB0eXBlICp0eXBlLCBDT1JFX0FERFIgYWRkcikKIHsK LSAgc3RydWN0IHZhbHVlICp2YWw7Ci0KLSAgaWYgKFRZUEVfQ09ERSAoY2hl Y2tfdHlwZWRlZiAodHlwZSkpID09IFRZUEVfQ09ERV9WT0lEKQotICAgIGVy cm9yIChfKCJBdHRlbXB0IHRvIGRlcmVmZXJlbmNlIGEgZ2VuZXJpYyBwb2lu dGVyLiIpKTsKLQotICB2YWwgPSBhbGxvY2F0ZV92YWx1ZSAodHlwZSk7Ci0K LSAgcmVhZF9tZW1vcnkgKGFkZHIsIHZhbHVlX2NvbnRlbnRzX2FsbF9yYXcg KHZhbCksIFRZUEVfTEVOR1RIICh0eXBlKSk7Ci0KLSAgVkFMVUVfTFZBTCAo dmFsKSA9IGx2YWxfbWVtb3J5OwotICBzZXRfdmFsdWVfYWRkcmVzcyAodmFs LCBhZGRyKTsKLQotICByZXR1cm4gdmFsOworICByZXR1cm4gZ2V0X3ZhbHVl X2F0ICh0eXBlLCBhZGRyLCAwKTsKIH0KIAogLyogUmV0dXJuIGEgbGF6eSB2 YWx1ZSB3aXRoIHR5cGUgVFlQRSBsb2NhdGVkIGF0IEFERFIgKGNmLiB2YWx1 ZV9hdCkuICAqLwpAQCAtNjAwLDE3ICs2MTQsNyBAQCB2YWx1ZV9hdCAoc3Ry dWN0IHR5cGUgKnR5cGUsIENPUkVfQUREUiBhZGRyKQogc3RydWN0IHZhbHVl ICoKIHZhbHVlX2F0X2xhenkgKHN0cnVjdCB0eXBlICp0eXBlLCBDT1JFX0FE RFIgYWRkcikKIHsKLSAgc3RydWN0IHZhbHVlICp2YWw7Ci0KLSAgaWYgKFRZ UEVfQ09ERSAoY2hlY2tfdHlwZWRlZiAodHlwZSkpID09IFRZUEVfQ09ERV9W T0lEKQotICAgIGVycm9yIChfKCJBdHRlbXB0IHRvIGRlcmVmZXJlbmNlIGEg Z2VuZXJpYyBwb2ludGVyLiIpKTsKLQotICB2YWwgPSBhbGxvY2F0ZV92YWx1 ZV9sYXp5ICh0eXBlKTsKLQotICBWQUxVRV9MVkFMICh2YWwpID0gbHZhbF9t ZW1vcnk7Ci0gIHNldF92YWx1ZV9hZGRyZXNzICh2YWwsIGFkZHIpOwotCi0g IHJldHVybiB2YWw7CisgIHJldHVybiBnZXRfdmFsdWVfYXQgKHR5cGUsIGFk ZHIsIDEpOwogfQogCiAvKiBDYWxsZWQgb25seSBmcm9tIHRoZSB2YWx1ZV9j b250ZW50cyBhbmQgdmFsdWVfY29udGVudHNfYWxsKCkKQEAgLTYzNyw4ICs2 NDEsMTIgQEAgdmFsdWVfZmV0Y2hfbGF6eSAoc3RydWN0IHZhbHVlICp2YWwp CiAgICAgICBDT1JFX0FERFIgYWRkciA9IHZhbHVlX2FkZHJlc3MgKHZhbCk7 CiAgICAgICBpbnQgbGVuZ3RoID0gVFlQRV9MRU5HVEggKGNoZWNrX3R5cGVk ZWYgKHZhbHVlX2VuY2xvc2luZ190eXBlICh2YWwpKSk7CiAKLSAgICAgIGlm IChsZW5ndGgpCi0JcmVhZF9tZW1vcnkgKGFkZHIsIHZhbHVlX2NvbnRlbnRz X2FsbF9yYXcgKHZhbCksIGxlbmd0aCk7CisgICAgICBpZiAobGVuZ3RoKSB7 CisJaWYgKHZhbHVlX3N0YWNrICh2YWwpKQorCSAgcmVhZF9zdGFjayAoYWRk ciwgdmFsdWVfY29udGVudHNfYWxsX3JhdyAodmFsKSwgbGVuZ3RoKTsKKyAg ICAgICAgZWxzZQorCSAgcmVhZF9tZW1vcnkgKGFkZHIsIHZhbHVlX2NvbnRl bnRzX2FsbF9yYXcgKHZhbCksIGxlbmd0aCk7CisgICAgICB9CiAgICAgfQog ICBlbHNlIGlmIChWQUxVRV9MVkFMICh2YWwpID09IGx2YWxfcmVnaXN0ZXIp CiAgICAgewpkaWZmIC0tZ2l0IGEvZ2RiL3ZhbHVlLmMgYi9nZGIvdmFsdWUu YwppbmRleCBmZmZjMTgzLi5mZDBkZjAyIDEwMDY0NAotLS0gYS9nZGIvdmFs dWUuYworKysgYi9nZGIvdmFsdWUuYwpAQCAtMTkxLDYgKzE5MSwxMCBAQCBz dHJ1Y3QgdmFsdWUKICAgLyogSWYgdmFsdWUgaXMgYSB2YXJpYWJsZSwgaXMg aXQgaW5pdGlhbGl6ZWQgb3Igbm90LiAgKi8KICAgaW50IGluaXRpYWxpemVk OwogCisgIC8qIElmIHZhbHVlIGlzIGZyb20gdGhlIHN0YWNrLiBJZiB0aGlz IGlzIHNldCwgcmVhZF9zdGFjayB3aWxsIGJlCisgICAgIHVzZWQgaW5zdGVh ZCBvZiByZWFkX21lbW9yeSB0byBlbmFibGUgZXh0cmEgY2FjaGluZy4gKi8K KyAgaW50IHN0YWNrOworCiAgIC8qIEFjdHVhbCBjb250ZW50cyBvZiB0aGUg dmFsdWUuICBUYXJnZXQgYnl0ZS1vcmRlci4gIE5VTEwgb3Igbm90CiAgICAg IHZhbGlkIGlmIGxhenkgaXMgbm9uemVyby4gICovCiAgIGdkYl9ieXRlICpj b250ZW50czsKQEAgLTQyNyw2ICs0MzEsMTggQEAgc2V0X3ZhbHVlX2xhenkg KHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2YWwpCiAgIHZhbHVlLT5sYXp5 ID0gdmFsOwogfQogCitpbnQKK3ZhbHVlX3N0YWNrIChzdHJ1Y3QgdmFsdWUg KnZhbHVlKQoreworICByZXR1cm4gdmFsdWUtPnN0YWNrOworfQorCit2b2lk CitzZXRfdmFsdWVfc3RhY2sgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2 YWwpCit7CisgIHZhbHVlLT5zdGFjayA9IHZhbDsKK30KKwogY29uc3QgZ2Ri X2J5dGUgKgogdmFsdWVfY29udGVudHMgKHN0cnVjdCB2YWx1ZSAqdmFsdWUp CiB7CmRpZmYgLS1naXQgYS9nZGIvdmFsdWUuaCBiL2dkYi92YWx1ZS5oCmlu ZGV4IGQ4MTYxNTYuLjkyNTk3NjggMTAwNjQ0Ci0tLSBhL2dkYi92YWx1ZS5o CisrKyBiL2dkYi92YWx1ZS5oCkBAIC0yMTQsNiArMjE0LDkgQEAgZXh0ZXJu IHZvaWQgKnZhbHVlX2NvbXB1dGVkX2Nsb3N1cmUgKHN0cnVjdCB2YWx1ZSAq dmFsdWUpOwogZXh0ZXJuIGludCB2YWx1ZV9sYXp5IChzdHJ1Y3QgdmFsdWUg Kik7CiBleHRlcm4gdm9pZCBzZXRfdmFsdWVfbGF6eSAoc3RydWN0IHZhbHVl ICp2YWx1ZSwgaW50IHZhbCk7CiAKK2V4dGVybiBpbnQgdmFsdWVfc3RhY2sg KHN0cnVjdCB2YWx1ZSAqKTsKK2V4dGVybiB2b2lkIHNldF92YWx1ZV9zdGFj ayAoc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IHZhbCk7CisKIC8qIHZhbHVl X2NvbnRlbnRzKCkgYW5kIHZhbHVlX2NvbnRlbnRzX3JhdygpIGJvdGggcmV0 dXJuIHRoZSBhZGRyZXNzCiAgICBvZiB0aGUgZ2RiIGJ1ZmZlciB1c2VkIHRv IGhvbGQgYSBjb3B5IG9mIHRoZSBjb250ZW50cyBvZiB0aGUgbHZhbC4KICAg IHZhbHVlX2NvbnRlbnRzKCkgaXMgdXNlZCB3aGVuIHRoZSBjb250ZW50cyBv ZiB0aGUgYnVmZmVyIGFyZSBuZWVkZWQK --00504502cfafc374f6046e9a5222--