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 52E5AE77378 for ; Mon, 2 Oct 2023 20:33:48 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qnPaz-0003UF-Lu; Mon, 02 Oct 2023 16:32:49 -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 1qnPax-0003Tf-3f for qemu-devel@nongnu.org; Mon, 02 Oct 2023 16:32:47 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qnPav-0001Ut-Ch for qemu-devel@nongnu.org; Mon, 02 Oct 2023 16:32:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1696278764; 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=PFA/Prb6o6KEE5fPBsFRk33AjGqGuJPgq23VOAGuoEc=; b=DnvFxC463IC6sN0XFrrUkDn71N4WO2SR2QnH1LUd0y8b+EKYcnKm8kVPSQGjHETTDOljoM 1M/tZE+3xfEycX/0AlryMJVdLzH1qqjDpKA5C/naBGpzpUrCoZjGWeM/npfivE0n/pMfdj 9cgObilDBeuTHtNdztUQyDH49gF1DM8= 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-286-TJ9N5eUHO4i_jT2wUtAxJQ-1; Mon, 02 Oct 2023 16:32:42 -0400 X-MC-Unique: TJ9N5eUHO4i_jT2wUtAxJQ-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 8D877811E7E; Mon, 2 Oct 2023 20:32:42 +0000 (UTC) Received: from lacos-laptop-9.usersys.redhat.com (unknown [10.39.192.119]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7AAF940C6EBF; Mon, 2 Oct 2023 20:32:40 +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 5/7] vhost-user: hoist "write_sync", "get_features", "get_u64" Date: Mon, 2 Oct 2023 22:32:19 +0200 Message-Id: <20231002203221.17241-6-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.133.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_H3=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 SW4gb3JkZXIgdG8gYXZvaWQgYSBmb3J3YXJkLWRlY2xhcmF0aW9uIGZvciAidmhvc3RfdXNlcl93 cml0ZV9zeW5jIiBpbiBhCnN1YnNlcXVlbnQgcGF0Y2gsIGhvaXN0ICJ2aG9zdF91c2VyX3dyaXRl X3N5bmMiIC0+CiJ2aG9zdF91c2VyX2dldF9mZWF0dXJlcyIgLT4gInZob3N0X3VzZXJfZ2V0X3U2 NCIganVzdCBhYm92ZQoidmhvc3Rfc2V0X3ZyaW5nIi4KClRoaXMgaXMgcHVyZWx5IGNvZGUgbW92 ZW1lbnQgLS0gbm8gb2JzZXJ2YWJsZSBjaGFuZ2UuCgpDYzogIk1pY2hhZWwgUy4gVHNpcmtpbiIg PG1zdEByZWRoYXQuY29tPiAoc3VwcG9ydGVyOnZob3N0KQpDYzogRXVnZW5pbyBQZXJleiBNYXJ0 aW4gPGVwZXJlem1hQHJlZGhhdC5jb20+CkNjOiBHZXJtYW4gTWFnbGlvbmUgPGdtYWdsaW9uZUBy ZWRoYXQuY29tPgpDYzogTGl1IEppYW5nIDxnZXJyeUBsaW51eC5hbGliYWJhLmNvbT4KQ2M6IFNl cmdpbyBMb3BleiBQYXNjdWFsIDxzbHBAcmVkaGF0LmNvbT4KQ2M6IFN0ZWZhbm8gR2FyemFyZWxs YSA8c2dhcnphcmVAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogTGFzemxvIEVyc2VrIDxsZXJz ZWtAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6IFN0ZWZhbm8gR2FyemFyZWxsYSA8c2dhcnphcmVA cmVkaGF0LmNvbT4KVGVzdGVkLWJ5OiBBbGJlcnQgRXN0ZXZlIDxhZXN0ZXZlQHJlZGhhdC5jb20+ ClJldmlld2VkLWJ5OiBQaGlsaXBwZSBNYXRoaWV1LURhdWTDqSA8cGhpbG1kQGxpbmFyby5vcmc+ ClJldmlld2VkLWJ5OiBFdWdlbmlvIFDDqXJleiA8ZXBlcmV6bWFAcmVkaGF0LmNvbT4KLS0tCgpO b3RlczoKICAgIHYzOgogICAgCiAgICAtIHBpY2sgdXAgUi1iIGZyb20gUGhpbCBhbmQgRXVnZW5p bywgVC1iIGZyb20gQWxiZXJ0CiAgICAKICAgIHYyOgogICAgCiAgICAtIHBpY2sgdXAgUi1iIGZy b20gU3RlZmFubwogICAgCiAgICAtIHJlbmFtZSAidmhvc3RfdXNlcl93cml0ZV9tc2ciIHRvICJ2 aG9zdF91c2VyX3dyaXRlX3N5bmMiIChpbiBjb2RlIGFuZAogICAgICBjb21taXQgbWVzc2FnZSkg W1N0ZWZhbm9dCgogaHcvdmlydGlvL3Zob3N0LXVzZXIuYyB8IDE3MCArKysrKysrKysrLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDg1IGluc2VydGlvbnMoKyksIDg1IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2h3L3ZpcnRpby92aG9zdC11c2VyLmMgYi9ody92aXJ0aW8vdmhvc3QtdXNl ci5jCmluZGV4IDQxMjliYTcyZTQwOC4uYzc5YjZmNzdjZGNhIDEwMDY0NAotLS0gYS9ody92aXJ0 aW8vdmhvc3QtdXNlci5jCisrKyBiL2h3L3ZpcnRpby92aG9zdC11c2VyLmMKQEAgLTEwODMsNiAr MTA4Myw5MSBAQCBzdGF0aWMgaW50IHZob3N0X3VzZXJfc2V0X3ZyaW5nX2VuZGlhbihzdHJ1Y3Qg dmhvc3RfZGV2ICpkZXYsCiAgICAgcmV0dXJuIHZob3N0X3VzZXJfd3JpdGUoZGV2LCAmbXNnLCBO VUxMLCAwKTsKIH0KIAorc3RhdGljIGludCB2aG9zdF91c2VyX2dldF91NjQoc3RydWN0IHZob3N0 X2RldiAqZGV2LCBpbnQgcmVxdWVzdCwgdWludDY0X3QgKnU2NCkKK3sKKyAgICBpbnQgcmV0Owor ICAgIFZob3N0VXNlck1zZyBtc2cgPSB7CisgICAgICAgIC5oZHIucmVxdWVzdCA9IHJlcXVlc3Qs CisgICAgICAgIC5oZHIuZmxhZ3MgPSBWSE9TVF9VU0VSX1ZFUlNJT04sCisgICAgfTsKKworICAg IGlmICh2aG9zdF91c2VyX3Blcl9kZXZpY2VfcmVxdWVzdChyZXF1ZXN0KSAmJiBkZXYtPnZxX2lu ZGV4ICE9IDApIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0ID0gdmhvc3Rf dXNlcl93cml0ZShkZXYsICZtc2csIE5VTEwsIDApOworICAgIGlmIChyZXQgPCAwKSB7CisgICAg ICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgcmV0ID0gdmhvc3RfdXNlcl9yZWFkKGRldiwg Jm1zZyk7CisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisK KyAgICBpZiAobXNnLmhkci5yZXF1ZXN0ICE9IHJlcXVlc3QpIHsKKyAgICAgICAgZXJyb3JfcmVw b3J0KCJSZWNlaXZlZCB1bmV4cGVjdGVkIG1zZyB0eXBlLiBFeHBlY3RlZCAlZCByZWNlaXZlZCAl ZCIsCisgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LCBtc2cuaGRyLnJlcXVlc3QpOworICAg ICAgICByZXR1cm4gLUVQUk9UTzsKKyAgICB9CisKKyAgICBpZiAobXNnLmhkci5zaXplICE9IHNp emVvZihtc2cucGF5bG9hZC51NjQpKSB7CisgICAgICAgIGVycm9yX3JlcG9ydCgiUmVjZWl2ZWQg YmFkIG1zZyBzaXplLiIpOworICAgICAgICByZXR1cm4gLUVQUk9UTzsKKyAgICB9CisKKyAgICAq dTY0ID0gbXNnLnBheWxvYWQudTY0OworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQg dmhvc3RfdXNlcl9nZXRfZmVhdHVyZXMoc3RydWN0IHZob3N0X2RldiAqZGV2LCB1aW50NjRfdCAq ZmVhdHVyZXMpCit7CisgICAgaWYgKHZob3N0X3VzZXJfZ2V0X3U2NChkZXYsIFZIT1NUX1VTRVJf R0VUX0ZFQVRVUkVTLCBmZWF0dXJlcykgPCAwKSB7CisgICAgICAgIHJldHVybiAtRVBST1RPOwor ICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKiBOb3RlOiAibXNnLT5oZHIuZmxhZ3MiIG1h eSBiZSBtb2RpZmllZC4gKi8KK3N0YXRpYyBpbnQgdmhvc3RfdXNlcl93cml0ZV9zeW5jKHN0cnVj dCB2aG9zdF9kZXYgKmRldiwgVmhvc3RVc2VyTXNnICptc2csCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBib29sIHdhaXRfZm9yX3JlcGx5KQoreworICAgIGludCByZXQ7CisKKyAg ICBpZiAod2FpdF9mb3JfcmVwbHkpIHsKKyAgICAgICAgYm9vbCByZXBseV9zdXBwb3J0ZWQgPSB2 aXJ0aW9faGFzX2ZlYXR1cmUoZGV2LT5wcm90b2NvbF9mZWF0dXJlcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9SRVBMWV9B Q0spOworICAgICAgICBpZiAocmVwbHlfc3VwcG9ydGVkKSB7CisgICAgICAgICAgICBtc2ctPmhk ci5mbGFncyB8PSBWSE9TVF9VU0VSX05FRURfUkVQTFlfTUFTSzsKKyAgICAgICAgfQorICAgIH0K KworICAgIHJldCA9IHZob3N0X3VzZXJfd3JpdGUoZGV2LCBtc2csIE5VTEwsIDApOworICAgIGlm IChyZXQgPCAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgaWYgKHdhaXRf Zm9yX3JlcGx5KSB7CisgICAgICAgIHVpbnQ2NF90IGR1bW15OworCisgICAgICAgIGlmIChtc2ct Pmhkci5mbGFncyAmIFZIT1NUX1VTRVJfTkVFRF9SRVBMWV9NQVNLKSB7CisgICAgICAgICAgICBy ZXR1cm4gcHJvY2Vzc19tZXNzYWdlX3JlcGx5KGRldiwgbXNnKTsKKyAgICAgICAgfQorCisgICAg ICAgLyoKKyAgICAgICAgKiBXZSBuZWVkIHRvIHdhaXQgZm9yIGEgcmVwbHkgYnV0IHRoZSBiYWNr ZW5kIGRvZXMgbm90CisgICAgICAgICogc3VwcG9ydCByZXBsaWVzIGZvciB0aGUgY29tbWFuZCB3 ZSBqdXN0IHNlbnQuCisgICAgICAgICogU2VuZCBWSE9TVF9VU0VSX0dFVF9GRUFUVVJFUyB3aGlj aCBtYWtlcyBhbGwgYmFja2VuZHMKKyAgICAgICAgKiBzZW5kIGEgcmVwbHkuCisgICAgICAgICov CisgICAgICAgIHJldHVybiB2aG9zdF91c2VyX2dldF9mZWF0dXJlcyhkZXYsICZkdW1teSk7Cisg ICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgdmhvc3Rfc2V0X3ZyaW5nKHN0 cnVjdCB2aG9zdF9kZXYgKmRldiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgaW50IHJlcXVlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgdmhv c3RfdnJpbmdfc3RhdGUgKnJpbmcpCkBAIC0xMjU1LDkxICsxMzQwLDYgQEAgc3RhdGljIGludCB2 aG9zdF91c2VyX3NldF92cmluZ19lcnIoc3RydWN0IHZob3N0X2RldiAqZGV2LAogICAgIHJldHVy biB2aG9zdF9zZXRfdnJpbmdfZmlsZShkZXYsIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0VSUiwgZmls ZSk7CiB9CiAKLXN0YXRpYyBpbnQgdmhvc3RfdXNlcl9nZXRfdTY0KHN0cnVjdCB2aG9zdF9kZXYg KmRldiwgaW50IHJlcXVlc3QsIHVpbnQ2NF90ICp1NjQpCi17Ci0gICAgaW50IHJldDsKLSAgICBW aG9zdFVzZXJNc2cgbXNnID0gewotICAgICAgICAuaGRyLnJlcXVlc3QgPSByZXF1ZXN0LAotICAg ICAgICAuaGRyLmZsYWdzID0gVkhPU1RfVVNFUl9WRVJTSU9OLAotICAgIH07Ci0KLSAgICBpZiAo dmhvc3RfdXNlcl9wZXJfZGV2aWNlX3JlcXVlc3QocmVxdWVzdCkgJiYgZGV2LT52cV9pbmRleCAh PSAwKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHJldCA9IHZob3N0X3VzZXJf d3JpdGUoZGV2LCAmbXNnLCBOVUxMLCAwKTsKLSAgICBpZiAocmV0IDwgMCkgewotICAgICAgICBy ZXR1cm4gcmV0OwotICAgIH0KLQotICAgIHJldCA9IHZob3N0X3VzZXJfcmVhZChkZXYsICZtc2cp OwotICAgIGlmIChyZXQgPCAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAg aWYgKG1zZy5oZHIucmVxdWVzdCAhPSByZXF1ZXN0KSB7Ci0gICAgICAgIGVycm9yX3JlcG9ydCgi UmVjZWl2ZWQgdW5leHBlY3RlZCBtc2cgdHlwZS4gRXhwZWN0ZWQgJWQgcmVjZWl2ZWQgJWQiLAot ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCwgbXNnLmhkci5yZXF1ZXN0KTsKLSAgICAgICAg cmV0dXJuIC1FUFJPVE87Ci0gICAgfQotCi0gICAgaWYgKG1zZy5oZHIuc2l6ZSAhPSBzaXplb2Yo bXNnLnBheWxvYWQudTY0KSkgewotICAgICAgICBlcnJvcl9yZXBvcnQoIlJlY2VpdmVkIGJhZCBt c2cgc2l6ZS4iKTsKLSAgICAgICAgcmV0dXJuIC1FUFJPVE87Ci0gICAgfQotCi0gICAgKnU2NCA9 IG1zZy5wYXlsb2FkLnU2NDsKLQotICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHZob3N0 X3VzZXJfZ2V0X2ZlYXR1cmVzKHN0cnVjdCB2aG9zdF9kZXYgKmRldiwgdWludDY0X3QgKmZlYXR1 cmVzKQotewotICAgIGlmICh2aG9zdF91c2VyX2dldF91NjQoZGV2LCBWSE9TVF9VU0VSX0dFVF9G RUFUVVJFUywgZmVhdHVyZXMpIDwgMCkgewotICAgICAgICByZXR1cm4gLUVQUk9UTzsKLSAgICB9 Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotLyogTm90ZTogIm1zZy0+aGRyLmZsYWdzIiBtYXkgYmUg bW9kaWZpZWQuICovCi1zdGF0aWMgaW50IHZob3N0X3VzZXJfd3JpdGVfc3luYyhzdHJ1Y3Qgdmhv c3RfZGV2ICpkZXYsIFZob3N0VXNlck1zZyAqbXNnLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYm9vbCB3YWl0X2Zvcl9yZXBseSkKLXsKLSAgICBpbnQgcmV0OwotCi0gICAgaWYg KHdhaXRfZm9yX3JlcGx5KSB7Ci0gICAgICAgIGJvb2wgcmVwbHlfc3VwcG9ydGVkID0gdmlydGlv X2hhc19mZWF0dXJlKGRldi0+cHJvdG9jb2xfZmVhdHVyZXMsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfUkVQTFlfQUNLKTsK LSAgICAgICAgaWYgKHJlcGx5X3N1cHBvcnRlZCkgewotICAgICAgICAgICAgbXNnLT5oZHIuZmxh Z3MgfD0gVkhPU1RfVVNFUl9ORUVEX1JFUExZX01BU0s7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg ICByZXQgPSB2aG9zdF91c2VyX3dyaXRlKGRldiwgbXNnLCBOVUxMLCAwKTsKLSAgICBpZiAocmV0 IDwgMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGlmICh3YWl0X2Zvcl9y ZXBseSkgewotICAgICAgICB1aW50NjRfdCBkdW1teTsKLQotICAgICAgICBpZiAobXNnLT5oZHIu ZmxhZ3MgJiBWSE9TVF9VU0VSX05FRURfUkVQTFlfTUFTSykgewotICAgICAgICAgICAgcmV0dXJu IHByb2Nlc3NfbWVzc2FnZV9yZXBseShkZXYsIG1zZyk7Ci0gICAgICAgIH0KLQotICAgICAgIC8q Ci0gICAgICAgICogV2UgbmVlZCB0byB3YWl0IGZvciBhIHJlcGx5IGJ1dCB0aGUgYmFja2VuZCBk b2VzIG5vdAotICAgICAgICAqIHN1cHBvcnQgcmVwbGllcyBmb3IgdGhlIGNvbW1hbmQgd2UganVz dCBzZW50LgotICAgICAgICAqIFNlbmQgVkhPU1RfVVNFUl9HRVRfRkVBVFVSRVMgd2hpY2ggbWFr ZXMgYWxsIGJhY2tlbmRzCi0gICAgICAgICogc2VuZCBhIHJlcGx5LgotICAgICAgICAqLwotICAg ICAgICByZXR1cm4gdmhvc3RfdXNlcl9nZXRfZmVhdHVyZXMoZGV2LCAmZHVtbXkpOwotICAgIH0K LQotICAgIHJldHVybiAwOwotfQotCiBzdGF0aWMgaW50IHZob3N0X3VzZXJfc2V0X3ZyaW5nX2Fk ZHIoc3RydWN0IHZob3N0X2RldiAqZGV2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCB2aG9zdF92cmluZ19hZGRyICphZGRyKQogewoK