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 06C66C7EE22 for ; Thu, 18 May 2023 09:41:39 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 9A3768431D; Thu, 18 May 2023 09:41:39 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 9A3768431D Authentication-Results: smtp1.osuosl.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=La11sSMF 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 PztcQScALdzn; Thu, 18 May 2023 09:41:38 +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 A5FEF841BA; Thu, 18 May 2023 09:41:37 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org A5FEF841BA Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 86001C0035; Thu, 18 May 2023 09:41:37 +0000 (UTC) Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138]) by lists.linuxfoundation.org (Postfix) with ESMTP id BFBA7C002A for ; Thu, 18 May 2023 09:41:35 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 99F8B8424A for ; Thu, 18 May 2023 09:41:35 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 99F8B8424A 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 XW28DI2lb6jO for ; Thu, 18 May 2023 09:41:34 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 3B6CE841BA Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by smtp1.osuosl.org (Postfix) with ESMTPS id 3B6CE841BA for ; Thu, 18 May 2023 09:41:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1684402893; 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=TrqtPUfFMPwrnpzvplnSRvhfrde5yfFfZ/tNx1qFfxk=; b=La11sSMF+T7+AS/NHMzXabNKdayBzNNuERqxoe0i7Q8BCMYLtL14yCaX59ntqjvTSM08uW B+/nwaEFEzNs8DQN2kz8gn6PsiXDh5tZZiO5bq9cEVZWlYf0oHrHPlinRNndEqI93BL6PS X2RNmffB9xlZN6ksq4fC20Na1ebIwuw= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-207-VfyUUBO-NO6g9PmKBGDXhA-1; Thu, 18 May 2023 05:41:31 -0400 X-MC-Unique: VfyUUBO-NO6g9PmKBGDXhA-1 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-2f2981b8364so1148465f8f.1 for ; Thu, 18 May 2023 02:41:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684402890; x=1686994890; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=TrqtPUfFMPwrnpzvplnSRvhfrde5yfFfZ/tNx1qFfxk=; b=crNwtGrZr2TzWuB2T40l3O0z25/vm3loBZp44T5qOiIyzgUMCKN8A7xjzoi2n6ydBA IaQJpGzRC524s2WtPEPsmEcGB+yB2m02Ti/oD1KKmmKmC+HiXD9hbN0c1t9Mo5IzihFk YJE1GFHzTZcFZ3YwiPaaIpV0jZrPyHYLFr+Mo6HTyjllEug8WjVv/SiUGVl854tFXy15 hXMTnp1pwaTFnAKxb57drRp3wZHOG6E6GVdoWyN7xOL+Q/T9gn3tTEy1SLWtYLJxb6zn TlcKjUzSs9vt9ifigdD11nu80JJPUiqM6dsIchjVlzBfFJRxFuRp4721/Np0jyEgdgdK sfqQ== X-Gm-Message-State: AC+VfDxgUgnRZ3i28QSFPUvOegZ0X21ROKhNGKHHREMncGr43vVdMLZm MxehAyftjAmr9T6QhV+aV17H5S7uNCPAPo/WzhhBYf8L+2/iufZ+kf7HIxQatRXNm2fRbJr4mMQ syEMPtaZk1G8u9nwf8uWvZgpLG1klT+hZQGzPcWU5WqKyuOkF/w== X-Received: by 2002:a5d:6a43:0:b0:307:cb94:85de with SMTP id t3-20020a5d6a43000000b00307cb9485demr1136287wrw.11.1684402890459; Thu, 18 May 2023 02:41:30 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6SpnI96RmNWpKT7sv7l89Do2Fchl2TDzpXRiGRlMJPkFOvLk8Xa8WlDq3/Y80xnQxQFqwLPA== X-Received: by 2002:a5d:6a43:0:b0:307:cb94:85de with SMTP id t3-20020a5d6a43000000b00307cb9485demr1136267wrw.11.1684402890024; Thu, 18 May 2023 02:41:30 -0700 (PDT) Received: from redhat.com ([2.52.6.43]) by smtp.gmail.com with ESMTPSA id l9-20020a5d5269000000b003048477729asm1604663wrc.81.2023.05.18.02.41.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 May 2023 02:41:29 -0700 (PDT) Date: Thu, 18 May 2023 05:41:26 -0400 From: "Michael S. Tsirkin" To: Xuan Zhuo Subject: Re: [PATCH vhost v9 05/12] virtio_ring: split: virtqueue_add_split() support premapped Message-ID: <20230518053722-mutt-send-email-mst@kernel.org> References: <20230517022249.20790-1-xuanzhuo@linux.alibaba.com> <20230517022249.20790-6-xuanzhuo@linux.alibaba.com> <20230518030701-mutt-send-email-mst@kernel.org> <1684395232.2129312-1-xuanzhuo@linux.alibaba.com> <20230518041446-mutt-send-email-mst@kernel.org> <1684399835.450851-1-xuanzhuo@linux.alibaba.com> MIME-Version: 1.0 In-Reply-To: <1684399835.450851-1-xuanzhuo@linux.alibaba.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline Cc: Christoph Hellwig , 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" T24gVGh1LCBNYXkgMTgsIDIwMjMgYXQgMDQ6NTA6MzVQTSArMDgwMCwgWHVhbiBaaHVvIHdyb3Rl Ogo+IE9uIFRodSwgMTggTWF5IDIwMjMgMDQ6Mjk6MDEgLTA0MDAsICJNaWNoYWVsIFMuIFRzaXJr aW4iIDxtc3RAcmVkaGF0LmNvbT4gd3JvdGU6Cj4gPiBPbiBUaHUsIE1heSAxOCwgMjAyMyBhdCAw MzozMzo1MlBNICswODAwLCBYdWFuIFpodW8gd3JvdGU6Cj4gPiA+IE9uIFRodSwgMTggTWF5IDIw MjMgMDM6MTE6MjUgLTA0MDAsICJNaWNoYWVsIFMuIFRzaXJraW4iIDxtc3RAcmVkaGF0LmNvbT4g d3JvdGU6Cj4gPiA+ID4gT24gVGh1LCBNYXkgMTgsIDIwMjMgYXQgMDI6NTE6NTdQTSArMDgwMCwg SmFzb24gV2FuZyB3cm90ZToKPiA+ID4gPiA+IE9uIFdlZCwgTWF5IDE3LCAyMDIzIGF0IDEwOjIz 4oCvQU0gWHVhbiBaaHVvIDx4dWFuemh1b0BsaW51eC5hbGliYWJhLmNvbT4gd3JvdGU6Cj4gPiA+ ID4gPiA+Cj4gPiA+ID4gPiA+IHZpcnRxdWV1ZV9hZGRfc3BsaXQoKSBvbmx5IHN1cHBvcnRzIHZp cnR1YWwgYWRkcmVzc2VzLCBkbWEgaXMgY29tcGxldGVkCj4gPiA+ID4gPiA+IGluIHZpcnRxdWV1 ZV9hZGRfc3BsaXQoKS4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gSW4gc29tZSBzY2VuYXJpb3Mg KHN1Y2ggYXMgdGhlIEFGX1hEUCBzY2VuYXJpbyksIHRoZSBtZW1vcnkgaXMgYWxsb2NhdGVkCj4g PiA+ID4gPiA+IGFuZCBETUEgaXMgY29tcGxldGVkIGluIGFkdmFuY2UsIHNvIGl0IGlzIG5lY2Vz c2FyeSBmb3IgdXMgdG8gc3VwcG9ydAo+ID4gPiA+ID4gPiBwYXNzaW5nIHRoZSBETUEgYWRkcmVz cyB0byB2aXJ0cXVldWVfYWRkX3NwbGl0KCkuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFJlY29y ZCB0aGlzIGluZm9ybWF0aW9uIGluIGRlc2Nfc3RhdGUsIHdlIGNhbiBza2lwIHVubWFwIGJhc2Vk IG9uIHRoaXMKPiA+ID4gPiA+ID4gd2hlbiBleGVjdXRpbmcgZG1hIHVubWFwLgo+ID4gPiA+ID4K PiA+ID4gPiA+IEkgd291bGQgYWxzbyBzdWdnZXN0IGRvY3VtZW50aW5nIHdoeSBhIHBlciBkZXNj cmlwdG9yIG1ldGFkYXRhIGlzCj4gPiA+ID4gPiBuZWVkZWQgaW5zdGVhZCBvZiBhIHBlciB2aXJ0 cXVldWUgb25lLgo+ID4gPiA+Cj4gPiA+ID4gSSB0aGluayB3ZSBjb3VsZCBtYWtlIGl0IHBlciB2 aXJ0cXVldWUuIFRoYXQgd291bGQgbWVhbiBhbGwgY29kZSBpbgo+ID4gPiA+IHZpcnRpbyBuZXQg d291bGQgaGF2ZSB0byBjaGFuZ2UgdG8gZG8gZG1hIG1hcHBpbmcgaXRzZWxmIGluc3RlYWQgb2YK PiA+ID4gPiByZWx5aW5nIG9uIHZpcnRpbyBjb3JlIHRob3VnaC4gIFdoaWNoIGlzIG1heWJlIGEg Z29vZCBpZGVhPyBEZWZpbml0ZWx5IGEKPiA+ID4gPiB2ZXJ5IGludHJ1c2l2ZSBjaGFuZ2UgdGhv dWdoLCB3aWxsIG5lZWQgYSBsb3Qgb2YgcGVyZm9ybWFuY2UgdGVzdGluZwo+ID4gPiA+IHRvIG1h a2Ugc3VyZSB3ZSBkb24ndCBicmVhayBhbnl0aGluZy4KPiA+ID4KPiA+ID4gSW4gZmFjdCwgd2Ug aGF2ZSB0cmllZCB0aGlzIGlkZWEuCj4gPiA+Cj4gPiA+IFRoZSBwcm9ibGVtIGlzIHRoZSBkZXRh Y2ggYW5kIHVubWFwLgo+ID4gPgo+ID4gPiBXZSBuZWVkIHRvIGdldCBhbGwgRE1BIEFkZHJlc3Nl cyBmcm9tIHZpcnRpby1yaW5nIHRvIHVubWFwLiBDdXJyZW50bHksIGl0IGRvZXMKPiA+ID4gbm90 IHN1cHBvcnQgdG8gcmV0dXJuIHRoZSBETUEgQWRkcmVzcywgYW5kIGZvciBTS0IsIHdlIG5lZWQg dG8gZ2V0IG11bHRpcGxlIERNQQo+ID4gPiBBZGRyZXNzZXMgYXQgb25lIHRpbWUuCj4gPiA+Cj4g PiA+IFRoaXMgbmVlZCB0byBtb2RpZnkgdGhlIGxvZ2ljIG9mIFZpcnRpby1SaW5nIGRldGFjaC4g QmVzaWRlcyB0aGlzLCBJIGFsc28gYWdyZWUKPiA+ID4gd2l0aCB0aGlzIGlkZWEuCj4gPiA+Cj4g PiA+IFRoYW5rcy4KPiA+Cj4gPiBXZWxsIHlvdSBjYW4gaGF2ZSBhIHZlcnNpb24gb2YgZ2V0X2J1 ZiB0aGF0IHJldHVybnMgdGhlbSAuLi4gYnV0Cj4gPiBpdCBpcyBub3QgY2xlYXIgdG8gbWUgYWxs IHRoaXMgaXMgd29ydGggaXQgdW5sZXNzIHlvdSB3YW50Cj4gPiB0byBkbyB1bnNhZmUgdHJpY2tz IGxpa2UgbGVhdmluZyB0aGVtIG1hcHBlZC4gSSdkIGxlYXZlIHRoYXQKPiA+IGZvciBhbm90aGVy IGRheSBtYXliZS4KPiA+Cj4gPiBGb3IgbWFya2luZyBkZXNjIGFzIHByZW1hcHBlZCBJIHRoaW5r IHdlIGNhbiB1c2UgYSBiaXQgZnJvbQo+ID4gZGVzY19leHRyYS0+ZmxhZ3MsIGVpdGhlciByZXVz aW5nIG9uZSBvZiBORVhULEFWQUlMLFVTRUQsIG9yIHN0ZWFsaW5nCj4gPiBhbm90aGVyIG9uZS4K PiA+Cj4gCj4gRG8geW91IG1lYW4gdGhpcyBodHRwczovL2xvcmUua2VybmVsLm9yZy9hbGwvMjAy MjAyMTAwODUxMjQuMTU0NjYtNi14dWFuemh1b0BsaW51eC5hbGliYWJhLmNvbS8KPiAKPiBUaGFu a3MuCgpUaGF0IHJldXNlZCBWUklOR19QQUNLRURfREVTQ19GX1VTRUQsIEkgd291bGQgbWFrZSB0 aGF0IGV4cGxpY2l0IHJhdGhlcgp0aGFuIGhhcmQtY29kaW5nIDE1LgpCdXQgYmVzaWRlcyB0aGF0 IHllcyAuLi4gSSBzZWUgSmFzb24gb2JqZWN0ZWQKdG8gdGhhdC4gSmFzb24gaXMgaXQgd29ydGgg YnVybmluZyBleHRyYSBtZW1vcnkgbm93PyBXZSBjYW4gYWx3YXlzCmRvIGl0IGxhdGVyIHdoZW4g d2UgaGF2ZSB0byBleHRlbmQgZmxhZ3MgLi4uIG5vPwoKPiA+Cj4gPgo+ID4gPgo+ID4gPiA+Cj4g PiA+ID4KPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFNpZ25lZC1vZmYt Ynk6IFh1YW4gWmh1byA8eHVhbnpodW9AbGludXguYWxpYmFiYS5jb20+Cj4gPiA+ID4gPiA+IC0t LQo+ID4gPiA+ID4gPiAgZHJpdmVycy92aXJ0aW8vdmlydGlvX3JpbmcuYyB8IDM4ICsrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQo+ID4gPiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQs IDI5IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcmluZy5jIGIvZHJpdmVycy92aXJ0 aW8vdmlydGlvX3JpbmcuYwo+ID4gPiA+ID4gPiBpbmRleCBlMmZjNTBjMDViZWMuLmJkNWU4NGFm YWIzNyAxMDA2NDQKPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy92aXJ0aW8vdmlydGlvX3Jpbmcu Ywo+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcmluZy5jCj4gPiA+ID4g PiA+IEBAIC03MCw2ICs3MCw3IEBACj4gPiA+ID4gPiA+ICBzdHJ1Y3QgdnJpbmdfZGVzY19zdGF0 ZV9zcGxpdCB7Cj4gPiA+ID4gPiA+ICAgICAgICAgdm9pZCAqZGF0YTsgICAgICAgICAgICAgICAg ICAgICAvKiBEYXRhIGZvciBjYWxsYmFjay4gKi8KPiA+ID4gPiA+ID4gICAgICAgICBzdHJ1Y3Qg dnJpbmdfZGVzYyAqaW5kaXJfZGVzYzsgIC8qIEluZGlyZWN0IGRlc2NyaXB0b3IsIGlmIGFueS4g Ki8KPiA+ID4gPiA+ID4gKyAgICAgICBib29sIHByZW1hcHBlZDsgICAgICAgICAgICAgICAgIC8q IERNQSBtYXBwaW5nIGlzIGRvbmUgYnkgZHJpdmVyLiAqLwo+ID4gPiA+ID4KPiA+ID4gPiA+IEdv aW5nIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGRpc2N1c3Npb24gYXJvdW5kIHdoZXJlIHRoaXMgc2hv dWxkIGJlCj4gPiA+ID4gPiBwbGFjZWQuIEkgd29uZGVyIGlmIHdlIGNhbiBmaW5kIGEgY29tbW9u IHBsYWNlIHRvIHN0b3JlIHRoaXMgc2luY2UgaXQKPiA+ID4gPiA+IGhhcyBub3RoaW5nIHJlbGF0 ZWQgdG8gdmlydHF1ZXVlIGxheW91dC4gTWF5YmUgZGVzY19leHRyYT8gQW5kIGl0Cj4gPiA+ID4g PiB3b3VsZCBiZSBldmVuIGJldHRlciBpZiB3ZSBjYW4gYXZvaWQgc3RyZXNzaW5nIHRoZSBjYWNo ZSBsaWtlIGFib3ZlLgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gIH07Cj4gPiA+ID4gPiA+Cj4gPiA+ ID4gPiA+ICBzdHJ1Y3QgdnJpbmdfZGVzY19zdGF0ZV9wYWNrZWQgewo+ID4gPiA+ID4gPiBAQCAt MzU2LDggKzM1NywxNCBAQCBzdGF0aWMgc3RydWN0IGRldmljZSAqdnJpbmdfZG1hX2Rldihjb25z dCBzdHJ1Y3QgdnJpbmdfdmlydHF1ZXVlICp2cSkKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gIC8q IE1hcCBvbmUgc2cgZW50cnkuICovCj4gPiA+ID4gPiA+ICBzdGF0aWMgaW50IHZyaW5nX21hcF9v bmVfc2coY29uc3Qgc3RydWN0IHZyaW5nX3ZpcnRxdWV1ZSAqdnEsIHN0cnVjdCBzY2F0dGVybGlz dCAqc2csCj4gPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGRtYV9k YXRhX2RpcmVjdGlvbiBkaXJlY3Rpb24sIHN0YXRpYyBkbWFfYWRkcl90ICphZGRyKQo+ID4gPiA+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24g ZGlyZWN0aW9uLAo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBw cmVtYXBwZWQsIGRtYV9hZGRyX3QgKmFkZHIpCj4gPiA+ID4gPgo+ID4gPiA+ID4gaGF2aW5nIHRo aW5ncyBsaWtlOgo+ID4gPiA+ID4KPiA+ID4gPiA+IGludCBmdW5jKGJvb2wgZG8pCj4gPiA+ID4g PiB7Cj4gPiA+ID4gPiBpZiAoIWRvKQo+ID4gPiA+ID4gICAgIHJldHVybjsKPiA+ID4gPiA+IH0K PiA+ID4gPiA+Cj4gPiA+ID4gPiBpcyBhIGhpbnQgdGhhdCB0aGUgY2hlY2sgbmVlZHMgdG8gYmUg ZG9uZSBieSB0aGUgY2FsbGVyPwo+ID4gPiA+ID4KPiA+ID4gPiA+IEFuZCB0aGlzIGNoYW5nZSBz aG91bGQgd29yayBmb3IgYm90aCBwYWNrZWQgYW5kIHNwbGl0LiBJIHRoaW5rIHdlIG5lZWQKPiA+ ID4gPiA+IHRvIHNxdWFzaCB0aGUgcGFja2VkIGNoYW5nZXMgaGVyZS4KPiA+ID4gPiA+Cj4gPiA+ ID4gPiBMb29raW5nIGF0IGhvdyBwYWNrZWQgdmlydHF1ZXVlIHVzZXMgdGhpcyBpbiB0aGlzIHBh dGNoLCBJIGRvbid0IHRoaW5rCj4gPiA+ID4gPiB0aGlzIHBhdGNoIGNhbiBldmVuIGJlIGJ1aWx0 LiBJIHdpbGwgd2FpdCBmb3IgYSBuZXcgdmVyc2lvbiBhbmQKPiA+ID4gPiA+IGNvbnRpbnVlIHRo ZSByZXZpZXcgZnJvbSB0aGVyZS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBUaGFua3MKPiA+ID4gPiA+ Cj4gPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ID4gKyAgICAgICBp ZiAocHJlbWFwcGVkKSB7Cj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAqYWRkciA9IHNnX2Rt YV9hZGRyZXNzKHNnKTsKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAwOwo+ID4g PiA+ID4gPiArICAgICAgIH0KPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiAgICAgICAgIGlmICgh dnEtPnVzZV9kbWFfYXBpKSB7Cj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAvKgo+ID4gPiA+ ID4gPiAgICAgICAgICAgICAgICAgICogSWYgRE1BIGlzIG5vdCB1c2VkLCBLTVNBTiBkb2Vzbid0 IGtub3cgdGhhdCB0aGUgc2NhdHRlcmxpc3QKPiA+ID4gPiA+ID4gQEAgLTQ0NSw3ICs0NTIsNyBA QCBzdGF0aWMgdm9pZCB2cmluZ191bm1hcF9vbmVfc3BsaXRfaW5kaXJlY3QoY29uc3Qgc3RydWN0 IHZyaW5nX3ZpcnRxdWV1ZSAqdnEsCj4gPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+ICBzdGF0aWMgdW5zaWduZWQgaW50IHZyaW5nX3VubWFwX29uZV9zcGxpdChjb25zdCBzdHJ1 Y3QgdnJpbmdfdmlydHF1ZXVlICp2cSwKPiA+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGkpCj4gPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBpLCBib29sIHBy ZW1hcHBlZCkKPiA+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ID4gICAgICAgICBzdHJ1Y3QgdnJpbmdf ZGVzY19leHRyYSAqZXh0cmEgPSB2cS0+c3BsaXQuZGVzY19leHRyYTsKPiA+ID4gPiA+ID4gICAg ICAgICB1MTYgZmxhZ3M7Cj4gPiA+ID4gPiA+IEBAIC00NjIsNiArNDY5LDkgQEAgc3RhdGljIHVu c2lnbmVkIGludCB2cmluZ191bm1hcF9vbmVfc3BsaXQoY29uc3Qgc3RydWN0IHZyaW5nX3ZpcnRx dWV1ZSAqdnEsCj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChm bGFncyAmIFZSSU5HX0RFU0NfRl9XUklURSkgPwo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBETUFfRlJPTV9ERVZJQ0UgOiBETUFfVE9fREVWSUNFKTsKPiA+ID4g PiA+ID4gICAgICAgICB9IGVsc2Ugewo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgaWYgKHBy ZW1hcHBlZCkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4g PiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgIGRtYV91bm1hcF9wYWdlKHZy aW5nX2RtYV9kZXYodnEpLAo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZXh0cmFbaV0uYWRkciwKPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGV4dHJhW2ldLmxlbiwKPiA+ID4gPiA+ID4gQEAgLTUzMiw2ICs1NDIsNyBAQCBzdGF0aWMg aW5saW5lIGludCB2aXJ0cXVldWVfYWRkX3NwbGl0KHN0cnVjdCB2aXJ0cXVldWUgKl92cSwKPiA+ ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgaW5fc2dzLAo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZvaWQgKmRhdGEsCj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdm9pZCAqY3R4LAo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb2wgcHJlbWFwcGVkLAo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdmcF90IGdmcCkKPiA+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ ID4gICAgICAgICBzdHJ1Y3QgdnJpbmdfdmlydHF1ZXVlICp2cSA9IHRvX3Z2cShfdnEpOwo+ID4g PiA+ID4gPiBAQCAtNTk1LDcgKzYwNiw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHZpcnRxdWV1ZV9h ZGRfc3BsaXQoc3RydWN0IHZpcnRxdWV1ZSAqX3ZxLAo+ID4gPiA+ID4gPiAgICAgICAgICAgICAg ICAgZm9yIChzZyA9IHNnc1tuXTsgc2c7IHNnID0gc2dfbmV4dChzZykpIHsKPiA+ID4gPiA+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgZG1hX2FkZHJfdCBhZGRyOwo+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICBpZiAodnJpbmdfbWFwX29uZV9zZyh2cSwg c2csIERNQV9UT19ERVZJQ0UsICZhZGRyKSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgaWYgKHZyaW5nX21hcF9vbmVfc2codnEsIHNnLCBETUFfVE9fREVWSUNFLCBwcmVtYXBw ZWQsICZhZGRyKSkKPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn b3RvIHVubWFwX3JlbGVhc2U7Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgIHByZXYgPSBpOwo+ID4gPiA+ID4gPiBAQCAtNjExLDcgKzYyMiw3IEBAIHN0YXRp YyBpbmxpbmUgaW50IHZpcnRxdWV1ZV9hZGRfc3BsaXQoc3RydWN0IHZpcnRxdWV1ZSAqX3ZxLAo+ ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgZm9yIChzZyA9IHNnc1tuXTsgc2c7IHNnID0gc2df bmV4dChzZykpIHsKPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgZG1hX2FkZHJf dCBhZGRyOwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICBp ZiAodnJpbmdfbWFwX29uZV9zZyh2cSwgc2csIERNQV9GUk9NX0RFVklDRSwgJmFkZHIpKQo+ID4g PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAodnJpbmdfbWFwX29uZV9zZyh2cSwg c2csIERNQV9GUk9NX0RFVklDRSwgcHJlbWFwcGVkLCAmYWRkcikpCj4gPiA+ID4gPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byB1bm1hcF9yZWxlYXNlOwo+ID4gPiA+ID4g Pgo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2ID0gaTsKPiA+ID4gPiA+ ID4gQEAgLTY1Nyw2ICs2NjgsNyBAQCBzdGF0aWMgaW5saW5lIGludCB2aXJ0cXVldWVfYWRkX3Nw bGl0KHN0cnVjdCB2aXJ0cXVldWUgKl92cSwKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gICAgICAg ICAvKiBTdG9yZSB0b2tlbiBhbmQgaW5kaXJlY3QgYnVmZmVyIHN0YXRlLiAqLwo+ID4gPiA+ID4g PiAgICAgICAgIHZxLT5zcGxpdC5kZXNjX3N0YXRlW2hlYWRdLmRhdGEgPSBkYXRhOwo+ID4gPiA+ ID4gPiArICAgICAgIHZxLT5zcGxpdC5kZXNjX3N0YXRlW2hlYWRdLnByZW1hcHBlZCA9IHByZW1h cHBlZDsKPiA+ID4gPiA+ID4gICAgICAgICBpZiAoaW5kaXJlY3QpCj4gPiA+ID4gPiA+ICAgICAg ICAgICAgICAgICB2cS0+c3BsaXQuZGVzY19zdGF0ZVtoZWFkXS5pbmRpcl9kZXNjID0gZGVzYzsK PiA+ID4gPiA+ID4gICAgICAgICBlbHNlCj4gPiA+ID4gPiA+IEBAIC02ODYsNiArNjk4LDE0IEBA IHN0YXRpYyBpbmxpbmUgaW50IHZpcnRxdWV1ZV9hZGRfc3BsaXQoc3RydWN0IHZpcnRxdWV1ZSAq X3ZxLAo+ID4gPiA+ID4gPiAgICAgICAgIHJldHVybiAwOwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4g PiAgdW5tYXBfcmVsZWFzZToKPiA+ID4gPiA+ID4gKyAgICAgICBpZiAocHJlbWFwcGVkKSB7Cj4g PiA+ID4gPiA+ICsgICAgICAgICAgICAgICBpZiAoaW5kaXJlY3QpCj4gPiA+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIGtmcmVlKGRlc2MpOwo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICBFTkRfVVNFKHZxKTsKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAg IHJldHVybiAtRU5PTUVNOwo+ID4gPiA+ID4gPiArICAgICAgIH0KPiA+ID4gPiA+ID4gKwo+ID4g PiA+ID4gPiAgICAgICAgIGVycl9pZHggPSBpOwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiAgICAg ICAgIGlmIChpbmRpcmVjdCkKPiA+ID4gPiA+ID4gQEAgLTcwMCw3ICs3MjAsNyBAQCBzdGF0aWMg aW5saW5lIGludCB2aXJ0cXVldWVfYWRkX3NwbGl0KHN0cnVjdCB2aXJ0cXVldWUgKl92cSwKPiA+ ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgdnJpbmdfdW5tYXBfb25lX3NwbGl0X2lu ZGlyZWN0KHZxLCAmZGVzY1tpXSk7Cj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAg IGkgPSB2aXJ0aW8xNl90b19jcHUoX3ZxLT52ZGV2LCBkZXNjW2ldLm5leHQpOwo+ID4gPiA+ID4g PiAgICAgICAgICAgICAgICAgfSBlbHNlCj4gPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAg ICAgIGkgPSB2cmluZ191bm1hcF9vbmVfc3BsaXQodnEsIGkpOwo+ID4gPiA+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICBpID0gdnJpbmdfdW5tYXBfb25lX3NwbGl0KHZxLCBpLCBmYWxzZSk7 Cj4gPiA+ID4gPiA+ICAgICAgICAgfQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiAgICAgICAgIGlm IChpbmRpcmVjdCkKPiA+ID4gPiA+ID4gQEAgLTc1NywxMiArNzc3LDEyIEBAIHN0YXRpYyB2b2lk IGRldGFjaF9idWZfc3BsaXQoc3RydWN0IHZyaW5nX3ZpcnRxdWV1ZSAqdnEsIHVuc2lnbmVkIGlu dCBoZWFkLAo+ID4gPiA+ID4gPiAgICAgICAgIGkgPSBoZWFkOwo+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiAgICAgICAgIHdoaWxlICh2cS0+c3BsaXQudnJpbmcuZGVzY1tpXS5mbGFncyAmIG5leHRm bGFnKSB7Cj4gPiA+ID4gPiA+IC0gICAgICAgICAgICAgICB2cmluZ191bm1hcF9vbmVfc3BsaXQo dnEsIGkpOwo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgdnJpbmdfdW5tYXBfb25lX3NwbGl0 KHZxLCBpLCBzdGF0ZS0+cHJlbWFwcGVkKTsKPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgIGkg PSB2cS0+c3BsaXQuZGVzY19leHRyYVtpXS5uZXh0Owo+ID4gPiA+ID4gPiAgICAgICAgICAgICAg ICAgdnEtPnZxLm51bV9mcmVlKys7Cj4gPiA+ID4gPiA+ICAgICAgICAgfQo+ID4gPiA+ID4gPgo+ ID4gPiA+ID4gPiAtICAgICAgIHZyaW5nX3VubWFwX29uZV9zcGxpdCh2cSwgaSk7Cj4gPiA+ID4g PiA+ICsgICAgICAgdnJpbmdfdW5tYXBfb25lX3NwbGl0KHZxLCBpLCBzdGF0ZS0+cHJlbWFwcGVk KTsKPiA+ID4gPiA+ID4gICAgICAgICB2cS0+c3BsaXQuZGVzY19leHRyYVtpXS5uZXh0ID0gdnEt PmZyZWVfaGVhZDsKPiA+ID4gPiA+ID4gICAgICAgICB2cS0+ZnJlZV9oZWFkID0gaGVhZDsKPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gQEAgLTc4Myw3ICs4MDMsNyBAQCBzdGF0aWMgdm9pZCBkZXRh Y2hfYnVmX3NwbGl0KHN0cnVjdCB2cmluZ192aXJ0cXVldWUgKnZxLCB1bnNpZ25lZCBpbnQgaGVh ZCwKPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWUklOR19ERVND X0ZfSU5ESVJFQ1QpKTsKPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgIEJVR19PTihsZW4gPT0g MCB8fCBsZW4gJSBzaXplb2Yoc3RydWN0IHZyaW5nX2Rlc2MpKTsKPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4gLSAgICAgICAgICAgICAgIGlmICh2cS0+dXNlX2RtYV9hcGkpIHsKPiA+ID4gPiA+ID4g KyAgICAgICAgICAgICAgIGlmICh2cS0+dXNlX2RtYV9hcGkgJiYgIXN0YXRlLT5wcmVtYXBwZWQp IHsKPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IGxl biAvIHNpemVvZihzdHJ1Y3QgdnJpbmdfZGVzYyk7IGorKykKPiA+ID4gPiA+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2cmluZ191bm1hcF9vbmVfc3BsaXRfaW5kaXJlY3QodnEs ICZpbmRpcl9kZXNjW2pdKTsKPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgIH0KPiA+ID4gPiA+ ID4gQEAgLTIxNDMsNyArMjE2Myw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHZpcnRxdWV1ZV9hZGQo c3RydWN0IHZpcnRxdWV1ZSAqX3ZxLAo+ID4gPiA+ID4gPiAgICAgICAgIHJldHVybiB2cS0+cGFj a2VkX3JpbmcgPyB2aXJ0cXVldWVfYWRkX3BhY2tlZChfdnEsIHNncywgdG90YWxfc2csCj4gPiA+ ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRfc2dzLCBp bl9zZ3MsIGRhdGEsIGN0eCwgZ2ZwKSA6Cj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZpcnRxdWV1ZV9hZGRfc3BsaXQoX3ZxLCBzZ3MsIHRvdGFsX3NnLAo+ID4g PiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0X3Nncywg aW5fc2dzLCBkYXRhLCBjdHgsIGdmcCk7Cj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvdXRfc2dzLCBpbl9zZ3MsIGRhdGEsIGN0eCwgcHJlbWFwcGVk LCBnZnApOwo+ID4gPiA+ID4gPiAgfQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiAgLyoqCj4gPiA+ ID4gPiA+IC0tCj4gPiA+ID4gPiA+IDIuMzIuMC4zLmcwMTE5NWNmOWYKPiA+ID4gPiA+ID4KPiA+ ID4gPgo+ID4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f ClZpcnR1YWxpemF0aW9uIG1haWxpbmcgbGlzdApWaXJ0dWFsaXphdGlvbkBsaXN0cy5saW51eC1m b3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9s aXN0aW5mby92aXJ0dWFsaXphdGlvbg==