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 C43B4C7EE22 for ; Thu, 18 May 2023 09:45:02 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 51FB083BB3; Thu, 18 May 2023 09:45:02 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 51FB083BB3 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=QuOziYzP 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 Ji3nrzyMtfz4; Thu, 18 May 2023 09:45:01 +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 7E5FA8231C; Thu, 18 May 2023 09:45:00 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 7E5FA8231C Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 4BD3BC0035; Thu, 18 May 2023 09:45:00 +0000 (UTC) Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138]) by lists.linuxfoundation.org (Postfix) with ESMTP id B30B6C002A for ; Thu, 18 May 2023 09:44:58 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 8CF718231C for ; Thu, 18 May 2023 09:44:58 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 8CF718231C 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 xuqtuEavyIZ9 for ; Thu, 18 May 2023 09:44:57 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 69B628224A 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 69B628224A for ; Thu, 18 May 2023 09:44:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1684403096; 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=KeKk6YuStm2Sd7hRgnD38kBAflN3yJj49nq85JFcnnc=; b=QuOziYzPaoBaHN5LJSqNJlpK+gydVqqzN8PCiYrQJz0RSSLuvtybzWzHQr1vaOZmEKvOAg v9Tn4ooF/Ir05nEhnMZGSfMDj7Mr2Qu1LGwz9bgEprxg/sjR4+8t46t/v12hZqosPDWk48 7KLeB0HkVNsB7rrpm9HB+yKCDtznC8w= 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-279-KVsraUI_Mt-RSyDMQJyvlQ-1; Thu, 18 May 2023 05:44:55 -0400 X-MC-Unique: KVsraUI_Mt-RSyDMQJyvlQ-1 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-3062dedf7d9so1262174f8f.2 for ; Thu, 18 May 2023 02:44:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684403094; x=1686995094; 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=KeKk6YuStm2Sd7hRgnD38kBAflN3yJj49nq85JFcnnc=; b=OdowUErIccj9Fw6UBEiz2l4oSSEMpGNsCCtl/a0Mgz+dmC5zta3X54sdyCjW9ku03S oxSHM/TIiIkMLCyv/A1KP2xei75EPoTM5OudX7v33GIJpkmqfoO7RNWQXNvhGgTX6CN8 EnpB4wVYS7UKy8NWKREu2jSy7gyAw0AwRPtmS+LRU82lNJ/mj5CB9SU/LFZdPhpp9vqK ZXEruL6m2uHjxsOfWBRgpDjBKvLfnV7g8ljYIuceawoCUqYU4HMWvCGNIYffYetLIbEn DYiPCe/zfcM2uu1PdDityOxlLxaA0192fCA6tOlj8URiUi47lMJNE9GncM1eI4m1W+oP 0IjA== X-Gm-Message-State: AC+VfDyHaEdj2JbnP+tljwXjqGo2WIrxGj/Iq3Li/gS7MhvVXJM/i08o 5n+9XjaMlpB4Fs4Qm3kjX+HK6Gz+Iy9ivmt4qnWYVkzAVbJ8bJ66ATVY22u1Pzlpw1D28aGM6Z2 dAUNiWmvJgTcD9Rk1sohJ2WwEinLUmpf06fWSjekk2g== X-Received: by 2002:adf:efd1:0:b0:306:492c:cdd8 with SMTP id i17-20020adfefd1000000b00306492ccdd8mr1096584wrp.15.1684403093945; Thu, 18 May 2023 02:44:53 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ65N0pHGYKv725cpwyTl/1m0pP1Nzr3q+NL9+U5uV/x83CTTX9Nz/P1tBJOVYO0xoLFlg3yxQ== X-Received: by 2002:adf:efd1:0:b0:306:492c:cdd8 with SMTP id i17-20020adfefd1000000b00306492ccdd8mr1096566wrp.15.1684403093481; Thu, 18 May 2023 02:44:53 -0700 (PDT) Received: from redhat.com ([2.52.6.43]) by smtp.gmail.com with ESMTPSA id g16-20020adffc90000000b002f6dafef040sm1616208wrr.12.2023.05.18.02.44.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 May 2023 02:44:52 -0700 (PDT) Date: Thu, 18 May 2023 05:44:48 -0400 From: "Michael S. Tsirkin" To: Jason Wang Subject: Re: [PATCH vhost v9 05/12] virtio_ring: split: virtqueue_add_split() support premapped Message-ID: <20230518054323-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> MIME-Version: 1.0 In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline Cc: Christoph Hellwig , Xuan Zhuo , 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" T24gVGh1LCBNYXkgMTgsIDIwMjMgYXQgMDQ6NTc6MzdQTSArMDgwMCwgSmFzb24gV2FuZyB3cm90 ZToKPiBPbiBUaHUsIE1heSAxOCwgMjAyMyBhdCA0OjI54oCvUE0gTWljaGFlbCBTLiBUc2lya2lu IDxtc3RAcmVkaGF0LmNvbT4gd3JvdGU6Cj4gPgo+ID4gT24gVGh1LCBNYXkgMTgsIDIwMjMgYXQg MDM6MzM6NTJQTSArMDgwMCwgWHVhbiBaaHVvIHdyb3RlOgo+ID4gPiBPbiBUaHUsIDE4IE1heSAy MDIzIDAzOjExOjI1IC0wNDAwLCAiTWljaGFlbCBTLiBUc2lya2luIiA8bXN0QHJlZGhhdC5jb20+ IHdyb3RlOgo+ID4gPiA+IE9uIFRodSwgTWF5IDE4LCAyMDIzIGF0IDAyOjUxOjU3UE0gKzA4MDAs IEphc29uIFdhbmcgd3JvdGU6Cj4gPiA+ID4gPiBPbiBXZWQsIE1heSAxNywgMjAyMyBhdCAxMDoy M+KAr0FNIFh1YW4gWmh1byA8eHVhbnpodW9AbGludXguYWxpYmFiYS5jb20+IHdyb3RlOgo+ID4g PiA+ID4gPgo+ID4gPiA+ID4gPiB2aXJ0cXVldWVfYWRkX3NwbGl0KCkgb25seSBzdXBwb3J0cyB2 aXJ0dWFsIGFkZHJlc3NlcywgZG1hIGlzIGNvbXBsZXRlZAo+ID4gPiA+ID4gPiBpbiB2aXJ0cXVl dWVfYWRkX3NwbGl0KCkuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IEluIHNvbWUgc2NlbmFyaW9z IChzdWNoIGFzIHRoZSBBRl9YRFAgc2NlbmFyaW8pLCB0aGUgbWVtb3J5IGlzIGFsbG9jYXRlZAo+ ID4gPiA+ID4gPiBhbmQgRE1BIGlzIGNvbXBsZXRlZCBpbiBhZHZhbmNlLCBzbyBpdCBpcyBuZWNl c3NhcnkgZm9yIHVzIHRvIHN1cHBvcnQKPiA+ID4gPiA+ID4gcGFzc2luZyB0aGUgRE1BIGFkZHJl c3MgdG8gdmlydHF1ZXVlX2FkZF9zcGxpdCgpLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBSZWNv cmQgdGhpcyBpbmZvcm1hdGlvbiBpbiBkZXNjX3N0YXRlLCB3ZSBjYW4gc2tpcCB1bm1hcCBiYXNl ZCBvbiB0aGlzCj4gPiA+ID4gPiA+IHdoZW4gZXhlY3V0aW5nIGRtYSB1bm1hcC4KPiA+ID4gPiA+ Cj4gPiA+ID4gPiBJIHdvdWxkIGFsc28gc3VnZ2VzdCBkb2N1bWVudGluZyB3aHkgYSBwZXIgZGVz Y3JpcHRvciBtZXRhZGF0YSBpcwo+ID4gPiA+ID4gbmVlZGVkIGluc3RlYWQgb2YgYSBwZXIgdmly dHF1ZXVlIG9uZS4KPiA+ID4gPgo+ID4gPiA+IEkgdGhpbmsgd2UgY291bGQgbWFrZSBpdCBwZXIg dmlydHF1ZXVlLiBUaGF0IHdvdWxkIG1lYW4gYWxsIGNvZGUgaW4KPiA+ID4gPiB2aXJ0aW8gbmV0 IHdvdWxkIGhhdmUgdG8gY2hhbmdlIHRvIGRvIGRtYSBtYXBwaW5nIGl0c2VsZiBpbnN0ZWFkIG9m Cj4gPiA+ID4gcmVseWluZyBvbiB2aXJ0aW8gY29yZSB0aG91Z2guICBXaGljaCBpcyBtYXliZSBh IGdvb2QgaWRlYT8gRGVmaW5pdGVseSBhCj4gPiA+ID4gdmVyeSBpbnRydXNpdmUgY2hhbmdlIHRo b3VnaCwgd2lsbCBuZWVkIGEgbG90IG9mIHBlcmZvcm1hbmNlIHRlc3RpbmcKPiA+ID4gPiB0byBt YWtlIHN1cmUgd2UgZG9uJ3QgYnJlYWsgYW55dGhpbmcuCj4gPiA+Cj4gPiA+IEluIGZhY3QsIHdl IGhhdmUgdHJpZWQgdGhpcyBpZGVhLgo+ID4gPgo+ID4gPiBUaGUgcHJvYmxlbSBpcyB0aGUgZGV0 YWNoIGFuZCB1bm1hcC4KPiA+ID4KPiA+ID4gV2UgbmVlZCB0byBnZXQgYWxsIERNQSBBZGRyZXNz ZXMgZnJvbSB2aXJ0aW8tcmluZyB0byB1bm1hcC4gQ3VycmVudGx5LCBpdCBkb2VzCj4gPiA+IG5v dCBzdXBwb3J0IHRvIHJldHVybiB0aGUgRE1BIEFkZHJlc3MsIGFuZCBmb3IgU0tCLCB3ZSBuZWVk IHRvIGdldCBtdWx0aXBsZSBETUEKPiA+ID4gQWRkcmVzc2VzIGF0IG9uZSB0aW1lLgo+ID4gPgo+ ID4gPiBUaGlzIG5lZWQgdG8gbW9kaWZ5IHRoZSBsb2dpYyBvZiBWaXJ0aW8tUmluZyBkZXRhY2gu IEJlc2lkZXMgdGhpcywgSSBhbHNvIGFncmVlCj4gPiA+IHdpdGggdGhpcyBpZGVhLgo+ID4gPgo+ ID4gPiBUaGFua3MuCj4gPgo+ID4gV2VsbCB5b3UgY2FuIGhhdmUgYSB2ZXJzaW9uIG9mIGdldF9i dWYgdGhhdCByZXR1cm5zIHRoZW0gLi4uIGJ1dAo+ID4gaXQgaXMgbm90IGNsZWFyIHRvIG1lIGFs bCB0aGlzIGlzIHdvcnRoIGl0IHVubGVzcyB5b3Ugd2FudAo+ID4gdG8gZG8gdW5zYWZlIHRyaWNr cyBsaWtlIGxlYXZpbmcgdGhlbSBtYXBwZWQuCj4gCj4gU29tZSBoaWdoIHNwZWVkIE5JQyBkcml2 ZXJzIHVzZSB0aGlzIHRyaWNrIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCgpJIGtub3cuIEkgdGhp bmsgaXQncyBiZXR0ZXIgbGVmdCBhcyBhIHBhdGNoIG9uIHRvcCB0aG91Z2gsIHJpZ2h0PwoKPiA+ IEknZCBsZWF2ZSB0aGF0Cj4gPiBmb3IgYW5vdGhlciBkYXkgbWF5YmUuCj4gPgo+ID4gRm9yIG1h cmtpbmcgZGVzYyBhcyBwcmVtYXBwZWQgSSB0aGluayB3ZSBjYW4gdXNlIGEgYml0IGZyb20KPiA+ IGRlc2NfZXh0cmEtPmZsYWdzLCBlaXRoZXIgcmV1c2luZyBvbmUgb2YgTkVYVCxBVkFJTCxVU0VE LCBvciBzdGVhbGluZwo+ID4gYW5vdGhlciBvbmUuCj4gCj4gUHJvYmFibHkuCj4gCj4gVGhhbmtz Cj4gCj4gPgo+ID4KPiA+Cj4gPiA+Cj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4KPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogWHVhbiBaaHVvIDx4dWFuemh1b0Bs aW51eC5hbGliYWJhLmNvbT4KPiA+ID4gPiA+ID4gLS0tCj4gPiA+ID4gPiA+ICBkcml2ZXJzL3Zp cnRpby92aXJ0aW9fcmluZy5jIHwgMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tCj4gPiA+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgOSBkZWxl dGlvbnMoLSkKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmly dGlvL3ZpcnRpb19yaW5nLmMgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcmluZy5jCj4gPiA+ID4g PiA+IGluZGV4IGUyZmM1MGMwNWJlYy4uYmQ1ZTg0YWZhYjM3IDEwMDY0NAo+ID4gPiA+ID4gPiAt LS0gYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcmluZy5jCj4gPiA+ID4gPiA+ICsrKyBiL2RyaXZl cnMvdmlydGlvL3ZpcnRpb19yaW5nLmMKPiA+ID4gPiA+ID4gQEAgLTcwLDYgKzcwLDcgQEAKPiA+ ID4gPiA+ID4gIHN0cnVjdCB2cmluZ19kZXNjX3N0YXRlX3NwbGl0IHsKPiA+ID4gPiA+ID4gICAg ICAgICB2b2lkICpkYXRhOyAgICAgICAgICAgICAgICAgICAgIC8qIERhdGEgZm9yIGNhbGxiYWNr LiAqLwo+ID4gPiA+ID4gPiAgICAgICAgIHN0cnVjdCB2cmluZ19kZXNjICppbmRpcl9kZXNjOyAg LyogSW5kaXJlY3QgZGVzY3JpcHRvciwgaWYgYW55LiAqLwo+ID4gPiA+ID4gPiArICAgICAgIGJv b2wgcHJlbWFwcGVkOyAgICAgICAgICAgICAgICAgLyogRE1BIG1hcHBpbmcgaXMgZG9uZSBieSBk cml2ZXIuICovCj4gPiA+ID4gPgo+ID4gPiA+ID4gR29pbmcgYmFjayB0byB0aGUgb3JpZ2luYWwg ZGlzY3Vzc2lvbiBhcm91bmQgd2hlcmUgdGhpcyBzaG91bGQgYmUKPiA+ID4gPiA+IHBsYWNlZC4g SSB3b25kZXIgaWYgd2UgY2FuIGZpbmQgYSBjb21tb24gcGxhY2UgdG8gc3RvcmUgdGhpcyBzaW5j ZSBpdAo+ID4gPiA+ID4gaGFzIG5vdGhpbmcgcmVsYXRlZCB0byB2aXJ0cXVldWUgbGF5b3V0LiBN YXliZSBkZXNjX2V4dHJhPyBBbmQgaXQKPiA+ID4gPiA+IHdvdWxkIGJlIGV2ZW4gYmV0dGVyIGlm IHdlIGNhbiBhdm9pZCBzdHJlc3NpbmcgdGhlIGNhY2hlIGxpa2UgYWJvdmUuCj4gPiA+ID4gPgo+ ID4gPiA+ID4gPiAgfTsKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gIHN0cnVjdCB2cmluZ19kZXNj X3N0YXRlX3BhY2tlZCB7Cj4gPiA+ID4gPiA+IEBAIC0zNTYsOCArMzU3LDE0IEBAIHN0YXRpYyBz dHJ1Y3QgZGV2aWNlICp2cmluZ19kbWFfZGV2KGNvbnN0IHN0cnVjdCB2cmluZ192aXJ0cXVldWUg KnZxKQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiAgLyogTWFwIG9uZSBzZyBlbnRyeS4gKi8KPiA+ ID4gPiA+ID4gIHN0YXRpYyBpbnQgdnJpbmdfbWFwX29uZV9zZyhjb25zdCBzdHJ1Y3QgdnJpbmdf dmlydHF1ZXVlICp2cSwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZywKPiA+ID4gPiA+ID4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcmVjdGlvbiwg c3RhdGljIGRtYV9hZGRyX3QgKmFkZHIpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXJlY3Rpb24sCj4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHByZW1hcHBlZCwgZG1hX2FkZHJfdCAqYWRk cikKPiA+ID4gPiA+Cj4gPiA+ID4gPiBoYXZpbmcgdGhpbmdzIGxpa2U6Cj4gPiA+ID4gPgo+ID4g PiA+ID4gaW50IGZ1bmMoYm9vbCBkbykKPiA+ID4gPiA+IHsKPiA+ID4gPiA+IGlmICghZG8pCj4g PiA+ID4gPiAgICAgcmV0dXJuOwo+ID4gPiA+ID4gfQo+ID4gPiA+ID4KPiA+ID4gPiA+IGlzIGEg aGludCB0aGF0IHRoZSBjaGVjayBuZWVkcyB0byBiZSBkb25lIGJ5IHRoZSBjYWxsZXI/Cj4gPiA+ ID4gPgo+ID4gPiA+ID4gQW5kIHRoaXMgY2hhbmdlIHNob3VsZCB3b3JrIGZvciBib3RoIHBhY2tl ZCBhbmQgc3BsaXQuIEkgdGhpbmsgd2UgbmVlZAo+ID4gPiA+ID4gdG8gc3F1YXNoIHRoZSBwYWNr ZWQgY2hhbmdlcyBoZXJlLgo+ID4gPiA+ID4KPiA+ID4gPiA+IExvb2tpbmcgYXQgaG93IHBhY2tl ZCB2aXJ0cXVldWUgdXNlcyB0aGlzIGluIHRoaXMgcGF0Y2gsIEkgZG9uJ3QgdGhpbmsKPiA+ID4g PiA+IHRoaXMgcGF0Y2ggY2FuIGV2ZW4gYmUgYnVpbHQuIEkgd2lsbCB3YWl0IGZvciBhIG5ldyB2 ZXJzaW9uIGFuZAo+ID4gPiA+ID4gY29udGludWUgdGhlIHJldmlldyBmcm9tIHRoZXJlLgo+ID4g PiA+ID4KPiA+ID4gPiA+IFRoYW5rcwo+ID4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ID4gPgo+ID4g PiA+ID4gPiAgewo+ID4gPiA+ID4gPiArICAgICAgIGlmIChwcmVtYXBwZWQpIHsKPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgICphZGRyID0gc2dfZG1hX2FkZHJlc3Moc2cpOwo+ID4gPiA+ID4g PiArICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gPiA+ID4gPiA+ICsgICAgICAgfQo+ID4gPiA+ ID4gPiArCj4gPiA+ID4gPiA+ICAgICAgICAgaWYgKCF2cS0+dXNlX2RtYV9hcGkpIHsKPiA+ID4g PiA+ID4gICAgICAgICAgICAgICAgIC8qCj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgKiBJ ZiBETUEgaXMgbm90IHVzZWQsIEtNU0FOIGRvZXNuJ3Qga25vdyB0aGF0IHRoZSBzY2F0dGVybGlz dAo+ID4gPiA+ID4gPiBAQCAtNDQ1LDcgKzQ1Miw3IEBAIHN0YXRpYyB2b2lkIHZyaW5nX3VubWFw X29uZV9zcGxpdF9pbmRpcmVjdChjb25zdCBzdHJ1Y3QgdnJpbmdfdmlydHF1ZXVlICp2cSwKPiA+ ID4gPiA+ID4gIH0KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gIHN0YXRpYyB1bnNpZ25lZCBpbnQg dnJpbmdfdW5tYXBfb25lX3NwbGl0KGNvbnN0IHN0cnVjdCB2cmluZ192aXJ0cXVldWUgKnZxLAo+ ID4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgaSkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IGksIGJvb2wgcHJlbWFwcGVkKQo+ID4gPiA+ID4gPiAgewo+ ID4gPiA+ID4gPiAgICAgICAgIHN0cnVjdCB2cmluZ19kZXNjX2V4dHJhICpleHRyYSA9IHZxLT5z cGxpdC5kZXNjX2V4dHJhOwo+ID4gPiA+ID4gPiAgICAgICAgIHUxNiBmbGFnczsKPiA+ID4gPiA+ ID4gQEAgLTQ2Miw2ICs0NjksOSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHZyaW5nX3VubWFwX29u ZV9zcGxpdChjb25zdCBzdHJ1Y3QgdnJpbmdfdmlydHF1ZXVlICp2cSwKPiA+ID4gPiA+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZsYWdzICYgVlJJTkdfREVTQ19GX1dSSVRF KSA/Cj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERNQV9GUk9N X0RFVklDRSA6IERNQV9UT19ERVZJQ0UpOwo+ID4gPiA+ID4gPiAgICAgICAgIH0gZWxzZSB7Cj4g PiA+ID4gPiA+ICsgICAgICAgICAgICAgICBpZiAocHJlbWFwcGVkKQo+ID4gPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiAg ICAgICAgICAgICAgICAgZG1hX3VubWFwX3BhZ2UodnJpbmdfZG1hX2Rldih2cSksCj4gPiA+ID4g PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYVtpXS5hZGRyLAo+ID4gPiA+ ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFbaV0ubGVuLAo+ID4gPiA+ ID4gPiBAQCAtNTMyLDYgKzU0Miw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHZpcnRxdWV1ZV9hZGRf c3BsaXQoc3RydWN0IHZpcnRxdWV1ZSAqX3ZxLAo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBpbl9zZ3MsCj4gPiA+ID4gPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGF0YSwKPiA+ID4gPiA+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpjdHgsCj4gPiA+ ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBwcmVtYXBw ZWQsCj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Zw X3QgZ2ZwKQo+ID4gPiA+ID4gPiAgewo+ID4gPiA+ID4gPiAgICAgICAgIHN0cnVjdCB2cmluZ192 aXJ0cXVldWUgKnZxID0gdG9fdnZxKF92cSk7Cj4gPiA+ID4gPiA+IEBAIC01OTUsNyArNjA2LDcg QEAgc3RhdGljIGlubGluZSBpbnQgdmlydHF1ZXVlX2FkZF9zcGxpdChzdHJ1Y3QgdmlydHF1ZXVl ICpfdnEsCj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICBmb3IgKHNnID0gc2dzW25dOyBzZzsg c2cgPSBzZ19uZXh0KHNnKSkgewo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBk bWFfYWRkcl90IGFkZHI7Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAg ICAgICAgIGlmICh2cmluZ19tYXBfb25lX3NnKHZxLCBzZywgRE1BX1RPX0RFVklDRSwgJmFkZHIp KQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAodnJpbmdfbWFwX29uZV9z Zyh2cSwgc2csIERNQV9UT19ERVZJQ0UsIHByZW1hcHBlZCwgJmFkZHIpKQo+ID4gPiA+ID4gPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gdW5tYXBfcmVsZWFzZTsKPiA+ID4g PiA+ID4KPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcHJldiA9IGk7Cj4gPiA+ ID4gPiA+IEBAIC02MTEsNyArNjIyLDcgQEAgc3RhdGljIGlubGluZSBpbnQgdmlydHF1ZXVlX2Fk ZF9zcGxpdChzdHJ1Y3QgdmlydHF1ZXVlICpfdnEsCj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAg ICBmb3IgKHNnID0gc2dzW25dOyBzZzsgc2cgPSBzZ19uZXh0KHNnKSkgewo+ID4gPiA+ID4gPiAg ICAgICAgICAgICAgICAgICAgICAgICBkbWFfYWRkcl90IGFkZHI7Cj4gPiA+ID4gPiA+Cj4gPiA+ ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIGlmICh2cmluZ19tYXBfb25lX3NnKHZxLCBz ZywgRE1BX0ZST01fREVWSUNFLCAmYWRkcikpCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGlmICh2cmluZ19tYXBfb25lX3NnKHZxLCBzZywgRE1BX0ZST01fREVWSUNFLCBwcmVt YXBwZWQsICZhZGRyKSkKPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnb3RvIHVubWFwX3JlbGVhc2U7Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgIHByZXYgPSBpOwo+ID4gPiA+ID4gPiBAQCAtNjU3LDYgKzY2OCw3IEBAIHN0 YXRpYyBpbmxpbmUgaW50IHZpcnRxdWV1ZV9hZGRfc3BsaXQoc3RydWN0IHZpcnRxdWV1ZSAqX3Zx LAo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiAgICAgICAgIC8qIFN0b3JlIHRva2VuIGFuZCBpbmRp cmVjdCBidWZmZXIgc3RhdGUuICovCj4gPiA+ID4gPiA+ICAgICAgICAgdnEtPnNwbGl0LmRlc2Nf c3RhdGVbaGVhZF0uZGF0YSA9IGRhdGE7Cj4gPiA+ID4gPiA+ICsgICAgICAgdnEtPnNwbGl0LmRl c2Nfc3RhdGVbaGVhZF0ucHJlbWFwcGVkID0gcHJlbWFwcGVkOwo+ID4gPiA+ID4gPiAgICAgICAg IGlmIChpbmRpcmVjdCkKPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgIHZxLT5zcGxpdC5kZXNj X3N0YXRlW2hlYWRdLmluZGlyX2Rlc2MgPSBkZXNjOwo+ID4gPiA+ID4gPiAgICAgICAgIGVsc2UK PiA+ID4gPiA+ID4gQEAgLTY4Niw2ICs2OTgsMTQgQEAgc3RhdGljIGlubGluZSBpbnQgdmlydHF1 ZXVlX2FkZF9zcGxpdChzdHJ1Y3QgdmlydHF1ZXVlICpfdnEsCj4gPiA+ID4gPiA+ICAgICAgICAg cmV0dXJuIDA7Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ICB1bm1hcF9yZWxlYXNlOgo+ID4gPiA+ ID4gPiArICAgICAgIGlmIChwcmVtYXBwZWQpIHsKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAg IGlmIChpbmRpcmVjdCkKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAga2ZyZWUo ZGVzYyk7Cj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIEVORF9VU0Uo dnEpOwo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gPiA+ID4g PiA+ICsgICAgICAgfQo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICAgICAgICAgZXJyX2lkeCA9 IGk7Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ICAgICAgICAgaWYgKGluZGlyZWN0KQo+ID4gPiA+ ID4gPiBAQCAtNzAwLDcgKzcyMCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHZpcnRxdWV1ZV9hZGRf c3BsaXQoc3RydWN0IHZpcnRxdWV1ZSAqX3ZxLAo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAg ICAgICAgICB2cmluZ191bm1hcF9vbmVfc3BsaXRfaW5kaXJlY3QodnEsICZkZXNjW2ldKTsKPiA+ ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgaSA9IHZpcnRpbzE2X3RvX2NwdShfdnEt PnZkZXYsIGRlc2NbaV0ubmV4dCk7Cj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICB9IGVsc2UK PiA+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgaSA9IHZyaW5nX3VubWFwX29uZV9z cGxpdCh2cSwgaSk7Cj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGkgPSB2cmlu Z191bm1hcF9vbmVfc3BsaXQodnEsIGksIGZhbHNlKTsKPiA+ID4gPiA+ID4gICAgICAgICB9Cj4g PiA+ID4gPiA+Cj4gPiA+ID4gPiA+ICAgICAgICAgaWYgKGluZGlyZWN0KQo+ID4gPiA+ID4gPiBA QCAtNzU3LDEyICs3NzcsMTIgQEAgc3RhdGljIHZvaWQgZGV0YWNoX2J1Zl9zcGxpdChzdHJ1Y3Qg dnJpbmdfdmlydHF1ZXVlICp2cSwgdW5zaWduZWQgaW50IGhlYWQsCj4gPiA+ID4gPiA+ICAgICAg ICAgaSA9IGhlYWQ7Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ICAgICAgICAgd2hpbGUgKHZxLT5z cGxpdC52cmluZy5kZXNjW2ldLmZsYWdzICYgbmV4dGZsYWcpIHsKPiA+ID4gPiA+ID4gLSAgICAg ICAgICAgICAgIHZyaW5nX3VubWFwX29uZV9zcGxpdCh2cSwgaSk7Cj4gPiA+ID4gPiA+ICsgICAg ICAgICAgICAgICB2cmluZ191bm1hcF9vbmVfc3BsaXQodnEsIGksIHN0YXRlLT5wcmVtYXBwZWQp Owo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgaSA9IHZxLT5zcGxpdC5kZXNjX2V4dHJhW2ld Lm5leHQ7Cj4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICB2cS0+dnEubnVtX2ZyZWUrKzsKPiA+ ID4gPiA+ID4gICAgICAgICB9Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IC0gICAgICAgdnJpbmdf dW5tYXBfb25lX3NwbGl0KHZxLCBpKTsKPiA+ID4gPiA+ID4gKyAgICAgICB2cmluZ191bm1hcF9v bmVfc3BsaXQodnEsIGksIHN0YXRlLT5wcmVtYXBwZWQpOwo+ID4gPiA+ID4gPiAgICAgICAgIHZx LT5zcGxpdC5kZXNjX2V4dHJhW2ldLm5leHQgPSB2cS0+ZnJlZV9oZWFkOwo+ID4gPiA+ID4gPiAg ICAgICAgIHZxLT5mcmVlX2hlYWQgPSBoZWFkOwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBAQCAt NzgzLDcgKzgwMyw3IEBAIHN0YXRpYyB2b2lkIGRldGFjaF9idWZfc3BsaXQoc3RydWN0IHZyaW5n X3ZpcnRxdWV1ZSAqdnEsIHVuc2lnbmVkIGludCBoZWFkLAo+ID4gPiA+ID4gPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFZSSU5HX0RFU0NfRl9JTkRJUkVDVCkpOwo+ID4gPiA+ID4g PiAgICAgICAgICAgICAgICAgQlVHX09OKGxlbiA9PSAwIHx8IGxlbiAlIHNpemVvZihzdHJ1Y3Qg dnJpbmdfZGVzYykpOwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiAtICAgICAgICAgICAgICAgaWYg KHZxLT51c2VfZG1hX2FwaSkgewo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgaWYgKHZxLT51 c2VfZG1hX2FwaSAmJiAhc3RhdGUtPnByZW1hcHBlZCkgewo+ID4gPiA+ID4gPiAgICAgICAgICAg ICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgbGVuIC8gc2l6ZW9mKHN0cnVjdCB2cmluZ19k ZXNjKTsgaisrKQo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZy aW5nX3VubWFwX29uZV9zcGxpdF9pbmRpcmVjdCh2cSwgJmluZGlyX2Rlc2Nbal0pOwo+ID4gPiA+ ID4gPiAgICAgICAgICAgICAgICAgfQo+ID4gPiA+ID4gPiBAQCAtMjE0Myw3ICsyMTYzLDcgQEAg c3RhdGljIGlubGluZSBpbnQgdmlydHF1ZXVlX2FkZChzdHJ1Y3QgdmlydHF1ZXVlICpfdnEsCj4g PiA+ID4gPiA+ICAgICAgICAgcmV0dXJuIHZxLT5wYWNrZWRfcmluZyA/IHZpcnRxdWV1ZV9hZGRf cGFja2VkKF92cSwgc2dzLCB0b3RhbF9zZywKPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG91dF9zZ3MsIGluX3NncywgZGF0YSwgY3R4LCBnZnApIDoK PiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlydHF1ZXVlX2Fk ZF9zcGxpdChfdnEsIHNncywgdG90YWxfc2csCj4gPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvdXRfc2dzLCBpbl9zZ3MsIGRhdGEsIGN0eCwgZ2ZwKTsK PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dF9z Z3MsIGluX3NncywgZGF0YSwgY3R4LCBwcmVtYXBwZWQsIGdmcCk7Cj4gPiA+ID4gPiA+ICB9Cj4g PiA+ID4gPiA+Cj4gPiA+ID4gPiA+ICAvKioKPiA+ID4gPiA+ID4gLS0KPiA+ID4gPiA+ID4gMi4z Mi4wLjMuZzAxMTk1Y2Y5Zgo+ID4gPiA+ID4gPgo+ID4gPiA+Cj4gPgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KVmlydHVhbGl6YXRpb24gbWFpbGluZyBs aXN0ClZpcnR1YWxpemF0aW9uQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlz dHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3ZpcnR1YWxpemF0aW9u