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.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,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 6FCBCC433DF for ; Wed, 24 Jun 2020 10:08:35 +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 28B8320B1F for ; Wed, 24 Jun 2020 10:08:35 +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="HkMz1Oia" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 28B8320B1F 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]:34798 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jo2KY-0005GL-DF for qemu-devel@archiver.kernel.org; Wed, 24 Jun 2020 06:08:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43816) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jo2FX-00035n-Ie for qemu-devel@nongnu.org; Wed, 24 Jun 2020 06:03:23 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:35656 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 1jo2FV-0003uu-CZ for qemu-devel@nongnu.org; Wed, 24 Jun 2020 06:03:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1592993000; 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=5G9dX+RCbbwcZvgqUY40WakqF4ueHWtoXpJYfF15QTM=; b=HkMz1Oiabop8icJ6aJNNT1gB+gLNyvPI/ZlIFEkIibmDJbrUWb/oE8YoZheSrl48+9Nn3/ 9uB6HJ8XE76Rx5C8IsTPWUNURCHJnWnG3Xuig/LwbxkhmxeE2LokGWU/AisTyzxA8dwGw5 6AJ8wxjgMXsH1gKUX1AgH4/lLvFp9Ic= 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-309--yhA1mF4MxGTZKNr4RonYg-1; Wed, 24 Jun 2020 06:03:17 -0400 X-MC-Unique: -yhA1mF4MxGTZKNr4RonYg-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C7ECC108BD09; Wed, 24 Jun 2020 10:03:15 +0000 (UTC) Received: from localhost (ovpn-114-150.ams2.redhat.com [10.36.114.150]) by smtp.corp.redhat.com (Postfix) with ESMTP id 38EA2100238C; Wed, 24 Jun 2020 10:03:09 +0000 (UTC) From: Stefan Hajnoczi To: qemu-devel@nongnu.org, Peter Maydell Subject: [PULL 11/12] block/nvme: keep BDRVNVMeState pointer in NVMeQueuePair Date: Wed, 24 Jun 2020 11:02:09 +0100 Message-Id: <20200624100210.59975-12-stefanha@redhat.com> In-Reply-To: <20200624100210.59975-1-stefanha@redhat.com> References: <20200624100210.59975-1-stefanha@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Received-SPF: pass client-ip=207.211.31.120; envelope-from=stefanha@redhat.com; helo=us-smtp-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/24 02:33:25 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=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 , Sergio Lopez , Eduardo Habkost , qemu-block@nongnu.org, Max Reitz , Stefan Hajnoczi , Cleber Rosa , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" UGFzc2luZyBhcm91bmQgYm90aCBCRFJWTlZNZVN0YXRlIGFuZCBOVk1lUXVldWVQYWlyIGlzIHVu d2llbGR5LiBSZWR1Y2UKdGhlIG51bWJlciBvZiBmdW5jdGlvbiBhcmd1bWVudHMgYnkga2VlcGlu ZyB0aGUgQkRSVk5WTWVTdGF0ZSBwb2ludGVyIGluCk5WTWVRdWV1ZVBhaXIuIFRoaXMgd2lsbCBj b21lIGluIGhhbmRseSB3aGVuIGEgQkggaXMgaW50cm9kdWNlZCBpbiBhCmxhdGVyIHBhdGNoIGFu ZCBvbmx5IG9uZSBhcmd1bWVudCBjYW4gYmUgcGFzc2VkIHRvIGl0LgoKU2lnbmVkLW9mZi1ieTog U3RlZmFuIEhham5vY3ppIDxzdGVmYW5oYUByZWRoYXQuY29tPgpSZXZpZXdlZC1ieTogU2VyZ2lv IExvcGV6IDxzbHBAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6IFBoaWxpcHBlIE1hdGhpZXUtRGF1 ZMOpIDxwaGlsbWRAcmVkaGF0LmNvbT4KTWVzc2FnZS1pZDogMjAyMDA2MTcxMzIyMDEuMTgzMjE1 Mi03LXN0ZWZhbmhhQHJlZGhhdC5jb20KU2lnbmVkLW9mZi1ieTogU3RlZmFuIEhham5vY3ppIDxz dGVmYW5oYUByZWRoYXQuY29tPgotLS0KIGJsb2NrL252bWUuYyB8IDcwICsrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAz OCBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ibG9jay9udm1l LmMgYi9ibG9jay9udm1lLmMKaW5kZXggNDI2Yzc3ZTVhYi4uOGRjNjhkM2RhYSAxMDA2NDQKLS0t IGEvYmxvY2svbnZtZS5jCisrKyBiL2Jsb2NrL252bWUuYwpAQCAtMzksNiArMzksOCBAQAogICov CiAjZGVmaW5lIE5WTUVfTlVNX1JFUVMgKE5WTUVfUVVFVUVfU0laRSAtIDEpCiAKK3R5cGVkZWYg c3RydWN0IEJEUlZOVk1lU3RhdGUgQkRSVk5WTWVTdGF0ZTsKKwogdHlwZWRlZiBzdHJ1Y3Qgewog ICAgIGludDMyX3QgIGhlYWQsIHRhaWw7CiAgICAgdWludDhfdCAgKnF1ZXVlOwpAQCAtNTksOCAr NjEsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgewogdHlwZWRlZiBzdHJ1Y3QgewogICAgIFFlbXVNdXRl eCAgIGxvY2s7CiAKKyAgICAvKiBSZWFkIGZyb20gSS9PIGNvZGUgcGF0aCwgaW5pdGlhbGl6ZWQg dW5kZXIgQlFMICovCisgICAgQkRSVk5WTWVTdGF0ZSAgICpzOworICAgIGludCAgICAgICAgICAg ICBpbmRleDsKKwogICAgIC8qIEZpZWxkcyBwcm90ZWN0ZWQgYnkgQlFMICovCi0gICAgaW50ICAg ICAgICAgaW5kZXg7CiAgICAgdWludDhfdCAgICAgKnBycF9saXN0X3BhZ2VzOwogCiAgICAgLyog RmllbGRzIHByb3RlY3RlZCBieSBAbG9jayAqLwpAQCAtOTYsNyArMTAxLDcgQEAgdHlwZWRlZiB2 b2xhdGlsZSBzdHJ1Y3QgewogCiBRRU1VX0JVSUxEX0JVR19PTihvZmZzZXRvZihOVk1lUmVncywg ZG9vcmJlbGxzKSAhPSAweDEwMDApOwogCi10eXBlZGVmIHN0cnVjdCB7CitzdHJ1Y3QgQkRSVk5W TWVTdGF0ZSB7CiAgICAgQWlvQ29udGV4dCAqYWlvX2NvbnRleHQ7CiAgICAgUUVNVVZGSU9TdGF0 ZSAqdmZpbzsKICAgICBOVk1lUmVncyAqcmVnczsKQEAgLTEzMCw3ICsxMzUsNyBAQCB0eXBlZGVm IHN0cnVjdCB7CiAKICAgICAvKiBQQ0kgYWRkcmVzcyAocmVxdWlyZWQgZm9yIG52bWVfcmVmcmVz aF9maWxlbmFtZSgpKSAqLwogICAgIGNoYXIgKmRldmljZTsKLX0gQkRSVk5WTWVTdGF0ZTsKK307 CiAKICNkZWZpbmUgTlZNRV9CTE9DS19PUFRfREVWSUNFICJkZXZpY2UiCiAjZGVmaW5lIE5WTUVf QkxPQ0tfT1BUX05BTUVTUEFDRSAibmFtZXNwYWNlIgpAQCAtMTc0LDcgKzE3OSw3IEBAIHN0YXRp YyB2b2lkIG52bWVfaW5pdF9xdWV1ZShCbG9ja0RyaXZlclN0YXRlICpicywgTlZNZVF1ZXVlICpx LAogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgbnZtZV9mcmVlX3F1ZXVlX3BhaXIoQmxvY2tEcml2 ZXJTdGF0ZSAqYnMsIE5WTWVRdWV1ZVBhaXIgKnEpCitzdGF0aWMgdm9pZCBudm1lX2ZyZWVfcXVl dWVfcGFpcihOVk1lUXVldWVQYWlyICpxKQogewogICAgIHFlbXVfdmZyZWUocS0+cHJwX2xpc3Rf cGFnZXMpOwogICAgIHFlbXVfdmZyZWUocS0+c3EucXVldWUpOwpAQCAtMjA1LDYgKzIxMCw3IEBA IHN0YXRpYyBOVk1lUXVldWVQYWlyICpudm1lX2NyZWF0ZV9xdWV1ZV9wYWlyKEJsb2NrRHJpdmVy U3RhdGUgKmJzLAogICAgIHVpbnQ2NF90IHBycF9saXN0X2lvdmE7CiAKICAgICBxZW11X211dGV4 X2luaXQoJnEtPmxvY2spOworICAgIHEtPnMgPSBzOwogICAgIHEtPmluZGV4ID0gaWR4OwogICAg IHFlbXVfY29fcXVldWVfaW5pdCgmcS0+ZnJlZV9yZXFfcXVldWUpOwogICAgIHEtPnBycF9saXN0 X3BhZ2VzID0gcWVtdV9ibG9ja2FsaWduMChicywgcy0+cGFnZV9zaXplICogTlZNRV9OVU1fUkVR Uyk7CkBAIC0yNDAsMTMgKzI0NiwxNSBAQCBzdGF0aWMgTlZNZVF1ZXVlUGFpciAqbnZtZV9jcmVh dGVfcXVldWVfcGFpcihCbG9ja0RyaXZlclN0YXRlICpicywKIAogICAgIHJldHVybiBxOwogZmFp bDoKLSAgICBudm1lX2ZyZWVfcXVldWVfcGFpcihicywgcSk7CisgICAgbnZtZV9mcmVlX3F1ZXVl X3BhaXIocSk7CiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKIC8qIFdpdGggcS0+bG9jayAqLwotc3Rh dGljIHZvaWQgbnZtZV9raWNrKEJEUlZOVk1lU3RhdGUgKnMsIE5WTWVRdWV1ZVBhaXIgKnEpCitz dGF0aWMgdm9pZCBudm1lX2tpY2soTlZNZVF1ZXVlUGFpciAqcSkKIHsKKyAgICBCRFJWTlZNZVN0 YXRlICpzID0gcS0+czsKKwogICAgIGlmIChzLT5wbHVnZ2VkIHx8ICFxLT5uZWVkX2tpY2spIHsK ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI5NSwyMSArMzAzLDIwIEBAIHN0YXRpYyB2b2lk IG52bWVfcHV0X2ZyZWVfcmVxX2xvY2tlZChOVk1lUXVldWVQYWlyICpxLCBOVk1lUmVxdWVzdCAq cmVxKQogfQogCiAvKiBXaXRoIHEtPmxvY2sgKi8KLXN0YXRpYyB2b2lkIG52bWVfd2FrZV9mcmVl X3JlcV9sb2NrZWQoQkRSVk5WTWVTdGF0ZSAqcywgTlZNZVF1ZXVlUGFpciAqcSkKK3N0YXRpYyB2 b2lkIG52bWVfd2FrZV9mcmVlX3JlcV9sb2NrZWQoTlZNZVF1ZXVlUGFpciAqcSkKIHsKICAgICBp ZiAoIXFlbXVfY29fcXVldWVfZW1wdHkoJnEtPmZyZWVfcmVxX3F1ZXVlKSkgewotICAgICAgICBy ZXBsYXlfYmhfc2NoZWR1bGVfb25lc2hvdF9ldmVudChzLT5haW9fY29udGV4dCwKKyAgICAgICAg cmVwbGF5X2JoX3NjaGVkdWxlX29uZXNob3RfZXZlbnQocS0+cy0+YWlvX2NvbnRleHQsCiAgICAg ICAgICAgICAgICAgbnZtZV9mcmVlX3JlcV9xdWV1ZV9jYiwgcSk7CiAgICAgfQogfQogCiAvKiBJ bnNlcnQgYSByZXF1ZXN0IGluIHRoZSBmcmVlbGlzdCBhbmQgd2FrZSB3YWl0ZXJzICovCi1zdGF0 aWMgdm9pZCBudm1lX3B1dF9mcmVlX3JlcV9hbmRfd2FrZShCRFJWTlZNZVN0YXRlICpzLCAgTlZN ZVF1ZXVlUGFpciAqcSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5W TWVSZXF1ZXN0ICpyZXEpCitzdGF0aWMgdm9pZCBudm1lX3B1dF9mcmVlX3JlcV9hbmRfd2FrZShO Vk1lUXVldWVQYWlyICpxLCBOVk1lUmVxdWVzdCAqcmVxKQogewogICAgIHFlbXVfbXV0ZXhfbG9j aygmcS0+bG9jayk7CiAgICAgbnZtZV9wdXRfZnJlZV9yZXFfbG9ja2VkKHEsIHJlcSk7Ci0gICAg bnZtZV93YWtlX2ZyZWVfcmVxX2xvY2tlZChzLCBxKTsKKyAgICBudm1lX3dha2VfZnJlZV9yZXFf bG9ja2VkKHEpOwogICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZxLT5sb2NrKTsKIH0KIApAQCAtMzM2 LDggKzM0Myw5IEBAIHN0YXRpYyBpbmxpbmUgaW50IG52bWVfdHJhbnNsYXRlX2Vycm9yKGNvbnN0 IE52bWVDcWUgKmMpCiB9CiAKIC8qIFdpdGggcS0+bG9jayAqLwotc3RhdGljIGJvb2wgbnZtZV9w cm9jZXNzX2NvbXBsZXRpb24oQkRSVk5WTWVTdGF0ZSAqcywgTlZNZVF1ZXVlUGFpciAqcSkKK3N0 YXRpYyBib29sIG52bWVfcHJvY2Vzc19jb21wbGV0aW9uKE5WTWVRdWV1ZVBhaXIgKnEpCiB7Cisg ICAgQkRSVk5WTWVTdGF0ZSAqcyA9IHEtPnM7CiAgICAgYm9vbCBwcm9ncmVzcyA9IGZhbHNlOwog ICAgIE5WTWVSZXF1ZXN0ICpwcmVxOwogICAgIE5WTWVSZXF1ZXN0IHJlcTsKQEAgLTM4Niw3ICsz OTQsNyBAQCBzdGF0aWMgYm9vbCBudm1lX3Byb2Nlc3NfY29tcGxldGlvbihCRFJWTlZNZVN0YXRl ICpzLCBOVk1lUXVldWVQYWlyICpxKQogICAgICAgICAvKiBOb3RpZnkgdGhlIGRldmljZSBzbyBp dCBjYW4gcG9zdCBtb3JlIGNvbXBsZXRpb25zLiAqLwogICAgICAgICBzbXBfbWJfcmVsZWFzZSgp OwogICAgICAgICAqcS0+Y3EuZG9vcmJlbGwgPSBjcHVfdG9fbGUzMihxLT5jcS5oZWFkKTsKLSAg ICAgICAgbnZtZV93YWtlX2ZyZWVfcmVxX2xvY2tlZChzLCBxKTsKKyAgICAgICAgbnZtZV93YWtl X2ZyZWVfcmVxX2xvY2tlZChxKTsKICAgICB9CiAgICAgcS0+YnVzeSA9IGZhbHNlOwogICAgIHJl dHVybiBwcm9ncmVzczsKQEAgLTQwMyw4ICs0MTEsNyBAQCBzdGF0aWMgdm9pZCBudm1lX3RyYWNl X2NvbW1hbmQoY29uc3QgTnZtZUNtZCAqY21kKQogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgbnZt ZV9zdWJtaXRfY29tbWFuZChCRFJWTlZNZVN0YXRlICpzLCBOVk1lUXVldWVQYWlyICpxLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVk1lUmVxdWVzdCAqcmVxLAorc3RhdGljIHZv aWQgbnZtZV9zdWJtaXRfY29tbWFuZChOVk1lUXVldWVQYWlyICpxLCBOVk1lUmVxdWVzdCAqcmVx LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdm1lQ21kICpjbWQsIEJsb2NrQ29t cGxldGlvbkZ1bmMgY2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKm9w YXF1ZSkKIHsKQEAgLTQxMywxNSArNDIwLDE1IEBAIHN0YXRpYyB2b2lkIG52bWVfc3VibWl0X2Nv bW1hbmQoQkRSVk5WTWVTdGF0ZSAqcywgTlZNZVF1ZXVlUGFpciAqcSwKICAgICByZXEtPm9wYXF1 ZSA9IG9wYXF1ZTsKICAgICBjbWQtPmNpZCA9IGNwdV90b19sZTMyKHJlcS0+Y2lkKTsKIAotICAg IHRyYWNlX252bWVfc3VibWl0X2NvbW1hbmQocywgcS0+aW5kZXgsIHJlcS0+Y2lkKTsKKyAgICB0 cmFjZV9udm1lX3N1Ym1pdF9jb21tYW5kKHEtPnMsIHEtPmluZGV4LCByZXEtPmNpZCk7CiAgICAg bnZtZV90cmFjZV9jb21tYW5kKGNtZCk7CiAgICAgcWVtdV9tdXRleF9sb2NrKCZxLT5sb2NrKTsK ICAgICBtZW1jcHkoKHVpbnQ4X3QgKilxLT5zcS5xdWV1ZSArCiAgICAgICAgICAgIHEtPnNxLnRh aWwgKiBOVk1FX1NRX0VOVFJZX0JZVEVTLCBjbWQsIHNpemVvZigqY21kKSk7CiAgICAgcS0+c3Eu dGFpbCA9IChxLT5zcS50YWlsICsgMSkgJSBOVk1FX1FVRVVFX1NJWkU7CiAgICAgcS0+bmVlZF9r aWNrKys7Ci0gICAgbnZtZV9raWNrKHMsIHEpOwotICAgIG52bWVfcHJvY2Vzc19jb21wbGV0aW9u KHMsIHEpOworICAgIG52bWVfa2ljayhxKTsKKyAgICBudm1lX3Byb2Nlc3NfY29tcGxldGlvbihx KTsKICAgICBxZW11X211dGV4X3VubG9jaygmcS0+bG9jayk7CiB9CiAKQEAgLTQzNiwxMyArNDQz LDEyIEBAIHN0YXRpYyBpbnQgbnZtZV9jbWRfc3luYyhCbG9ja0RyaXZlclN0YXRlICpicywgTlZN ZVF1ZXVlUGFpciAqcSwKICAgICAgICAgICAgICAgICAgICAgICAgICBOdm1lQ21kICpjbWQpCiB7 CiAgICAgTlZNZVJlcXVlc3QgKnJlcTsKLSAgICBCRFJWTlZNZVN0YXRlICpzID0gYnMtPm9wYXF1 ZTsKICAgICBpbnQgcmV0ID0gLUVJTlBST0dSRVNTOwogICAgIHJlcSA9IG52bWVfZ2V0X2ZyZWVf cmVxKHEpOwogICAgIGlmICghcmVxKSB7CiAgICAgICAgIHJldHVybiAtRUJVU1k7CiAgICAgfQot ICAgIG52bWVfc3VibWl0X2NvbW1hbmQocywgcSwgcmVxLCBjbWQsIG52bWVfY21kX3N5bmNfY2Is ICZyZXQpOworICAgIG52bWVfc3VibWl0X2NvbW1hbmQocSwgcmVxLCBjbWQsIG52bWVfY21kX3N5 bmNfY2IsICZyZXQpOwogCiAgICAgQkRSVl9QT0xMX1dISUxFKGJzLCByZXQgPT0gLUVJTlBST0dS RVNTKTsKICAgICByZXR1cm4gcmV0OwpAQCAtNTU0LDcgKzU2MCw3IEBAIHN0YXRpYyBib29sIG52 bWVfcG9sbF9xdWV1ZXMoQkRSVk5WTWVTdGF0ZSAqcykKICAgICAgICAgfQogCiAgICAgICAgIHFl bXVfbXV0ZXhfbG9jaygmcS0+bG9jayk7Ci0gICAgICAgIHdoaWxlIChudm1lX3Byb2Nlc3NfY29t cGxldGlvbihzLCBxKSkgeworICAgICAgICB3aGlsZSAobnZtZV9wcm9jZXNzX2NvbXBsZXRpb24o cSkpIHsKICAgICAgICAgICAgIC8qIEtlZXAgcG9sbGluZyAqLwogICAgICAgICAgICAgcHJvZ3Jl c3MgPSB0cnVlOwogICAgICAgICB9CkBAIC01OTIsNyArNTk4LDcgQEAgc3RhdGljIGJvb2wgbnZt ZV9hZGRfaW9fcXVldWUoQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIEVycm9yICoqZXJycCkKICAgICB9 OwogICAgIGlmIChudm1lX2NtZF9zeW5jKGJzLCBzLT5xdWV1ZXNbMF0sICZjbWQpKSB7CiAgICAg ICAgIGVycm9yX3NldGcoZXJycCwgIkZhaWxlZCB0byBjcmVhdGUgaW8gcXVldWUgWyVkXSIsIG4p OwotICAgICAgICBudm1lX2ZyZWVfcXVldWVfcGFpcihicywgcSk7CisgICAgICAgIG52bWVfZnJl ZV9xdWV1ZV9wYWlyKHEpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIGNtZCA9 IChOdm1lQ21kKSB7CkBAIC02MDMsNyArNjA5LDcgQEAgc3RhdGljIGJvb2wgbnZtZV9hZGRfaW9f cXVldWUoQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIEVycm9yICoqZXJycCkKICAgICB9OwogICAgIGlm IChudm1lX2NtZF9zeW5jKGJzLCBzLT5xdWV1ZXNbMF0sICZjbWQpKSB7CiAgICAgICAgIGVycm9y X3NldGcoZXJycCwgIkZhaWxlZCB0byBjcmVhdGUgaW8gcXVldWUgWyVkXSIsIG4pOwotICAgICAg ICBudm1lX2ZyZWVfcXVldWVfcGFpcihicywgcSk7CisgICAgICAgIG52bWVfZnJlZV9xdWV1ZV9w YWlyKHEpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHMtPnF1ZXVlcyA9IGdf cmVuZXcoTlZNZVF1ZXVlUGFpciAqLCBzLT5xdWV1ZXMsIG4gKyAxKTsKQEAgLTc5OCw3ICs4MDQs NyBAQCBzdGF0aWMgdm9pZCBudm1lX2Nsb3NlKEJsb2NrRHJpdmVyU3RhdGUgKmJzKQogICAgIEJE UlZOVk1lU3RhdGUgKnMgPSBicy0+b3BhcXVlOwogCiAgICAgZm9yIChpID0gMDsgaSA8IHMtPm5y X3F1ZXVlczsgKytpKSB7Ci0gICAgICAgIG52bWVfZnJlZV9xdWV1ZV9wYWlyKGJzLCBzLT5xdWV1 ZXNbaV0pOworICAgICAgICBudm1lX2ZyZWVfcXVldWVfcGFpcihzLT5xdWV1ZXNbaV0pOwogICAg IH0KICAgICBnX2ZyZWUocy0+cXVldWVzKTsKICAgICBhaW9fc2V0X2V2ZW50X25vdGlmaWVyKGJk cnZfZ2V0X2Fpb19jb250ZXh0KGJzKSwgJnMtPmlycV9ub3RpZmllciwKQEAgLTEwMjgsMTAgKzEw MzQsMTAgQEAgc3RhdGljIGNvcm91dGluZV9mbiBpbnQgbnZtZV9jb19wcndfYWxpZ25lZChCbG9j a0RyaXZlclN0YXRlICpicywKICAgICByID0gbnZtZV9jbWRfbWFwX3Fpb3YoYnMsICZjbWQsIHJl cSwgcWlvdik7CiAgICAgcWVtdV9jb19tdXRleF91bmxvY2soJnMtPmRtYV9tYXBfbG9jayk7CiAg ICAgaWYgKHIpIHsKLSAgICAgICAgbnZtZV9wdXRfZnJlZV9yZXFfYW5kX3dha2UocywgaW9xLCBy ZXEpOworICAgICAgICBudm1lX3B1dF9mcmVlX3JlcV9hbmRfd2FrZShpb3EsIHJlcSk7CiAgICAg ICAgIHJldHVybiByOwogICAgIH0KLSAgICBudm1lX3N1Ym1pdF9jb21tYW5kKHMsIGlvcSwgcmVx LCAmY21kLCBudm1lX3J3X2NiLCAmZGF0YSk7CisgICAgbnZtZV9zdWJtaXRfY29tbWFuZChpb3Es IHJlcSwgJmNtZCwgbnZtZV9yd19jYiwgJmRhdGEpOwogCiAgICAgZGF0YS5jbyA9IHFlbXVfY29y b3V0aW5lX3NlbGYoKTsKICAgICB3aGlsZSAoZGF0YS5yZXQgPT0gLUVJTlBST0dSRVNTKSB7CkBA IC0xMTMxLDcgKzExMzcsNyBAQCBzdGF0aWMgY29yb3V0aW5lX2ZuIGludCBudm1lX2NvX2ZsdXNo KEJsb2NrRHJpdmVyU3RhdGUgKmJzKQogICAgIGFzc2VydChzLT5ucl9xdWV1ZXMgPiAxKTsKICAg ICByZXEgPSBudm1lX2dldF9mcmVlX3JlcShpb3EpOwogICAgIGFzc2VydChyZXEpOwotICAgIG52 bWVfc3VibWl0X2NvbW1hbmQocywgaW9xLCByZXEsICZjbWQsIG52bWVfcndfY2IsICZkYXRhKTsK KyAgICBudm1lX3N1Ym1pdF9jb21tYW5kKGlvcSwgcmVxLCAmY21kLCBudm1lX3J3X2NiLCAmZGF0 YSk7CiAKICAgICBkYXRhLmNvID0gcWVtdV9jb3JvdXRpbmVfc2VsZigpOwogICAgIGlmIChkYXRh LnJldCA9PSAtRUlOUFJPR1JFU1MpIHsKQEAgLTExODQsNyArMTE5MCw3IEBAIHN0YXRpYyBjb3Jv dXRpbmVfZm4gaW50IG52bWVfY29fcHdyaXRlX3plcm9lcyhCbG9ja0RyaXZlclN0YXRlICpicywK ICAgICByZXEgPSBudm1lX2dldF9mcmVlX3JlcShpb3EpOwogICAgIGFzc2VydChyZXEpOwogCi0g ICAgbnZtZV9zdWJtaXRfY29tbWFuZChzLCBpb3EsIHJlcSwgJmNtZCwgbnZtZV9yd19jYiwgJmRh dGEpOworICAgIG52bWVfc3VibWl0X2NvbW1hbmQoaW9xLCByZXEsICZjbWQsIG52bWVfcndfY2Is ICZkYXRhKTsKIAogICAgIGRhdGEuY28gPSBxZW11X2Nvcm91dGluZV9zZWxmKCk7CiAgICAgd2hp bGUgKGRhdGEucmV0ID09IC1FSU5QUk9HUkVTUykgewpAQCAtMTI0NSwxMyArMTI1MSwxMyBAQCBz dGF0aWMgaW50IGNvcm91dGluZV9mbiBudm1lX2NvX3BkaXNjYXJkKEJsb2NrRHJpdmVyU3RhdGUg KmJzLAogICAgIHFlbXVfY29fbXV0ZXhfdW5sb2NrKCZzLT5kbWFfbWFwX2xvY2spOwogCiAgICAg aWYgKHJldCkgewotICAgICAgICBudm1lX3B1dF9mcmVlX3JlcV9hbmRfd2FrZShzLCBpb3EsIHJl cSk7CisgICAgICAgIG52bWVfcHV0X2ZyZWVfcmVxX2FuZF93YWtlKGlvcSwgcmVxKTsKICAgICAg ICAgZ290byBvdXQ7CiAgICAgfQogCiAgICAgdHJhY2VfbnZtZV9kc20ocywgb2Zmc2V0LCBieXRl cyk7CiAKLSAgICBudm1lX3N1Ym1pdF9jb21tYW5kKHMsIGlvcSwgcmVxLCAmY21kLCBudm1lX3J3 X2NiLCAmZGF0YSk7CisgICAgbnZtZV9zdWJtaXRfY29tbWFuZChpb3EsIHJlcSwgJmNtZCwgbnZt ZV9yd19jYiwgJmRhdGEpOwogCiAgICAgZGF0YS5jbyA9IHFlbXVfY29yb3V0aW5lX3NlbGYoKTsK ICAgICB3aGlsZSAoZGF0YS5yZXQgPT0gLUVJTlBST0dSRVNTKSB7CkBAIC0xMzMzLDggKzEzMzks OCBAQCBzdGF0aWMgdm9pZCBudm1lX2Fpb191bnBsdWcoQmxvY2tEcml2ZXJTdGF0ZSAqYnMpCiAg ICAgZm9yIChpID0gMTsgaSA8IHMtPm5yX3F1ZXVlczsgaSsrKSB7CiAgICAgICAgIE5WTWVRdWV1 ZVBhaXIgKnEgPSBzLT5xdWV1ZXNbaV07CiAgICAgICAgIHFlbXVfbXV0ZXhfbG9jaygmcS0+bG9j ayk7Ci0gICAgICAgIG52bWVfa2ljayhzLCBxKTsKLSAgICAgICAgbnZtZV9wcm9jZXNzX2NvbXBs ZXRpb24ocywgcSk7CisgICAgICAgIG52bWVfa2ljayhxKTsKKyAgICAgICAgbnZtZV9wcm9jZXNz X2NvbXBsZXRpb24ocSk7CiAgICAgICAgIHFlbXVfbXV0ZXhfdW5sb2NrKCZxLT5sb2NrKTsKICAg ICB9CiB9Ci0tIAoyLjI2LjIKCg==