From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30666 invoked by alias); 21 Jan 2014 22:17:42 -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 30656 invoked by uid 89); 21 Jan 2014 22:17:41 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-ig0-f180.google.com Received: from mail-ig0-f180.google.com (HELO mail-ig0-f180.google.com) (209.85.213.180) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Tue, 21 Jan 2014 22:17:39 +0000 Received: by mail-ig0-f180.google.com with SMTP id m12so12205602iga.1 for ; Tue, 21 Jan 2014 14:17:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=Ep0CJkzM0+zQ4s6zRreDkYgmUKZUYfzCxCyQI81NuJ0=; b=Gg/Sckx3D3SfZAZaD1v4yjV5CEI6nGTwxU90WUcqyXdpvyJYFzFpny6OabRm7eLto+ 83xs9AbnlWDVXxF6X6N+qgVWxA37dTQxFHBvAELHCI7d5E0R0TpHcyqA1MnZuvfa11rK JRw9cBpK7OFOpXWV4uDVUfI3y9Fxv3RnYXzLNvSpiR2FKlvIirwkeYP1h4dRtT7EgYCl QV2XDe5OAKeUstSPHELswyQimovwMY7dR323EwgbewM2W0z6Zb+EZj13aw1hxYTRLxQK uyL8lWdfXYRD+g4vPdmiPTKmk7GLS6XptSMUxjR2ERwYMppAHyiautM8hzD4vHJvZHgm GqzA== X-Gm-Message-State: ALoCoQlYbe80lcoVC2hmMby6m2mw0yJ/7zQoL5gZBo+KE9Nc66+HHCFctGkRW2EL8X3hsRmyMyUsPbGUn/aE2gqIVJL41MJ+TDD5bZ1MxEdTreeOZ32NhV7eY+JTw+yEID41rwqBYE+7NLx18XqhUbXP+3Qa9RfOTLMYvWoPn5OpzKKDpsyii/livrU4KhEL7fvqu2tbMSXhShJ09R+KxZQP4SP+HWkYSA== MIME-Version: 1.0 X-Received: by 10.50.100.170 with SMTP id ez10mr20154631igb.15.1390342657668; Tue, 21 Jan 2014 14:17:37 -0800 (PST) Received: by 10.64.78.1 with HTTP; Tue, 21 Jan 2014 14:17:37 -0800 (PST) Date: Tue, 21 Jan 2014 22:17:00 -0000 Message-ID: Subject: [PATCH] RFC: All stepping threads need the same checks and cleanup as the currently stepping thread From: Sterling Augustine To: gdb-patches , Pedro Alves Content-Type: multipart/mixed; boundary=e89a8f3b9e5f3ac30004f082600b X-SW-Source: 2014-01/txt/msg00826.txt.bz2 --e89a8f3b9e5f3ac30004f082600b Content-Type: text/plain; charset=UTF-8 Content-length: 1761 I am having trouble reducing a large and heavily multi-threaded program (with many SIGPROFs) to a publishable test case, but I have been intermittently hitting the following assertion in gdb's "resume" function: gdb_assert (pc_in_thread_step_range (pc, tp)); The PC is in a function called inside the step range, and therefore you would expect process_event_stop_test's checks for this (starting with the comment, "We stepped out of the stepping range") to catch it and fix it up. But the problem is that the thread out of the step range is not the currently stepped thread. Process_event_stop_test calls switch_back_to_stepped_thread, which, in turn, calls resume, bypassing the extra logic in process_event_stop_test to fix up the step range, and leading to the assertion error. But I don't see any reason to assume that only the current thread would need the additional cleanup found in process_event_stop_test. In fact, switch_back_to_stepped_thread has a special case (hidden in currently_stepping_or_nexting_callback), to _prevent_ it from restarting the current thread, presumably so it that thread can get the additional cleanup. The enclosed patch does two things: 1. Adds a large amount of tracing, which helped me diagnose the problem. 2. Changes switch_back_to_stepped_thread to still switch back to a stepped thread, but to avoid restarting it, allowing the additional checks in process_event_stop_test to work their magic. The GDB testsuite still passes (in particular, no new failures in testsuite/gdb.threads), but I know there are a lot of subtleties here. This is the best fix I can come up with, but are there any other suggestions on how to approach the problem? (I'll do a ChangeLog entry after taking comments.) Thanks, Sterling --e89a8f3b9e5f3ac30004f082600b Content-Type: text/x-patch; charset=US-ASCII; name="switch-thread.patch" Content-Disposition: attachment; filename="switch-thread.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hqpq3ln40 Content-length: 13433 ZGlmZiAtLWdpdCBhL2dkYi9pbmZjbWQuYyBiL2dkYi9pbmZjbWQuYwppbmRl eCAyZDUwZjQxLi5jMDQyZTBkIDEwMDY0NAotLS0gYS9nZGIvaW5mY21kLmMK KysrIGIvZ2RiL2luZmNtZC5jCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk ZSAiZ2RiY29yZS5oIgogI2luY2x1ZGUgInRhcmdldC5oIgogI2luY2x1ZGUg Imxhbmd1YWdlLmgiCisvLyNpbmNsdWRlICJzeW1maWxlLmgiCiAjaW5jbHVk ZSAib2JqZmlsZXMuaCIKICNpbmNsdWRlICJjb21wbGV0ZXIuaCIKICNpbmNs dWRlICJ1aS1vdXQuaCIKQEAgLTEwNDksNiArMTA1MCwxMCBAQCBzdGVwX29u Y2UgKGludCBza2lwX3N1YnJvdXRpbmVzLCBpbnQgc2luZ2xlX2luc3QsIGlu dCBjb3VudCwgaW50IHRocmVhZCkKIAkJCQkgJnRwLT5jb250cm9sLnN0ZXBf cmFuZ2Vfc3RhcnQsCiAJCQkJICZ0cC0+Y29udHJvbC5zdGVwX3JhbmdlX2Vu ZCk7CiAKKyAgICAgICAgICBpZiAoZGVidWdfaW5mcnVuKQorICAgICAgICAg ICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAorCQkJCSJpbmZy dW46ICVzIG1heSByYW5nZSBzdGVwXG4iLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0YXJnZXRfcGlkX3RvX3N0ciAodHAtPnB0aWQpKTsK IAkgIHRwLT5jb250cm9sLm1heV9yYW5nZV9zdGVwID0gMTsKIAogCSAgLyog SWYgd2UgaGF2ZSBubyBsaW5lIGluZm8sIHN3aXRjaCB0byBzdGVwaSBtb2Rl LiAgKi8KQEAgLTEwNTYsNiArMTA2MSwxMCBAQCBzdGVwX29uY2UgKGludCBz a2lwX3N1YnJvdXRpbmVzLCBpbnQgc2luZ2xlX2luc3QsIGludCBjb3VudCwg aW50IHRocmVhZCkKIAkgICAgewogCSAgICAgIHRwLT5jb250cm9sLnN0ZXBf cmFuZ2Vfc3RhcnQgPSB0cC0+Y29udHJvbC5zdGVwX3JhbmdlX2VuZCA9IDE7 CiAJICAgICAgdHAtPmNvbnRyb2wubWF5X3JhbmdlX3N0ZXAgPSAwOworICAg ICAgICAgICAgICBpZiAoZGVidWdfaW5mcnVuKQorICAgICAgICAgICAgICAg IGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJpbmZydW46ICVzIG1heSBub3Qg cmFuZ2Ugc3RlcFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRhcmdldF9waWRfdG9fc3RyICh0cC0+cHRpZCkpOwogCSAgICB9 CiAJICBlbHNlIGlmICh0cC0+Y29udHJvbC5zdGVwX3JhbmdlX2VuZCA9PSAw KQogCSAgICB7CkBAIC0xMzQ2LDYgKzEzNTUsMTAgQEAgdW50aWxfbmV4dF9j b21tYW5kIChpbnQgZnJvbV90dHkpCiAgICAgICB0cC0+Y29udHJvbC5zdGVw X3JhbmdlX2VuZCA9IHNhbC5lbmQ7CiAgICAgfQogICB0cC0+Y29udHJvbC5t YXlfcmFuZ2Vfc3RlcCA9IDE7CisgIGlmIChkZWJ1Z19pbmZydW4pCisgICAg ZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAorICAgICAgICAgICAg ICAgICAgICAgICAgImluZnJ1bjogJXMgbWF5IHJhbmdlIHN0ZXBcbiIsCisg ICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfcGlkX3RvX3N0ciAodHAt PnB0aWQpKTsKIAogICB0cC0+Y29udHJvbC5zdGVwX292ZXJfY2FsbHMgPSBT VEVQX09WRVJfQUxMOwogCmRpZmYgLS1naXQgYS9nZGIvaW5mcnVuLmMgYi9n ZGIvaW5mcnVuLmMKaW5kZXggMzExYmY5Yy4uZTZmNTFjOSAxMDA2NDQKLS0t IGEvZ2RiL2luZnJ1bi5jCisrKyBiL2dkYi9pbmZydW4uYwpAQCAtMTMxNSw2 ICsxMzE1LDEwIEBAIGRpc3BsYWNlZF9zdGVwX3ByZXBhcmUgKHB0aWRfdCBw dGlkKQogICAgICB0aGUgc2NyYXRjaCBidWZmZXIgbGFuZHMgd2l0aGluIHRo ZSBzdGVwcGluZyByYW5nZSAoZS5nLiwgYQogICAgICBqdW1wL2JyYW5jaCku ICAqLwogICB0cC0+Y29udHJvbC5tYXlfcmFuZ2Vfc3RlcCA9IDA7CisgIGlm IChkZWJ1Z19pbmZydW4pCisgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJf c3RkbG9nLAorICAgICAgICAgICAgICAgICAgICAgICAgImluZnJ1bjogJXMg bWF5IG5vdCByYW5nZSBzdGVwXG4iLAorICAgICAgICAgICAgICAgICAgICAg ICAgdGFyZ2V0X3BpZF90b19zdHIgKHRwLT5wdGlkKSk7CiAKICAgLyogV2Ug aGF2ZSB0byBkaXNwbGFjZWQgc3RlcCBvbmUgdGhyZWFkIGF0IGEgdGltZSwg YXMgd2Ugb25seSBoYXZlCiAgICAgIGFjY2VzcyB0byBhIHNpbmdsZSBzY3Jh dGNoIHNwYWNlIHBlciBpbmZlcmlvci4gICovCkBAIC0xNzc1LDcgKzE3Nzks MTQgQEAgYSBjb21tYW5kIGxpa2UgYHJldHVybicgb3IgYGp1bXAnIHRvIGNv bnRpbnVlIGV4ZWN1dGlvbi4iKSk7CiAgIC8qIElmIHdlIGhhdmUgYSBicmVh a3BvaW50IHRvIHN0ZXAgb3ZlciwgbWFrZSBzdXJlIHRvIGRvIGEgc2luZ2xl CiAgICAgIHN0ZXAgb25seS4gIFNhbWUgaWYgd2UgaGF2ZSBzb2Z0d2FyZSB3 YXRjaHBvaW50cy4gICovCiAgIGlmICh0cC0+Y29udHJvbC50cmFwX2V4cGVj dGVkIHx8IGJwc3RhdF9zaG91bGRfc3RlcCAoKSkKLSAgICB0cC0+Y29udHJv bC5tYXlfcmFuZ2Vfc3RlcCA9IDA7CisgICAgeworICAgICAgdHAtPmNvbnRy b2wubWF5X3JhbmdlX3N0ZXAgPSAwOworICAgICAgaWYgKGRlYnVnX2luZnJ1 bikKKyAgICAgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmZydW46ICVzIG1heSBu b3QgcmFuZ2Ugc3RlcFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0YXJnZXRfcGlkX3RvX3N0ciAodHAtPnB0aWQpKTsKKyAgICB9CisKIAog ICAvKiBJZiBlbmFibGVkLCBzdGVwIG92ZXIgYnJlYWtwb2ludHMgYnkgZXhl Y3V0aW5nIGEgY29weSBvZiB0aGUKICAgICAgaW5zdHJ1Y3Rpb24gYXQgYSBk aWZmZXJlbnQgYWRkcmVzcy4KQEAgLTE5NDUsNiArMTk1NiwxNCBAQCBhIGNv bW1hbmQgbGlrZSBgcmV0dXJuJyBvciBganVtcCcgdG8gY29udGludWUgZXhl Y3V0aW9uLiIpKTsKIAkgICAgIG9wZXJhdGlvbiwgbGlrZSBzdGVwcGluZyB0 aGUgdGhyZWFkIG91dCBvZiB0aGUgZHluYW1pYwogCSAgICAgbGlua2VyIG9y IHRoZSBkaXNwbGFjZWQgc3RlcHBpbmcgc2NyYXRjaCBwYWQuICBXZQogCSAg ICAgc2hvdWxkbid0IGhhdmUgYWxsb3dlZCBhIHJhbmdlIHN0ZXAgdGhlbi4g ICovCisJICBpZiAoZGVidWdfaW5mcnVuKQorCSAgICBmcHJpbnRmX3VuZmls dGVyZWQgKGdkYl9zdGRsb2csCisJCQkJImluZnJ1bjogJXMgc3RlcCByYW5n ZSA9IFslbHgtJWx4XSBwYyA9ICVseFxuIiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGFyZ2V0X3BpZF90b19zdHIgKHRwLT5wdGlkKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHAtPmNvbnRyb2wu c3RlcF9yYW5nZV9zdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdHAtPmNvbnRyb2wuc3RlcF9yYW5nZV9lbmQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBjKTsKKwogCSAgZ2RiX2Fzc2VydCAo cGNfaW5fdGhyZWFkX3N0ZXBfcmFuZ2UgKHBjLCB0cCkpOwogCX0KIApAQCAt MTk5MCw2ICsyMDA5LDEwIEBAIGNsZWFyX3Byb2NlZWRfc3RhdHVzX3RocmVh ZCAoc3RydWN0IHRocmVhZF9pbmZvICp0cCkKICAgdHAtPmNvbnRyb2wuc3Rl cF9yYW5nZV9zdGFydCA9IDA7CiAgIHRwLT5jb250cm9sLnN0ZXBfcmFuZ2Vf ZW5kID0gMDsKICAgdHAtPmNvbnRyb2wubWF5X3JhbmdlX3N0ZXAgPSAwOwor ICBpZiAoZGVidWdfaW5mcnVuKQorICAgIGZwcmludGZfdW5maWx0ZXJlZCAo Z2RiX3N0ZGxvZywKKyAgICAgICAgICAgICAgICAgICAgICAgICJpbmZydW46 ICVzIG1heSBub3QgcmFuZ2Ugc3RlcFxuIiwKKyAgICAgICAgICAgICAgICAg ICAgICAgIHRhcmdldF9waWRfdG9fc3RyICh0cC0+cHRpZCkpOwogICB0cC0+ Y29udHJvbC5zdGVwX2ZyYW1lX2lkID0gbnVsbF9mcmFtZV9pZDsKICAgdHAt PmNvbnRyb2wuc3RlcF9zdGFja19mcmFtZV9pZCA9IG51bGxfZnJhbWVfaWQ7 CiAgIHRwLT5jb250cm9sLnN0ZXBfb3Zlcl9jYWxscyA9IFNURVBfT1ZFUl9V TkRFQlVHR0FCTEU7CkBAIC0zMjU0LDYgKzMyNzcsMTAgQEAgaGFuZGxlX2lu ZmVyaW9yX2V2ZW50IChzdHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUg KmVjcykKICAgICAgIC8qIERpc2FibGUgcmFuZ2Ugc3RlcHBpbmcuICBJZiB0 aGUgbmV4dCBzdGVwIHJlcXVlc3QgY291bGQgdXNlIGEKIAkgcmFuZ2UsIHRo aXMgd2lsbCBiZSBlbmQgdXAgcmUtZW5hYmxlZCB0aGVuLiAgKi8KICAgICAg IGVjcy0+ZXZlbnRfdGhyZWFkLT5jb250cm9sLm1heV9yYW5nZV9zdGVwID0g MDsKKyAgICAgIGlmIChkZWJ1Z19pbmZydW4pCisgICAgICAgIGZwcmludGZf dW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiaW5mcnVuOiAlcyBtYXkgbm90IHJhbmdlIHN0ZXBcbiIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3BpZF90b19zdHIg KGVjcy0+cHRpZCkpOwogICAgIH0KIAogICAvKiBEZXBlbmRlbnQgb24gdmFs aWQgRUNTLT5FVkVOVF9USFJFQUQuICAqLwpAQCAtNDY0NCw3ICs0NjcxLDkg QEAgcHJvY2Vzc19ldmVudF9zdG9wX3Rlc3QgKHN0cnVjdCBleGVjdXRpb25f Y29udHJvbF9zdGF0ZSAqZWNzKQogCiAgICAgY2FzZSBCUFNUQVRfV0hBVF9I UF9TVEVQX1JFU1VNRToKICAgICAgIGlmIChkZWJ1Z19pbmZydW4pCi0JZnBy aW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiaW5mcnVuOiBCUFNUQVRf V0hBVF9IUF9TVEVQX1JFU1VNRVxuIik7CisJZnByaW50Zl91bmZpbHRlcmVk IChnZGJfc3RkbG9nLCAiaW5mcnVuOiBCUFNUQVRfV0hBVF9IUF9TVEVQX1JF U1VNRSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0ZXBfYWZ0 ZXJfc3RlcF9yZXN1bWVfYnJlYWtwb2ludCA9ICVkXG4iLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGVjcy0+ZXZlbnRfdGhyZWFkLT5zdGVwX2Fm dGVyX3N0ZXBfcmVzdW1lX2JyZWFrcG9pbnQpOwogCiAgICAgICBkZWxldGVf c3RlcF9yZXN1bWVfYnJlYWtwb2ludCAoZWNzLT5ldmVudF90aHJlYWQpOwog ICAgICAgaWYgKGVjcy0+ZXZlbnRfdGhyZWFkLT5zdGVwX2FmdGVyX3N0ZXBf cmVzdW1lX2JyZWFrcG9pbnQpCkBAIC00NzI3LDYgKzQ3NTYsMTAgQEAgcHJv Y2Vzc19ldmVudF9zdG9wX3Rlc3QgKHN0cnVjdCBleGVjdXRpb25fY29udHJv bF9zdGF0ZSAqZWNzKQogCSBuZWNlc3NhcnkgKGUuZy4sIGlmIHdlJ3JlIHN0 ZXBwaW5nIG92ZXIgYSBicmVha3BvaW50IG9yIHdlCiAJIGhhdmUgc29mdHdh cmUgd2F0Y2hwb2ludHMpLiAgKi8KICAgICAgIGVjcy0+ZXZlbnRfdGhyZWFk LT5jb250cm9sLm1heV9yYW5nZV9zdGVwID0gMTsKKyAgICAgIGlmIChkZWJ1 Z19pbmZydW4pCisgICAgICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0 ZGxvZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5mcnVuOiAl cyBtYXkgcmFuZ2Ugc3RlcFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0YXJnZXRfcGlkX3RvX3N0ciAoZWNzLT5wdGlkKSk7CiAKICAgICAg IC8qIFdoZW4gc3RlcHBpbmcgYmFja3dhcmQsIHN0b3AgYXQgYmVnaW5uaW5n IG9mIGxpbmUgcmFuZ2UKIAkgKHVubGVzcyBpdCdzIHRoZSBmdW5jdGlvbiBl bnRyeSBwb2ludCwgaW4gd2hpY2ggY2FzZQpAQCAtNTI0NSw2ICs1Mjc4LDEw IEBAIHByb2Nlc3NfZXZlbnRfc3RvcF90ZXN0IChzdHJ1Y3QgZXhlY3V0aW9u X2NvbnRyb2xfc3RhdGUgKmVjcykKICAgZWNzLT5ldmVudF90aHJlYWQtPmNv bnRyb2wuc3RlcF9yYW5nZV9zdGFydCA9IHN0b3BfcGNfc2FsLnBjOwogICBl Y3MtPmV2ZW50X3RocmVhZC0+Y29udHJvbC5zdGVwX3JhbmdlX2VuZCA9IHN0 b3BfcGNfc2FsLmVuZDsKICAgZWNzLT5ldmVudF90aHJlYWQtPmNvbnRyb2wu bWF5X3JhbmdlX3N0ZXAgPSAxOworICBpZiAoZGVidWdfaW5mcnVuKQorICAg IGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKKyAgICAgICAgICAg ICAgICAgICAgICAgICJpbmZydW46ICVzIG1heSByYW5nZSBzdGVwXG4iLAor ICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3BpZF90b19zdHIgKGVj cy0+cHRpZCkpOwogICBzZXRfc3RlcF9pbmZvIChmcmFtZSwgc3RvcF9wY19z YWwpOwogCiAgIGlmIChkZWJ1Z19pbmZydW4pCkBAIC01Mjc0LDEwICs1MzEx LDcgQEAgc3dpdGNoX2JhY2tfdG9fc3RlcHBlZF90aHJlYWQgKHN0cnVjdCBl eGVjdXRpb25fY29udHJvbF9zdGF0ZSAqZWNzKQogCSAgaWYgKChlY3MtPmV2 ZW50X3RocmVhZC0+Y29udHJvbC50cmFwX2V4cGVjdGVkCiAJICAgICAgICYm IGVjcy0+ZXZlbnRfdGhyZWFkLT5zdXNwZW5kLnN0b3Bfc2lnbmFsICE9IEdE Ql9TSUdOQUxfVFJBUCkKIAkgICAgICB8fCBlY3MtPmV2ZW50X3RocmVhZC0+ c3RlcHBpbmdfb3Zlcl9icmVha3BvaW50KQotCSAgICB7Ci0JICAgICAga2Vl cF9nb2luZyAoZWNzKTsKLQkgICAgICByZXR1cm4gMTsKLQkgICAgfQorICAg ICAgICAgICAgcmV0dXJuIDA7CiAKIAkgIC8qIElmIHRoZSBzdGVwcGluZyB0 aHJlYWQgZXhpdGVkLCB0aGVuIGRvbid0IHRyeSB0byBzd2l0Y2gKIAkgICAg IGJhY2sgYW5kIHJlc3VtZSBpdCwgd2hpY2ggY291bGQgZmFpbCBpbiBzZXZl cmFsIGRpZmZlcmVudApAQCAtNTMwNywyNCArNTM0MSwxOCBAQCBzd2l0Y2hf YmFja190b19zdGVwcGVkX3RocmVhZCAoc3RydWN0IGV4ZWN1dGlvbl9jb250 cm9sX3N0YXRlICplY3MpCiAJCQkJICAgICJzdGVwcGVkIHRocmVhZCwgaXQg aGFzIHZhbmlzaGVkXG4iKTsKIAogCSAgICAgIGRlbGV0ZV90aHJlYWQgKHRw LT5wdGlkKTsKLQkgICAgICBrZWVwX2dvaW5nIChlY3MpOwotCSAgICAgIHJl dHVybiAxOworCSAgICAgIHJldHVybiAwOwogCSAgICB9CiAKLQkgIC8qIE90 aGVyd2lzZSwgd2Ugbm8gbG9uZ2VyIGV4cGVjdCBhIHRyYXAgaW4gdGhlIGN1 cnJlbnQgdGhyZWFkLgotCSAgICAgQ2xlYXIgdGhlIHRyYXBfZXhwZWN0ZWQg ZmxhZyBiZWZvcmUgc3dpdGNoaW5nIGJhY2sgLS0gdGhpcyBpcwotCSAgICAg d2hhdCBrZWVwX2dvaW5nIHdvdWxkIGRvIGFzIHdlbGwsIGlmIHdlIGNhbGxl ZCBpdC4gICovCi0JICBlY3MtPmV2ZW50X3RocmVhZC0+Y29udHJvbC50cmFw X2V4cGVjdGVkID0gMDsKLQogCSAgaWYgKGRlYnVnX2luZnJ1bikKIAkgICAg ZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAotCQkJCSJpbmZydW46 IHN3aXRjaGluZyBiYWNrIHRvIHN0ZXBwZWQgdGhyZWFkXG4iKTsKKwkJCQki aW5mcnVuOiBzd2l0Y2hpbmcgYmFjayB0byBzdGVwcGVkIHRocmVhZCAlc1xu IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3Bp ZF90b19zdHIgKHRwLT5wdGlkKSk7CiAKIAkgIGVjcy0+ZXZlbnRfdGhyZWFk ID0gdHA7CiAJICBlY3MtPnB0aWQgPSB0cC0+cHRpZDsKIAkgIGNvbnRleHRf c3dpdGNoIChlY3MtPnB0aWQpOwotCSAga2VlcF9nb2luZyAoZWNzKTsKLQkg IHJldHVybiAxOworICAgICAgICAgIHJldHVybiAwOwogCX0KICAgICB9CiAg IHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZ2RiL2xpbnV4LW5hdC5jIGIvZ2Ri L2xpbnV4LW5hdC5jCmluZGV4IDIzNzFhZDQuLjFjNmJkNDUgMTAwNjQ0Ci0t LSBhL2dkYi9saW51eC1uYXQuYworKysgYi9nZGIvbGludXgtbmF0LmMKQEAg LTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJncmVnc2V0LmgiCQkvKiBmb3Ig Z3JlZ3NldCAqLwogI2luY2x1ZGUgImdkYmNvcmUuaCIJCS8qIGZvciBnZXRf ZXhlY19maWxlICovCiAjaW5jbHVkZSA8Y3R5cGUuaD4JCS8qIGZvciBpc2Rp Z2l0ICovCisjaW5jbHVkZSAiZ2RidGhyZWFkLmgiCQkvKiBmb3Igc3RydWN0 IHRocmVhZF9pbmZvIGV0Yy4gICovCiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4J CS8qIGZvciBzdHJ1Y3Qgc3RhdCAqLwogI2luY2x1ZGUgPGZjbnRsLmg+CQkv KiBmb3IgT19SRE9OTFkgKi8KICNpbmNsdWRlICJpbmYtbG9vcC5oIgpAQCAt NjQsNiArNjUsNyBAQAogI2luY2x1ZGUgImFnZW50LmgiCiAjaW5jbHVkZSAi dHJhY2Vwb2ludC5oIgogI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKKyNpbmNs dWRlICJsaW51eC1wdHJhY2UuaCIKICNpbmNsdWRlICJidWZmZXIuaCIKICNp bmNsdWRlICJ0YXJnZXQtZGVzY3JpcHRpb25zLmgiCiAjaW5jbHVkZSAiZmls ZXN0dWZmLmgiCkBAIC0yNjAxLDYgKzI2MDMsOSBAQCBzdG9wX3dhaXRfY2Fs bGJhY2sgKHN0cnVjdCBsd3BfaW5mbyAqbHAsIHZvaWQgKmRhdGEpCiAKICAg ICAgIGlmIChXU1RPUFNJRyAoc3RhdHVzKSAhPSBTSUdTVE9QKQogCXsKKyAg ICAgICAgICBzdHJ1Y3QgdGhyZWFkX2luZm8gKnRwID0gZmluZF90aHJlYWRf cHRpZCAobHAtPnB0aWQpOworICAgICAgICAgIENPUkVfQUREUiBwYyA9IHJl Z2NhY2hlX3JlYWRfcGMgKGdldF90aHJlYWRfcmVnY2FjaGUgKGxwLT5wdGlk KSk7CisKIAkgIC8qIFRoZSB0aHJlYWQgd2FzIHN0b3BwZWQgd2l0aCBhIHNp Z25hbCBvdGhlciB0aGFuIFNJR1NUT1AuICAqLwogCiAJICBzYXZlX3NpZ3Ry YXAgKGxwKTsKQEAgLTI2MTEsNiArMjYxNiwxOCBAQCBzdG9wX3dhaXRfY2Fs bGJhY2sgKHN0cnVjdCBsd3BfaW5mbyAqbHAsIHZvaWQgKmRhdGEpCiAJCQkJ c3RhdHVzX3RvX3N0ciAoKGludCkgc3RhdHVzKSwKIAkJCQl0YXJnZXRfcGlk X3RvX3N0ciAobHAtPnB0aWQpKTsKIAorICAgICAgICAgIGlmIChkZWJ1Z19s aW51eF9uYXQKKyAgICAgICAgICAgICAgJiYgdHAtPmNvbnRyb2wubWF5X3Jh bmdlX3N0ZXAKKyAgICAgICAgICAgICAgJiYgIXBjX2luX3RocmVhZF9zdGVw X3JhbmdlIChwYywgdHApKQorICAgICAgICAgICAgeworICAgICAgICAgICAg ICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIlNXQzogJXMgJWx4IG91dCBvZiBz dGVwIHJhbmdlIFslbHgtJWx4XVxuIiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0YXJnZXRfcGlkX3RvX3N0ciAodHAtPnB0aWQpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRwLT5jb250cm9sLnN0ZXBf cmFuZ2Vfc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdHAtPmNvbnRyb2wuc3RlcF9yYW5nZV9lbmQpOworICAgICAgICAgICAg fQorCiAJICAvKiBTYXZlIHRoZSBzaWd0cmFwIGV2ZW50LiAgKi8KIAkgIGxw LT5zdGF0dXMgPSBzdGF0dXM7CiAJICBnZGJfYXNzZXJ0ICghbHAtPnN0b3Bw ZWQpOwpAQCAtMjY4Niw3ICsyNzAzLDEzIEBAIGNvdW50X2V2ZW50c19jYWxs YmFjayAoc3RydWN0IGx3cF9pbmZvICpscCwgdm9pZCAqZGF0YSkKIAogICAv KiBDb3VudCBvbmx5IHJlc3VtZWQgTFdQcyB0aGF0IGhhdmUgYSBTSUdUUkFQ IGV2ZW50IHBlbmRpbmcuICAqLwogICBpZiAobHAtPnJlc3VtZWQgJiYgbGlu dXhfbmF0X2xwX3N0YXR1c19pc19ldmVudCAobHApKQotICAgICgqY291bnQp Kys7CisgICAgeworICAgICAgaWYgKGRlYnVnX2xpbnV4X25hdCkKKwlmcHJp bnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCisJCQkgICAgIkNFQzogTFdQ ICVsZCBoYXMgYW4gZXZlbnRcbiIsCisJCQkgICAgcHRpZF9nZXRfbHdwIChs cC0+cHRpZCkpOworICAgICAgKCpjb3VudCkrKzsKKyAgICB9CiAKICAgcmV0 dXJuIDA7CiB9CkBAIC0zMjEyLDYgKzMyMzUsOSBAQCBsaW51eF9uYXRfd2Fp dF8xIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLAogICBibG9ja19jaGlsZF9z aWduYWxzICgmcHJldl9tYXNrKTsKIAogcmV0cnk6CisgIGlmIChkZWJ1Z19s aW51eF9uYXQpCisgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9n LCAiTExXOiByZXRyeVxuIik7CisKICAgbHAgPSBOVUxMOwogICBzdGF0dXMg PSAwOwogCg== --e89a8f3b9e5f3ac30004f082600b--