From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URG_BIZ autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74615C47254 for ; Fri, 1 May 2020 08:32:19 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2CD2520787 for ; Fri, 1 May 2020 08:32:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="iiANuj+q" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2CD2520787 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:40376 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jUR5m-0004gy-8L for qemu-devel@archiver.kernel.org; Fri, 01 May 2020 04:32:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40122) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jUR2z-0000uU-LN for qemu-devel@nongnu.org; Fri, 01 May 2020 04:30:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jUR2i-00040J-C2 for qemu-devel@nongnu.org; Fri, 01 May 2020 04:29:25 -0400 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:54574 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jUR2h-0003uF-NL for qemu-devel@nongnu.org; Fri, 01 May 2020 04:29:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1588321747; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9KGTvTCXTH+IUT7wVNc41vXfa+b/bmEwFioywsRrvdo=; b=iiANuj+qcV1TP06XLwrsKz/VIcpp5UbhbB2MuTHM3ahF14nfHdEKkRNjw+IVQmNZY6xsRv AMVYP2FvgWQVpSfQ8aIjntt9Dpla26V5ZkLVUDH4YN36wDwauZ5ifhnDsSpnqdKXr/WE0C R2AnflVtsiWHo5TTBeGw13PnZhSJ2K8= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-474-_BJmQLRGPhyjNVc6XtofDg-1; Fri, 01 May 2020 04:29:02 -0400 X-MC-Unique: _BJmQLRGPhyjNVc6XtofDg-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 543631800D4A; Fri, 1 May 2020 08:29:01 +0000 (UTC) Received: from localhost (ovpn-112-199.ams2.redhat.com [10.36.112.199]) by smtp.corp.redhat.com (Postfix) with ESMTP id 77EF961520; Fri, 1 May 2020 08:29:00 +0000 (UTC) From: Stefan Hajnoczi To: qemu-devel@nongnu.org Subject: [PULL 3/4] lockable: replaced locks with lock guard macros where appropriate Date: Fri, 1 May 2020 09:28:05 +0100 Message-Id: <20200501082806.205696-4-stefanha@redhat.com> In-Reply-To: <20200501082806.205696-1-stefanha@redhat.com> References: <20200501082806.205696-1-stefanha@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: base64 Received-SPF: pass client-ip=205.139.110.61; envelope-from=stefanha@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/01 04:28:28 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Received-From: 205.139.110.61 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Laurent Vivier , Thomas Huth , qemu-block@nongnu.org, Peter Maydell , Bandan Das , Markus Armbruster , Juan Quintela , Peter Lieven , Yuval Shaia , Max Reitz , Daniel Brodsky , Alexander Bulekov , Alex Williamson , Gerd Hoffmann , Stefan Hajnoczi , Paolo Bonzini , Ronnie Sahlberg , "Dr. David Alan Gilbert" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" RnJvbTogRGFuaWVsIEJyb2Rza3kgPGRuYnJkc2t5QGdtYWlsLmNvbT4KCi0gcmFuIHJlZ2V4cCAi cWVtdV9tdXRleF9sb2NrXCguKlwpLipcbi4qaWYiIHRvIGZpbmQgdGFyZ2V0cwotIHJlcGxhY2Vk IHJlc3VsdCB3aXRoIFFFTVVfTE9DS19HVUFSRCBpZiBhbGwgdW5sb2NrcyBhdCBmdW5jdGlvbiBl bmQKLSByZXBsYWNlZCByZXN1bHQgd2l0aCBXSVRIX1FFTVVfTE9DS19HVUFSRCBpZiB1bmxvY2sg bm90IGF0IGVuZAoKU2lnbmVkLW9mZi1ieTogRGFuaWVsIEJyb2Rza3kgPGRuYnJkc2t5QGdtYWls LmNvbT4KUmV2aWV3ZWQtYnk6IEp1YW4gUXVpbnRlbGEgPHF1aW50ZWxhQHJlZGhhdC5jb20+Ck1l c3NhZ2UtaWQ6IDIwMjAwNDA0MDQyMTA4LjM4OTYzNS0zLWRuYnJkc2t5QGdtYWlsLmNvbQpTaWdu ZWQtb2ZmLWJ5OiBTdGVmYW4gSGFqbm9jemkgPHN0ZWZhbmhhQHJlZGhhdC5jb20+Ci0tLQogYmxv Y2svaXNjc2kuYyAgICAgICAgIHwgIDcgKystLS0tCiBibG9jay9uZnMuYyAgICAgICAgICAgfCA1 MSArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBjcHVzLWNvbW1v bi5jICAgICAgICAgfCAxNCArKysrKy0tLS0tLS0KIGh3L2Rpc3BsYXkvcXhsLmMgICAgICB8IDQz ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogaHcvdmZpby9wbGF0Zm9ybS5j ICAgIHwgIDUgKystLS0KIG1pZ3JhdGlvbi9taWdyYXRpb24uYyB8ICAzICstLQogbWlncmF0aW9u L211bHRpZmQuYyAgIHwgIDggKysrLS0tLQogbWlncmF0aW9uL3JhbS5jICAgICAgIHwgIDMgKy0t CiBtb25pdG9yL21pc2MuYyAgICAgICAgfCAgNCArLS0tCiB1aS9zcGljZS1kaXNwbGF5LmMgICAg fCAxNCArKysrKystLS0tLS0KIHV0aWwvbG9nLmMgICAgICAgICAgICB8ICA0ICsrLS0KIHV0aWwv cWVtdS10aW1lci5jICAgICB8IDE3ICsrKysrKystLS0tLS0tLQogdXRpbC9yY3UuYyAgICAgICAg ICAgIHwgIDggKysrLS0tLQogdXRpbC90aHJlYWQtcG9vbC5jICAgIHwgIDMgKy0tCiB1dGlsL3Zm aW8taGVscGVycy5jICAgfCAgNSArKy0tLQogMTUgZmlsZXMgY2hhbmdlZCwgODMgaW5zZXJ0aW9u cygrKSwgMTA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Jsb2NrL2lzY3NpLmMgYi9ibG9j ay9pc2NzaS5jCmluZGV4IDBiNGI3MjEwZGYuLmU0ZmM3MWQ2NGIgMTAwNjQ0Ci0tLSBhL2Jsb2Nr L2lzY3NpLmMKKysrIGIvYmxvY2svaXNjc2kuYwpAQCAtMTM5NCwyMCArMTM5NCwxNyBAQCBzdGF0 aWMgdm9pZCBpc2NzaV9ub3BfdGltZWRfZXZlbnQodm9pZCAqb3BhcXVlKQogewogICAgIElzY3Np THVuICppc2NzaWx1biA9IG9wYXF1ZTsKIAotICAgIHFlbXVfbXV0ZXhfbG9jaygmaXNjc2lsdW4t Pm11dGV4KTsKKyAgICBRRU1VX0xPQ0tfR1VBUkQoJmlzY3NpbHVuLT5tdXRleCk7CiAgICAgaWYg KGlzY3NpX2dldF9ub3BzX2luX2ZsaWdodChpc2NzaWx1bi0+aXNjc2kpID49IE1BWF9OT1BfRkFJ TFVSRVMpIHsKICAgICAgICAgZXJyb3JfcmVwb3J0KCJpU0NTSTogTk9QIHRpbWVvdXQuIFJlY29u bmVjdGluZy4uLiIpOwogICAgICAgICBpc2NzaWx1bi0+cmVxdWVzdF90aW1lZF9vdXQgPSB0cnVl OwogICAgIH0gZWxzZSBpZiAoaXNjc2lfbm9wX291dF9hc3luYyhpc2NzaWx1bi0+aXNjc2ksIE5V TEwsIE5VTEwsIDAsIE5VTEwpICE9IDApIHsKICAgICAgICAgZXJyb3JfcmVwb3J0KCJpU0NTSTog ZmFpbGVkIHRvIHNlbnQgTk9QLU91dC4gRGlzYWJsaW5nIE5PUCBtZXNzYWdlcy4iKTsKLSAgICAg ICAgZ290byBvdXQ7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICB0aW1lcl9tb2QoaXNj c2lsdW4tPm5vcF90aW1lciwgcWVtdV9jbG9ja19nZXRfbXMoUUVNVV9DTE9DS19SRUFMVElNRSkg KyBOT1BfSU5URVJWQUwpOwogICAgIGlzY3NpX3NldF9ldmVudHMoaXNjc2lsdW4pOwotCi1vdXQ6 Ci0gICAgcWVtdV9tdXRleF91bmxvY2soJmlzY3NpbHVuLT5tdXRleCk7CiB9CiAKIHN0YXRpYyB2 b2lkIGlzY3NpX3JlYWRjYXBhY2l0eV9zeW5jKElzY3NpTHVuICppc2NzaWx1biwgRXJyb3IgKipl cnJwKQpkaWZmIC0tZ2l0IGEvYmxvY2svbmZzLmMgYi9ibG9jay9uZnMuYwppbmRleCBjYzI0MTNk NWFiLi5jYmE4ZTYwYjI4IDEwMDY0NAotLS0gYS9ibG9jay9uZnMuYworKysgYi9ibG9jay9uZnMu YwpAQCAtMjczLDE1ICsyNzMsMTQgQEAgc3RhdGljIGludCBjb3JvdXRpbmVfZm4gbmZzX2NvX3By ZWFkdihCbG9ja0RyaXZlclN0YXRlICpicywgdWludDY0X3Qgb2Zmc2V0LAogICAgIG5mc19jb19p bml0X3Rhc2soYnMsICZ0YXNrKTsKICAgICB0YXNrLmlvdiA9IGlvdjsKIAotICAgIHFlbXVfbXV0 ZXhfbG9jaygmY2xpZW50LT5tdXRleCk7Ci0gICAgaWYgKG5mc19wcmVhZF9hc3luYyhjbGllbnQt PmNvbnRleHQsIGNsaWVudC0+ZmgsCi0gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQsIGJ5 dGVzLCBuZnNfY29fZ2VuZXJpY19jYiwgJnRhc2spICE9IDApIHsKLSAgICAgICAgcWVtdV9tdXRl eF91bmxvY2soJmNsaWVudC0+bXV0ZXgpOwotICAgICAgICByZXR1cm4gLUVOT01FTTsKLSAgICB9 CisgICAgV0lUSF9RRU1VX0xPQ0tfR1VBUkQoJmNsaWVudC0+bXV0ZXgpIHsKKyAgICAgICAgaWYg KG5mc19wcmVhZF9hc3luYyhjbGllbnQtPmNvbnRleHQsIGNsaWVudC0+ZmgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb2Zmc2V0LCBieXRlcywgbmZzX2NvX2dlbmVyaWNfY2IsICZ0YXNr KSAhPSAwKSB7CisgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKKyAgICAgICAgfQogCi0gICAg bmZzX3NldF9ldmVudHMoY2xpZW50KTsKLSAgICBxZW11X211dGV4X3VubG9jaygmY2xpZW50LT5t dXRleCk7CisgICAgICAgIG5mc19zZXRfZXZlbnRzKGNsaWVudCk7CisgICAgfQogICAgIHdoaWxl ICghdGFzay5jb21wbGV0ZSkgewogICAgICAgICBxZW11X2Nvcm91dGluZV95aWVsZCgpOwogICAg IH0KQEAgLTMyMCwxOSArMzE5LDE4IEBAIHN0YXRpYyBpbnQgY29yb3V0aW5lX2ZuIG5mc19jb19w d3JpdGV2KEJsb2NrRHJpdmVyU3RhdGUgKmJzLCB1aW50NjRfdCBvZmZzZXQsCiAgICAgICAgIGJ1 ZiA9IGlvdi0+aW92WzBdLmlvdl9iYXNlOwogICAgIH0KIAotICAgIHFlbXVfbXV0ZXhfbG9jaygm Y2xpZW50LT5tdXRleCk7Ci0gICAgaWYgKG5mc19wd3JpdGVfYXN5bmMoY2xpZW50LT5jb250ZXh0 LCBjbGllbnQtPmZoLAotICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCwgYnl0ZXMsIGJ1 ZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBuZnNfY29fZ2VuZXJpY19jYiwgJnRhc2spICE9 IDApIHsKLSAgICAgICAgcWVtdV9tdXRleF91bmxvY2soJmNsaWVudC0+bXV0ZXgpOwotICAgICAg ICBpZiAobXlfYnVmZmVyKSB7Ci0gICAgICAgICAgICBnX2ZyZWUoYnVmKTsKKyAgICBXSVRIX1FF TVVfTE9DS19HVUFSRCgmY2xpZW50LT5tdXRleCkgeworICAgICAgICBpZiAobmZzX3B3cml0ZV9h c3luYyhjbGllbnQtPmNvbnRleHQsIGNsaWVudC0+ZmgsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9mZnNldCwgYnl0ZXMsIGJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bmZzX2NvX2dlbmVyaWNfY2IsICZ0YXNrKSAhPSAwKSB7CisgICAgICAgICAgICBpZiAobXlfYnVm ZmVyKSB7CisgICAgICAgICAgICAgICAgZ19mcmVlKGJ1Zik7CisgICAgICAgICAgICB9CisgICAg ICAgICAgICByZXR1cm4gLUVOT01FTTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gLUVOT01F TTsKLSAgICB9CiAKLSAgICBuZnNfc2V0X2V2ZW50cyhjbGllbnQpOwotICAgIHFlbXVfbXV0ZXhf dW5sb2NrKCZjbGllbnQtPm11dGV4KTsKKyAgICAgICAgbmZzX3NldF9ldmVudHMoY2xpZW50KTsK KyAgICB9CiAgICAgd2hpbGUgKCF0YXNrLmNvbXBsZXRlKSB7CiAgICAgICAgIHFlbXVfY29yb3V0 aW5lX3lpZWxkKCk7CiAgICAgfQpAQCAtMzU1LDE1ICszNTMsMTQgQEAgc3RhdGljIGludCBjb3Jv dXRpbmVfZm4gbmZzX2NvX2ZsdXNoKEJsb2NrRHJpdmVyU3RhdGUgKmJzKQogCiAgICAgbmZzX2Nv X2luaXRfdGFzayhicywgJnRhc2spOwogCi0gICAgcWVtdV9tdXRleF9sb2NrKCZjbGllbnQtPm11 dGV4KTsKLSAgICBpZiAobmZzX2ZzeW5jX2FzeW5jKGNsaWVudC0+Y29udGV4dCwgY2xpZW50LT5m aCwgbmZzX2NvX2dlbmVyaWNfY2IsCi0gICAgICAgICAgICAgICAgICAgICAgICAmdGFzaykgIT0g MCkgewotICAgICAgICBxZW11X211dGV4X3VubG9jaygmY2xpZW50LT5tdXRleCk7Ci0gICAgICAg IHJldHVybiAtRU5PTUVNOwotICAgIH0KKyAgICBXSVRIX1FFTVVfTE9DS19HVUFSRCgmY2xpZW50 LT5tdXRleCkgeworICAgICAgICBpZiAobmZzX2ZzeW5jX2FzeW5jKGNsaWVudC0+Y29udGV4dCwg Y2xpZW50LT5maCwgbmZzX2NvX2dlbmVyaWNfY2IsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJnRhc2spICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgICAgICB9 CiAKLSAgICBuZnNfc2V0X2V2ZW50cyhjbGllbnQpOwotICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZj bGllbnQtPm11dGV4KTsKKyAgICAgICAgbmZzX3NldF9ldmVudHMoY2xpZW50KTsKKyAgICB9CiAg ICAgd2hpbGUgKCF0YXNrLmNvbXBsZXRlKSB7CiAgICAgICAgIHFlbXVfY29yb3V0aW5lX3lpZWxk KCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvY3B1cy1jb21tb24uYyBiL2NwdXMtY29tbW9uLmMKaW5k ZXggZWFmNTkwY2IzOC4uNTVkNWRmODkyMyAxMDA2NDQKLS0tIGEvY3B1cy1jb21tb24uYworKysg Yi9jcHVzLWNvbW1vbi5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiZXhlYy9jcHUtY29t bW9uLmgiCiAjaW5jbHVkZSAiaHcvY29yZS9jcHUuaCIKICNpbmNsdWRlICJzeXNlbXUvY3B1cy5o IgorI2luY2x1ZGUgInFlbXUvbG9ja2FibGUuaCIKIAogc3RhdGljIFFlbXVNdXRleCBxZW11X2Nw dV9saXN0X2xvY2s7CiBzdGF0aWMgUWVtdUNvbmQgZXhjbHVzaXZlX2NvbmQ7CkBAIC03MSw3ICs3 Miw3IEBAIHN0YXRpYyBpbnQgY3B1X2dldF9mcmVlX2luZGV4KHZvaWQpCiAKIHZvaWQgY3B1X2xp c3RfYWRkKENQVVN0YXRlICpjcHUpCiB7Ci0gICAgcWVtdV9tdXRleF9sb2NrKCZxZW11X2NwdV9s aXN0X2xvY2spOworICAgIFFFTVVfTE9DS19HVUFSRCgmcWVtdV9jcHVfbGlzdF9sb2NrKTsKICAg ICBpZiAoY3B1LT5jcHVfaW5kZXggPT0gVU5BU1NJR05FRF9DUFVfSU5ERVgpIHsKICAgICAgICAg Y3B1LT5jcHVfaW5kZXggPSBjcHVfZ2V0X2ZyZWVfaW5kZXgoKTsKICAgICAgICAgYXNzZXJ0KGNw dS0+Y3B1X2luZGV4ICE9IFVOQVNTSUdORURfQ1BVX0lOREVYKTsKQEAgLTc5LDE1ICs4MCwxMyBA QCB2b2lkIGNwdV9saXN0X2FkZChDUFVTdGF0ZSAqY3B1KQogICAgICAgICBhc3NlcnQoIWNwdV9p bmRleF9hdXRvX2Fzc2lnbmVkKTsKICAgICB9CiAgICAgUVRBSUxRX0lOU0VSVF9UQUlMX1JDVSgm Y3B1cywgY3B1LCBub2RlKTsKLSAgICBxZW11X211dGV4X3VubG9jaygmcWVtdV9jcHVfbGlzdF9s b2NrKTsKIH0KIAogdm9pZCBjcHVfbGlzdF9yZW1vdmUoQ1BVU3RhdGUgKmNwdSkKIHsKLSAgICBx ZW11X211dGV4X2xvY2soJnFlbXVfY3B1X2xpc3RfbG9jayk7CisgICAgUUVNVV9MT0NLX0dVQVJE KCZxZW11X2NwdV9saXN0X2xvY2spOwogICAgIGlmICghUVRBSUxRX0lOX1VTRShjcHUsIG5vZGUp KSB7CiAgICAgICAgIC8qIHRoZXJlIGlzIG5vdGhpbmcgdG8gdW5kbyBzaW5jZSBjcHVfZXhlY19p bml0KCkgaGFzbid0IGJlZW4gY2FsbGVkICovCi0gICAgICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZx ZW11X2NwdV9saXN0X2xvY2spOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC05NSw3ICs5 NCw2IEBAIHZvaWQgY3B1X2xpc3RfcmVtb3ZlKENQVVN0YXRlICpjcHUpCiAKICAgICBRVEFJTFFf UkVNT1ZFX1JDVSgmY3B1cywgY3B1LCBub2RlKTsKICAgICBjcHUtPmNwdV9pbmRleCA9IFVOQVNT SUdORURfQ1BVX0lOREVYOwotICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZxZW11X2NwdV9saXN0X2xv Y2spOwogfQogCiBzdHJ1Y3QgcWVtdV93b3JrX2l0ZW0gewpAQCAtMjM3LDcgKzIzNSw3IEBAIHZv aWQgY3B1X2V4ZWNfc3RhcnQoQ1BVU3RhdGUgKmNwdSkKICAgICAgKiBzZWUgY3B1LT5ydW5uaW5n ID09IHRydWUsIGFuZCBpdCB3aWxsIGtpY2sgdGhlIENQVS4KICAgICAgKi8KICAgICBpZiAodW5s aWtlbHkoYXRvbWljX3JlYWQoJnBlbmRpbmdfY3B1cykpKSB7Ci0gICAgICAgIHFlbXVfbXV0ZXhf bG9jaygmcWVtdV9jcHVfbGlzdF9sb2NrKTsKKyAgICAgICAgUUVNVV9MT0NLX0dVQVJEKCZxZW11 X2NwdV9saXN0X2xvY2spOwogICAgICAgICBpZiAoIWNwdS0+aGFzX3dhaXRlcikgewogICAgICAg ICAgICAgLyogTm90IGNvdW50ZWQgaW4gcGVuZGluZ19jcHVzLCBsZXQgdGhlIGV4Y2x1c2l2ZSBp dGVtCiAgICAgICAgICAgICAgKiBydW4uICBTaW5jZSB3ZSBoYXZlIHRoZSBsb2NrLCBqdXN0IHNl dCBjcHUtPnJ1bm5pbmcgdG8gdHJ1ZQpAQCAtMjUyLDcgKzI1MCw2IEBAIHZvaWQgY3B1X2V4ZWNf c3RhcnQoQ1BVU3RhdGUgKmNwdSkKICAgICAgICAgICAgICAqIHdhaXRlciBhdCBjcHVfZXhlY19l bmQuCiAgICAgICAgICAgICAgKi8KICAgICAgICAgfQotICAgICAgICBxZW11X211dGV4X3VubG9j aygmcWVtdV9jcHVfbGlzdF9sb2NrKTsKICAgICB9CiB9CiAKQEAgLTI4MCw3ICsyNzcsNyBAQCB2 b2lkIGNwdV9leGVjX2VuZChDUFVTdGF0ZSAqY3B1KQogICAgICAqIG5leHQgY3B1X2V4ZWNfc3Rh cnQuCiAgICAgICovCiAgICAgaWYgKHVubGlrZWx5KGF0b21pY19yZWFkKCZwZW5kaW5nX2NwdXMp KSkgewotICAgICAgICBxZW11X211dGV4X2xvY2soJnFlbXVfY3B1X2xpc3RfbG9jayk7CisgICAg ICAgIFFFTVVfTE9DS19HVUFSRCgmcWVtdV9jcHVfbGlzdF9sb2NrKTsKICAgICAgICAgaWYgKGNw dS0+aGFzX3dhaXRlcikgewogICAgICAgICAgICAgY3B1LT5oYXNfd2FpdGVyID0gZmFsc2U7CiAg ICAgICAgICAgICBhdG9taWNfc2V0KCZwZW5kaW5nX2NwdXMsIHBlbmRpbmdfY3B1cyAtIDEpOwpA QCAtMjg4LDcgKzI4NSw2IEBAIHZvaWQgY3B1X2V4ZWNfZW5kKENQVVN0YXRlICpjcHUpCiAgICAg ICAgICAgICAgICAgcWVtdV9jb25kX3NpZ25hbCgmZXhjbHVzaXZlX2NvbmQpOwogICAgICAgICAg ICAgfQogICAgICAgICB9Ci0gICAgICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZxZW11X2NwdV9saXN0 X2xvY2spOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvaHcvZGlzcGxheS9xeGwuYyBiL2h3L2Rp c3BsYXkvcXhsLmMKaW5kZXggMjI3ZGE2OWE1MC4uZDU2MjcxMTllYyAxMDA2NDQKLS0tIGEvaHcv ZGlzcGxheS9xeGwuYworKysgYi9ody9kaXNwbGF5L3F4bC5jCkBAIC00NzgsMTggKzQ3OCwxOSBA QCBzdGF0aWMgaW50IHF4bF90cmFja19jb21tYW5kKFBDSVFYTERldmljZSAqcXhsLCBzdHJ1Y3Qg UVhMQ29tbWFuZEV4dCAqZXh0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kLT51 LnN1cmZhY2VfY3JlYXRlLnN0cmlkZSk7CiAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAg fQotICAgICAgICBxZW11X211dGV4X2xvY2soJnF4bC0+dHJhY2tfbG9jayk7Ci0gICAgICAgIGlm IChjbWQtPnR5cGUgPT0gUVhMX1NVUkZBQ0VfQ01EX0NSRUFURSkgewotICAgICAgICAgICAgcXhs LT5ndWVzdF9zdXJmYWNlcy5jbWRzW2lkXSA9IGV4dC0+Y21kLmRhdGE7Ci0gICAgICAgICAgICBx eGwtPmd1ZXN0X3N1cmZhY2VzLmNvdW50Kys7Ci0gICAgICAgICAgICBpZiAocXhsLT5ndWVzdF9z dXJmYWNlcy5tYXggPCBxeGwtPmd1ZXN0X3N1cmZhY2VzLmNvdW50KQotICAgICAgICAgICAgICAg IHF4bC0+Z3Vlc3Rfc3VyZmFjZXMubWF4ID0gcXhsLT5ndWVzdF9zdXJmYWNlcy5jb3VudDsKKyAg ICAgICAgV0lUSF9RRU1VX0xPQ0tfR1VBUkQoJnF4bC0+dHJhY2tfbG9jaykgeworICAgICAgICAg ICAgaWYgKGNtZC0+dHlwZSA9PSBRWExfU1VSRkFDRV9DTURfQ1JFQVRFKSB7CisgICAgICAgICAg ICAgICAgcXhsLT5ndWVzdF9zdXJmYWNlcy5jbWRzW2lkXSA9IGV4dC0+Y21kLmRhdGE7CisgICAg ICAgICAgICAgICAgcXhsLT5ndWVzdF9zdXJmYWNlcy5jb3VudCsrOworICAgICAgICAgICAgICAg IGlmIChxeGwtPmd1ZXN0X3N1cmZhY2VzLm1heCA8IHF4bC0+Z3Vlc3Rfc3VyZmFjZXMuY291bnQp IHsKKyAgICAgICAgICAgICAgICAgICAgcXhsLT5ndWVzdF9zdXJmYWNlcy5tYXggPSBxeGwtPmd1 ZXN0X3N1cmZhY2VzLmNvdW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg ICAgICAgICAgIGlmIChjbWQtPnR5cGUgPT0gUVhMX1NVUkZBQ0VfQ01EX0RFU1RST1kpIHsKKyAg ICAgICAgICAgICAgICBxeGwtPmd1ZXN0X3N1cmZhY2VzLmNtZHNbaWRdID0gMDsKKyAgICAgICAg ICAgICAgICBxeGwtPmd1ZXN0X3N1cmZhY2VzLmNvdW50LS07CisgICAgICAgICAgICB9CiAgICAg ICAgIH0KLSAgICAgICAgaWYgKGNtZC0+dHlwZSA9PSBRWExfU1VSRkFDRV9DTURfREVTVFJPWSkg ewotICAgICAgICAgICAgcXhsLT5ndWVzdF9zdXJmYWNlcy5jbWRzW2lkXSA9IDA7Ci0gICAgICAg ICAgICBxeGwtPmd1ZXN0X3N1cmZhY2VzLmNvdW50LS07Ci0gICAgICAgIH0KLSAgICAgICAgcWVt dV9tdXRleF91bmxvY2soJnF4bC0+dHJhY2tfbG9jayk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K ICAgICBjYXNlIFFYTF9DTURfQ1VSU09SOgpAQCAtOTU4LDEwICs5NTksOSBAQCBzdGF0aWMgdm9p ZCBpbnRlcmZhY2VfdXBkYXRlX2FyZWFfY29tcGxldGUoUVhMSW5zdGFuY2UgKnNpbiwKICAgICBp bnQgaTsKICAgICBpbnQgcXhsX2k7CiAKLSAgICBxZW11X211dGV4X2xvY2soJnF4bC0+c3NkLmxv Y2spOworICAgIFFFTVVfTE9DS19HVUFSRCgmcXhsLT5zc2QubG9jayk7CiAgICAgaWYgKHN1cmZh Y2VfaWQgIT0gMCB8fCAhbnVtX3VwZGF0ZWRfcmVjdHMgfHwKICAgICAgICAgIXF4bC0+cmVuZGVy X3VwZGF0ZV9jb29raWVfbnVtKSB7Ci0gICAgICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZxeGwtPnNz ZC5sb2NrKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICB0cmFjZV9xeGxfaW50ZXJmYWNl X3VwZGF0ZV9hcmVhX2NvbXBsZXRlKHF4bC0+aWQsIHN1cmZhY2VfaWQsIGRpcnR5LT5sZWZ0LApA QCAtOTgwLDcgKzk4MCw2IEBAIHN0YXRpYyB2b2lkIGludGVyZmFjZV91cGRhdGVfYXJlYV9jb21w bGV0ZShRWExJbnN0YW5jZSAqc2luLAogICAgICAgICAgKiBEb24ndCBib3RoZXIgY29weWluZyBv ciBzY2hlZHVsaW5nIHRoZSBiaCBzaW5jZSB3ZSB3aWxsIGZsaXAKICAgICAgICAgICogdGhlIHdo b2xlIGFyZWEgYW55d2F5IG9uIGNvbXBsZXRpb24gb2YgdGhlIHVwZGF0ZV9hcmVhIGFzeW5jIGNh bGwKICAgICAgICAgICovCi0gICAgICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZxeGwtPnNzZC5sb2Nr KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBxeGxfaSA9IHF4bC0+bnVtX2RpcnR5X3Jl Y3RzOwpAQCAtOTkxLDcgKzk5MCw2IEBAIHN0YXRpYyB2b2lkIGludGVyZmFjZV91cGRhdGVfYXJl YV9jb21wbGV0ZShRWExJbnN0YW5jZSAqc2luLAogICAgIHRyYWNlX3F4bF9pbnRlcmZhY2VfdXBk YXRlX2FyZWFfY29tcGxldGVfc2NoZWR1bGVfYmgocXhsLT5pZCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF4bC0+bnVtX2RpcnR5X3Jl Y3RzKTsKICAgICBxZW11X2JoX3NjaGVkdWxlKHF4bC0+dXBkYXRlX2FyZWFfYmgpOwotICAgIHFl bXVfbXV0ZXhfdW5sb2NrKCZxeGwtPnNzZC5sb2NrKTsKIH0KIAogLyogY2FsbGVkIGZyb20gc3Bp Y2Ugc2VydmVyIHRocmVhZCBjb250ZXh0IG9ubHkgKi8KQEAgLTE2OTQsMTUgKzE2OTIsMTQgQEAg c3RhdGljIHZvaWQgaW9wb3J0X3dyaXRlKHZvaWQgKm9wYXF1ZSwgaHdhZGRyIGFkZHIsCiAgICAg Y2FzZSBRWExfSU9fTU9OSVRPUlNfQ09ORklHX0FTWU5DOgogYXN5bmNfY29tbW9uOgogICAgICAg ICBhc3luYyA9IFFYTF9BU1lOQzsKLSAgICAgICAgcWVtdV9tdXRleF9sb2NrKCZkLT5hc3luY19s b2NrKTsKLSAgICAgICAgaWYgKGQtPmN1cnJlbnRfYXN5bmMgIT0gUVhMX1VOREVGSU5FRF9JTykg ewotICAgICAgICAgICAgcXhsX3NldF9ndWVzdF9idWcoZCwgIiVkIGFzeW5jIHN0YXJ0ZWQgYmVm b3JlIGxhc3QgKCVkKSBjb21wbGV0ZSIsCi0gICAgICAgICAgICAgICAgaW9fcG9ydCwgZC0+Y3Vy cmVudF9hc3luYyk7Ci0gICAgICAgICAgICBxZW11X211dGV4X3VubG9jaygmZC0+YXN5bmNfbG9j ayk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIFdJVEhfUUVNVV9MT0NLX0dVQVJEKCZk LT5hc3luY19sb2NrKSB7CisgICAgICAgICAgICBpZiAoZC0+Y3VycmVudF9hc3luYyAhPSBRWExf VU5ERUZJTkVEX0lPKSB7CisgICAgICAgICAgICAgICAgcXhsX3NldF9ndWVzdF9idWcoZCwgIiVk IGFzeW5jIHN0YXJ0ZWQgYmVmb3JlIGxhc3QgKCVkKSBjb21wbGV0ZSIsCisgICAgICAgICAgICAg ICAgICAgIGlvX3BvcnQsIGQtPmN1cnJlbnRfYXN5bmMpOworICAgICAgICAgICAgICAgIHJldHVy bjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGQtPmN1cnJlbnRfYXN5bmMgPSBvcmlnX2lv X3BvcnQ7CiAgICAgICAgIH0KLSAgICAgICAgZC0+Y3VycmVudF9hc3luYyA9IG9yaWdfaW9fcG9y dDsKLSAgICAgICAgcWVtdV9tdXRleF91bmxvY2soJmQtPmFzeW5jX2xvY2spOwogICAgICAgICBi cmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL2h3L3ZmaW8v cGxhdGZvcm0uYyBiL2h3L3ZmaW8vcGxhdGZvcm0uYwppbmRleCA2YjI5NTJjMDM0Li5hYzJjZWZj OWIxIDEwMDY0NAotLS0gYS9ody92ZmlvL3BsYXRmb3JtLmMKKysrIGIvaHcvdmZpby9wbGF0Zm9y bS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiaHcvdmZpby92ZmlvLXBsYXRmb3JtLmgi CiAjaW5jbHVkZSAibWlncmF0aW9uL3Ztc3RhdGUuaCIKICNpbmNsdWRlICJxZW11L2Vycm9yLXJl cG9ydC5oIgorI2luY2x1ZGUgInFlbXUvbG9ja2FibGUuaCIKICNpbmNsdWRlICJxZW11L21haW4t bG9vcC5oIgogI2luY2x1ZGUgInFlbXUvbW9kdWxlLmgiCiAjaW5jbHVkZSAicWVtdS9yYW5nZS5o IgpAQCAtMjE2LDcgKzIxNyw3IEBAIHN0YXRpYyB2b2lkIHZmaW9faW50cF9pbnRlcnJ1cHQoVkZJ T0lOVHAgKmludHApCiAgICAgVkZJT1BsYXRmb3JtRGV2aWNlICp2ZGV2ID0gaW50cC0+dmRldjsK ICAgICBib29sIGRlbGF5X2hhbmRsaW5nID0gZmFsc2U7CiAKLSAgICBxZW11X211dGV4X2xvY2so JnZkZXYtPmludHBfbXV0ZXgpOworICAgIFFFTVVfTE9DS19HVUFSRCgmdmRldi0+aW50cF9tdXRl eCk7CiAgICAgaWYgKGludHAtPnN0YXRlID09IFZGSU9fSVJRX0lOQUNUSVZFKSB7CiAgICAgICAg IFFMSVNUX0ZPUkVBQ0godG1wLCAmdmRldi0+aW50cF9saXN0LCBuZXh0KSB7CiAgICAgICAgICAg ICBpZiAodG1wLT5zdGF0ZSA9PSBWRklPX0lSUV9BQ1RJVkUgfHwKQEAgLTIzNiw3ICsyMzcsNiBA QCBzdGF0aWMgdm9pZCB2ZmlvX2ludHBfaW50ZXJydXB0KFZGSU9JTlRwICppbnRwKQogICAgICAg ICBRU0lNUExFUV9JTlNFUlRfVEFJTCgmdmRldi0+cGVuZGluZ19pbnRwX3F1ZXVlLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnRwLCBwcW5leHQpOwogICAgICAgICByZXQgPSBldmVu dF9ub3RpZmllcl90ZXN0X2FuZF9jbGVhcihpbnRwLT5pbnRlcnJ1cHQpOwotICAgICAgICBxZW11 X211dGV4X3VubG9jaygmdmRldi0+aW50cF9tdXRleCk7CiAgICAgICAgIHJldHVybjsKICAgICB9 CiAKQEAgLTI2Niw3ICsyNjYsNiBAQCBzdGF0aWMgdm9pZCB2ZmlvX2ludHBfaW50ZXJydXB0KFZG SU9JTlRwICppbnRwKQogICAgICAgICAgICAgICAgICAgcWVtdV9jbG9ja19nZXRfbXMoUUVNVV9D TE9DS19WSVJUVUFMKSArCiAgICAgICAgICAgICAgICAgICAgICAgdmRldi0+bW1hcF90aW1lb3V0 KTsKICAgICB9Ci0gICAgcWVtdV9tdXRleF91bmxvY2soJnZkZXYtPmludHBfbXV0ZXgpOwogfQog CiAvKioKZGlmZiAtLWdpdCBhL21pZ3JhdGlvbi9taWdyYXRpb24uYyBiL21pZ3JhdGlvbi9taWdy YXRpb24uYwppbmRleCAxODdhYzA0MTBjLi4xNzdjY2U5ZTk1IDEwMDY0NAotLS0gYS9taWdyYXRp b24vbWlncmF0aW9uLmMKKysrIGIvbWlncmF0aW9uL21pZ3JhdGlvbi5jCkBAIC0xNjUzLDExICsx NjUzLDEwIEBAIHN0YXRpYyB2b2lkIG1pZ3JhdGVfZmRfY2xlYW51cF9iaCh2b2lkICpvcGFxdWUp CiAKIHZvaWQgbWlncmF0ZV9zZXRfZXJyb3IoTWlncmF0aW9uU3RhdGUgKnMsIGNvbnN0IEVycm9y ICplcnJvcikKIHsKLSAgICBxZW11X211dGV4X2xvY2soJnMtPmVycm9yX211dGV4KTsKKyAgICBR RU1VX0xPQ0tfR1VBUkQoJnMtPmVycm9yX211dGV4KTsKICAgICBpZiAoIXMtPmVycm9yKSB7CiAg ICAgICAgIHMtPmVycm9yID0gZXJyb3JfY29weShlcnJvcik7CiAgICAgfQotICAgIHFlbXVfbXV0 ZXhfdW5sb2NrKCZzLT5lcnJvcl9tdXRleCk7CiB9CiAKIHZvaWQgbWlncmF0ZV9mZF9lcnJvcihN aWdyYXRpb25TdGF0ZSAqcywgY29uc3QgRXJyb3IgKmVycm9yKQpkaWZmIC0tZ2l0IGEvbWlncmF0 aW9uL211bHRpZmQuYyBiL21pZ3JhdGlvbi9tdWx0aWZkLmMKaW5kZXggY2I2YTRhM2FiOC4uOTEy M2MxMTFhMyAxMDA2NDQKLS0tIGEvbWlncmF0aW9uL211bHRpZmQuYworKysgYi9taWdyYXRpb24v bXVsdGlmZC5jCkBAIC04OTQsMTEgKzg5NCwxMSBAQCB2b2lkIG11bHRpZmRfcmVjdl9zeW5jX21h aW4odm9pZCkKICAgICBmb3IgKGkgPSAwOyBpIDwgbWlncmF0ZV9tdWx0aWZkX2NoYW5uZWxzKCk7 IGkrKykgewogICAgICAgICBNdWx0aUZEUmVjdlBhcmFtcyAqcCA9ICZtdWx0aWZkX3JlY3Zfc3Rh dGUtPnBhcmFtc1tpXTsKIAotICAgICAgICBxZW11X211dGV4X2xvY2soJnAtPm11dGV4KTsKLSAg ICAgICAgaWYgKG11bHRpZmRfcmVjdl9zdGF0ZS0+cGFja2V0X251bSA8IHAtPnBhY2tldF9udW0p IHsKLSAgICAgICAgICAgIG11bHRpZmRfcmVjdl9zdGF0ZS0+cGFja2V0X251bSA9IHAtPnBhY2tl dF9udW07CisgICAgICAgIFdJVEhfUUVNVV9MT0NLX0dVQVJEKCZwLT5tdXRleCkgeworICAgICAg ICAgICAgaWYgKG11bHRpZmRfcmVjdl9zdGF0ZS0+cGFja2V0X251bSA8IHAtPnBhY2tldF9udW0p IHsKKyAgICAgICAgICAgICAgICBtdWx0aWZkX3JlY3Zfc3RhdGUtPnBhY2tldF9udW0gPSBwLT5w YWNrZXRfbnVtOworICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHFlbXVfbXV0ZXhf dW5sb2NrKCZwLT5tdXRleCk7CiAgICAgICAgIHRyYWNlX211bHRpZmRfcmVjdl9zeW5jX21haW5f c2lnbmFsKHAtPmlkKTsKICAgICAgICAgcWVtdV9zZW1fcG9zdCgmcC0+c2VtX3N5bmMpOwogICAg IH0KZGlmZiAtLWdpdCBhL21pZ3JhdGlvbi9yYW0uYyBiL21pZ3JhdGlvbi9yYW0uYwppbmRleCAw NGYxM2ZlYjJlLi41ODBlYzI0NTIyIDEwMDY0NAotLS0gYS9taWdyYXRpb24vcmFtLmMKKysrIGIv bWlncmF0aW9uL3JhbS5jCkBAIC0xMzY5LDcgKzEzNjksNyBAQCBzdGF0aWMgUkFNQmxvY2sgKnVu cXVldWVfcGFnZShSQU1TdGF0ZSAqcnMsIHJhbV9hZGRyX3QgKm9mZnNldCkKICAgICAgICAgcmV0 dXJuIE5VTEw7CiAgICAgfQogCi0gICAgcWVtdV9tdXRleF9sb2NrKCZycy0+c3JjX3BhZ2VfcmVx X211dGV4KTsKKyAgICBRRU1VX0xPQ0tfR1VBUkQoJnJzLT5zcmNfcGFnZV9yZXFfbXV0ZXgpOwog ICAgIGlmICghUVNJTVBMRVFfRU1QVFkoJnJzLT5zcmNfcGFnZV9yZXF1ZXN0cykpIHsKICAgICAg ICAgc3RydWN0IFJBTVNyY1BhZ2VSZXF1ZXN0ICplbnRyeSA9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFTSU1QTEVRX0ZJUlNUKCZycy0+c3JjX3BhZ2VfcmVxdWVzdHMpOwpAQCAt MTM4Niw3ICsxMzg2LDYgQEAgc3RhdGljIFJBTUJsb2NrICp1bnF1ZXVlX3BhZ2UoUkFNU3RhdGUg KnJzLCByYW1fYWRkcl90ICpvZmZzZXQpCiAgICAgICAgICAgICBtaWdyYXRpb25fY29uc3VtZV91 cmdlbnRfcmVxdWVzdCgpOwogICAgICAgICB9CiAgICAgfQotICAgIHFlbXVfbXV0ZXhfdW5sb2Nr KCZycy0+c3JjX3BhZ2VfcmVxX211dGV4KTsKIAogICAgIHJldHVybiBibG9jazsKIH0KZGlmZiAt LWdpdCBhL21vbml0b3IvbWlzYy5jIGIvbW9uaXRvci9taXNjLmMKaW5kZXggNmM0NWZhNDkwZi4u OTcyM2I0NjZjZCAxMDA2NDQKLS0tIGEvbW9uaXRvci9taXNjLmMKKysrIGIvbW9uaXRvci9taXNj LmMKQEAgLTE0NzMsNyArMTQ3Myw3IEBAIEFkZGZkSW5mbyAqbW9uaXRvcl9mZHNldF9hZGRfZmQo aW50IGZkLCBib29sIGhhc19mZHNldF9pZCwgaW50NjRfdCBmZHNldF9pZCwKICAgICBNb25GZHNl dEZkICptb25fZmRzZXRfZmQ7CiAgICAgQWRkZmRJbmZvICpmZGluZm87CiAKLSAgICBxZW11X211 dGV4X2xvY2soJm1vbl9mZHNldHNfbG9jayk7CisgICAgUUVNVV9MT0NLX0dVQVJEKCZtb25fZmRz ZXRzX2xvY2spOwogICAgIGlmIChoYXNfZmRzZXRfaWQpIHsKICAgICAgICAgUUxJU1RfRk9SRUFD SChtb25fZmRzZXQsICZtb25fZmRzZXRzLCBuZXh0KSB7CiAgICAgICAgICAgICAvKiBCcmVhayBp ZiBtYXRjaCBmb3VuZCBvciBtYXRjaCBpbXBvc3NpYmxlIGR1ZSB0byBvcmRlcmluZyBieSBJRCAq LwpAQCAtMTQ5NCw3ICsxNDk0LDYgQEAgQWRkZmRJbmZvICptb25pdG9yX2Zkc2V0X2FkZF9mZChp bnQgZmQsIGJvb2wgaGFzX2Zkc2V0X2lkLCBpbnQ2NF90IGZkc2V0X2lkLAogICAgICAgICAgICAg aWYgKGZkc2V0X2lkIDwgMCkgewogICAgICAgICAgICAgICAgIGVycm9yX3NldGcoZXJycCwgUUVS Ul9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSwgImZkc2V0LWlkIiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJhIG5vbi1uZWdhdGl2ZSB2YWx1ZSIpOwotICAgICAgICAgICAgICAgIHFlbXVf bXV0ZXhfdW5sb2NrKCZtb25fZmRzZXRzX2xvY2spOwogICAgICAgICAgICAgICAgIHJldHVybiBO VUxMOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgLyogVXNlIHNwZWNpZmllZCBmZHNldCBJ RCAqLwpAQCAtMTU0NSw3ICsxNTQ0LDYgQEAgQWRkZmRJbmZvICptb25pdG9yX2Zkc2V0X2FkZF9m ZChpbnQgZmQsIGJvb2wgaGFzX2Zkc2V0X2lkLCBpbnQ2NF90IGZkc2V0X2lkLAogICAgIGZkaW5m by0+ZmRzZXRfaWQgPSBtb25fZmRzZXQtPmlkOwogICAgIGZkaW5mby0+ZmQgPSBtb25fZmRzZXRf ZmQtPmZkOwogCi0gICAgcWVtdV9tdXRleF91bmxvY2soJm1vbl9mZHNldHNfbG9jayk7CiAgICAg cmV0dXJuIGZkaW5mbzsKIH0KIApkaWZmIC0tZ2l0IGEvdWkvc3BpY2UtZGlzcGxheS5jIGIvdWkv c3BpY2UtZGlzcGxheS5jCmluZGV4IDZiYWJlMjQ5MDkuLjE5NjMyZmRmNmMgMTAwNjQ0Ci0tLSBh L3VpL3NwaWNlLWRpc3BsYXkuYworKysgYi91aS9zcGljZS1kaXNwbGF5LmMKQEAgLTE4LDYgKzE4 LDcgQEAKICNpbmNsdWRlICJxZW11L29zZGVwLmgiCiAjaW5jbHVkZSAidWkvcWVtdS1zcGljZS5o IgogI2luY2x1ZGUgInFlbXUvdGltZXIuaCIKKyNpbmNsdWRlICJxZW11L2xvY2thYmxlLmgiCiAj aW5jbHVkZSAicWVtdS9tYWluLWxvb3AuaCIKICNpbmNsdWRlICJxZW11L29wdGlvbi5oIgogI2lu Y2x1ZGUgInFlbXUvcXVldWUuaCIKQEAgLTQ4MywxMiArNDg0LDEyIEBAIHZvaWQgcWVtdV9zcGlj ZV9kaXNwbGF5X3JlZnJlc2goU2ltcGxlU3BpY2VEaXNwbGF5ICpzc2QpCiB7CiAgICAgZ3JhcGhp Y19od191cGRhdGUoc3NkLT5kY2wuY29uKTsKIAotICAgIHFlbXVfbXV0ZXhfbG9jaygmc3NkLT5s b2NrKTsKLSAgICBpZiAoUVRBSUxRX0VNUFRZKCZzc2QtPnVwZGF0ZXMpICYmIHNzZC0+ZHMpIHsK LSAgICAgICAgcWVtdV9zcGljZV9jcmVhdGVfdXBkYXRlKHNzZCk7Ci0gICAgICAgIHNzZC0+bm90 aWZ5Kys7CisgICAgV0lUSF9RRU1VX0xPQ0tfR1VBUkQoJnNzZC0+bG9jaykgeworICAgICAgICBp ZiAoUVRBSUxRX0VNUFRZKCZzc2QtPnVwZGF0ZXMpICYmIHNzZC0+ZHMpIHsKKyAgICAgICAgICAg IHFlbXVfc3BpY2VfY3JlYXRlX3VwZGF0ZShzc2QpOworICAgICAgICAgICAgc3NkLT5ub3RpZnkr KzsKKyAgICAgICAgfQogICAgIH0KLSAgICBxZW11X211dGV4X3VubG9jaygmc3NkLT5sb2NrKTsK IAogICAgIHRyYWNlX3FlbXVfc3BpY2VfZGlzcGxheV9yZWZyZXNoKHNzZC0+cXhsLmlkLCBzc2Qt Pm5vdGlmeSk7CiAgICAgaWYgKHNzZC0+bm90aWZ5KSB7CkBAIC01ODAsNyArNTgxLDcgQEAgc3Rh dGljIGludCBpbnRlcmZhY2VfZ2V0X2N1cnNvcl9jb21tYW5kKFFYTEluc3RhbmNlICpzaW4sIFFY TENvbW1hbmRFeHQgKmV4dCkKICAgICBTaW1wbGVTcGljZURpc3BsYXkgKnNzZCA9IGNvbnRhaW5l cl9vZihzaW4sIFNpbXBsZVNwaWNlRGlzcGxheSwgcXhsKTsKICAgICBpbnQgcmV0OwogCi0gICAg cWVtdV9tdXRleF9sb2NrKCZzc2QtPmxvY2spOworICAgIFFFTVVfTE9DS19HVUFSRCgmc3NkLT5s b2NrKTsKICAgICBpZiAoc3NkLT5wdHJfZGVmaW5lKSB7CiAgICAgICAgICpleHQgPSBzc2QtPnB0 cl9kZWZpbmUtPmV4dDsKICAgICAgICAgc3NkLT5wdHJfZGVmaW5lID0gTlVMTDsKQEAgLTU5Miw3 ICs1OTMsNiBAQCBzdGF0aWMgaW50IGludGVyZmFjZV9nZXRfY3Vyc29yX2NvbW1hbmQoUVhMSW5z dGFuY2UgKnNpbiwgUVhMQ29tbWFuZEV4dCAqZXh0KQogICAgIH0gZWxzZSB7CiAgICAgICAgIHJl dCA9IGZhbHNlOwogICAgIH0KLSAgICBxZW11X211dGV4X3VubG9jaygmc3NkLT5sb2NrKTsKICAg ICByZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS91dGlsL2xvZy5jIGIvdXRpbC9sb2cuYwpp bmRleCAyZGE2Y2IzMWRjLi5iZGIzZDcxMmU4IDEwMDY0NAotLS0gYS91dGlsL2xvZy5jCisrKyBi L3V0aWwvbG9nLmMKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJxZW11L2N1dGlscy5oIgog I2luY2x1ZGUgInRyYWNlL2NvbnRyb2wuaCIKICNpbmNsdWRlICJxZW11L3RocmVhZC5oIgorI2lu Y2x1ZGUgInFlbXUvbG9ja2FibGUuaCIKIAogc3RhdGljIGNoYXIgKmxvZ2ZpbGVuYW1lOwogc3Rh dGljIFFlbXVNdXRleCBxZW11X2xvZ2ZpbGVfbXV0ZXg7CkBAIC05NCw3ICs5NSw3IEBAIHZvaWQg cWVtdV9zZXRfbG9nKGludCBsb2dfZmxhZ3MpCiAgICAgaWYgKHFlbXVfbG9nbGV2ZWwgJiYgKCFp c19kYWVtb25pemVkKCkgfHwgbG9nZmlsZW5hbWUpKSB7CiAgICAgICAgIG5lZWRfdG9fb3Blbl9m aWxlID0gdHJ1ZTsKICAgICB9Ci0gICAgcWVtdV9tdXRleF9sb2NrKCZxZW11X2xvZ2ZpbGVfbXV0 ZXgpOworICAgIFFFTVVfTE9DS19HVUFSRCgmcWVtdV9sb2dmaWxlX211dGV4KTsKICAgICBpZiAo cWVtdV9sb2dmaWxlICYmICFuZWVkX3RvX29wZW5fZmlsZSkgewogICAgICAgICBsb2dmaWxlID0g cWVtdV9sb2dmaWxlOwogICAgICAgICBhdG9taWNfcmN1X3NldCgmcWVtdV9sb2dmaWxlLCBOVUxM KTsKQEAgLTEzNiw3ICsxMzcsNiBAQCB2b2lkIHFlbXVfc2V0X2xvZyhpbnQgbG9nX2ZsYWdzKQog ICAgICAgICB9CiAgICAgICAgIGF0b21pY19yY3Vfc2V0KCZxZW11X2xvZ2ZpbGUsIGxvZ2ZpbGUp OwogICAgIH0KLSAgICBxZW11X211dGV4X3VubG9jaygmcWVtdV9sb2dmaWxlX211dGV4KTsKIH0K IAogdm9pZCBxZW11X2xvZ19uZWVkc19idWZmZXJzKHZvaWQpCmRpZmYgLS1naXQgYS91dGlsL3Fl bXUtdGltZXIuYyBiL3V0aWwvcWVtdS10aW1lci5jCmluZGV4IGQ1NDhkM2MxYWQuLmI2NTc1YTJj ZDUgMTAwNjQ0Ci0tLSBhL3V0aWwvcWVtdS10aW1lci5jCisrKyBiL3V0aWwvcWVtdS10aW1lci5j CkBAIC00NTksMTcgKzQ1OSwxNiBAQCB2b2lkIHRpbWVyX21vZF9hbnRpY2lwYXRlX25zKFFFTVVU aW1lciAqdHMsIGludDY0X3QgZXhwaXJlX3RpbWUpCiAgICAgUUVNVVRpbWVyTGlzdCAqdGltZXJf bGlzdCA9IHRzLT50aW1lcl9saXN0OwogICAgIGJvb2wgcmVhcm07CiAKLSAgICBxZW11X211dGV4 X2xvY2soJnRpbWVyX2xpc3QtPmFjdGl2ZV90aW1lcnNfbG9jayk7Ci0gICAgaWYgKHRzLT5leHBp cmVfdGltZSA9PSAtMSB8fCB0cy0+ZXhwaXJlX3RpbWUgPiBleHBpcmVfdGltZSkgewotICAgICAg ICBpZiAodHMtPmV4cGlyZV90aW1lICE9IC0xKSB7Ci0gICAgICAgICAgICB0aW1lcl9kZWxfbG9j a2VkKHRpbWVyX2xpc3QsIHRzKTsKKyAgICBXSVRIX1FFTVVfTE9DS19HVUFSRCgmdGltZXJfbGlz dC0+YWN0aXZlX3RpbWVyc19sb2NrKSB7CisgICAgICAgIGlmICh0cy0+ZXhwaXJlX3RpbWUgPT0g LTEgfHwgdHMtPmV4cGlyZV90aW1lID4gZXhwaXJlX3RpbWUpIHsKKyAgICAgICAgICAgIGlmICh0 cy0+ZXhwaXJlX3RpbWUgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICB0aW1lcl9kZWxfbG9ja2Vk KHRpbWVyX2xpc3QsIHRzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlYXJtID0gdGlt ZXJfbW9kX25zX2xvY2tlZCh0aW1lcl9saXN0LCB0cywgZXhwaXJlX3RpbWUpOworICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgcmVhcm0gPSBmYWxzZTsKICAgICAgICAgfQotICAgICAgICBy ZWFybSA9IHRpbWVyX21vZF9uc19sb2NrZWQodGltZXJfbGlzdCwgdHMsIGV4cGlyZV90aW1lKTsK LSAgICB9IGVsc2UgewotICAgICAgICByZWFybSA9IGZhbHNlOwogICAgIH0KLSAgICBxZW11X211 dGV4X3VubG9jaygmdGltZXJfbGlzdC0+YWN0aXZlX3RpbWVyc19sb2NrKTsKLQogICAgIGlmIChy ZWFybSkgewogICAgICAgICB0aW1lcmxpc3RfcmVhcm0odGltZXJfbGlzdCk7CiAgICAgfQpkaWZm IC0tZ2l0IGEvdXRpbC9yY3UuYyBiL3V0aWwvcmN1LmMKaW5kZXggMTc3YTY3NTYxOS4uNjBhMzdm NzJjMyAxMDA2NDQKLS0tIGEvdXRpbC9yY3UuYworKysgYi91dGlsL3JjdS5jCkBAIC0zMSw2ICsz MSw3IEBACiAjaW5jbHVkZSAicWVtdS9hdG9taWMuaCIKICNpbmNsdWRlICJxZW11L3RocmVhZC5o IgogI2luY2x1ZGUgInFlbXUvbWFpbi1sb29wLmgiCisjaW5jbHVkZSAicWVtdS9sb2NrYWJsZS5o IgogI2lmIGRlZmluZWQoQ09ORklHX01BTExPQ19UUklNKQogI2luY2x1ZGUgPG1hbGxvYy5oPgog I2VuZGlmCkBAIC0xNDEsMTQgKzE0MiwxNCBAQCBzdGF0aWMgdm9pZCB3YWl0X2Zvcl9yZWFkZXJz KHZvaWQpCiAKIHZvaWQgc3luY2hyb25pemVfcmN1KHZvaWQpCiB7Ci0gICAgcWVtdV9tdXRleF9s b2NrKCZyY3Vfc3luY19sb2NrKTsKKyAgICBRRU1VX0xPQ0tfR1VBUkQoJnJjdV9zeW5jX2xvY2sp OwogCiAgICAgLyogV3JpdGUgUkNVLXByb3RlY3RlZCBwb2ludGVycyBiZWZvcmUgcmVhZGluZyBw X3JjdV9yZWFkZXItPmN0ci4KICAgICAgKiBQYWlycyB3aXRoIHNtcF9tYl9wbGFjZWhvbGRlcigp IGluIHJjdV9yZWFkX2xvY2soKS4KICAgICAgKi8KICAgICBzbXBfbWJfZ2xvYmFsKCk7CiAKLSAg ICBxZW11X211dGV4X2xvY2soJnJjdV9yZWdpc3RyeV9sb2NrKTsKKyAgICBRRU1VX0xPQ0tfR1VB UkQoJnJjdV9yZWdpc3RyeV9sb2NrKTsKICAgICBpZiAoIVFMSVNUX0VNUFRZKCZyZWdpc3RyeSkp IHsKICAgICAgICAgLyogSW4gZWl0aGVyIGNhc2UsIHRoZSBhdG9taWNfbWJfc2V0IGJlbG93IGJs b2NrcyBzdG9yZXMgdGhhdCBmcmVlCiAgICAgICAgICAqIG9sZCBSQ1UtcHJvdGVjdGVkIHBvaW50 ZXJzLgpAQCAtMTY5LDkgKzE3MCw2IEBAIHZvaWQgc3luY2hyb25pemVfcmN1KHZvaWQpCiAKICAg ICAgICAgd2FpdF9mb3JfcmVhZGVycygpOwogICAgIH0KLQotICAgIHFlbXVfbXV0ZXhfdW5sb2Nr KCZyY3VfcmVnaXN0cnlfbG9jayk7Ci0gICAgcWVtdV9tdXRleF91bmxvY2soJnJjdV9zeW5jX2xv Y2spOwogfQogCiAKZGlmZiAtLWdpdCBhL3V0aWwvdGhyZWFkLXBvb2wuYyBiL3V0aWwvdGhyZWFk LXBvb2wuYwppbmRleCA0ZWQ5Yjg5YWIyLi5kNzYzY2VhNTA1IDEwMDY0NAotLS0gYS91dGlsL3Ro cmVhZC1wb29sLmMKKysrIGIvdXRpbC90aHJlYWQtcG9vbC5jCkBAIC0yMTAsNyArMjEwLDcgQEAg c3RhdGljIHZvaWQgdGhyZWFkX3Bvb2xfY2FuY2VsKEJsb2NrQUlPQ0IgKmFjYikKIAogICAgIHRy YWNlX3RocmVhZF9wb29sX2NhbmNlbChlbGVtLCBlbGVtLT5jb21tb24ub3BhcXVlKTsKIAotICAg IHFlbXVfbXV0ZXhfbG9jaygmcG9vbC0+bG9jayk7CisgICAgUUVNVV9MT0NLX0dVQVJEKCZwb29s LT5sb2NrKTsKICAgICBpZiAoZWxlbS0+c3RhdGUgPT0gVEhSRUFEX1FVRVVFRCAmJgogICAgICAg ICAvKiBObyB0aHJlYWQgaGFzIHlldCBzdGFydGVkIHdvcmtpbmcgb24gZWxlbS4gd2UgY2FuIHRy eSB0byAic3RlYWwiCiAgICAgICAgICAqIHRoZSBpdGVtIGZyb20gdGhlIHdvcmtlciBpZiB3ZSBj YW4gZ2V0IGEgc2lnbmFsIGZyb20gdGhlCkBAIC0yMjUsNyArMjI1LDYgQEAgc3RhdGljIHZvaWQg dGhyZWFkX3Bvb2xfY2FuY2VsKEJsb2NrQUlPQ0IgKmFjYikKICAgICAgICAgZWxlbS0+cmV0ID0g LUVDQU5DRUxFRDsKICAgICB9CiAKLSAgICBxZW11X211dGV4X3VubG9jaygmcG9vbC0+bG9jayk7 CiB9CiAKIHN0YXRpYyBBaW9Db250ZXh0ICp0aHJlYWRfcG9vbF9nZXRfYWlvX2NvbnRleHQoQmxv Y2tBSU9DQiAqYWNiKQpkaWZmIC0tZ2l0IGEvdXRpbC92ZmlvLWhlbHBlcnMuYyBiL3V0aWwvdmZp by1oZWxwZXJzLmMKaW5kZXggZGRkOWE5NmU3Ni4uZTM5OWUzMzBlMiAxMDA2NDQKLS0tIGEvdXRp bC92ZmlvLWhlbHBlcnMuYworKysgYi91dGlsL3ZmaW8taGVscGVycy5jCkBAIC0yMSw2ICsyMSw3 IEBACiAjaW5jbHVkZSAic3RhbmRhcmQtaGVhZGVycy9saW51eC9wY2lfcmVncy5oIgogI2luY2x1 ZGUgInFlbXUvZXZlbnRfbm90aWZpZXIuaCIKICNpbmNsdWRlICJxZW11L3ZmaW8taGVscGVycy5o IgorI2luY2x1ZGUgInFlbXUvbG9ja2FibGUuaCIKICNpbmNsdWRlICJ0cmFjZS5oIgogCiAjZGVm aW5lIFFFTVVfVkZJT19ERUJVRyAwCkBAIC02NjcsMTQgKzY2OCwxMiBAQCBpbnQgcWVtdV92Zmlv X2RtYV9yZXNldF90ZW1wb3JhcnkoUUVNVVZGSU9TdGF0ZSAqcykKICAgICAgICAgLnNpemUgPSBR RU1VX1ZGSU9fSU9WQV9NQVggLSBzLT5oaWdoX3dhdGVyX21hcmssCiAgICAgfTsKICAgICB0cmFj ZV9xZW11X3ZmaW9fZG1hX3Jlc2V0X3RlbXBvcmFyeShzKTsKLSAgICBxZW11X211dGV4X2xvY2so JnMtPmxvY2spOworICAgIFFFTVVfTE9DS19HVUFSRCgmcy0+bG9jayk7CiAgICAgaWYgKGlvY3Rs KHMtPmNvbnRhaW5lciwgVkZJT19JT01NVV9VTk1BUF9ETUEsICZ1bm1hcCkpIHsKICAgICAgICAg ZXJyb3JfcmVwb3J0KCJWRklPX1VOTUFQX0RNQSBmYWlsZWQ6ICVzIiwgc3RyZXJyb3IoZXJybm8p KTsKLSAgICAgICAgcWVtdV9tdXRleF91bmxvY2soJnMtPmxvY2spOwogICAgICAgICByZXR1cm4g LWVycm5vOwogICAgIH0KICAgICBzLT5oaWdoX3dhdGVyX21hcmsgPSBRRU1VX1ZGSU9fSU9WQV9N QVg7Ci0gICAgcWVtdV9tdXRleF91bmxvY2soJnMtPmxvY2spOwogICAgIHJldHVybiAwOwogfQog Ci0tIAoyLjI1LjMKCg==