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 smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (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 ABEC9C43334 for ; Thu, 16 Jun 2022 14:19:45 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 54951830A7; Thu, 16 Jun 2022 14:19:45 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7t1YjwJMxHQr; Thu, 16 Jun 2022 14:19:44 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp1.osuosl.org (Postfix) with ESMTPS id AF86C817AD; Thu, 16 Jun 2022 14:19:43 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 8E213C0039; Thu, 16 Jun 2022 14:19:43 +0000 (UTC) Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 9761EC002D for ; Thu, 16 Jun 2022 14:19:42 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 7840940C8D for ; Thu, 16 Jun 2022 14:19:42 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp2.osuosl.org (amavisd-new); dkim=pass (1024-bit key) header.d=redhat.com Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id p0GYDCplFXAg for ; Thu, 16 Jun 2022 14:19:41 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by smtp2.osuosl.org (Postfix) with ESMTPS id 5BB41403B3 for ; Thu, 16 Jun 2022 14:19:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1655389180; 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=U6CVFy1NTxAkO1h3Mgn+h5m0fI6FBao8LsiY1exkXQA=; b=hnnsxxIIlrd8V7l7LFZK7S9NLc4Ia9tM+X/99EBcTHHPDUT1RNYTVQhNfKfpgB+hmqMKtJ Fekyq/eMgWcNez/L13rb4FMhK7rHKsutApVxVhOKK58rEnnpTWb/BDxPfcqtaiMfWhZB/o Ym/fdKNdS71ujFQKAjEqOavuujbapJI= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-633-7weBbtuzMruMUrC7mNkrnw-1; Thu, 16 Jun 2022 10:19:38 -0400 X-MC-Unique: 7weBbtuzMruMUrC7mNkrnw-1 Received: by mail-wm1-f72.google.com with SMTP id j31-20020a05600c1c1f00b0039c481c4664so710526wms.7 for ; Thu, 16 Jun 2022 07:19:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=U6CVFy1NTxAkO1h3Mgn+h5m0fI6FBao8LsiY1exkXQA=; b=Sb7Ej2I+WVdHJj7BkUbYyQVgg3kkPh6z7z8syHy+6omjm8QK34EGP0i4t23WYQEolo Kx1xcZzZ9rEDcmTL/Mqap340J+jOZR3BoKMtGbVwrprWL9ehz9dQbWRFMxn9uTf+DOw9 NtgqlCxKCtO2yAusAtWq3aoijQI5sh1CXS4G8jtnCZ/7fbR4g8ufrvtlDlVJjdbZANYo cI83EjIcVzygXGM2K9P5T87HLP8Xl/Osqbnbbqxc5rEwZHmlUAR019rt4qjWwh94q5bH cO/muGSFmEMWgHccpd1ofwolIAAMgnT2TyeUgtYusUBD4aS4MZC/FUFiVxqPrVfoFfpI cQKA== X-Gm-Message-State: AJIora90W4L3odsvZ+L3BZgZV1vngqWydJuQBFuJnzUZG1a2VuiRc3Qs zQmX4uCl/xQJdrKoOxAoeUcaNJAhlNEnvV9fQGEEGvPedtLOiaL1hia/mef+7NwJ9LzmeSdXr78 +Nyi/uJYGxed8lHwPUz/U+b9QPLo29Bma6QhYdjpN1A== X-Received: by 2002:a05:6000:170a:b0:215:6799:782c with SMTP id n10-20020a056000170a00b002156799782cmr4828295wrc.38.1655389177286; Thu, 16 Jun 2022 07:19:37 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sbi9B8wa6CwE7PtNRqbdJNn7TJfoqZifyvOdwQebh1MBl4mEQJRMWCkuQXwQ2sBFWBD42a1Q== X-Received: by 2002:a05:6000:170a:b0:215:6799:782c with SMTP id n10-20020a056000170a00b002156799782cmr4828261wrc.38.1655389176987; Thu, 16 Jun 2022 07:19:36 -0700 (PDT) Received: from redhat.com ([2.53.13.204]) by smtp.gmail.com with ESMTPSA id g16-20020a05600c4ed000b003974860e15esm7563757wmq.40.2022.06.16.07.19.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jun 2022 07:19:36 -0700 (PDT) Date: Thu, 16 Jun 2022 10:19:33 -0400 From: "Michael S. Tsirkin" To: Albert Huang Subject: Re: [PATCH v4] virtio_ring : keep used_wrap_counter in vq->last_used_idx Message-ID: <20220616101823-mutt-send-email-mst@kernel.org> References: <20220616081812-mutt-send-email-mst@kernel.org> <20220616125737.48878-1-huangjie.albert@bytedance.com> MIME-Version: 1.0 In-Reply-To: <20220616125737.48878-1-huangjie.albert@bytedance.com> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=mst@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline Cc: linux-kernel@vger.kernel.org, yuanzhu@bytedance.com, virtualization@lists.linux-foundation.org X-BeenThere: virtualization@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux virtualization List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" T24gVGh1LCBKdW4gMTYsIDIwMjIgYXQgMDg6NTc6MzZQTSArMDgwMCwgQWxiZXJ0IEh1YW5nIHdy b3RlOgo+IEZyb206ICJodWFuZ2ppZS5hbGJlcnQiIDxodWFuZ2ppZS5hbGJlcnRAYnl0ZWRhbmNl LmNvbT4KPiAKPiB0aGUgdXNlZF93cmFwX2NvdW50ZXIgYW5kIHRoZSB2cS0+bGFzdF91c2VkX2lk eCBtYXkgZ2V0Cj4gb3V0IG9mIHN5bmMgaWYgdGhleSBhcmUgc2VwYXJhdGUgYXNzaWdubWVudO+8 jGFuZCBpbnRlcnJ1cHQKPiBtaWdodCB1c2UgYW4gaW5jb3JyZWN0IHZhbHVlIHRvIGNoZWNrIGZv ciB0aGUgdXNlZCBpbmRleC4KPiAKPiBmb3IgZXhhbXBsZTpPT0IgYWNjZXNzCj4ga3NvZnRpcnFk IG1heSBjb25zdW1lIHRoZSBwYWNrZXQgYW5kIGl0IHdpbGwgY2FsbDoKPiB2aXJ0bmV0X3BvbGwK PiAJLS0+dmlydG5ldF9yZWNlaXZlCj4gCQktLT52aXJ0cXVldWVfZ2V0X2J1Zl9jdHgKPiAJCQkt LT52aXJ0cXVldWVfZ2V0X2J1Zl9jdHhfcGFja2VkCj4gYW5kIGluIHZpcnRxdWV1ZV9nZXRfYnVm X2N0eF9wYWNrZWQ6Cj4gCj4gdnEtPmxhc3RfdXNlZF9pZHggKz0gdnEtPnBhY2tlZC5kZXNjX3N0 YXRlW2lkXS5udW07Cj4gaWYgKHVubGlrZWx5KHZxLT5sYXN0X3VzZWRfaWR4ID49IHZxLT5wYWNr ZWQudnJpbmcubnVtKSkgewo+ICAgICAgICAgIHZxLT5sYXN0X3VzZWRfaWR4IC09IHZxLT5wYWNr ZWQudnJpbmcubnVtOwo+ICAgICAgICAgIHZxLT5wYWNrZWQudXNlZF93cmFwX2NvdW50ZXIgXj0g MTsKPiB9Cj4gCj4gaWYgYXQgdGhlIHNhbWUgdGltZSwgdGhlcmUgY29tZXMgYSB2cmluZyBpbnRl cnJ1cHTvvIxpbiB2cmluZ19pbnRlcnJ1cHQ6Cj4gd2Ugd2lsbCBjYWxsOgo+IHZyaW5nX2ludGVy cnVwdAo+IAktLT5tb3JlX3VzZWQKPiAJCS0tPm1vcmVfdXNlZF9wYWNrZWQKPiAJCQktLT5pc191 c2VkX2Rlc2NfcGFja2VkCj4gaW4gaXNfdXNlZF9kZXNjX3BhY2tlZCwgdGhlIGxhc3RfdXNlZF9p ZHggbWF5YmUgPj0gdnEtPnBhY2tlZC52cmluZy5udW0uCj4gc28gdGhpcyBjb3VsZCBjYXNlIGEg bWVtb3J5IG91dCBvZiBib3VuZHMgYnVnLgo+IAo+IHRoaXMgcGF0Y2ggaXMgdG8ga2VlcCB0aGUg dXNlZF93cmFwX2NvdW50ZXIgaW4gdnEtPmxhc3RfdXNlZF9pZHgKPiBzbyB3ZSBjYW4gZ2V0IHRo ZSBjb3JyZWN0IHZhbHVlIHRvIGNoZWNrIGZvciB1c2VkIGluZGV4IGluIGludGVycnVwdC4KPiAK PiB2My0+djQ6Cj4gLSB1c2UgUkVBRF9PTkNFL1dSSVRFX09OQ0UgdG8gZ2V0L3NldCB2cS0+bGFz dF91c2VkX2lkeAo+IAo+IHYyLT52MzoKPiAtIGFkZCBpbmxpbmUgZnVuY3Rpb24gdG8gZ2V0IHVz ZWRfd3JhcF9jb3VudGVyIGFuZCBsYXN0X3VzZWQKPiAtIHdoZW4gdXNlIHZxLT5sYXN0X3VzZWRf aWR4LCBvbmx5IHJlYWQgb25jZQo+ICAgaWYgdnEtPmxhc3RfdXNlZF9pZHggaXMgcmVhZCB0d2lj ZSwgdGhlIHZhbHVlcyBjYW4gYmUgaW5jb25zaXN0ZW50Lgo+IC0gdXNlIGxhc3RfdXNlZF9pZHgg JiB+KC0oMSA8PCBWUklOR19QQUNLRURfRVZFTlRfRl9XUkFQX0NUUikpCj4gICB0byBnZXQgdGhl IGFsbCBiaXRzIGJlbG93IFZSSU5HX1BBQ0tFRF9FVkVOVF9GX1dSQVBfQ1RSCj4gCj4gdjEtPnYy Ogo+IC0gcmV1c2UgdGhlIFZSSU5HX1BBQ0tFRF9FVkVOVF9GX1dSQVBfQ1RSCj4gLSBSZW1vdmUg cGFyYW1ldGVyIGp1ZGdtZW50IGluIGlzX3VzZWRfZGVzY19wYWNrZWQsCj4gYmVjYXVzZSBpdCBj YW4ndCBiZSBpbGxlZ2FsCj4gCj4gU2lnbmVkLW9mZi1ieTogaHVhbmdqaWUuYWxiZXJ0IDxodWFu Z2ppZS5hbGJlcnRAYnl0ZWRhbmNlLmNvbT4KPiAtLS0KPiAgZHJpdmVycy92aXJ0aW8vdmlydGlv X3JpbmcuYyB8IDc1ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQo+ICAxIGZp bGUgY2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19yaW5nLmMgYi9kcml2ZXJzL3ZpcnRpby92aXJ0 aW9fcmluZy5jCj4gaW5kZXggMTNhNzM0OGNlZGZmLi43MTlmYmJlNzE2ZDYgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy92aXJ0aW8vdmlydGlvX3JpbmcuYwo+ICsrKyBiL2RyaXZlcnMvdmlydGlvL3Zp cnRpb19yaW5nLmMKPiBAQCAtMTExLDcgKzExMSwxMiBAQCBzdHJ1Y3QgdnJpbmdfdmlydHF1ZXVl IHsKPiAgCS8qIE51bWJlciB3ZSd2ZSBhZGRlZCBzaW5jZSBsYXN0IHN5bmMuICovCj4gIAl1bnNp Z25lZCBpbnQgbnVtX2FkZGVkOwo+ICAKPiAtCS8qIExhc3QgdXNlZCBpbmRleCB3ZSd2ZSBzZWVu LiAqLwo+ICsJLyogTGFzdCB1c2VkIGluZGV4ICB3ZSd2ZSBzZWVuLgo+ICsJICogZm9yIHNwbGl0 IHJpbmcsIGl0IGp1c3QgY29udGFpbnMgbGFzdCB1c2VkIGluZGV4Cj4gKwkgKiBmb3IgcGFja2Vk IHJpbmc6Cj4gKwkgKiBiaXRzIHVwIHRvIFZSSU5HX1BBQ0tFRF9FVkVOVF9GX1dSQVBfQ1RSIGlu Y2x1ZGUgdGhlIGxhc3QgdXNlZCBpbmRleC4KPiArCSAqIGJpdHMgVlJJTkdfUEFDS0VEX0VWRU5U X0ZfV1JBUF9DVFIgaW5jbHVkZSB0aGUgdXNlZCB3cmFwIGNvdW50ZXIuCgpiaXRzIGZyb20gVlJJ TkdfUEFDS0VEX0VWRU5UX0ZfV1JBUF9DVFIKCj4gKwkgKi8KPiAgCXUxNiBsYXN0X3VzZWRfaWR4 Owo+ICAKPiAgCS8qIEhpbnQgZm9yIGV2ZW50IGlkeDogYWxyZWFkeSB0cmlnZ2VyZWQgbm8gbmVl ZCB0byBkaXNhYmxlLiAqLwo+IEBAIC0xNTQsOSArMTU5LDYgQEAgc3RydWN0IHZyaW5nX3ZpcnRx dWV1ZSB7Cj4gIAkJCS8qIERyaXZlciByaW5nIHdyYXAgY291bnRlci4gKi8KPiAgCQkJYm9vbCBh dmFpbF93cmFwX2NvdW50ZXI7Cj4gIAo+IC0JCQkvKiBEZXZpY2UgcmluZyB3cmFwIGNvdW50ZXIu ICovCj4gLQkJCWJvb2wgdXNlZF93cmFwX2NvdW50ZXI7Cj4gLQo+ICAJCQkvKiBBdmFpbCB1c2Vk IGZsYWdzLiAqLwo+ICAJCQl1MTYgYXZhaWxfdXNlZF9mbGFnczsKPiAgCj4gQEAgLTk3Myw2ICs5 NzUsMTUgQEAgc3RhdGljIHN0cnVjdCB2aXJ0cXVldWUgKnZyaW5nX2NyZWF0ZV92aXJ0cXVldWVf c3BsaXQoCj4gIC8qCj4gICAqIFBhY2tlZCByaW5nIHNwZWNpZmljIGZ1bmN0aW9ucyAtICpfcGFj a2VkKCkuCj4gICAqLwo+ICtzdGF0aWMgaW5saW5lIGJvb2wgcGFja2VkX3VzZWRfd3JhcF9jb3Vu dGVyKHUxNiBsYXN0X3VzZWRfaWR4KQo+ICt7Cj4gKwlyZXR1cm4gISEobGFzdF91c2VkX2lkeCAm ICgxIDw8IFZSSU5HX1BBQ0tFRF9FVkVOVF9GX1dSQVBfQ1RSKSk7Cj4gK30KPiArCj4gK3N0YXRp YyBpbmxpbmUgdTE2IHBhY2tlZF9sYXN0X3VzZWQodTE2IGxhc3RfdXNlZF9pZHgpCj4gK3sKPiAr CXJldHVybiBsYXN0X3VzZWRfaWR4ICYgfigtKDEgPDwgVlJJTkdfUEFDS0VEX0VWRU5UX0ZfV1JB UF9DVFIpKTsKPiArfQo+ICAKPiAgc3RhdGljIHZvaWQgdnJpbmdfdW5tYXBfZXh0cmFfcGFja2Vk KGNvbnN0IHN0cnVjdCB2cmluZ192aXJ0cXVldWUgKnZxLAo+ICAJCQkJICAgICBzdHJ1Y3QgdnJp bmdfZGVzY19leHRyYSAqZXh0cmEpCj4gQEAgLTE0MDYsOCArMTQxNywxNCBAQCBzdGF0aWMgaW5s aW5lIGJvb2wgaXNfdXNlZF9kZXNjX3BhY2tlZChjb25zdCBzdHJ1Y3QgdnJpbmdfdmlydHF1ZXVl ICp2cSwKPiAgCj4gIHN0YXRpYyBpbmxpbmUgYm9vbCBtb3JlX3VzZWRfcGFja2VkKGNvbnN0IHN0 cnVjdCB2cmluZ192aXJ0cXVldWUgKnZxKQo+ICB7Cj4gLQlyZXR1cm4gaXNfdXNlZF9kZXNjX3Bh Y2tlZCh2cSwgdnEtPmxhc3RfdXNlZF9pZHgsCj4gLQkJCXZxLT5wYWNrZWQudXNlZF93cmFwX2Nv dW50ZXIpOwo+ICsJdTE2IGxhc3RfdXNlZDsKPiArCXUxNiBsYXN0X3VzZWRfaWR4Owo+ICsJYm9v bCB1c2VkX3dyYXBfY291bnRlcjsKPiArCj4gKwlsYXN0X3VzZWRfaWR4ID0gUkVBRF9PTkNFKHZx LT5sYXN0X3VzZWRfaWR4KTsKPiArCWxhc3RfdXNlZCA9IHBhY2tlZF9sYXN0X3VzZWQobGFzdF91 c2VkX2lkeCk7Cj4gKwl1c2VkX3dyYXBfY291bnRlciA9IHBhY2tlZF91c2VkX3dyYXBfY291bnRl cihsYXN0X3VzZWRfaWR4KTsKPiArCXJldHVybiBpc191c2VkX2Rlc2NfcGFja2VkKHZxLCBsYXN0 X3VzZWQsIHVzZWRfd3JhcF9jb3VudGVyKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgKnZpcnRx dWV1ZV9nZXRfYnVmX2N0eF9wYWNrZWQoc3RydWN0IHZpcnRxdWV1ZSAqX3ZxLAo+IEBAIC0xNDE1 LDcgKzE0MzIsOCBAQCBzdGF0aWMgdm9pZCAqdmlydHF1ZXVlX2dldF9idWZfY3R4X3BhY2tlZChz dHJ1Y3QgdmlydHF1ZXVlICpfdnEsCj4gIAkJCQkJICB2b2lkICoqY3R4KQo+ICB7Cj4gIAlzdHJ1 Y3QgdnJpbmdfdmlydHF1ZXVlICp2cSA9IHRvX3Z2cShfdnEpOwo+IC0JdTE2IGxhc3RfdXNlZCwg aWQ7Cj4gKwl1MTYgbGFzdF91c2VkLCBpZCwgbGFzdF91c2VkX2lkeDsKPiArCWJvb2wgdXNlZF93 cmFwX2NvdW50ZXI7Cj4gIAl2b2lkICpyZXQ7Cj4gIAo+ICAJU1RBUlRfVVNFKHZxKTsKPiBAQCAt MTQzNCw3ICsxNDUyLDkgQEAgc3RhdGljIHZvaWQgKnZpcnRxdWV1ZV9nZXRfYnVmX2N0eF9wYWNr ZWQoc3RydWN0IHZpcnRxdWV1ZSAqX3ZxLAo+ICAJLyogT25seSBnZXQgdXNlZCBlbGVtZW50cyBh ZnRlciB0aGV5IGhhdmUgYmVlbiBleHBvc2VkIGJ5IGhvc3QuICovCj4gIAl2aXJ0aW9fcm1iKHZx LT53ZWFrX2JhcnJpZXJzKTsKPiAgCj4gLQlsYXN0X3VzZWQgPSB2cS0+bGFzdF91c2VkX2lkeDsK PiArCWxhc3RfdXNlZF9pZHggPSBSRUFEX09OQ0UodnEtPmxhc3RfdXNlZF9pZHgpOwo+ICsJdXNl ZF93cmFwX2NvdW50ZXIgPSBwYWNrZWRfdXNlZF93cmFwX2NvdW50ZXIobGFzdF91c2VkX2lkeCk7 Cj4gKwlsYXN0X3VzZWQgPSBwYWNrZWRfbGFzdF91c2VkKGxhc3RfdXNlZF9pZHgpOwo+ICAJaWQg PSBsZTE2X3RvX2NwdSh2cS0+cGFja2VkLnZyaW5nLmRlc2NbbGFzdF91c2VkXS5pZCk7Cj4gIAkq bGVuID0gbGUzMl90b19jcHUodnEtPnBhY2tlZC52cmluZy5kZXNjW2xhc3RfdXNlZF0ubGVuKTsK PiAgCj4gQEAgLTE0NTEsMTIgKzE0NzEsMTUgQEAgc3RhdGljIHZvaWQgKnZpcnRxdWV1ZV9nZXRf YnVmX2N0eF9wYWNrZWQoc3RydWN0IHZpcnRxdWV1ZSAqX3ZxLAo+ICAJcmV0ID0gdnEtPnBhY2tl ZC5kZXNjX3N0YXRlW2lkXS5kYXRhOwo+ICAJZGV0YWNoX2J1Zl9wYWNrZWQodnEsIGlkLCBjdHgp Owo+ICAKPiAtCXZxLT5sYXN0X3VzZWRfaWR4ICs9IHZxLT5wYWNrZWQuZGVzY19zdGF0ZVtpZF0u bnVtOwo+IC0JaWYgKHVubGlrZWx5KHZxLT5sYXN0X3VzZWRfaWR4ID49IHZxLT5wYWNrZWQudnJp bmcubnVtKSkgewo+IC0JCXZxLT5sYXN0X3VzZWRfaWR4IC09IHZxLT5wYWNrZWQudnJpbmcubnVt Owo+IC0JCXZxLT5wYWNrZWQudXNlZF93cmFwX2NvdW50ZXIgXj0gMTsKPiArCWxhc3RfdXNlZCAr PSB2cS0+cGFja2VkLmRlc2Nfc3RhdGVbaWRdLm51bTsKPiArCWlmICh1bmxpa2VseShsYXN0X3Vz ZWQgPj0gdnEtPnBhY2tlZC52cmluZy5udW0pKSB7Cj4gKwkJbGFzdF91c2VkIC09IHZxLT5wYWNr ZWQudnJpbmcubnVtOwo+ICsJCXVzZWRfd3JhcF9jb3VudGVyIF49IDE7Cj4gIAl9Cj4gIAo+ICsJ bGFzdF91c2VkID0gKGxhc3RfdXNlZCB8ICh1c2VkX3dyYXBfY291bnRlciA8PCBWUklOR19QQUNL RURfRVZFTlRfRl9XUkFQX0NUUikpOwo+ICsJV1JJVEVfT05DRSh2cS0+bGFzdF91c2VkX2lkeCwg bGFzdF91c2VkKTsKPiArCj4gIAkvKgo+ICAJICogSWYgd2UgZXhwZWN0IGFuIGludGVycnVwdCBm b3IgdGhlIG5leHQgZW50cnksIHRlbGwgaG9zdAo+ICAJICogYnkgd3JpdGluZyBldmVudCBpbmRl eCBhbmQgZmx1c2ggb3V0IHRoZSB3cml0ZSBiZWZvcmUKPiBAQCAtMTQ2NSw5ICsxNDg4LDcgQEAg c3RhdGljIHZvaWQgKnZpcnRxdWV1ZV9nZXRfYnVmX2N0eF9wYWNrZWQoc3RydWN0IHZpcnRxdWV1 ZSAqX3ZxLAo+ICAJaWYgKHZxLT5wYWNrZWQuZXZlbnRfZmxhZ3Nfc2hhZG93ID09IFZSSU5HX1BB Q0tFRF9FVkVOVF9GTEFHX0RFU0MpCj4gIAkJdmlydGlvX3N0b3JlX21iKHZxLT53ZWFrX2JhcnJp ZXJzLAo+ICAJCQkJJnZxLT5wYWNrZWQudnJpbmcuZHJpdmVyLT5vZmZfd3JhcCwKPiAtCQkJCWNw dV90b19sZTE2KHZxLT5sYXN0X3VzZWRfaWR4IHwKPiAtCQkJCQkodnEtPnBhY2tlZC51c2VkX3dy YXBfY291bnRlciA8PAo+IC0JCQkJCSBWUklOR19QQUNLRURfRVZFTlRfRl9XUkFQX0NUUikpKTsK PiArCQkJCWNwdV90b19sZTE2KHZxLT5sYXN0X3VzZWRfaWR4KSk7Cj4gIAo+ICAJTEFTVF9BRERf VElNRV9JTlZBTElEKHZxKTsKPiAgCj4gQEAgLTE0OTksOSArMTUyMCw3IEBAIHN0YXRpYyB1bnNp Z25lZCBpbnQgdmlydHF1ZXVlX2VuYWJsZV9jYl9wcmVwYXJlX3BhY2tlZChzdHJ1Y3QgdmlydHF1 ZXVlICpfdnEpCj4gIAo+ICAJaWYgKHZxLT5ldmVudCkgewo+ICAJCXZxLT5wYWNrZWQudnJpbmcu ZHJpdmVyLT5vZmZfd3JhcCA9Cj4gLQkJCWNwdV90b19sZTE2KHZxLT5sYXN0X3VzZWRfaWR4IHwK PiAtCQkJCSh2cS0+cGFja2VkLnVzZWRfd3JhcF9jb3VudGVyIDw8Cj4gLQkJCQkgVlJJTkdfUEFD S0VEX0VWRU5UX0ZfV1JBUF9DVFIpKTsKPiArCQkJY3B1X3RvX2xlMTYodnEtPmxhc3RfdXNlZF9p ZHgpOwo+ICAJCS8qCj4gIAkJICogV2UgbmVlZCB0byB1cGRhdGUgZXZlbnQgb2Zmc2V0IGFuZCBl dmVudCB3cmFwCj4gIAkJICogY291bnRlciBmaXJzdCBiZWZvcmUgdXBkYXRpbmcgZXZlbnQgZmxh Z3MuCj4gQEAgLTE1MTgsOCArMTUzNyw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgdmlydHF1ZXVl X2VuYWJsZV9jYl9wcmVwYXJlX3BhY2tlZChzdHJ1Y3QgdmlydHF1ZXVlICpfdnEpCj4gIAl9Cj4g IAo+ICAJRU5EX1VTRSh2cSk7Cj4gLQlyZXR1cm4gdnEtPmxhc3RfdXNlZF9pZHggfCAoKHUxNil2 cS0+cGFja2VkLnVzZWRfd3JhcF9jb3VudGVyIDw8Cj4gLQkJCVZSSU5HX1BBQ0tFRF9FVkVOVF9G X1dSQVBfQ1RSKTsKPiArCXJldHVybiB2cS0+bGFzdF91c2VkX2lkeDsKPiAgfQo+ICAKPiAgc3Rh dGljIGJvb2wgdmlydHF1ZXVlX3BvbGxfcGFja2VkKHN0cnVjdCB2aXJ0cXVldWUgKl92cSwgdTE2 IG9mZl93cmFwKQo+IEBAIC0xNTM3LDcgKzE1NTUsNyBAQCBzdGF0aWMgYm9vbCB2aXJ0cXVldWVf cG9sbF9wYWNrZWQoc3RydWN0IHZpcnRxdWV1ZSAqX3ZxLCB1MTYgb2ZmX3dyYXApCj4gIHN0YXRp YyBib29sIHZpcnRxdWV1ZV9lbmFibGVfY2JfZGVsYXllZF9wYWNrZWQoc3RydWN0IHZpcnRxdWV1 ZSAqX3ZxKQo+ICB7Cj4gIAlzdHJ1Y3QgdnJpbmdfdmlydHF1ZXVlICp2cSA9IHRvX3Z2cShfdnEp Owo+IC0JdTE2IHVzZWRfaWR4LCB3cmFwX2NvdW50ZXI7Cj4gKwl1MTYgdXNlZF9pZHgsIHdyYXBf Y291bnRlciwgbGFzdF91c2VkX2lkeDsKPiAgCXUxNiBidWZzOwo+ICAKPiAgCVNUQVJUX1VTRSh2 cSk7Cj4gQEAgLTE1NTAsOSArMTU2OCwxMCBAQCBzdGF0aWMgYm9vbCB2aXJ0cXVldWVfZW5hYmxl X2NiX2RlbGF5ZWRfcGFja2VkKHN0cnVjdCB2aXJ0cXVldWUgKl92cSkKPiAgCWlmICh2cS0+ZXZl bnQpIHsKPiAgCQkvKiBUT0RPOiB0dW5lIHRoaXMgdGhyZXNob2xkICovCj4gIAkJYnVmcyA9ICh2 cS0+cGFja2VkLnZyaW5nLm51bSAtIHZxLT52cS5udW1fZnJlZSkgKiAzIC8gNDsKPiAtCQl3cmFw X2NvdW50ZXIgPSB2cS0+cGFja2VkLnVzZWRfd3JhcF9jb3VudGVyOwo+ICsJCWxhc3RfdXNlZF9p ZHggPSBSRUFEX09OQ0UodnEtPmxhc3RfdXNlZF9pZHgpOwo+ICsJCXdyYXBfY291bnRlciA9IHBh Y2tlZF91c2VkX3dyYXBfY291bnRlcihsYXN0X3VzZWRfaWR4KTsKPiAgCj4gLQkJdXNlZF9pZHgg PSB2cS0+bGFzdF91c2VkX2lkeCArIGJ1ZnM7Cj4gKwkJdXNlZF9pZHggPSBwYWNrZWRfbGFzdF91 c2VkKGxhc3RfdXNlZF9pZHgpICsgYnVmczsKPiAgCQlpZiAodXNlZF9pZHggPj0gdnEtPnBhY2tl ZC52cmluZy5udW0pIHsKPiAgCQkJdXNlZF9pZHggLT0gdnEtPnBhY2tlZC52cmluZy5udW07Cj4g IAkJCXdyYXBfY291bnRlciBePSAxOwo+IEBAIC0xNTgyLDkgKzE2MDEsMTAgQEAgc3RhdGljIGJv b2wgdmlydHF1ZXVlX2VuYWJsZV9jYl9kZWxheWVkX3BhY2tlZChzdHJ1Y3QgdmlydHF1ZXVlICpf dnEpCj4gIAkgKi8KPiAgCXZpcnRpb19tYih2cS0+d2Vha19iYXJyaWVycyk7Cj4gIAo+IC0JaWYg KGlzX3VzZWRfZGVzY19wYWNrZWQodnEsCj4gLQkJCQl2cS0+bGFzdF91c2VkX2lkeCwKPiAtCQkJ CXZxLT5wYWNrZWQudXNlZF93cmFwX2NvdW50ZXIpKSB7Cj4gKwlsYXN0X3VzZWRfaWR4ID0gUkVB RF9PTkNFKHZxLT5sYXN0X3VzZWRfaWR4KTsKPiArCXdyYXBfY291bnRlciA9IHBhY2tlZF91c2Vk X3dyYXBfY291bnRlcihsYXN0X3VzZWRfaWR4KTsKPiArCXVzZWRfaWR4ID0gcGFja2VkX2xhc3Rf dXNlZChsYXN0X3VzZWRfaWR4KTsKPiArCWlmIChpc191c2VkX2Rlc2NfcGFja2VkKHZxLCB1c2Vk X2lkeCwgd3JhcF9jb3VudGVyKSkgewo+ICAJCUVORF9VU0UodnEpOwo+ICAJCXJldHVybiBmYWxz ZTsKPiAgCX0KPiBAQCAtMTY4OSw3ICsxNzA5LDcgQEAgc3RhdGljIHN0cnVjdCB2aXJ0cXVldWUg KnZyaW5nX2NyZWF0ZV92aXJ0cXVldWVfcGFja2VkKAo+ICAJdnEtPm5vdGlmeSA9IG5vdGlmeTsK PiAgCXZxLT53ZWFrX2JhcnJpZXJzID0gd2Vha19iYXJyaWVyczsKPiAgCXZxLT5icm9rZW4gPSB0 cnVlOwo+IC0JdnEtPmxhc3RfdXNlZF9pZHggPSAwOwo+ICsJdnEtPmxhc3RfdXNlZF9pZHggPSAw IHwgKDEgPDwgVlJJTkdfUEFDS0VEX0VWRU5UX0ZfV1JBUF9DVFIpOwo+ICAJdnEtPmV2ZW50X3Ry aWdnZXJlZCA9IGZhbHNlOwo+ICAJdnEtPm51bV9hZGRlZCA9IDA7Cj4gIAl2cS0+cGFja2VkX3Jp bmcgPSB0cnVlOwo+IEBAIC0xNzIwLDcgKzE3NDAsNiBAQCBzdGF0aWMgc3RydWN0IHZpcnRxdWV1 ZSAqdnJpbmdfY3JlYXRlX3ZpcnRxdWV1ZV9wYWNrZWQoCj4gIAo+ICAJdnEtPnBhY2tlZC5uZXh0 X2F2YWlsX2lkeCA9IDA7Cj4gIAl2cS0+cGFja2VkLmF2YWlsX3dyYXBfY291bnRlciA9IDE7Cj4g LQl2cS0+cGFja2VkLnVzZWRfd3JhcF9jb3VudGVyID0gMTsKPiAgCXZxLT5wYWNrZWQuZXZlbnRf ZmxhZ3Nfc2hhZG93ID0gMDsKPiAgCXZxLT5wYWNrZWQuYXZhaWxfdXNlZF9mbGFncyA9IDEgPDwg VlJJTkdfUEFDS0VEX0RFU0NfRl9BVkFJTDsKPiAgCj4gLS0gCj4gMi4zMS4xCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpWaXJ0dWFsaXphdGlvbiBtYWls aW5nIGxpc3QKVmlydHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6 Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vdmlydHVhbGl6YXRp b24=