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=-6.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 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 43486C433E0 for ; Tue, 19 May 2020 17:15:29 +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 F3329204EF for ; Tue, 19 May 2020 17:15:28 +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="byS7wlT0" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F3329204EF 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]:54224 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jb5pw-0000RS-83 for qemu-devel@archiver.kernel.org; Tue, 19 May 2020 13:15:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34352) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jb5mm-0003J5-J4 for qemu-devel@nongnu.org; Tue, 19 May 2020 13:12:13 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:30682 helo=us-smtp-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 1jb5ml-0002da-2p for qemu-devel@nongnu.org; Tue, 19 May 2020 13:12:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1589908330; 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=YqjeWHU3smBY29MxD9JzDfgxBzRoiEisjM4B7ebYi4g=; b=byS7wlT0ogH9b+aq12hTEcFTiHrVoS9UR9KwzH+7t0oRLUpJPfP9EEV1GMFM97awVQ6AdA oRoZbgtq5kRCBlwnxMUFypkUdVTC5Rpmeq5U/IA822URZoHGsVcF+6jx9zYV/4wMvQ7AcI wtjuES7Z2yFVx3vPWtVsNJyJvT3n6mA= 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-400-485rVhVvNUi29Iq5B745gg-1; Tue, 19 May 2020 13:12:05 -0400 X-MC-Unique: 485rVhVvNUi29Iq5B745gg-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 10CF418FF661; Tue, 19 May 2020 17:12:04 +0000 (UTC) Received: from localhost (ovpn-114-215.ams2.redhat.com [10.36.114.215]) by smtp.corp.redhat.com (Postfix) with ESMTP id BCB3179B6; Tue, 19 May 2020 17:12:00 +0000 (UTC) From: Stefan Hajnoczi To: qemu-devel@nongnu.org Subject: [PATCH 6/7] block/nvme: keep BDRVNVMeState pointer in NVMeQueuePair Date: Tue, 19 May 2020 18:11:37 +0100 Message-Id: <20200519171138.201667-7-stefanha@redhat.com> In-Reply-To: <20200519171138.201667-1-stefanha@redhat.com> References: <20200519171138.201667-1-stefanha@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 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.120; envelope-from=stefanha@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/18 23:56:10 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Spam_score_int: -3 X-Spam_score: -0.4 X-Spam_bar: / X-Spam_report: (-0.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MIME_BASE64_TEXT=1.741, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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 , Fam Zheng , qemu-block@nongnu.org, Max Reitz , Stefan Hajnoczi , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" UGFzc2luZyBhcm91bmQgYm90aCBCRFJWTlZNZVN0YXRlIGFuZCBOVk1lUXVldWVQYWlyIGlzIHVu d2llZGx5LiBSZWR1Y2UKdGhlIG51bWJlciBvZiBmdW5jdGlvbiBhcmd1bWVudHMgYnkga2VlcGlu ZyB0aGUgQkRSVk5WTWVTdGF0ZSBwb2ludGVyIGluCk5WTWVRdWV1ZVBhaXIuIFRoaXMgd2lsbCBj b21lIGluIGhhbmRseSB3aGVuIGEgQkggaXMgaW50cm9kdWNlZCBpbiBhCmxhdGVyIHBhdGNoIGFu ZCBvbmx5IG9uZSBhcmd1bWVudCBjYW4gYmUgcGFzc2VkIHRvIGl0LgoKU2lnbmVkLW9mZi1ieTog U3RlZmFuIEhham5vY3ppIDxzdGVmYW5oYUByZWRoYXQuY29tPgotLS0KIGJsb2NrL252bWUuYyB8 IDcwICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9ibG9jay9udm1lLmMgYi9ibG9jay9udm1lLmMKaW5kZXggZTMyYmZmMjZmZi4uNWIy ZjZlOWZmYyAxMDA2NDQKLS0tIGEvYmxvY2svbnZtZS5jCisrKyBiL2Jsb2NrL252bWUuYwpAQCAt MzksNiArMzksOCBAQAogICovCiAjZGVmaW5lIE5WTUVfTlVNX1JFUVMgKE5WTUVfUVVFVUVfU0la RSAtIDEpCiAKK3R5cGVkZWYgc3RydWN0IEJEUlZOVk1lU3RhdGUgQkRSVk5WTWVTdGF0ZTsKKwog dHlwZWRlZiBzdHJ1Y3QgewogICAgIGludDMyX3QgIGhlYWQsIHRhaWw7CiAgICAgdWludDhfdCAg KnF1ZXVlOwpAQCAtNTksOCArNjEsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgewogdHlwZWRlZiBzdHJ1 Y3QgewogICAgIFFlbXVNdXRleCAgIGxvY2s7CiAKKyAgICAvKiBSZWFkIGZyb20gSS9PIGNvZGUg cGF0aCwgaW5pdGlhbGl6ZWQgdW5kZXIgQlFMICovCisgICAgQkRSVk5WTWVTdGF0ZSAgICpzOwor ICAgIGludCAgICAgICAgICAgICBpbmRleDsKKwogICAgIC8qIEZpZWxkcyBwcm90ZWN0ZWQgYnkg QlFMICovCi0gICAgaW50ICAgICAgICAgaW5kZXg7CiAgICAgdWludDhfdCAgICAgKnBycF9saXN0 X3BhZ2VzOwogCiAgICAgLyogRmllbGRzIHByb3RlY3RlZCBieSBAbG9jayAqLwpAQCAtOTYsNyAr MTAxLDcgQEAgdHlwZWRlZiB2b2xhdGlsZSBzdHJ1Y3QgewogCiBRRU1VX0JVSUxEX0JVR19PTihv ZmZzZXRvZihOVk1lUmVncywgZG9vcmJlbGxzKSAhPSAweDEwMDApOwogCi10eXBlZGVmIHN0cnVj dCB7CitzdHJ1Y3QgQkRSVk5WTWVTdGF0ZSB7CiAgICAgQWlvQ29udGV4dCAqYWlvX2NvbnRleHQ7 CiAgICAgUUVNVVZGSU9TdGF0ZSAqdmZpbzsKICAgICBOVk1lUmVncyAqcmVnczsKQEAgLTEzMCw3 ICsxMzUsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAKICAgICAvKiBQQ0kgYWRkcmVzcyAocmVxdWly ZWQgZm9yIG52bWVfcmVmcmVzaF9maWxlbmFtZSgpKSAqLwogICAgIGNoYXIgKmRldmljZTsKLX0g QkRSVk5WTWVTdGF0ZTsKK307CiAKICNkZWZpbmUgTlZNRV9CTE9DS19PUFRfREVWSUNFICJkZXZp Y2UiCiAjZGVmaW5lIE5WTUVfQkxPQ0tfT1BUX05BTUVTUEFDRSAibmFtZXNwYWNlIgpAQCAtMTc0 LDcgKzE3OSw3IEBAIHN0YXRpYyB2b2lkIG52bWVfaW5pdF9xdWV1ZShCbG9ja0RyaXZlclN0YXRl ICpicywgTlZNZVF1ZXVlICpxLAogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgbnZtZV9mcmVlX3F1 ZXVlX3BhaXIoQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIE5WTWVRdWV1ZVBhaXIgKnEpCitzdGF0aWMg dm9pZCBudm1lX2ZyZWVfcXVldWVfcGFpcihOVk1lUXVldWVQYWlyICpxKQogewogICAgIHFlbXVf dmZyZWUocS0+cHJwX2xpc3RfcGFnZXMpOwogICAgIHFlbXVfdmZyZWUocS0+c3EucXVldWUpOwpA QCAtMjA1LDYgKzIxMCw3IEBAIHN0YXRpYyBOVk1lUXVldWVQYWlyICpudm1lX2NyZWF0ZV9xdWV1 ZV9wYWlyKEJsb2NrRHJpdmVyU3RhdGUgKmJzLAogICAgIHVpbnQ2NF90IHBycF9saXN0X2lvdmE7 CiAKICAgICBxZW11X211dGV4X2luaXQoJnEtPmxvY2spOworICAgIHEtPnMgPSBzOwogICAgIHEt PmluZGV4ID0gaWR4OwogICAgIHFlbXVfY29fcXVldWVfaW5pdCgmcS0+ZnJlZV9yZXFfcXVldWUp OwogICAgIHEtPnBycF9saXN0X3BhZ2VzID0gcWVtdV9ibG9ja2FsaWduMChicywgcy0+cGFnZV9z aXplICogTlZNRV9OVU1fUkVRUyk7CkBAIC0yNDAsMTMgKzI0NiwxNSBAQCBzdGF0aWMgTlZNZVF1 ZXVlUGFpciAqbnZtZV9jcmVhdGVfcXVldWVfcGFpcihCbG9ja0RyaXZlclN0YXRlICpicywKIAog ICAgIHJldHVybiBxOwogZmFpbDoKLSAgICBudm1lX2ZyZWVfcXVldWVfcGFpcihicywgcSk7Cisg ICAgbnZtZV9mcmVlX3F1ZXVlX3BhaXIocSk7CiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKIC8qIFdp dGggcS0+bG9jayAqLwotc3RhdGljIHZvaWQgbnZtZV9raWNrKEJEUlZOVk1lU3RhdGUgKnMsIE5W TWVRdWV1ZVBhaXIgKnEpCitzdGF0aWMgdm9pZCBudm1lX2tpY2soTlZNZVF1ZXVlUGFpciAqcSkK IHsKKyAgICBCRFJWTlZNZVN0YXRlICpzID0gcS0+czsKKwogICAgIGlmIChzLT5wbHVnZ2VkIHx8 ICFxLT5uZWVkX2tpY2spIHsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI5NSwyMSArMzAz LDIwIEBAIHN0YXRpYyB2b2lkIG52bWVfcHV0X2ZyZWVfcmVxX2xvY2tlZChOVk1lUXVldWVQYWly ICpxLCBOVk1lUmVxdWVzdCAqcmVxKQogfQogCiAvKiBXaXRoIHEtPmxvY2sgKi8KLXN0YXRpYyB2 b2lkIG52bWVfd2FrZV9mcmVlX3JlcV9sb2NrZWQoQkRSVk5WTWVTdGF0ZSAqcywgTlZNZVF1ZXVl UGFpciAqcSkKK3N0YXRpYyB2b2lkIG52bWVfd2FrZV9mcmVlX3JlcV9sb2NrZWQoTlZNZVF1ZXVl UGFpciAqcSkKIHsKICAgICBpZiAoIXFlbXVfY29fcXVldWVfZW1wdHkoJnEtPmZyZWVfcmVxX3F1 ZXVlKSkgewotICAgICAgICByZXBsYXlfYmhfc2NoZWR1bGVfb25lc2hvdF9ldmVudChzLT5haW9f Y29udGV4dCwKKyAgICAgICAgcmVwbGF5X2JoX3NjaGVkdWxlX29uZXNob3RfZXZlbnQocS0+cy0+ YWlvX2NvbnRleHQsCiAgICAgICAgICAgICAgICAgbnZtZV9mcmVlX3JlcV9xdWV1ZV9jYiwgcSk7 CiAgICAgfQogfQogCiAvKiBJbnNlcnQgYSByZXF1ZXN0IGluIHRoZSBmcmVlbGlzdCBhbmQgd2Fr ZSB3YWl0ZXJzICovCi1zdGF0aWMgdm9pZCBudm1lX3B1dF9mcmVlX3JlcV9hbmRfd2FrZShCRFJW TlZNZVN0YXRlICpzLCAgTlZNZVF1ZXVlUGFpciAqcSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5WTWVSZXF1ZXN0ICpyZXEpCitzdGF0aWMgdm9pZCBudm1lX3B1dF9m cmVlX3JlcV9hbmRfd2FrZShOVk1lUXVldWVQYWlyICpxLCBOVk1lUmVxdWVzdCAqcmVxKQogewog ICAgIHFlbXVfbXV0ZXhfbG9jaygmcS0+bG9jayk7CiAgICAgbnZtZV9wdXRfZnJlZV9yZXFfbG9j a2VkKHEsIHJlcSk7Ci0gICAgbnZtZV93YWtlX2ZyZWVfcmVxX2xvY2tlZChzLCBxKTsKKyAgICBu dm1lX3dha2VfZnJlZV9yZXFfbG9ja2VkKHEpOwogICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZxLT5s b2NrKTsKIH0KIApAQCAtMzM2LDggKzM0Myw5IEBAIHN0YXRpYyBpbmxpbmUgaW50IG52bWVfdHJh bnNsYXRlX2Vycm9yKGNvbnN0IE52bWVDcWUgKmMpCiB9CiAKIC8qIFdpdGggcS0+bG9jayAqLwot c3RhdGljIGJvb2wgbnZtZV9wcm9jZXNzX2NvbXBsZXRpb24oQkRSVk5WTWVTdGF0ZSAqcywgTlZN ZVF1ZXVlUGFpciAqcSkKK3N0YXRpYyBib29sIG52bWVfcHJvY2Vzc19jb21wbGV0aW9uKE5WTWVR dWV1ZVBhaXIgKnEpCiB7CisgICAgQkRSVk5WTWVTdGF0ZSAqcyA9IHEtPnM7CiAgICAgYm9vbCBw cm9ncmVzcyA9IGZhbHNlOwogICAgIE5WTWVSZXF1ZXN0ICpwcmVxOwogICAgIE5WTWVSZXF1ZXN0 IHJlcTsKQEAgLTM4Niw3ICszOTQsNyBAQCBzdGF0aWMgYm9vbCBudm1lX3Byb2Nlc3NfY29tcGxl dGlvbihCRFJWTlZNZVN0YXRlICpzLCBOVk1lUXVldWVQYWlyICpxKQogICAgICAgICAvKiBOb3Rp ZnkgdGhlIGRldmljZSBzbyBpdCBjYW4gcG9zdCBtb3JlIGNvbXBsZXRpb25zLiAqLwogICAgICAg ICBzbXBfbWJfcmVsZWFzZSgpOwogICAgICAgICAqcS0+Y3EuZG9vcmJlbGwgPSBjcHVfdG9fbGUz MihxLT5jcS5oZWFkKTsKLSAgICAgICAgbnZtZV93YWtlX2ZyZWVfcmVxX2xvY2tlZChzLCBxKTsK KyAgICAgICAgbnZtZV93YWtlX2ZyZWVfcmVxX2xvY2tlZChxKTsKICAgICB9CiAgICAgcS0+YnVz eSA9IGZhbHNlOwogICAgIHJldHVybiBwcm9ncmVzczsKQEAgLTQwMyw4ICs0MTEsNyBAQCBzdGF0 aWMgdm9pZCBudm1lX3RyYWNlX2NvbW1hbmQoY29uc3QgTnZtZUNtZCAqY21kKQogICAgIH0KIH0K IAotc3RhdGljIHZvaWQgbnZtZV9zdWJtaXRfY29tbWFuZChCRFJWTlZNZVN0YXRlICpzLCBOVk1l UXVldWVQYWlyICpxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVk1lUmVxdWVz dCAqcmVxLAorc3RhdGljIHZvaWQgbnZtZV9zdWJtaXRfY29tbWFuZChOVk1lUXVldWVQYWlyICpx LCBOVk1lUmVxdWVzdCAqcmVxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdm1l Q21kICpjbWQsIEJsb2NrQ29tcGxldGlvbkZ1bmMgY2IsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZvaWQgKm9wYXF1ZSkKIHsKQEAgLTQxMywxNSArNDIwLDE1IEBAIHN0YXRpYyB2 b2lkIG52bWVfc3VibWl0X2NvbW1hbmQoQkRSVk5WTWVTdGF0ZSAqcywgTlZNZVF1ZXVlUGFpciAq cSwKICAgICByZXEtPm9wYXF1ZSA9IG9wYXF1ZTsKICAgICBjbWQtPmNpZCA9IGNwdV90b19sZTMy KHJlcS0+Y2lkKTsKIAotICAgIHRyYWNlX252bWVfc3VibWl0X2NvbW1hbmQocywgcS0+aW5kZXgs IHJlcS0+Y2lkKTsKKyAgICB0cmFjZV9udm1lX3N1Ym1pdF9jb21tYW5kKHEtPnMsIHEtPmluZGV4 LCByZXEtPmNpZCk7CiAgICAgbnZtZV90cmFjZV9jb21tYW5kKGNtZCk7CiAgICAgcWVtdV9tdXRl eF9sb2NrKCZxLT5sb2NrKTsKICAgICBtZW1jcHkoKHVpbnQ4X3QgKilxLT5zcS5xdWV1ZSArCiAg ICAgICAgICAgIHEtPnNxLnRhaWwgKiBOVk1FX1NRX0VOVFJZX0JZVEVTLCBjbWQsIHNpemVvZigq Y21kKSk7CiAgICAgcS0+c3EudGFpbCA9IChxLT5zcS50YWlsICsgMSkgJSBOVk1FX1FVRVVFX1NJ WkU7CiAgICAgcS0+bmVlZF9raWNrKys7Ci0gICAgbnZtZV9raWNrKHMsIHEpOwotICAgIG52bWVf cHJvY2Vzc19jb21wbGV0aW9uKHMsIHEpOworICAgIG52bWVfa2ljayhxKTsKKyAgICBudm1lX3By b2Nlc3NfY29tcGxldGlvbihxKTsKICAgICBxZW11X211dGV4X3VubG9jaygmcS0+bG9jayk7CiB9 CiAKQEAgLTQzNiwxMyArNDQzLDEyIEBAIHN0YXRpYyBpbnQgbnZtZV9jbWRfc3luYyhCbG9ja0Ry aXZlclN0YXRlICpicywgTlZNZVF1ZXVlUGFpciAqcSwKICAgICAgICAgICAgICAgICAgICAgICAg ICBOdm1lQ21kICpjbWQpCiB7CiAgICAgTlZNZVJlcXVlc3QgKnJlcTsKLSAgICBCRFJWTlZNZVN0 YXRlICpzID0gYnMtPm9wYXF1ZTsKICAgICBpbnQgcmV0ID0gLUVJTlBST0dSRVNTOwogICAgIHJl cSA9IG52bWVfZ2V0X2ZyZWVfcmVxKHEpOwogICAgIGlmICghcmVxKSB7CiAgICAgICAgIHJldHVy biAtRUJVU1k7CiAgICAgfQotICAgIG52bWVfc3VibWl0X2NvbW1hbmQocywgcSwgcmVxLCBjbWQs IG52bWVfY21kX3N5bmNfY2IsICZyZXQpOworICAgIG52bWVfc3VibWl0X2NvbW1hbmQocSwgcmVx LCBjbWQsIG52bWVfY21kX3N5bmNfY2IsICZyZXQpOwogCiAgICAgQkRSVl9QT0xMX1dISUxFKGJz LCByZXQgPT0gLUVJTlBST0dSRVNTKTsKICAgICByZXR1cm4gcmV0OwpAQCAtNTU0LDcgKzU2MCw3 IEBAIHN0YXRpYyBib29sIG52bWVfcG9sbF9xdWV1ZXMoQkRSVk5WTWVTdGF0ZSAqcykKICAgICAg ICAgfQogCiAgICAgICAgIHFlbXVfbXV0ZXhfbG9jaygmcS0+bG9jayk7Ci0gICAgICAgIHdoaWxl IChudm1lX3Byb2Nlc3NfY29tcGxldGlvbihzLCBxKSkgeworICAgICAgICB3aGlsZSAobnZtZV9w cm9jZXNzX2NvbXBsZXRpb24ocSkpIHsKICAgICAgICAgICAgIC8qIEtlZXAgcG9sbGluZyAqLwog ICAgICAgICAgICAgcHJvZ3Jlc3MgPSB0cnVlOwogICAgICAgICB9CkBAIC01OTIsNyArNTk4LDcg QEAgc3RhdGljIGJvb2wgbnZtZV9hZGRfaW9fcXVldWUoQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIEVy cm9yICoqZXJycCkKICAgICB9OwogICAgIGlmIChudm1lX2NtZF9zeW5jKGJzLCBzLT5xdWV1ZXNb MF0sICZjbWQpKSB7CiAgICAgICAgIGVycm9yX3NldGcoZXJycCwgIkZhaWxlZCB0byBjcmVhdGUg aW8gcXVldWUgWyVkXSIsIG4pOwotICAgICAgICBudm1lX2ZyZWVfcXVldWVfcGFpcihicywgcSk7 CisgICAgICAgIG52bWVfZnJlZV9xdWV1ZV9wYWlyKHEpOwogICAgICAgICByZXR1cm4gZmFsc2U7 CiAgICAgfQogICAgIGNtZCA9IChOdm1lQ21kKSB7CkBAIC02MDMsNyArNjA5LDcgQEAgc3RhdGlj IGJvb2wgbnZtZV9hZGRfaW9fcXVldWUoQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIEVycm9yICoqZXJy cCkKICAgICB9OwogICAgIGlmIChudm1lX2NtZF9zeW5jKGJzLCBzLT5xdWV1ZXNbMF0sICZjbWQp KSB7CiAgICAgICAgIGVycm9yX3NldGcoZXJycCwgIkZhaWxlZCB0byBjcmVhdGUgaW8gcXVldWUg WyVkXSIsIG4pOwotICAgICAgICBudm1lX2ZyZWVfcXVldWVfcGFpcihicywgcSk7CisgICAgICAg IG52bWVfZnJlZV9xdWV1ZV9wYWlyKHEpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog ICAgIHMtPnF1ZXVlcyA9IGdfcmVuZXcoTlZNZVF1ZXVlUGFpciAqLCBzLT5xdWV1ZXMsIG4gKyAx KTsKQEAgLTc5OCw3ICs4MDQsNyBAQCBzdGF0aWMgdm9pZCBudm1lX2Nsb3NlKEJsb2NrRHJpdmVy U3RhdGUgKmJzKQogICAgIEJEUlZOVk1lU3RhdGUgKnMgPSBicy0+b3BhcXVlOwogCiAgICAgZm9y IChpID0gMDsgaSA8IHMtPm5yX3F1ZXVlczsgKytpKSB7Ci0gICAgICAgIG52bWVfZnJlZV9xdWV1 ZV9wYWlyKGJzLCBzLT5xdWV1ZXNbaV0pOworICAgICAgICBudm1lX2ZyZWVfcXVldWVfcGFpcihz LT5xdWV1ZXNbaV0pOwogICAgIH0KICAgICBnX2ZyZWUocy0+cXVldWVzKTsKICAgICBhaW9fc2V0 X2V2ZW50X25vdGlmaWVyKGJkcnZfZ2V0X2Fpb19jb250ZXh0KGJzKSwgJnMtPmlycV9ub3RpZmll ciwKQEAgLTEwMjgsMTAgKzEwMzQsMTAgQEAgc3RhdGljIGNvcm91dGluZV9mbiBpbnQgbnZtZV9j b19wcndfYWxpZ25lZChCbG9ja0RyaXZlclN0YXRlICpicywKICAgICByID0gbnZtZV9jbWRfbWFw X3Fpb3YoYnMsICZjbWQsIHJlcSwgcWlvdik7CiAgICAgcWVtdV9jb19tdXRleF91bmxvY2soJnMt PmRtYV9tYXBfbG9jayk7CiAgICAgaWYgKHIpIHsKLSAgICAgICAgbnZtZV9wdXRfZnJlZV9yZXFf YW5kX3dha2UocywgaW9xLCByZXEpOworICAgICAgICBudm1lX3B1dF9mcmVlX3JlcV9hbmRfd2Fr ZShpb3EsIHJlcSk7CiAgICAgICAgIHJldHVybiByOwogICAgIH0KLSAgICBudm1lX3N1Ym1pdF9j b21tYW5kKHMsIGlvcSwgcmVxLCAmY21kLCBudm1lX3J3X2NiLCAmZGF0YSk7CisgICAgbnZtZV9z dWJtaXRfY29tbWFuZChpb3EsIHJlcSwgJmNtZCwgbnZtZV9yd19jYiwgJmRhdGEpOwogCiAgICAg ZGF0YS5jbyA9IHFlbXVfY29yb3V0aW5lX3NlbGYoKTsKICAgICB3aGlsZSAoZGF0YS5yZXQgPT0g LUVJTlBST0dSRVNTKSB7CkBAIC0xMTMxLDcgKzExMzcsNyBAQCBzdGF0aWMgY29yb3V0aW5lX2Zu IGludCBudm1lX2NvX2ZsdXNoKEJsb2NrRHJpdmVyU3RhdGUgKmJzKQogICAgIGFzc2VydChzLT5u cl9xdWV1ZXMgPiAxKTsKICAgICByZXEgPSBudm1lX2dldF9mcmVlX3JlcShpb3EpOwogICAgIGFz c2VydChyZXEpOwotICAgIG52bWVfc3VibWl0X2NvbW1hbmQocywgaW9xLCByZXEsICZjbWQsIG52 bWVfcndfY2IsICZkYXRhKTsKKyAgICBudm1lX3N1Ym1pdF9jb21tYW5kKGlvcSwgcmVxLCAmY21k LCBudm1lX3J3X2NiLCAmZGF0YSk7CiAKICAgICBkYXRhLmNvID0gcWVtdV9jb3JvdXRpbmVfc2Vs ZigpOwogICAgIGlmIChkYXRhLnJldCA9PSAtRUlOUFJPR1JFU1MpIHsKQEAgLTExODQsNyArMTE5 MCw3IEBAIHN0YXRpYyBjb3JvdXRpbmVfZm4gaW50IG52bWVfY29fcHdyaXRlX3plcm9lcyhCbG9j a0RyaXZlclN0YXRlICpicywKICAgICByZXEgPSBudm1lX2dldF9mcmVlX3JlcShpb3EpOwogICAg IGFzc2VydChyZXEpOwogCi0gICAgbnZtZV9zdWJtaXRfY29tbWFuZChzLCBpb3EsIHJlcSwgJmNt ZCwgbnZtZV9yd19jYiwgJmRhdGEpOworICAgIG52bWVfc3VibWl0X2NvbW1hbmQoaW9xLCByZXEs ICZjbWQsIG52bWVfcndfY2IsICZkYXRhKTsKIAogICAgIGRhdGEuY28gPSBxZW11X2Nvcm91dGlu ZV9zZWxmKCk7CiAgICAgd2hpbGUgKGRhdGEucmV0ID09IC1FSU5QUk9HUkVTUykgewpAQCAtMTI0 NSwxMyArMTI1MSwxMyBAQCBzdGF0aWMgaW50IGNvcm91dGluZV9mbiBudm1lX2NvX3BkaXNjYXJk KEJsb2NrRHJpdmVyU3RhdGUgKmJzLAogICAgIHFlbXVfY29fbXV0ZXhfdW5sb2NrKCZzLT5kbWFf bWFwX2xvY2spOwogCiAgICAgaWYgKHJldCkgewotICAgICAgICBudm1lX3B1dF9mcmVlX3JlcV9h bmRfd2FrZShzLCBpb3EsIHJlcSk7CisgICAgICAgIG52bWVfcHV0X2ZyZWVfcmVxX2FuZF93YWtl KGlvcSwgcmVxKTsKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogCiAgICAgdHJhY2VfbnZtZV9k c20ocywgb2Zmc2V0LCBieXRlcyk7CiAKLSAgICBudm1lX3N1Ym1pdF9jb21tYW5kKHMsIGlvcSwg cmVxLCAmY21kLCBudm1lX3J3X2NiLCAmZGF0YSk7CisgICAgbnZtZV9zdWJtaXRfY29tbWFuZChp b3EsIHJlcSwgJmNtZCwgbnZtZV9yd19jYiwgJmRhdGEpOwogCiAgICAgZGF0YS5jbyA9IHFlbXVf Y29yb3V0aW5lX3NlbGYoKTsKICAgICB3aGlsZSAoZGF0YS5yZXQgPT0gLUVJTlBST0dSRVNTKSB7 CkBAIC0xMzMzLDggKzEzMzksOCBAQCBzdGF0aWMgdm9pZCBudm1lX2Fpb191bnBsdWcoQmxvY2tE cml2ZXJTdGF0ZSAqYnMpCiAgICAgZm9yIChpID0gMTsgaSA8IHMtPm5yX3F1ZXVlczsgaSsrKSB7 CiAgICAgICAgIE5WTWVRdWV1ZVBhaXIgKnEgPSBzLT5xdWV1ZXNbaV07CiAgICAgICAgIHFlbXVf bXV0ZXhfbG9jaygmcS0+bG9jayk7Ci0gICAgICAgIG52bWVfa2ljayhzLCBxKTsKLSAgICAgICAg bnZtZV9wcm9jZXNzX2NvbXBsZXRpb24ocywgcSk7CisgICAgICAgIG52bWVfa2ljayhxKTsKKyAg ICAgICAgbnZtZV9wcm9jZXNzX2NvbXBsZXRpb24ocSk7CiAgICAgICAgIHFlbXVfbXV0ZXhfdW5s b2NrKCZxLT5sb2NrKTsKICAgICB9CiB9Ci0tIAoyLjI1LjMKCg==