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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 00214E77364 for ; Mon, 2 Oct 2023 20:34:23 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qnPb5-0003Xg-0F; Mon, 02 Oct 2023 16:32:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qnPb3-0003Vo-Lw for qemu-devel@nongnu.org; Mon, 02 Oct 2023 16:32:53 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qnPb1-0001Vo-Iu for qemu-devel@nongnu.org; Mon, 02 Oct 2023 16:32:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696278770; 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=BhFdydZThHY12w/bm97zGukl7AatGfEDNNzJZgKLQ8M=; b=GdQXHtndT6dHBAJZEyVIe3ViFvOIBc7r0ijVRyViv+Xz59GBBpD2AWDMHrN3cQ6eQFbzOB MLTxj0VyYedZL4zTU2XfEbpAg/AU4hZfTqAaj4xieLB8KR+6oOlQOvTgXYhPmHFOkv+ode Y3hWCp0JUT2DdPRAlWV3GJYpezsUUwk= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-639-wn5rVc1bOtmrUloAqPTxPg-1; Mon, 02 Oct 2023 16:32:47 -0400 X-MC-Unique: wn5rVc1bOtmrUloAqPTxPg-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 45023101A590; Mon, 2 Oct 2023 20:32:47 +0000 (UTC) Received: from lacos-laptop-9.usersys.redhat.com (unknown [10.39.192.119]) by smtp.corp.redhat.com (Postfix) with ESMTP id 658FE40C6EBF; Mon, 2 Oct 2023 20:32:45 +0000 (UTC) From: Laszlo Ersek To: qemu-devel@nongnu.org, lersek@redhat.com Cc: "Michael S. Tsirkin" , Eugenio Perez Martin , German Maglione , Liu Jiang , Sergio Lopez Pascual , Stefano Garzarella Subject: [PATCH v3 7/7] vhost-user: call VHOST_USER_SET_VRING_ENABLE synchronously Date: Mon, 2 Oct 2023 22:32:21 +0200 Message-Id: <20231002203221.17241-8-lersek@redhat.com> In-Reply-To: <20231002203221.17241-1-lersek@redhat.com> References: <20231002203221.17241-1-lersek@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 Received-SPF: pass client-ip=170.10.129.124; envelope-from=lersek@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org KDEpIFRoZSB2aXJ0aW8tMS4yIHNwZWNpZmljYXRpb24KPGh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4u b3JnL3ZpcnRpby92aXJ0aW8vdjEuMi92aXJ0aW8tdjEuMi5odG1sPiB3cml0ZXM6Cgo+IDMgICAg IEdlbmVyYWwgSW5pdGlhbGl6YXRpb24gQW5kIERldmljZSBPcGVyYXRpb24KPiAzLjEgICBEZXZp Y2UgSW5pdGlhbGl6YXRpb24KPiAzLjEuMSBEcml2ZXIgUmVxdWlyZW1lbnRzOiBEZXZpY2UgSW5p dGlhbGl6YXRpb24KPgo+IFsuLi5dCj4KPiA3LiBQZXJmb3JtIGRldmljZS1zcGVjaWZpYyBzZXR1 cCwgaW5jbHVkaW5nIGRpc2NvdmVyeSBvZiB2aXJ0cXVldWVzIGZvcgo+ICAgIHRoZSBkZXZpY2Us IG9wdGlvbmFsIHBlci1idXMgc2V0dXAsIHJlYWRpbmcgYW5kIHBvc3NpYmx5IHdyaXRpbmcgdGhl Cj4gICAgZGV2aWNl4oCZcyB2aXJ0aW8gY29uZmlndXJhdGlvbiBzcGFjZSwgYW5kIHBvcHVsYXRp b24gb2YgdmlydHF1ZXVlcy4KPgo+IDguIFNldCB0aGUgRFJJVkVSX09LIHN0YXR1cyBiaXQuIEF0 IHRoaXMgcG9pbnQgdGhlIGRldmljZSBpcyDigJxsaXZl4oCdLgoKYW5kCgo+IDQgICAgICAgICBW aXJ0aW8gVHJhbnNwb3J0IE9wdGlvbnMKPiA0LjEgICAgICAgVmlydGlvIE92ZXIgUENJIEJ1cwo+ IDQuMS40ICAgICBWaXJ0aW8gU3RydWN0dXJlIFBDSSBDYXBhYmlsaXRpZXMKPiA0LjEuNC4zICAg Q29tbW9uIGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIGxheW91dAo+IDQuMS40LjMuMiBEcml2ZXIg UmVxdWlyZW1lbnRzOiBDb21tb24gY29uZmlndXJhdGlvbiBzdHJ1Y3R1cmUgbGF5b3V0Cj4KPiBb Li4uXQo+Cj4gVGhlIGRyaXZlciBNVVNUIGNvbmZpZ3VyZSB0aGUgb3RoZXIgdmlydHF1ZXVlIGZp ZWxkcyBiZWZvcmUgZW5hYmxpbmcgdGhlCj4gdmlydHF1ZXVlIHdpdGggcXVldWVfZW5hYmxlLgo+ Cj4gWy4uLl0KCihUaGUgc2FtZSBzdGF0ZW1lbnRzIGFyZSBwcmVzZW50IGluIHZpcnRpby0xLjAg aWRlbnRpY2FsbHksIGF0CjxodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy92aXJ0aW8vdmlydGlv L3YxLjAvdmlydGlvLXYxLjAuaHRtbD4uKQoKVGhlc2UgdG9nZXRoZXIgbWVhbiB0aGF0IHRoZSBm b2xsb3dpbmcgc3ViLXNlcXVlbmNlIG9mIHN0ZXBzIGlzIHZhbGlkIGZvcgphIHZpcnRpby0xLjAg Z3Vlc3QgZHJpdmVyOgoKKDEuMSkgc2V0ICJxdWV1ZV9lbmFibGUiIGZvciB0aGUgbmVlZGVkIHF1 ZXVlcyBhcyB0aGUgZmluYWwgcGFydCBvZiBkZXZpY2UKaW5pdGlhbGl6YXRpb24gc3RlcCAoNyks CgooMS4yKSBzZXQgRFJJVkVSX09LIGluIHN0ZXAgKDgpLAoKKDEuMykgaW1tZWRpYXRlbHkgc3Rh cnQgc2VuZGluZyB2aXJ0aW8gcmVxdWVzdHMgdG8gdGhlIGRldmljZS4KCigyKSBXaGVuIHZob3N0 LXVzZXIgaXMgZW5hYmxlZCwgYW5kIHRoZSBWSE9TVF9VU0VSX0ZfUFJPVE9DT0xfRkVBVFVSRVMK c3BlY2lhbCB2aXJ0aW8gZmVhdHVyZSBpcyBuZWdvdGlhdGVkLCB0aGVuIHZpcnRpbyByaW5ncyBz dGFydCBpbiBkaXNhYmxlZApzdGF0ZSwgYWNjb3JkaW5nIHRvCjxodHRwczovL3FlbXUtcHJvamVj dC5naXRsYWIuaW8vcWVtdS9pbnRlcm9wL3Zob3N0LXVzZXIuaHRtbCNyaW5nLXN0YXRlcz4uCklu IHRoaXMgY2FzZSwgZXhwbGljaXQgVkhPU1RfVVNFUl9TRVRfVlJJTkdfRU5BQkxFIG1lc3NhZ2Vz IGFyZSBuZWVkZWQgZm9yCmVuYWJsaW5nIHZyaW5ncy4KClRoZXJlZm9yZSBzZXR0aW5nICJxdWV1 ZV9lbmFibGUiIGZyb20gdGhlIGd1ZXN0ICgxLjEpIC0tIHdoaWNoIGlzCnRlY2huaWNhbGx5ICJi dWZmZXJlZCIgb24gdGhlIFFFTVUgc2lkZSB1bnRpbCB0aGUgZ3Vlc3Qgc2V0cyBEUklWRVJfT0sK KDEuMikgLS0gaXMgYSAqY29udHJvbCBwbGFuZSogb3BlcmF0aW9uLCB3aGljaCAtLSBhZnRlciAo MS4yKSAtLSB0cmF2ZWxzCmZyb20gdGhlIGd1ZXN0IHRocm91Z2ggUUVNVSB0byB0aGUgdmhvc3Qt dXNlciBiYWNrZW5kLCB1c2luZyBhIHVuaXggZG9tYWluCnNvY2tldC4KCldoZXJlYXMgc2VuZGlu ZyBhIHZpcnRpbyByZXF1ZXN0ICgxLjMpIGlzIGEgKmRhdGEgcGxhbmUqIG9wZXJhdGlvbiwgd2hp Y2gKZXZhZGVzIFFFTVUgLS0gaXQgdHJhdmVscyBmcm9tIGd1ZXN0IHRvIHRoZSB2aG9zdC11c2Vy IGJhY2tlbmQgdmlhCmV2ZW50ZmQuCgpUaGlzIG1lYW5zIHRoYXQgb3BlcmF0aW9ucyAoKDEuMSkg KyAoMS4yKSkgYW5kICgxLjMpIHRyYXZlbCB0aHJvdWdoCmRpZmZlcmVudCBjaGFubmVscywgYW5k IHRoZWlyIHJlbGF0aXZlIG9yZGVyIGNhbiBiZSByZXZlcnNlZCwgYXMgcGVyY2VpdmVkCmJ5IHRo ZSB2aG9zdC11c2VyIGJhY2tlbmQuCgpUaGF0J3MgZXhhY3RseSB3aGF0IGhhcHBlbnMgd2hlbiBP Vk1GJ3MgdmlydGlvZnMgZHJpdmVyIChWaXJ0aW9Gc0R4ZSkgcnVucwphZ2FpbnN0IHRoZSBSdXN0 LWxhbmd1YWdlIHZpcnRpb2ZzZCB2ZXJzaW9uIDEuNy4yLiAoV2hpY2ggdXNlcyB2ZXJzaW9uCjAu MTAuMSBvZiB0aGUgdmhvc3QtdXNlci1iYWNrZW5kIGNyYXRlLCBhbmQgdmVyc2lvbiAwLjguMSBv ZiB0aGUgdmhvc3QKY3JhdGUuKQoKTmFtZWx5LCB3aGVuIFZpcnRpb0ZzRHhlIGJpbmRzIGEgdmly dGlvZnMgZGV2aWNlLCBpdCBnb2VzIHRocm91Z2ggdGhlCmRldmljZSBpbml0aWFsaXphdGlvbiBz dGVwcyAoaS5lLiwgY29udHJvbCBwbGFuZSBvcGVyYXRpb25zKSwgYW5kCmltbWVkaWF0ZWx5IHNl bmRzIGEgRlVTRV9JTklUIHJlcXVlc3QgdG9vIChpLmUuLCBwZXJmb3JtcyBhIGRhdGEgcGxhbmUK b3BlcmF0aW9uKS4gSW4gdGhlIFJ1c3QtbGFuZ3VhZ2UgdmlydGlvZnNkLCB0aGlzIGNyZWF0ZXMg YSByYWNlIGJldHdlZW4KdHdvIGNvbXBvbmVudHMgdGhhdCBydW4gKmNvbmN1cnJlbnRseSosIGku ZS4sIGluIGRpZmZlcmVudCB0aHJlYWRzIG9yCnByb2Nlc3NlczoKCi0gQ29udHJvbCBwbGFuZSwg aGFuZGxpbmcgdmhvc3QtdXNlciBwcm90b2NvbCBtZXNzYWdlczoKCiAgVGhlICJWaG9zdFVzZXJT bGF2ZVJlcUhhbmRsZXJNdXQ6OnNldF92cmluZ19lbmFibGUiIG1ldGhvZAogIFtjcmF0ZXMvdmhv c3QtdXNlci1iYWNrZW5kL3NyYy9oYW5kbGVyLnJzXSBoYW5kbGVzCiAgVkhPU1RfVVNFUl9TRVRf VlJJTkdfRU5BQkxFIG1lc3NhZ2VzLCBhbmQgdXBkYXRlcyBlYWNoIHZyaW5nJ3MgImVuYWJsZWQi CiAgZmxhZyBhY2NvcmRpbmcgdG8gdGhlIG1lc3NhZ2UgcHJvY2Vzc2VkLgoKLSBEYXRhIHBsYW5l LCBoYW5kbGluZyB2aXJ0aW8gLyBGVVNFIHJlcXVlc3RzOgoKICBUaGUgIlZyaW5nRXBvbGxIYW5k bGVyOjpoYW5kbGVfZXZlbnQiIG1ldGhvZAogIFtjcmF0ZXMvdmhvc3QtdXNlci1iYWNrZW5kL3Ny Yy9ldmVudF9sb29wLnJzXSBoYW5kbGVzIHRoZSBpbmNvbWluZwogIHZpcnRpbyAvIEZVU0UgcmVx dWVzdCwgY29uc3VtaW5nIHRoZSB2aXJ0aW8ga2ljayBhdCB0aGUgc2FtZSB0aW1lLiBJZgogIHRo ZSB2cmluZydzICJlbmFibGVkIiBmbGFnIGlzIHNldCwgdGhlIHZpcnRpbyAvIEZVU0UgcmVxdWVz dCBpcwogIHByb2Nlc3NlZCBnZW51aW5lbHkuIElmIHRoZSB2cmluZydzICJlbmFibGVkIiBmbGFn IGlzIGNsZWFyLCB0aGVuIHRoZQogIHZpcnRpbyAvIEZVU0UgcmVxdWVzdCBpcyBkaXNjYXJkZWQu CgpOb3RlIHRoYXQgT1ZNRiBlbmFibGVzIHRoZSBxdWV1ZSAqZmlyc3QqLCBhbmQgc2VuZHMgRlVT RV9JTklUICpzZWNvbmQqLgpIb3dldmVyLCBpZiB0aGUgZGF0YSBwbGFuZSBwcm9jZXNzb3IgaW4g dmlydGlvZnNkIHdpbnMgdGhlIHJhY2UsIHRoZW4gaXQKc2VlcyB0aGUgRlVTRV9JTklUICpiZWZv cmUqIHRoZSBjb250cm9sIHBsYW5lIHByb2Nlc3NvciB0b29rIG5vdGljZSBvZgpWSE9TVF9VU0VS X1NFVF9WUklOR19FTkFCTEUgYW5kIGdyZWVuLWxpdCB0aGUgcXVldWUgZm9yIHRoZSBkYXRhIHBs YW5lCnByb2Nlc3Nvci4gVGhlcmVmb3JlIHRoZSBsYXR0ZXIgZHJvcHMgRlVTRV9JTklUIG9uIHRo ZSBmbG9vciwgYW5kIGdvZXMKYmFjayB0byB3YWl0aW5nIGZvciBmdXJ0aGVyIHZpcnRpbyAvIEZV U0UgcmVxdWVzdHMgd2l0aCBlcG9sbF93YWl0LgpNZWFud2hpbGUgT1ZNRiBpcyBzdHVjayB3YWl0 aW5nIGZvciB0aGUgRlVTRVRfSU5JVCByZXNwb25zZSAtLSBhIGRlYWRsb2NrLgoKVGhlIGRlYWRs b2NrIGlzIG5vdCBkZXRlcm1pbmlzdGljLiBPVk1GIGhhbmdzIGluZnJlcXVlbnRseSBkdXJpbmcg Zmlyc3QKYm9vdC4gSG93ZXZlciwgT1ZNRiBoYW5ncyBhbG1vc3QgY2VydGFpbmx5IGR1cmluZyBy ZWJvb3RzIGZyb20gdGhlIFVFRkkKc2hlbGwuCgpUaGUgcmFjZSBjYW4gYmUgInJlbGlhYmx5IG1h c2tlZCIgYnkgaW5zZXJ0aW5nIGEgdmVyeSBzbWFsbCBkZWxheSAtLSBhCnNpbmdsZSBkZWJ1ZyBt ZXNzYWdlIC0tIGF0IHRoZSB0b3Agb2YgIlZyaW5nRXBvbGxIYW5kbGVyOjpoYW5kbGVfZXZlbnQi LAppLmUuLCBqdXN0IGJlZm9yZSB0aGUgZGF0YSBwbGFuZSBwcm9jZXNzb3IgY2hlY2tzIHRoZSAi ZW5hYmxlZCIgZmllbGQgb2YKdGhlIHZyaW5nLiBUaGF0IGRlbGF5IHN1ZmZpY2VzIGZvciB0aGUg Y29udHJvbCBwbGFuZSBwcm9jZXNzb3IgdG8gYWN0IHVwb24KVkhPU1RfVVNFUl9TRVRfVlJJTkdf RU5BQkxFLgoKV2UgY2FuIGRldGVybWluaXN0aWNhbGx5IHByZXZlbnQgdGhlIHJhY2UgaW4gUUVN VSwgYnkgYmxvY2tpbmcgT1ZNRiBpbnNpZGUKc3RlcCAoMS4yKSAtLSBpLmUuLCBpbiB0aGUgd3Jp dGUgdG8gdGhlIGRldmljZSBzdGF0dXMgcmVnaXN0ZXIgdGhhdAoidW5sZWFzaGVzIiBxdWV1ZSBl bmFibGVtZW50IC0tIHVudGlsIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0VOQUJMRSBhY3R1YWxseQoq Y29tcGxldGVzKi4gVGhhdCB3YXkgT1ZNRidzIFZDUFUgY2Fubm90IGFkdmFuY2UgdG8gdGhlIEZV U0VfSU5JVApzdWJtaXNzaW9uIGJlZm9yZSB2aXJ0aW9mc2QncyBjb250cm9sIHBsYW5lIHByb2Nl c3NvciB0YWtlcyBub3RpY2Ugb2YgdGhlCnF1ZXVlIGJlaW5nIGVuYWJsZWQuCgpXYWl0IGZvciBW SE9TVF9VU0VSX1NFVF9WUklOR19FTkFCTEUgY29tcGxldGlvbiBieToKCi0gc2V0dGluZyB0aGUg TkVFRF9SRVBMWSBmbGFnIG9uIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0VOQUJMRSwgYW5kIHdhaXRp bmcKICBmb3IgdGhlIHJlcGx5LCBpZiB0aGUgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX1JFUExZX0FD SyB2aG9zdC11c2VyIGZlYXR1cmUKICBoYXMgYmVlbiBuZWdvdGlhdGVkLCBvcgoKLSBwZXJmb3Jt aW5nIGEgc2VwYXJhdGUgVkhPU1RfVVNFUl9HRVRfRkVBVFVSRVMgKmV4Y2hhbmdlKiwgd2hpY2gg cmVxdWlyZXMKICBhIGJhY2tlbmQgcmVzcG9uc2UgcmVnYXJkbGVzcyBvZiBWSE9TVF9VU0VSX1BS T1RPQ09MX0ZfUkVQTFlfQUNLLgoKQ2M6ICJNaWNoYWVsIFMuIFRzaXJraW4iIDxtc3RAcmVkaGF0 LmNvbT4gKHN1cHBvcnRlcjp2aG9zdCkKQ2M6IEV1Z2VuaW8gUGVyZXogTWFydGluIDxlcGVyZXpt YUByZWRoYXQuY29tPgpDYzogR2VybWFuIE1hZ2xpb25lIDxnbWFnbGlvbmVAcmVkaGF0LmNvbT4K Q2M6IExpdSBKaWFuZyA8Z2VycnlAbGludXguYWxpYmFiYS5jb20+CkNjOiBTZXJnaW8gTG9wZXog UGFzY3VhbCA8c2xwQHJlZGhhdC5jb20+CkNjOiBTdGVmYW5vIEdhcnphcmVsbGEgPHNnYXJ6YXJl QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5j b20+ClJldmlld2VkLWJ5OiBTdGVmYW5vIEdhcnphcmVsbGEgPHNnYXJ6YXJlQHJlZGhhdC5jb20+ ClRlc3RlZC1ieTogQWxiZXJ0IEVzdGV2ZSA8YWVzdGV2ZUByZWRoYXQuY29tPgpbbGVyc2VrQHJl ZGhhdC5jb206IHdvcmsgRXVnZW5pbydzIGV4cGxhbmF0aW9uIGludG8gdGhlIGNvbW1pdCBtZXNz YWdlLAogYWJvdXQgUUVNVSBjb250YWluaW5nIHN0ZXAgKDEuMSkgdW50aWwgc3RlcCAoMS4yKV0K UmV2aWV3ZWQtYnk6IEV1Z2VuaW8gUMOpcmV6IDxlcGVyZXptYUByZWRoYXQuY29tPgotLS0KCk5v dGVzOgogICAgdjM6CiAgICAKICAgIC0gcGljayB1cCBSLWIgZnJvbSBFdWdlbmlvLCBULWIgZnJv bSBBbGJlcnQKICAgIAogICAgLSBjbGFyaWZ5IGNvbW1pdCBtZXNzYWdlIChhbHNvIGdpdmUgcGVy bWFuZW50IGNyZWRpdCBmb3IgdGhlCiAgICAgIGNsYXJpZmljYXRpb247IEkgZmVlbCB0aGUgY2hh bmdlIGlzIGltcG9ydGFudCBlbm91Z2gpIFtFdWdlbmlvXQogICAgCiAgICB2MjoKICAgIAogICAg LSBwaWNrIHVwIFItYiBmcm9tIFN0ZWZhbm8KICAgIAogICAgLSB1cGRhdGUgdmlydGlvIHNwZWMg cmVmZXJlbmNlIGZyb20gMS4wIHRvIDEuMiAoYWxzbyBrZWVwIHRoZSAxLjAgcmVmKQogICAgICBp biB0aGUgY29tbWl0IG1lc3NhZ2U7IHJlLWNoZWNrIHRoZSBxdW90ZXMgLyBzZWN0aW9uIGhlYWRl cnMgW1N0ZWZhbm9dCiAgICAKICAgIC0gc3VtbWFyaXplIGNvbW1pdCBtZXNzYWdlIGluIGNvZGUg Y29tbWVudCBbU3RlZmFub10KCiBody92aXJ0aW8vdmhvc3QtdXNlci5jIHwgMTYgKysrKysrKysr KysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9ody92aXJ0aW8vdmhvc3QtdXNlci5jIGIvaHcvdmlydGlvL3Zob3N0LXVz ZXIuYwppbmRleCAxOGUxNWE5YmIzNTkuLjQxODQyZWIwMjNiNSAxMDA2NDQKLS0tIGEvaHcvdmly dGlvL3Zob3N0LXVzZXIuYworKysgYi9ody92aXJ0aW8vdmhvc3QtdXNlci5jCkBAIC0xMjM1LDcg KzEyMzUsMjEgQEAgc3RhdGljIGludCB2aG9zdF91c2VyX3NldF92cmluZ19lbmFibGUoc3RydWN0 IHZob3N0X2RldiAqZGV2LCBpbnQgZW5hYmxlKQogICAgICAgICAgICAgLm51bSAgID0gZW5hYmxl LAogICAgICAgICB9OwogCi0gICAgICAgIHJldCA9IHZob3N0X3NldF92cmluZyhkZXYsIFZIT1NU X1VTRVJfU0VUX1ZSSU5HX0VOQUJMRSwgJnN0YXRlLCBmYWxzZSk7CisgICAgICAgIC8qCisgICAg ICAgICAqIFNFVF9WUklOR19FTkFCTEUgdHJhdmVscyBmcm9tIGd1ZXN0IHRvIFFFTVUgdG8gdmhv c3QtdXNlciBiYWNrZW5kIC8KKyAgICAgICAgICogY29udHJvbCBwbGFuZSB0aHJlYWQgdmlhIHVu aXggZG9tYWluIHNvY2tldC4gVmlydGlvIHJlcXVlc3RzIHRyYXZlbAorICAgICAgICAgKiBmcm9t IGd1ZXN0IHRvIHZob3N0LXVzZXIgYmFja2VuZCAvIGRhdGEgcGxhbmUgdGhyZWFkIHZpYSBldmVu dGZkLgorICAgICAgICAgKiBFdmVuIGlmIHRoZSBndWVzdCBlbmFibGVzIHRoZSByaW5nIGZpcnN0 LCBhbmQgcHVzaGVzIGl0cyBmaXJzdCB2aXJ0aW8KKyAgICAgICAgICogcmVxdWVzdCBzZWNvbmQg KGNvbmZvcm1pbmcgdG8gdGhlIHZpcnRpbyBzcGVjKSwgdGhlIGRhdGEgcGxhbmUgdGhyZWFkCisg ICAgICAgICAqIGluIHRoZSBiYWNrZW5kIG1heSBzZWUgdGhlIHZpcnRpbyByZXF1ZXN0IGJlZm9y ZSB0aGUgY29udHJvbCBwbGFuZQorICAgICAgICAgKiB0aHJlYWQgc2VlcyB0aGUgcXVldWUgZW5h YmxlbWVudC4gVGhpcyBjYXVzZXMgKGluIGZhY3QsIHJlcXVpcmVzKSB0aGUKKyAgICAgICAgICog ZGF0YSBwbGFuZSB0aHJlYWQgdG8gZGlzY2FyZCB0aGUgdmlydGlvIHJlcXVlc3QgKGl0IGFycml2 ZWQgb24gYQorICAgICAgICAgKiBzZWVtaW5nbHkgZGlzYWJsZWQgcXVldWUpLiBUbyBwcmV2ZW50 IHRoaXMgb3V0LW9mLW9yZGVyIGRlbGl2ZXJ5LAorICAgICAgICAgKiBkb24ndCBsZXQgdGhlIGd1 ZXN0IHByb2NlZWQgdG8gcHVzaGluZyB0aGUgdmlydGlvIHJlcXVlc3QgdW50aWwgdGhlCisgICAg ICAgICAqIGJhY2tlbmQgY29udHJvbCBwbGFuZSBhY2tub3dsZWRnZXMgZW5hYmxpbmcgdGhlIHF1 ZXVlIC0tIElPVywgcGFzcworICAgICAgICAgKiB3YWl0X2Zvcl9yZXBseT10cnVlIGJlbG93Lgor ICAgICAgICAgKi8KKyAgICAgICAgcmV0ID0gdmhvc3Rfc2V0X3ZyaW5nKGRldiwgVkhPU1RfVVNF Ul9TRVRfVlJJTkdfRU5BQkxFLCAmc3RhdGUsIHRydWUpOwogICAgICAgICBpZiAocmV0IDwgMCkg ewogICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAqIFJlc3RvcmluZyB0aGUgcHJldmlvdXMg c3RhdGUgaXMgbGlrZWx5IGluZmVhc2libGUsIGFzIHdlbGwgYXMK