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.5 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 BFB4DC433E0 for ; Fri, 22 May 2020 17:18:57 +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 80A0120738 for ; Fri, 22 May 2020 17:18:57 +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="HebC2I2R" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 80A0120738 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]:48588 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jcBJw-0006bk-Ns for qemu-devel@archiver.kernel.org; Fri, 22 May 2020 13:18:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46760) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jcBJ7-0004vK-Gr for qemu-devel@nongnu.org; Fri, 22 May 2020 13:18:05 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:25929 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 1jcBJ5-0000di-Rx for qemu-devel@nongnu.org; Fri, 22 May 2020 13:18:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1590167882; 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=4+WAH92SNYw1I0R63EWnB7Xfs3BvI/uefRj3o3pNaD4=; b=HebC2I2RIRSnxw1p6c0NJenk4de/+VQEO4GhZi1rbpx45h20xSeHIuPyIlMwoY1rQbKhOq tdAcWWT5J/A6oz1hkjjCQONV9M5wFntk2roeda7PAKG89Jc3+frKUuz60513GOWEhScmzm 2AVtHDPhNBRQpGV//NTd0NAIGGSSIoI= 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-288-6S4Dbln-OWaN1Tqzn83lHQ-1; Fri, 22 May 2020 13:17:57 -0400 X-MC-Unique: 6S4Dbln-OWaN1Tqzn83lHQ-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7191480058A; Fri, 22 May 2020 17:17:56 +0000 (UTC) Received: from localhost (ovpn-112-243.ams2.redhat.com [10.36.112.243]) by smtp.corp.redhat.com (Postfix) with ESMTP id 965F55D9CC; Fri, 22 May 2020 17:17:55 +0000 (UTC) From: Stefan Hajnoczi To: qemu-devel@nongnu.org Subject: [PATCH 2/5] vhost: involve device backends in feature negotiation Date: Fri, 22 May 2020 18:17:23 +0100 Message-Id: <20200522171726.648279-3-stefanha@redhat.com> In-Reply-To: <20200522171726.648279-1-stefanha@redhat.com> References: <20200522171726.648279-1-stefanha@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 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/22 10:36:44 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] 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 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 , Laurent Vivier , Thomas Huth , Eduardo Habkost , qemu-block@nongnu.org, "Michael S. Tsirkin" , jasowang@redhat.com, cohuck@redhat.com, Stefan Hajnoczi , "Dr. David Alan Gilbert" , Raphael Norwitz , "Gonglei \(Arei\)" , Gerd Hoffmann , Paolo Bonzini , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Fam Zheng , Max Reitz Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" TWFueSB2aG9zdCBkZXZpY2VzIGluIFFFTVUgY3VycmVudGx5IGRvIG5vdCBpbnZvbHZlIHRoZSBk ZXZpY2UgYmFja2VuZAppbiBmZWF0dXJlIG5lZ290aWF0aW9uLiBUaGlzIHNlZW1zIGZpbmUgYXQg Zmlyc3QgZ2xhbmNlIGZvciBkZXZpY2UgdHlwZXMKd2l0aG91dCB0aGVpciBvd24gZmVhdHVyZSBi aXRzICh2aXJ0aW8tbmV0IGhhcyBtYW55IGJ1dCBvdGhlciBkZXZpY2UKdHlwZXMgaGF2ZSBub25l KS4KClRoaXMgb3Zlcmxvb2tzIHRoZSBmYWN0IHRoYXQgUUVNVSdzIHZpcnRxdWV1ZSBpbXBsZW1l bnRhdGlvbiBhbmQgdGhlCmRldmljZSBiYWNrZW5kJ3MgaW1wbGVtZW50YXRpb24gbWF5IHN1cHBv cnQgZGlmZmVyZW50IGZlYXR1cmVzLiAgUUVNVQptdXN0IG5vdCByZXBvcnQgZmVhdHVyZXMgdG8g dGhlIGd1ZXN0IHRoYXQgdGhlIHRoZSBkZXZpY2UgYmFja2VuZApkb2Vzbid0IHN1cHBvcnQuCgpG b3IgZXhhbXBsZSwgUUVNVSBzdXBwb3J0cyBWSVJUSU8gMS4xIHBhY2tlZCB2aXJ0cXVldWVzIHdo aWxlIG1hbnkKZXhpc3Rpbmcgdmhvc3QgZGV2aWNlIGJhY2tlbmRzIGRvIG5vdC4gV2hlbiB0aGUg dXNlciBzZXRzIHBhY2tlZD1vbiB0aGUKZGV2aWNlIGJhY2tlbmQgYnJlYWtzLiBUaGlzIHNob3Vs ZCBoYXZlIGJlZW4gaGFuZGxlZCBncmFjZWZ1bGx5IGJ5CmZlYXR1cmUgbmVnb3RpYXRpb24gaW5z dGVhZC4KCkludHJvZHVjZSB2aG9zdF9nZXRfZGVmYXVsdF9mZWF0dXJlcygpIGFuZCB1cGRhdGUg YWxsIHZob3N0IGRldmljZXMgaW4KUUVNVSB0byBpbnZvbHZlIHRoZSBkZXZpY2UgYmFja2VuZCBp biBmZWF0dXJlIG5lZ290aWF0aW9uLgoKVGhpcyBwYXRjaCBmaXhlcyB0aGUgZm9sbG93aW5nIGVy cm9yOgoKICAkIHg4Nl82NC1zb2Z0bW11L3FlbXUtc3lzdGVtLXg4Nl82NCBcCiAgICAgIC1kcml2 ZSBpZj12aXJ0aW8sZmlsZT10ZXN0LmltZyxmb3JtYXQ9cmF3IFwKICAgICAgLWNoYXJkZXYgc29j a2V0LHBhdGg9L3RtcC92aG9zdC11c2VyLWJsay5zb2NrLGlkPWNoYXIwIFwKICAgICAgLWRldmlj ZSB2aG9zdC11c2VyLWJsay1wY2ksY2hhcmRldj1jaGFyMCxwYWNrZWQ9b24gXAogICAgICAtb2Jq ZWN0IG1lbW9yeS1iYWNrZW5kLW1lbWZkLHNpemU9MUcsc2hhcmU9b24saWQ9cmFtMCBcCiAgICAg IC1NIGFjY2VsPWt2bSxtZW1vcnktYmFja2VuZD1yYW0wCiAgcWVtdS1zeXN0ZW0teDg2XzY0OiBG YWlsZWQgdG8gc2V0IG1zZyBmZHMuCiAgcWVtdS1zeXN0ZW0teDg2XzY0OiB2aG9zdCBWUSAwIHJp bmcgcmVzdG9yZSBmYWlsZWQ6IC0xOiBTdWNjZXNzICgwKQoKVGhlIHZob3N0LXVzZXItYmxrIGJh Y2tlbmQgZmFpbGVkIGFzIGZvbGxvd3M6CgogICQgLi92aG9zdC11c2VyLWJsayAtLXNvY2tldC1w YXRoPS90bXAvdmhvc3QtdXNlci1ibGsuc29jayAtYiB0ZXN0Mi5pbWcKICB2dV9wYW5pYzogdmly dGlvOiB6ZXJvIHNpemVkIGJ1ZmZlcnMgYXJlIG5vdCBhbGxvd2VkCiAgdmlydGlvLWJsayByZXF1 ZXN0IG1pc3NpbmcgaGVhZGVycwoKU2lnbmVkLW9mZi1ieTogU3RlZmFuIEhham5vY3ppIDxzdGVm YW5oYUByZWRoYXQuY29tPgotLS0KIGluY2x1ZGUvaHcvdmlydGlvL3Zob3N0LmggICAgICAgIHwg IDEgKwogaW5jbHVkZS9ody92aXJ0aW8vdmlydGlvLWdwdS5oICAgfCAgMiArKwogaW5jbHVkZS9z eXNlbXUvY3J5cHRvZGV2LXZob3N0LmggfCAxMSArKysrKysrKysrKwogYmFja2VuZHMvY3J5cHRv ZGV2LXZob3N0LmMgICAgICAgfCAxOSArKysrKysrKysrKysrKysrKysrCiBody9kaXNwbGF5L3Zo b3N0LXVzZXItZ3B1LmMgICAgICB8IDE3ICsrKysrKysrKysrKysrKysrCiBody9kaXNwbGF5L3Zp cnRpby1ncHUtYmFzZS5jICAgICB8ICAyICstCiBody9pbnB1dC92aG9zdC11c2VyLWlucHV0LmMg ICAgICB8ICA5ICsrKysrKysrKwogaHcvdmlydGlvL3Zob3N0LXVzZXItZnMuYyAgICAgICAgfCAg NSArKystLQogaHcvdmlydGlvL3Zob3N0LXZzb2NrLmMgICAgICAgICAgfCAgNSArKystLQogaHcv dmlydGlvL3Zob3N0LmMgICAgICAgICAgICAgICAgfCAyMiArKysrKysrKysrKysrKysrKysrKysr CiBody92aXJ0aW8vdmlydGlvLWNyeXB0by5jICAgICAgICB8ICAzICsrLQogMTEgZmlsZXMgY2hh bmdlZCwgOTAgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNs dWRlL2h3L3ZpcnRpby92aG9zdC5oIGIvaW5jbHVkZS9ody92aXJ0aW8vdmhvc3QuaAppbmRleCAw ODU0NTBjNmY4Li5kMmU1NGRkNGE4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2h3L3ZpcnRpby92aG9z dC5oCisrKyBiL2luY2x1ZGUvaHcvdmlydGlvL3Zob3N0LmgKQEAgLTExMiw2ICsxMTIsNyBAQCB2 b2lkIHZob3N0X3ZpcnRxdWV1ZV9tYXNrKHN0cnVjdCB2aG9zdF9kZXYgKmhkZXYsIFZpcnRJT0Rl dmljZSAqdmRldiwgaW50IG4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgbWFzayk7 CiB1aW50NjRfdCB2aG9zdF9nZXRfZmVhdHVyZXMoc3RydWN0IHZob3N0X2RldiAqaGRldiwgY29u c3QgaW50ICpmZWF0dXJlX2JpdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0 X3QgZmVhdHVyZXMpOwordWludDY0X3Qgdmhvc3RfZ2V0X2RlZmF1bHRfZmVhdHVyZXMoc3RydWN0 IHZob3N0X2RldiAqaGRldiwgdWludDY0X3QgZmVhdHVyZXMpOwogdm9pZCB2aG9zdF9hY2tfZmVh dHVyZXMoc3RydWN0IHZob3N0X2RldiAqaGRldiwgY29uc3QgaW50ICpmZWF0dXJlX2JpdHMsCiAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBmZWF0dXJlcyk7CiBib29sIHZob3N0X2hh c19mcmVlX3Nsb3Qodm9pZCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L3ZpcnRpby92aXJ0aW8t Z3B1LmggYi9pbmNsdWRlL2h3L3ZpcnRpby92aXJ0aW8tZ3B1LmgKaW5kZXggNmRkNTdmMjAyNS4u NDFkMjcwZDgwZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ody92aXJ0aW8vdmlydGlvLWdwdS5oCisr KyBiL2luY2x1ZGUvaHcvdmlydGlvL3ZpcnRpby1ncHUuaApAQCAtMTkyLDYgKzE5Miw4IEBAIGJv b2wgdmlydGlvX2dwdV9iYXNlX2RldmljZV9yZWFsaXplKERldmljZVN0YXRlICpxZGV2LAogdm9p ZCB2aXJ0aW9fZ3B1X2Jhc2VfcmVzZXQoVmlydElPR1BVQmFzZSAqZyk7CiB2b2lkIHZpcnRpb19n cHVfYmFzZV9maWxsX2Rpc3BsYXlfaW5mbyhWaXJ0SU9HUFVCYXNlICpnLAogICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHZpcnRpb19ncHVfcmVzcF9kaXNwbGF5X2luZm8gKmRweV9pbmZv KTsKK3VpbnQ2NF90IHZpcnRpb19ncHVfYmFzZV9nZXRfZmVhdHVyZXMoVmlydElPRGV2aWNlICp2 ZGV2LCB1aW50NjRfdCBmZWF0dXJlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRXJyb3IgKiplcnJwKTsKIAogLyogdmlydGlvLWdwdS5jICovCiB2b2lkIHZpcnRpb19n cHVfY3RybF9yZXNwb25zZShWaXJ0SU9HUFUgKmcsCmRpZmYgLS1naXQgYS9pbmNsdWRlL3N5c2Vt dS9jcnlwdG9kZXYtdmhvc3QuaCBiL2luY2x1ZGUvc3lzZW11L2NyeXB0b2Rldi12aG9zdC5oCmlu ZGV4IGY0MjgyNGZiZGUuLmU2Mjk0NDZiZmIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc3lzZW11L2Ny eXB0b2Rldi12aG9zdC5oCisrKyBiL2luY2x1ZGUvc3lzZW11L2NyeXB0b2Rldi12aG9zdC5oCkBA IC0xMjIsNiArMTIyLDE3IEBAIGludCBjcnlwdG9kZXZfdmhvc3Rfc3RhcnQoVmlydElPRGV2aWNl ICpkZXYsIGludCB0b3RhbF9xdWV1ZXMpOwogICovCiB2b2lkIGNyeXB0b2Rldl92aG9zdF9zdG9w KFZpcnRJT0RldmljZSAqZGV2LCBpbnQgdG90YWxfcXVldWVzKTsKIAorLyoqCisgKiBjcnlwdG9k ZXZfdmhvc3RfZ2V0X2ZlYXR1cmVzOgorICogQGRldjogdGhlIHZpcnRpbyBjcnlwdG8gb2JqZWN0 CisgKiBAcmVxdWVzdGVkX2ZlYXR1cmVzOiB0aGUgZmVhdHVyZXMgYmVpbmcgb2ZmZXJlZAorICoK KyAqIFJldHVybnM6IHRoZSByZXF1ZXN0ZWQgZmVhdHVyZXMgYml0cyB0aGF0IGFyZSBzdXBwb3J0 ZWQgYnkgdGhlIHZob3N0IGRldmljZSwKKyAqIG9yIHRoZSBvcmlnaW5hbCByZXF1ZXN0IGZlYXR1 cmUgYml0cyBpZiB2aG9zdCBpcyBkaXNhYmxlZAorICoKKyAqLwordWludDY0X3QgY3J5cHRvZGV2 X3Zob3N0X2dldF9mZWF0dXJlcyhWaXJ0SU9EZXZpY2UgKmRldiwgdWludDY0X3QgZmVhdHVyZXMp OworCiAvKioKICAqIGNyeXB0b2Rldl92aG9zdF92aXJ0cXVldWVfbWFzazoKICAqIEBkZXY6IHRo ZSB2aXJ0aW8gY3J5cHRvIG9iamVjdApkaWZmIC0tZ2l0IGEvYmFja2VuZHMvY3J5cHRvZGV2LXZo b3N0LmMgYi9iYWNrZW5kcy9jcnlwdG9kZXYtdmhvc3QuYwppbmRleCA4MzM3YzlhNDk1Li41ZjVh NGZkYTdiIDEwMDY0NAotLS0gYS9iYWNrZW5kcy9jcnlwdG9kZXYtdmhvc3QuYworKysgYi9iYWNr ZW5kcy9jcnlwdG9kZXYtdmhvc3QuYwpAQCAtMjY2LDYgKzI2NiwyMCBAQCB2b2lkIGNyeXB0b2Rl dl92aG9zdF9zdG9wKFZpcnRJT0RldmljZSAqZGV2LCBpbnQgdG90YWxfcXVldWVzKQogICAgIGFz c2VydChyID49IDApOwogfQogCit1aW50NjRfdCBjcnlwdG9kZXZfdmhvc3RfZ2V0X2ZlYXR1cmVz KFZpcnRJT0RldmljZSAqZGV2LCB1aW50NjRfdCBmZWF0dXJlcykKK3sKKyAgICBWaXJ0SU9Dcnlw dG8gKnZjcnlwdG8gPSBWSVJUSU9fQ1JZUFRPKGRldik7CisgICAgQ3J5cHRvRGV2QmFja2VuZCAq YiA9IHZjcnlwdG8tPmNyeXB0b2RldjsKKyAgICBDcnlwdG9EZXZCYWNrZW5kQ2xpZW50ICpjYyA9 IGItPmNvbmYucGVlcnMuY2NzWzBdOworICAgIENyeXB0b0RldkJhY2tlbmRWaG9zdCAqdmhvc3Rf Y3J5cHRvID0gY3J5cHRvZGV2X2dldF92aG9zdChjYywgYiwgMCk7CisKKyAgICBpZiAoIXZob3N0 X2NyeXB0bykgeworICAgICAgICByZXR1cm4gZmVhdHVyZXM7IC8qIHZob3N0IGRpc2FibGVkICov CisgICAgfQorCisgICAgcmV0dXJuIHZob3N0X2dldF9kZWZhdWx0X2ZlYXR1cmVzKCZ2aG9zdF9j cnlwdG8tPmRldiwgZmVhdHVyZXMpOworfQorCiB2b2lkIGNyeXB0b2Rldl92aG9zdF92aXJ0cXVl dWVfbWFzayhWaXJ0SU9EZXZpY2UgKmRldiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgcXVldWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW50IGlkeCwgYm9vbCBtYXNrKQpAQCAtMzMzLDYgKzM0NywxMSBAQCB2b2lk IGNyeXB0b2Rldl92aG9zdF9zdG9wKFZpcnRJT0RldmljZSAqZGV2LCBpbnQgdG90YWxfcXVldWVz KQogewogfQogCit1aW50NjRfdCBjcnlwdG9kZXZfdmhvc3RfZ2V0X2ZlYXR1cmVzKFZpcnRJT0Rl dmljZSAqZGV2LCB1aW50NjRfdCBmZWF0dXJlcykKK3sKKyAgICByZXR1cm4gZmVhdHVyZXM7Cit9 CisKIHZvaWQgY3J5cHRvZGV2X3Zob3N0X3ZpcnRxdWV1ZV9tYXNrKFZpcnRJT0RldmljZSAqZGV2 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHF1ZXVlLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlkeCwgYm9vbCBtYXNrKQpkaWZmIC0t Z2l0IGEvaHcvZGlzcGxheS92aG9zdC11c2VyLWdwdS5jIGIvaHcvZGlzcGxheS92aG9zdC11c2Vy LWdwdS5jCmluZGV4IDRjZGFlZTFiZGUuLmU0ODNkZjJhOWUgMTAwNjQ0Ci0tLSBhL2h3L2Rpc3Bs YXkvdmhvc3QtdXNlci1ncHUuYworKysgYi9ody9kaXNwbGF5L3Zob3N0LXVzZXItZ3B1LmMKQEAg LTQ2Niw2ICs0NjYsMjIgQEAgdmhvc3RfdXNlcl9ncHVfc2V0X2NvbmZpZyhWaXJ0SU9EZXZpY2Ug KnZkZXYsCiAgICAgfQogfQogCitzdGF0aWMgdWludDY0X3QKK3Zob3N0X3VzZXJfZ3B1X2dldF9m ZWF0dXJlcyhWaXJ0SU9EZXZpY2UgKnZkZXYsIHVpbnQ2NF90IGZlYXR1cmVzLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVycm9yICoqZXJycCkKK3sKKyAgICBWaG9zdFVzZXJHUFUgKmcg PSBWSE9TVF9VU0VSX0dQVSh2ZGV2KTsKKyAgICBFcnJvciAqbG9jYWxfZXJyID0gTlVMTDsKKwor ICAgIGZlYXR1cmVzID0gdmlydGlvX2dwdV9iYXNlX2dldF9mZWF0dXJlcyh2ZGV2LCBmZWF0dXJl cywgJmxvY2FsX2Vycik7CisgICAgaWYgKGxvY2FsX2VycikgeworICAgICAgICBlcnJvcl9wcm9w YWdhdGUoZXJycCwgbG9jYWxfZXJyKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAg cmV0dXJuIHZob3N0X2dldF9kZWZhdWx0X2ZlYXR1cmVzKCZnLT52aG9zdC0+ZGV2LCBmZWF0dXJl cyk7Cit9CisKIHN0YXRpYyB2b2lkCiB2aG9zdF91c2VyX2dwdV9zZXRfc3RhdHVzKFZpcnRJT0Rl dmljZSAqdmRldiwgdWludDhfdCB2YWwpCiB7CkBAIC01ODIsNiArNTk4LDcgQEAgdmhvc3RfdXNl cl9ncHVfY2xhc3NfaW5pdChPYmplY3RDbGFzcyAqa2xhc3MsIHZvaWQgKmRhdGEpCiAKICAgICB2 ZGMtPnJlYWxpemUgPSB2aG9zdF91c2VyX2dwdV9kZXZpY2VfcmVhbGl6ZTsKICAgICB2ZGMtPnJl c2V0ID0gdmhvc3RfdXNlcl9ncHVfcmVzZXQ7CisgICAgdmRjLT5nZXRfZmVhdHVyZXMgPSB2aG9z dF91c2VyX2dwdV9nZXRfZmVhdHVyZXM7CiAgICAgdmRjLT5zZXRfc3RhdHVzICAgPSB2aG9zdF91 c2VyX2dwdV9zZXRfc3RhdHVzOwogICAgIHZkYy0+Z3Vlc3Rfbm90aWZpZXJfbWFzayA9IHZob3N0 X3VzZXJfZ3B1X2d1ZXN0X25vdGlmaWVyX21hc2s7CiAgICAgdmRjLT5ndWVzdF9ub3RpZmllcl9w ZW5kaW5nID0gdmhvc3RfdXNlcl9ncHVfZ3Vlc3Rfbm90aWZpZXJfcGVuZGluZzsKZGlmZiAtLWdp dCBhL2h3L2Rpc3BsYXkvdmlydGlvLWdwdS1iYXNlLmMgYi9ody9kaXNwbGF5L3ZpcnRpby1ncHUt YmFzZS5jCmluZGV4IGMxNTkzNTFiZTMuLjA1ZDFmZjJkYjIgMTAwNjQ0Ci0tLSBhL2h3L2Rpc3Bs YXkvdmlydGlvLWdwdS1iYXNlLmMKKysrIGIvaHcvZGlzcGxheS92aXJ0aW8tZ3B1LWJhc2UuYwpA QCAtMTc2LDcgKzE3Niw3IEBAIHZpcnRpb19ncHVfYmFzZV9kZXZpY2VfcmVhbGl6ZShEZXZpY2VT dGF0ZSAqcWRldiwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHVpbnQ2NF90Cit1aW50 NjRfdAogdmlydGlvX2dwdV9iYXNlX2dldF9mZWF0dXJlcyhWaXJ0SU9EZXZpY2UgKnZkZXYsIHVp bnQ2NF90IGZlYXR1cmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvciAqKmVy cnApCiB7CmRpZmYgLS1naXQgYS9ody9pbnB1dC92aG9zdC11c2VyLWlucHV0LmMgYi9ody9pbnB1 dC92aG9zdC11c2VyLWlucHV0LmMKaW5kZXggNjM5ODRhOGJhNy4uMTM3MWZiMzJjYyAxMDA2NDQK LS0tIGEvaHcvaW5wdXQvdmhvc3QtdXNlci1pbnB1dC5jCisrKyBiL2h3L2lucHV0L3Zob3N0LXVz ZXItaW5wdXQuYwpAQCAtNDUsNiArNDUsMTQgQEAgc3RhdGljIHZvaWQgdmhvc3RfaW5wdXRfY2hh bmdlX2FjdGl2ZShWaXJ0SU9JbnB1dCAqdmlucHV0KQogICAgIH0KIH0KIAorc3RhdGljIHVpbnQ2 NF90IHZob3N0X2lucHV0X2dldF9mZWF0dXJlcyhWaXJ0SU9EZXZpY2UgKnZkZXYsIHVpbnQ2NF90 IGZlYXR1cmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJv ciAqKmVycnApCit7CisgICAgVkhvc3RVc2VySW5wdXQgKnZoaSA9IFZIT1NUX1VTRVJfSU5QVVQo dmRldik7CisKKyAgICByZXR1cm4gdmhvc3RfZ2V0X2RlZmF1bHRfZmVhdHVyZXMoJnZoaS0+dmhv c3QtPmRldiwgZmVhdHVyZXMpOworfQorCiBzdGF0aWMgdm9pZCB2aG9zdF9pbnB1dF9nZXRfY29u ZmlnKFZpcnRJT0RldmljZSAqdmRldiwgdWludDhfdCAqY29uZmlnX2RhdGEpCiB7CiAgICAgVmly dElPSW5wdXQgKnZpbnB1dCA9IFZJUlRJT19JTlBVVCh2ZGV2KTsKQEAgLTg5LDYgKzk3LDcgQEAg c3RhdGljIHZvaWQgdmhvc3RfaW5wdXRfY2xhc3NfaW5pdChPYmplY3RDbGFzcyAqa2xhc3MsIHZv aWQgKmRhdGEpCiAgICAgRGV2aWNlQ2xhc3MgKmRjID0gREVWSUNFX0NMQVNTKGtsYXNzKTsKIAog ICAgIGRjLT52bXNkID0gJnZtc3RhdGVfdmhvc3RfaW5wdXQ7CisgICAgdmRjLT5nZXRfZmVhdHVy ZXMgPSB2aG9zdF9pbnB1dF9nZXRfZmVhdHVyZXM7CiAgICAgdmRjLT5nZXRfY29uZmlnID0gdmhv c3RfaW5wdXRfZ2V0X2NvbmZpZzsKICAgICB2ZGMtPnNldF9jb25maWcgPSB2aG9zdF9pbnB1dF9z ZXRfY29uZmlnOwogICAgIHZpYy0+cmVhbGl6ZSA9IHZob3N0X2lucHV0X3JlYWxpemU7CmRpZmYg LS1naXQgYS9ody92aXJ0aW8vdmhvc3QtdXNlci1mcy5jIGIvaHcvdmlydGlvL3Zob3N0LXVzZXIt ZnMuYwppbmRleCAxYmM1ZDAzYTAwLi41NjAxNWNhM2Q0IDEwMDY0NAotLS0gYS9ody92aXJ0aW8v dmhvc3QtdXNlci1mcy5jCisrKyBiL2h3L3ZpcnRpby92aG9zdC11c2VyLWZzLmMKQEAgLTEzMCw4 ICsxMzAsOSBAQCBzdGF0aWMgdWludDY0X3QgdnVmX2dldF9mZWF0dXJlcyhWaXJ0SU9EZXZpY2Ug KnZkZXYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJl cXVlc3RlZF9mZWF0dXJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RXJyb3IgKiplcnJwKQogewotICAgIC8qIE5vIGZlYXR1cmUgYml0cyB1c2VkIHlldCAqLwotICAg IHJldHVybiByZXF1ZXN0ZWRfZmVhdHVyZXM7CisgICAgVkhvc3RVc2VyRlMgKmZzID0gVkhPU1Rf VVNFUl9GUyh2ZGV2KTsKKworICAgIHJldHVybiB2aG9zdF9nZXRfZGVmYXVsdF9mZWF0dXJlcygm ZnMtPnZob3N0X2RldiwgcmVxdWVzdGVkX2ZlYXR1cmVzKTsKIH0KIAogc3RhdGljIHZvaWQgdnVm X2hhbmRsZV9vdXRwdXQoVmlydElPRGV2aWNlICp2ZGV2LCBWaXJ0UXVldWUgKnZxKQpkaWZmIC0t Z2l0IGEvaHcvdmlydGlvL3Zob3N0LXZzb2NrLmMgYi9ody92aXJ0aW8vdmhvc3QtdnNvY2suYwpp bmRleCA0YTIyOGY1MTY4Li43Mjc2NTg3YmU2IDEwMDY0NAotLS0gYS9ody92aXJ0aW8vdmhvc3Qt dnNvY2suYworKysgYi9ody92aXJ0aW8vdmhvc3QtdnNvY2suYwpAQCAtMTgwLDggKzE4MCw5IEBA IHN0YXRpYyB1aW50NjRfdCB2aG9zdF92c29ja19nZXRfZmVhdHVyZXMoVmlydElPRGV2aWNlICp2 ZGV2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBy ZXF1ZXN0ZWRfZmVhdHVyZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVycm9yICoqZXJycCkKIHsKLSAgICAvKiBObyBmZWF0dXJlIGJpdHMgdXNlZCB5ZXQgKi8K LSAgICByZXR1cm4gcmVxdWVzdGVkX2ZlYXR1cmVzOworICAgIFZIb3N0VlNvY2sgKnZzb2NrID0g VkhPU1RfVlNPQ0sodmRldik7CisKKyAgICByZXR1cm4gdmhvc3RfZ2V0X2RlZmF1bHRfZmVhdHVy ZXMoJnZzb2NrLT52aG9zdF9kZXYsIHJlcXVlc3RlZF9mZWF0dXJlcyk7CiB9CiAKIHN0YXRpYyB2 b2lkIHZob3N0X3Zzb2NrX2hhbmRsZV9vdXRwdXQoVmlydElPRGV2aWNlICp2ZGV2LCBWaXJ0UXVl dWUgKnZxKQpkaWZmIC0tZ2l0IGEvaHcvdmlydGlvL3Zob3N0LmMgYi9ody92aXJ0aW8vdmhvc3Qu YwppbmRleCBhZmY5OGEwZWRlLi5mOGExNDRkY2QwIDEwMDY0NAotLS0gYS9ody92aXJ0aW8vdmhv c3QuYworKysgYi9ody92aXJ0aW8vdmhvc3QuYwpAQCAtNDgsNiArNDgsMjMgQEAgc3RhdGljIHVu c2lnbmVkIGludCB1c2VkX21lbXNsb3RzOwogc3RhdGljIFFMSVNUX0hFQUQoLCB2aG9zdF9kZXYp IHZob3N0X2RldmljZXMgPQogICAgIFFMSVNUX0hFQURfSU5JVElBTElaRVIodmhvc3RfZGV2aWNl cyk7CiAKKy8qCisgKiBGZWF0dXJlIGJpdHMgdGhhdCBkZXZpY2UgYmFja2VuZHMgbXVzdCBleHBs aWNpdGx5IHJlcG9ydC4gRmVhdHVyZSBiaXRzIG5vdAorICogbGlzdGVkIGhlcmUgbWF5YmUgc2V0 IGJ5IFFFTVUgd2l0aG91dCBjaGVja2luZyB3aXRoIHRoZSBkZXZpY2UgYmFja2VuZC4KKyAqIElk ZWFsbHkgYWxsIGZlYXR1cmUgYml0cyB3b3VsZCBiZSBsaXN0ZWQgaGVyZSBidXQgZXhpc3Rpbmcg dmhvc3QgZGV2aWNlCisgKiBpbXBsZW1lbnRhdGlvbnMgZG8gbm90IGV4cGxpY2l0bHkgcmVwb3J0 IGJpdHMgbGlrZSBWSVJUSU9fRl9WRVJTSU9OXzEsIHNvIHdlCisgKiBjYW4gb25seSBhc3N1bWUg dGhleSBhcmUgc3VwcG9ydGVkLgorICoKKyAqIE5ldyBmZWF0dXJlIGJpdHMgYWRkZWQgdG8gdGhl IFZJUlRJTyBzcGVjIHNob3VsZCB1c3VhbGx5IGJlIGluY2x1ZGVkIGhlcmUKKyAqIHNvIHRoYXQg ZXhpc3Rpbmcgdmhvc3QgZGV2aWNlIGJhY2tlbmRzIHRoYXQgZG8gbm90IHN1cHBvcnQgdGhlbSB5 ZXQgY29udGludWUKKyAqIHRvIHdvcmsuCisgKi8KK3N0YXRpYyBjb25zdCBpbnQgdmhvc3RfZGVm YXVsdF9mZWF0dXJlX2JpdHNbXSA9IHsKKyAgICBWSVJUSU9fRl9JT01NVV9QTEFURk9STSwKKyAg ICBWSVJUSU9fRl9SSU5HX1BBQ0tFRCwKKyAgICBWSE9TVF9JTlZBTElEX0ZFQVRVUkVfQklUCit9 OworCiBib29sIHZob3N0X2hhc19mcmVlX3Nsb3Qodm9pZCkKIHsKICAgICB1bnNpZ25lZCBpbnQg c2xvdHNfbGltaXQgPSB+MFU7CkBAIC0xNDY4LDYgKzE0ODUsMTEgQEAgdWludDY0X3Qgdmhvc3Rf Z2V0X2ZlYXR1cmVzKHN0cnVjdCB2aG9zdF9kZXYgKmhkZXYsIGNvbnN0IGludCAqZmVhdHVyZV9i aXRzLAogICAgIHJldHVybiBmZWF0dXJlczsKIH0KIAordWludDY0X3Qgdmhvc3RfZ2V0X2RlZmF1 bHRfZmVhdHVyZXMoc3RydWN0IHZob3N0X2RldiAqaGRldiwgdWludDY0X3QgZmVhdHVyZXMpCit7 CisgICAgcmV0dXJuIHZob3N0X2dldF9mZWF0dXJlcyhoZGV2LCB2aG9zdF9kZWZhdWx0X2ZlYXR1 cmVfYml0cywgZmVhdHVyZXMpOworfQorCiB2b2lkIHZob3N0X2Fja19mZWF0dXJlcyhzdHJ1Y3Qg dmhvc3RfZGV2ICpoZGV2LCBjb25zdCBpbnQgKmZlYXR1cmVfYml0cywKICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQ2NF90IGZlYXR1cmVzKQogewpkaWZmIC0tZ2l0IGEvaHcvdmlydGlvL3Zp cnRpby1jcnlwdG8uYyBiL2h3L3ZpcnRpby92aXJ0aW8tY3J5cHRvLmMKaW5kZXggYmQ5MTY1YzU2 NS4uZWY3MTFiNTZmNCAxMDA2NDQKLS0tIGEvaHcvdmlydGlvL3ZpcnRpby1jcnlwdG8uYworKysg Yi9ody92aXJ0aW8vdmlydGlvLWNyeXB0by5jCkBAIC03MzksNyArNzM5LDggQEAgc3RhdGljIHVp bnQ2NF90IHZpcnRpb19jcnlwdG9fZ2V0X2ZlYXR1cmVzKFZpcnRJT0RldmljZSAqdmRldiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBmZWF0dXJl cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvciAqKmVy cnApCiB7Ci0gICAgcmV0dXJuIGZlYXR1cmVzOworICAgIC8qIEp1c3QgcmV0dXJucyBmZWF0dXJl cyB3aGVuIHZob3N0IGlzIGRpc2FibGVkICovCisgICAgcmV0dXJuIGNyeXB0b2Rldl92aG9zdF9n ZXRfZmVhdHVyZXModmRldiwgZmVhdHVyZXMpOwogfQogCiBzdGF0aWMgdm9pZCB2aXJ0aW9fY3J5 cHRvX3Jlc2V0KFZpcnRJT0RldmljZSAqdmRldikKLS0gCjIuMjUuMwoK