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 smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (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 F092DC77B7D for ; Thu, 18 May 2023 08:29:14 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 6816F60BE1; Thu, 18 May 2023 08:29:14 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 6816F60BE1 Authentication-Results: smtp3.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=SomJxR6L X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yclAxf53bpM7; Thu, 18 May 2023 08:29:13 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp3.osuosl.org (Postfix) with ESMTPS id AC34260E15; Thu, 18 May 2023 08:29:12 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org AC34260E15 Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 896EAC0036; Thu, 18 May 2023 08:29:12 +0000 (UTC) Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 4D0EDC002A for ; Thu, 18 May 2023 08:29:11 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 25500417AE for ; Thu, 18 May 2023 08:29:11 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 25500417AE Authentication-Results: smtp4.osuosl.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=SomJxR6L X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BYjZY5N7ySld for ; Thu, 18 May 2023 08:29:10 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org C4DF241772 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by smtp4.osuosl.org (Postfix) with ESMTPS id C4DF241772 for ; Thu, 18 May 2023 08:29:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1684398548; 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=z8ufnR5N7p4DXrd7uuaOtjPz/UXZ0xGC1+NRJnghDQk=; b=SomJxR6LhpUfRfJkxH3+jYqKSoNDvqwJsFVJoeyashAlHh57dg8Eb+cNiR6KMirKsJTzni Gu4/Rh4VuEaL1Oy6G/HjajKuPIaQeJyn2+0rgjkPiPhhkmvnoMiblKIxvzxfBdTLs08ngh QaH6+U/C5rbrUXE3B/bpOXowgQhEp5s= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-111-Zc6Ig0x5M7iEFrSXmvgLog-1; Thu, 18 May 2023 04:29:07 -0400 X-MC-Unique: Zc6Ig0x5M7iEFrSXmvgLog-1 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-3f422dc5fafso11080565e9.0 for ; Thu, 18 May 2023 01:29:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684398546; x=1686990546; 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=z8ufnR5N7p4DXrd7uuaOtjPz/UXZ0xGC1+NRJnghDQk=; b=NjiSL9uh4UtIZC0AxeghXVB6bjtYbmEhpR7+aQ0mQZwzZgOTSLwSqjKlFH3kFS2gEa n9eyujPzrR/G9qpKq3huJ8+eIrzLPDTYaEWcAKXnFu/I2W7KXuxAJ3JvVFEVeLHrJsv5 8evM1qnC/gSLT/k2VuWPD2tlSuPJ6Wn8OMLRrE9BJstQN492aBI8Eiv75NvdFygSKnlJ myn3b35+fTwdXcZnKf+BNVpNb/OXtNqA5MmACxYnY9z0VHqVz4e5YHg8HBsR7n3gWk2T +p0ZhPSOc5Nc7w7d3vYEpD6PIXRHz70437eE7rUcFN8JPwxG7MLSpN+p5uBcvLPlSeZ2 dPcA== X-Gm-Message-State: AC+VfDwOWDg4jCnQI/a4MRWCSc7UapC3LXqbm66P0f2gQS+7B+Z0eBry FjiVxU+lLl2Avz4ptrAIEk+dDuzBBgnh0ptLZglRNeFdWUKUP9kp3v/jS/5AUWv5xpzgmNvP6rm 5Glj2NVBbTjm98s9ivAYe9us06S0G09SaNMgxT/0ojX0yVimk0g== X-Received: by 2002:a1c:4b13:0:b0:3f1:806a:83d5 with SMTP id y19-20020a1c4b13000000b003f1806a83d5mr852211wma.20.1684398546011; Thu, 18 May 2023 01:29:06 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5nBu17Icf3eC3byt/8vp1rdvc38t9kxa2aVKzj5eeTRpUWUxzXMPanVufXCo5maIgCpJeBwA== X-Received: by 2002:a1c:4b13:0:b0:3f1:806a:83d5 with SMTP id y19-20020a1c4b13000000b003f1806a83d5mr852192wma.20.1684398545618; Thu, 18 May 2023 01:29:05 -0700 (PDT) Received: from redhat.com ([2.52.6.43]) by smtp.gmail.com with ESMTPSA id 13-20020a05600c024d00b003f4e4f51f64sm1277950wmj.7.2023.05.18.01.29.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 May 2023 01:29:04 -0700 (PDT) Date: Thu, 18 May 2023 04:29:01 -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: <20230518041446-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> MIME-Version: 1.0 In-Reply-To: <1684395232.2129312-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" T24gVGh1LCBNYXkgMTgsIDIwMjMgYXQgMDM6MzM6NTJQTSArMDgwMCwgWHVhbiBaaHVvIHdyb3Rl Ogo+IE9uIFRodSwgMTggTWF5IDIwMjMgMDM6MTE6MjUgLTA0MDAsICJNaWNoYWVsIFMuIFRzaXJr aW4iIDxtc3RAcmVkaGF0LmNvbT4gd3JvdGU6Cj4gPiBPbiBUaHUsIE1heSAxOCwgMjAyMyBhdCAw Mjo1MTo1N1BNICswODAwLCBKYXNvbiBXYW5nIHdyb3RlOgo+ID4gPiBPbiBXZWQsIE1heSAxNywg MjAyMyBhdCAxMDoyM+KAr0FNIFh1YW4gWmh1byA8eHVhbnpodW9AbGludXguYWxpYmFiYS5jb20+ IHdyb3RlOgo+ID4gPiA+Cj4gPiA+ID4gdmlydHF1ZXVlX2FkZF9zcGxpdCgpIG9ubHkgc3VwcG9y dHMgdmlydHVhbCBhZGRyZXNzZXMsIGRtYSBpcyBjb21wbGV0ZWQKPiA+ID4gPiBpbiB2aXJ0cXVl dWVfYWRkX3NwbGl0KCkuCj4gPiA+ID4KPiA+ID4gPiBJbiBzb21lIHNjZW5hcmlvcyAoc3VjaCBh cyB0aGUgQUZfWERQIHNjZW5hcmlvKSwgdGhlIG1lbW9yeSBpcyBhbGxvY2F0ZWQKPiA+ID4gPiBh bmQgRE1BIGlzIGNvbXBsZXRlZCBpbiBhZHZhbmNlLCBzbyBpdCBpcyBuZWNlc3NhcnkgZm9yIHVz IHRvIHN1cHBvcnQKPiA+ID4gPiBwYXNzaW5nIHRoZSBETUEgYWRkcmVzcyB0byB2aXJ0cXVldWVf YWRkX3NwbGl0KCkuCj4gPiA+ID4KPiA+ID4gPiBSZWNvcmQgdGhpcyBpbmZvcm1hdGlvbiBpbiBk ZXNjX3N0YXRlLCB3ZSBjYW4gc2tpcCB1bm1hcCBiYXNlZCBvbiB0aGlzCj4gPiA+ID4gd2hlbiBl eGVjdXRpbmcgZG1hIHVubWFwLgo+ID4gPgo+ID4gPiBJIHdvdWxkIGFsc28gc3VnZ2VzdCBkb2N1 bWVudGluZyB3aHkgYSBwZXIgZGVzY3JpcHRvciBtZXRhZGF0YSBpcwo+ID4gPiBuZWVkZWQgaW5z dGVhZCBvZiBhIHBlciB2aXJ0cXVldWUgb25lLgo+ID4KPiA+IEkgdGhpbmsgd2UgY291bGQgbWFr ZSBpdCBwZXIgdmlydHF1ZXVlLiBUaGF0IHdvdWxkIG1lYW4gYWxsIGNvZGUgaW4KPiA+IHZpcnRp byBuZXQgd291bGQgaGF2ZSB0byBjaGFuZ2UgdG8gZG8gZG1hIG1hcHBpbmcgaXRzZWxmIGluc3Rl YWQgb2YKPiA+IHJlbHlpbmcgb24gdmlydGlvIGNvcmUgdGhvdWdoLiAgV2hpY2ggaXMgbWF5YmUg YSBnb29kIGlkZWE/IERlZmluaXRlbHkgYQo+ID4gdmVyeSBpbnRydXNpdmUgY2hhbmdlIHRob3Vn aCwgd2lsbCBuZWVkIGEgbG90IG9mIHBlcmZvcm1hbmNlIHRlc3RpbmcKPiA+IHRvIG1ha2Ugc3Vy ZSB3ZSBkb24ndCBicmVhayBhbnl0aGluZy4KPiAKPiBJbiBmYWN0LCB3ZSBoYXZlIHRyaWVkIHRo aXMgaWRlYS4KPiAKPiBUaGUgcHJvYmxlbSBpcyB0aGUgZGV0YWNoIGFuZCB1bm1hcC4KPiAKPiBX ZSBuZWVkIHRvIGdldCBhbGwgRE1BIEFkZHJlc3NlcyBmcm9tIHZpcnRpby1yaW5nIHRvIHVubWFw LiBDdXJyZW50bHksIGl0IGRvZXMKPiBub3Qgc3VwcG9ydCB0byByZXR1cm4gdGhlIERNQSBBZGRy ZXNzLCBhbmQgZm9yIFNLQiwgd2UgbmVlZCB0byBnZXQgbXVsdGlwbGUgRE1BCj4gQWRkcmVzc2Vz IGF0IG9uZSB0aW1lLgo+IAo+IFRoaXMgbmVlZCB0byBtb2RpZnkgdGhlIGxvZ2ljIG9mIFZpcnRp by1SaW5nIGRldGFjaC4gQmVzaWRlcyB0aGlzLCBJIGFsc28gYWdyZWUKPiB3aXRoIHRoaXMgaWRl YS4KPiAKPiBUaGFua3MuCgpXZWxsIHlvdSBjYW4gaGF2ZSBhIHZlcnNpb24gb2YgZ2V0X2J1ZiB0 aGF0IHJldHVybnMgdGhlbSAuLi4gYnV0Cml0IGlzIG5vdCBjbGVhciB0byBtZSBhbGwgdGhpcyBp cyB3b3J0aCBpdCB1bmxlc3MgeW91IHdhbnQKdG8gZG8gdW5zYWZlIHRyaWNrcyBsaWtlIGxlYXZp bmcgdGhlbSBtYXBwZWQuIEknZCBsZWF2ZSB0aGF0CmZvciBhbm90aGVyIGRheSBtYXliZS4KCkZv ciBtYXJraW5nIGRlc2MgYXMgcHJlbWFwcGVkIEkgdGhpbmsgd2UgY2FuIHVzZSBhIGJpdCBmcm9t CmRlc2NfZXh0cmEtPmZsYWdzLCBlaXRoZXIgcmV1c2luZyBvbmUgb2YgTkVYVCxBVkFJTCxVU0VE LCBvciBzdGVhbGluZwphbm90aGVyIG9uZS4KCgoKPiAKPiA+Cj4gPgo+ID4KPiA+Cj4gPiA+ID4K PiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBYdWFuIFpodW8gPHh1YW56aHVvQGxpbnV4LmFsaWJhYmEu Y29tPgo+ID4gPiA+IC0tLQo+ID4gPiA+ICBkcml2ZXJzL3ZpcnRpby92aXJ0aW9fcmluZy5jIHwg MzggKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCj4gPiA+ID4gIDEgZmlsZSBj aGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQo+ID4gPiA+Cj4gPiA+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19yaW5nLmMgYi9kcml2ZXJzL3ZpcnRp by92aXJ0aW9fcmluZy5jCj4gPiA+ID4gaW5kZXggZTJmYzUwYzA1YmVjLi5iZDVlODRhZmFiMzcg MTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy92aXJ0aW8vdmlydGlvX3JpbmcuYwo+ID4gPiA+ ICsrKyBiL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19yaW5nLmMKPiA+ID4gPiBAQCAtNzAsNiArNzAs NyBAQAo+ID4gPiA+ICBzdHJ1Y3QgdnJpbmdfZGVzY19zdGF0ZV9zcGxpdCB7Cj4gPiA+ID4gICAg ICAgICB2b2lkICpkYXRhOyAgICAgICAgICAgICAgICAgICAgIC8qIERhdGEgZm9yIGNhbGxiYWNr LiAqLwo+ID4gPiA+ICAgICAgICAgc3RydWN0IHZyaW5nX2Rlc2MgKmluZGlyX2Rlc2M7ICAvKiBJ bmRpcmVjdCBkZXNjcmlwdG9yLCBpZiBhbnkuICovCj4gPiA+ID4gKyAgICAgICBib29sIHByZW1h cHBlZDsgICAgICAgICAgICAgICAgIC8qIERNQSBtYXBwaW5nIGlzIGRvbmUgYnkgZHJpdmVyLiAq Lwo+ID4gPgo+ID4gPiBHb2luZyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBkaXNjdXNzaW9uIGFyb3Vu ZCB3aGVyZSB0aGlzIHNob3VsZCBiZQo+ID4gPiBwbGFjZWQuIEkgd29uZGVyIGlmIHdlIGNhbiBm aW5kIGEgY29tbW9uIHBsYWNlIHRvIHN0b3JlIHRoaXMgc2luY2UgaXQKPiA+ID4gaGFzIG5vdGhp bmcgcmVsYXRlZCB0byB2aXJ0cXVldWUgbGF5b3V0LiBNYXliZSBkZXNjX2V4dHJhPyBBbmQgaXQK PiA+ID4gd291bGQgYmUgZXZlbiBiZXR0ZXIgaWYgd2UgY2FuIGF2b2lkIHN0cmVzc2luZyB0aGUg Y2FjaGUgbGlrZSBhYm92ZS4KPiA+ID4KPiA+ID4gPiAgfTsKPiA+ID4gPgo+ID4gPiA+ICBzdHJ1 Y3QgdnJpbmdfZGVzY19zdGF0ZV9wYWNrZWQgewo+ID4gPiA+IEBAIC0zNTYsOCArMzU3LDE0IEBA IHN0YXRpYyBzdHJ1Y3QgZGV2aWNlICp2cmluZ19kbWFfZGV2KGNvbnN0IHN0cnVjdCB2cmluZ192 aXJ0cXVldWUgKnZxKQo+ID4gPiA+Cj4gPiA+ID4gIC8qIE1hcCBvbmUgc2cgZW50cnkuICovCj4g PiA+ID4gIHN0YXRpYyBpbnQgdnJpbmdfbWFwX29uZV9zZyhjb25zdCBzdHJ1Y3QgdnJpbmdfdmly dHF1ZXVlICp2cSwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywKPiA+ID4gPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyZWN0aW9uLCBzdGF0aWMg ZG1hX2FkZHJfdCAqYWRkcikKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51 bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyZWN0aW9uLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICBib29sIHByZW1hcHBlZCwgZG1hX2FkZHJfdCAqYWRkcikKPiA+ID4KPiA+ID4g aGF2aW5nIHRoaW5ncyBsaWtlOgo+ID4gPgo+ID4gPiBpbnQgZnVuYyhib29sIGRvKQo+ID4gPiB7 Cj4gPiA+IGlmICghZG8pCj4gPiA+ICAgICByZXR1cm47Cj4gPiA+IH0KPiA+ID4KPiA+ID4gaXMg YSBoaW50IHRoYXQgdGhlIGNoZWNrIG5lZWRzIHRvIGJlIGRvbmUgYnkgdGhlIGNhbGxlcj8KPiA+ ID4KPiA+ID4gQW5kIHRoaXMgY2hhbmdlIHNob3VsZCB3b3JrIGZvciBib3RoIHBhY2tlZCBhbmQg c3BsaXQuIEkgdGhpbmsgd2UgbmVlZAo+ID4gPiB0byBzcXVhc2ggdGhlIHBhY2tlZCBjaGFuZ2Vz IGhlcmUuCj4gPiA+Cj4gPiA+IExvb2tpbmcgYXQgaG93IHBhY2tlZCB2aXJ0cXVldWUgdXNlcyB0 aGlzIGluIHRoaXMgcGF0Y2gsIEkgZG9uJ3QgdGhpbmsKPiA+ID4gdGhpcyBwYXRjaCBjYW4gZXZl biBiZSBidWlsdC4gSSB3aWxsIHdhaXQgZm9yIGEgbmV3IHZlcnNpb24gYW5kCj4gPiA+IGNvbnRp bnVlIHRoZSByZXZpZXcgZnJvbSB0aGVyZS4KPiA+ID4KPiA+ID4gVGhhbmtzCj4gPiA+Cj4gPiA+ Cj4gPiA+Cj4gPiA+ID4gIHsKPiA+ID4gPiArICAgICAgIGlmIChwcmVtYXBwZWQpIHsKPiA+ID4g PiArICAgICAgICAgICAgICAgKmFkZHIgPSBzZ19kbWFfYWRkcmVzcyhzZyk7Cj4gPiA+ID4gKyAg ICAgICAgICAgICAgIHJldHVybiAwOwo+ID4gPiA+ICsgICAgICAgfQo+ID4gPiA+ICsKPiA+ID4g PiAgICAgICAgIGlmICghdnEtPnVzZV9kbWFfYXBpKSB7Cj4gPiA+ID4gICAgICAgICAgICAgICAg IC8qCj4gPiA+ID4gICAgICAgICAgICAgICAgICAqIElmIERNQSBpcyBub3QgdXNlZCwgS01TQU4g ZG9lc24ndCBrbm93IHRoYXQgdGhlIHNjYXR0ZXJsaXN0Cj4gPiA+ID4gQEAgLTQ0NSw3ICs0NTIs NyBAQCBzdGF0aWMgdm9pZCB2cmluZ191bm1hcF9vbmVfc3BsaXRfaW5kaXJlY3QoY29uc3Qgc3Ry dWN0IHZyaW5nX3ZpcnRxdWV1ZSAqdnEsCj4gPiA+ID4gIH0KPiA+ID4gPgo+ID4gPiA+ICBzdGF0 aWMgdW5zaWduZWQgaW50IHZyaW5nX3VubWFwX29uZV9zcGxpdChjb25zdCBzdHJ1Y3QgdnJpbmdf dmlydHF1ZXVlICp2cSwKPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgaSkKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaSwgYm9vbCBwcmVtYXBwZWQpCj4gPiA+ID4g IHsKPiA+ID4gPiAgICAgICAgIHN0cnVjdCB2cmluZ19kZXNjX2V4dHJhICpleHRyYSA9IHZxLT5z cGxpdC5kZXNjX2V4dHJhOwo+ID4gPiA+ICAgICAgICAgdTE2IGZsYWdzOwo+ID4gPiA+IEBAIC00 NjIsNiArNDY5LDkgQEAgc3RhdGljIHVuc2lnbmVkIGludCB2cmluZ191bm1hcF9vbmVfc3BsaXQo Y29uc3Qgc3RydWN0IHZyaW5nX3ZpcnRxdWV1ZSAqdnEsCj4gPiA+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGZsYWdzICYgVlJJTkdfREVTQ19GX1dSSVRFKSA/Cj4gPiA+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRE1BX0ZST01fREVWSUNFIDogRE1BX1RP X0RFVklDRSk7Cj4gPiA+ID4gICAgICAgICB9IGVsc2Ugewo+ID4gPiA+ICsgICAgICAgICAgICAg ICBpZiAocHJlbWFwcGVkKQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0 Owo+ID4gPiA+ICsKPiA+ID4gPiAgICAgICAgICAgICAgICAgZG1hX3VubWFwX3BhZ2UodnJpbmdf ZG1hX2Rldih2cSksCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJh W2ldLmFkZHIsCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhW2ld LmxlbiwKPiA+ID4gPiBAQCAtNTMyLDYgKzU0Miw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHZpcnRx dWV1ZV9hZGRfc3BsaXQoc3RydWN0IHZpcnRxdWV1ZSAqX3ZxLAo+ID4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGluX3NncywKPiA+ID4gPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEsCj4gPiA+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpjdHgsCj4gPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHByZW1hcHBlZCwKPiA+ ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdmcF90IGdmcCkKPiA+ ID4gPiAgewo+ID4gPiA+ICAgICAgICAgc3RydWN0IHZyaW5nX3ZpcnRxdWV1ZSAqdnEgPSB0b192 dnEoX3ZxKTsKPiA+ID4gPiBAQCAtNTk1LDcgKzYwNiw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHZp cnRxdWV1ZV9hZGRfc3BsaXQoc3RydWN0IHZpcnRxdWV1ZSAqX3ZxLAo+ID4gPiA+ICAgICAgICAg ICAgICAgICBmb3IgKHNnID0gc2dzW25dOyBzZzsgc2cgPSBzZ19uZXh0KHNnKSkgewo+ID4gPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgIGRtYV9hZGRyX3QgYWRkcjsKPiA+ID4gPgo+ID4gPiA+ IC0gICAgICAgICAgICAgICAgICAgICAgIGlmICh2cmluZ19tYXBfb25lX3NnKHZxLCBzZywgRE1B X1RPX0RFVklDRSwgJmFkZHIpKQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmICh2 cmluZ19tYXBfb25lX3NnKHZxLCBzZywgRE1BX1RPX0RFVklDRSwgcHJlbWFwcGVkLCAmYWRkcikp Cj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHVubWFwX3JlbGVh c2U7Cj4gPiA+ID4KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2ID0gaTsKPiA+ ID4gPiBAQCAtNjExLDcgKzYyMiw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHZpcnRxdWV1ZV9hZGRf c3BsaXQoc3RydWN0IHZpcnRxdWV1ZSAqX3ZxLAo+ID4gPiA+ICAgICAgICAgICAgICAgICBmb3Ig KHNnID0gc2dzW25dOyBzZzsgc2cgPSBzZ19uZXh0KHNnKSkgewo+ID4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgIGRtYV9hZGRyX3QgYWRkcjsKPiA+ID4gPgo+ID4gPiA+IC0gICAgICAgICAg ICAgICAgICAgICAgIGlmICh2cmluZ19tYXBfb25lX3NnKHZxLCBzZywgRE1BX0ZST01fREVWSUNF LCAmYWRkcikpCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZyaW5nX21hcF9v bmVfc2codnEsIHNnLCBETUFfRlJPTV9ERVZJQ0UsIHByZW1hcHBlZCwgJmFkZHIpKQo+ID4gPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byB1bm1hcF9yZWxlYXNlOwo+ID4g PiA+Cj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcHJldiA9IGk7Cj4gPiA+ID4gQEAg LTY1Nyw2ICs2NjgsNyBAQCBzdGF0aWMgaW5saW5lIGludCB2aXJ0cXVldWVfYWRkX3NwbGl0KHN0 cnVjdCB2aXJ0cXVldWUgKl92cSwKPiA+ID4gPgo+ID4gPiA+ICAgICAgICAgLyogU3RvcmUgdG9r ZW4gYW5kIGluZGlyZWN0IGJ1ZmZlciBzdGF0ZS4gKi8KPiA+ID4gPiAgICAgICAgIHZxLT5zcGxp dC5kZXNjX3N0YXRlW2hlYWRdLmRhdGEgPSBkYXRhOwo+ID4gPiA+ICsgICAgICAgdnEtPnNwbGl0 LmRlc2Nfc3RhdGVbaGVhZF0ucHJlbWFwcGVkID0gcHJlbWFwcGVkOwo+ID4gPiA+ICAgICAgICAg aWYgKGluZGlyZWN0KQo+ID4gPiA+ICAgICAgICAgICAgICAgICB2cS0+c3BsaXQuZGVzY19zdGF0 ZVtoZWFkXS5pbmRpcl9kZXNjID0gZGVzYzsKPiA+ID4gPiAgICAgICAgIGVsc2UKPiA+ID4gPiBA QCAtNjg2LDYgKzY5OCwxNCBAQCBzdGF0aWMgaW5saW5lIGludCB2aXJ0cXVldWVfYWRkX3NwbGl0 KHN0cnVjdCB2aXJ0cXVldWUgKl92cSwKPiA+ID4gPiAgICAgICAgIHJldHVybiAwOwo+ID4gPiA+ Cj4gPiA+ID4gIHVubWFwX3JlbGVhc2U6Cj4gPiA+ID4gKyAgICAgICBpZiAocHJlbWFwcGVkKSB7 Cj4gPiA+ID4gKyAgICAgICAgICAgICAgIGlmIChpbmRpcmVjdCkKPiA+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICBrZnJlZShkZXNjKTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgICAgICAgICAg ICAgIEVORF9VU0UodnEpOwo+ID4gPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsK PiA+ID4gPiArICAgICAgIH0KPiA+ID4gPiArCj4gPiA+ID4gICAgICAgICBlcnJfaWR4ID0gaTsK PiA+ID4gPgo+ID4gPiA+ICAgICAgICAgaWYgKGluZGlyZWN0KQo+ID4gPiA+IEBAIC03MDAsNyAr NzIwLDcgQEAgc3RhdGljIGlubGluZSBpbnQgdmlydHF1ZXVlX2FkZF9zcGxpdChzdHJ1Y3Qgdmly dHF1ZXVlICpfdnEsCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgdnJpbmdfdW5tYXBf b25lX3NwbGl0X2luZGlyZWN0KHZxLCAmZGVzY1tpXSk7Cj4gPiA+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgaSA9IHZpcnRpbzE2X3RvX2NwdShfdnEtPnZkZXYsIGRlc2NbaV0ubmV4dCk7Cj4g PiA+ID4gICAgICAgICAgICAgICAgIH0gZWxzZQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAg ICAgIGkgPSB2cmluZ191bm1hcF9vbmVfc3BsaXQodnEsIGkpOwo+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIGkgPSB2cmluZ191bm1hcF9vbmVfc3BsaXQodnEsIGksIGZhbHNlKTsKPiA+ ID4gPiAgICAgICAgIH0KPiA+ID4gPgo+ID4gPiA+ICAgICAgICAgaWYgKGluZGlyZWN0KQo+ID4g PiA+IEBAIC03NTcsMTIgKzc3NywxMiBAQCBzdGF0aWMgdm9pZCBkZXRhY2hfYnVmX3NwbGl0KHN0 cnVjdCB2cmluZ192aXJ0cXVldWUgKnZxLCB1bnNpZ25lZCBpbnQgaGVhZCwKPiA+ID4gPiAgICAg ICAgIGkgPSBoZWFkOwo+ID4gPiA+Cj4gPiA+ID4gICAgICAgICB3aGlsZSAodnEtPnNwbGl0LnZy aW5nLmRlc2NbaV0uZmxhZ3MgJiBuZXh0ZmxhZykgewo+ID4gPiA+IC0gICAgICAgICAgICAgICB2 cmluZ191bm1hcF9vbmVfc3BsaXQodnEsIGkpOwo+ID4gPiA+ICsgICAgICAgICAgICAgICB2cmlu Z191bm1hcF9vbmVfc3BsaXQodnEsIGksIHN0YXRlLT5wcmVtYXBwZWQpOwo+ID4gPiA+ICAgICAg ICAgICAgICAgICBpID0gdnEtPnNwbGl0LmRlc2NfZXh0cmFbaV0ubmV4dDsKPiA+ID4gPiAgICAg ICAgICAgICAgICAgdnEtPnZxLm51bV9mcmVlKys7Cj4gPiA+ID4gICAgICAgICB9Cj4gPiA+ID4K PiA+ID4gPiAtICAgICAgIHZyaW5nX3VubWFwX29uZV9zcGxpdCh2cSwgaSk7Cj4gPiA+ID4gKyAg ICAgICB2cmluZ191bm1hcF9vbmVfc3BsaXQodnEsIGksIHN0YXRlLT5wcmVtYXBwZWQpOwo+ID4g PiA+ICAgICAgICAgdnEtPnNwbGl0LmRlc2NfZXh0cmFbaV0ubmV4dCA9IHZxLT5mcmVlX2hlYWQ7 Cj4gPiA+ID4gICAgICAgICB2cS0+ZnJlZV9oZWFkID0gaGVhZDsKPiA+ID4gPgo+ID4gPiA+IEBA IC03ODMsNyArODAzLDcgQEAgc3RhdGljIHZvaWQgZGV0YWNoX2J1Zl9zcGxpdChzdHJ1Y3QgdnJp bmdfdmlydHF1ZXVlICp2cSwgdW5zaWduZWQgaW50IGhlYWQsCj4gPiA+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBWUklOR19ERVNDX0ZfSU5ESVJFQ1QpKTsKPiA+ID4gPiAgICAg ICAgICAgICAgICAgQlVHX09OKGxlbiA9PSAwIHx8IGxlbiAlIHNpemVvZihzdHJ1Y3QgdnJpbmdf ZGVzYykpOwo+ID4gPiA+Cj4gPiA+ID4gLSAgICAgICAgICAgICAgIGlmICh2cS0+dXNlX2RtYV9h cGkpIHsKPiA+ID4gPiArICAgICAgICAgICAgICAgaWYgKHZxLT51c2VfZG1hX2FwaSAmJiAhc3Rh dGUtPnByZW1hcHBlZCkgewo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaiA9 IDA7IGogPCBsZW4gLyBzaXplb2Yoc3RydWN0IHZyaW5nX2Rlc2MpOyBqKyspCj4gPiA+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2cmluZ191bm1hcF9vbmVfc3BsaXRfaW5kaXJl Y3QodnEsICZpbmRpcl9kZXNjW2pdKTsKPiA+ID4gPiAgICAgICAgICAgICAgICAgfQo+ID4gPiA+ IEBAIC0yMTQzLDcgKzIxNjMsNyBAQCBzdGF0aWMgaW5saW5lIGludCB2aXJ0cXVldWVfYWRkKHN0 cnVjdCB2aXJ0cXVldWUgKl92cSwKPiA+ID4gPiAgICAgICAgIHJldHVybiB2cS0+cGFja2VkX3Jp bmcgPyB2aXJ0cXVldWVfYWRkX3BhY2tlZChfdnEsIHNncywgdG90YWxfc2csCj4gPiA+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dF9zZ3MsIGluX3NncywgZGF0 YSwgY3R4LCBnZnApIDoKPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 aXJ0cXVldWVfYWRkX3NwbGl0KF92cSwgc2dzLCB0b3RhbF9zZywKPiA+ID4gPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0X3NncywgaW5fc2dzLCBkYXRhLCBjdHgs IGdmcCk7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91 dF9zZ3MsIGluX3NncywgZGF0YSwgY3R4LCBwcmVtYXBwZWQsIGdmcCk7Cj4gPiA+ID4gIH0KPiA+ ID4gPgo+ID4gPiA+ICAvKioKPiA+ID4gPiAtLQo+ID4gPiA+IDIuMzIuMC4zLmcwMTE5NWNmOWYK PiA+ID4gPgo+ID4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClZpcnR1YWxpemF0aW9uIG1haWxpbmcgbGlzdApWaXJ0dWFsaXphdGlvbkBsaXN0cy5saW51 eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1h bi9saXN0aW5mby92aXJ0dWFsaXphdGlvbg==