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 X-Spam-Level: X-Spam-Status: No, score=-15.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 416EAC433DB for ; Mon, 1 Feb 2021 06:29:52 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A342A64E25 for ; Mon, 1 Feb 2021 06:29:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A342A64E25 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=virtualization-bounces@lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 605C186FC0; Mon, 1 Feb 2021 06:29:51 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id czvIl2ZlZZny; Mon, 1 Feb 2021 06:29:50 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by hemlock.osuosl.org (Postfix) with ESMTP id 1F62986FAF; Mon, 1 Feb 2021 06:29:50 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id CC889C0174; Mon, 1 Feb 2021 06:29:49 +0000 (UTC) Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists.linuxfoundation.org (Postfix) with ESMTP id 2A86CC013A for ; Mon, 1 Feb 2021 06:29:48 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 10DA72012D for ; Mon, 1 Feb 2021 06:29:48 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iBv45tmDTJAM for ; Mon, 1 Feb 2021 06:29:46 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by silver.osuosl.org (Postfix) with ESMTPS id 76CC720117 for ; Mon, 1 Feb 2021 06:29:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1612160984; 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=0870ybyk5zyxUnKFlhBY4C+DLQ/zvpftxYzA3/bWnSs=; b=aM/+XUTEVSKGpbCxW4Xed3dN3mRtVR8NEdudtv2rmUSM4oPHV3HgFUY9PF6hGOojOCJLNC 6W4e6O1iSEtf8SIVrmWNcH80swwmrZZ7bWmcoMCeurVotspmC1RidIfzAAvNp01u7EDyEN piek+MHT7He5T4vN6SL4P7nveLJm1GQ= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-63-5HBp7n9COOG5tpUXQQNNXw-1; Mon, 01 Feb 2021 01:29:43 -0500 X-MC-Unique: 5HBp7n9COOG5tpUXQQNNXw-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9DD6A801817; Mon, 1 Feb 2021 06:29:41 +0000 (UTC) Received: from [10.72.13.120] (ovpn-13-120.pek2.redhat.com [10.72.13.120]) by smtp.corp.redhat.com (Postfix) with ESMTP id D00585DA33; Mon, 1 Feb 2021 06:29:27 +0000 (UTC) Subject: Re: [RFC 09/10] vhost: Route guest->host notification through shadow virtqueue To: =?UTF-8?Q?Eugenio_P=c3=a9rez?= , qemu-devel@nongnu.org References: <20210129205415.876290-1-eperezma@redhat.com> <20210129205415.876290-10-eperezma@redhat.com> From: Jason Wang Message-ID: Date: Mon, 1 Feb 2021 14:29:25 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20210129205415.876290-10-eperezma@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jasowang@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Cc: Parav Pandit , "Michael S. Tsirkin" , virtualization@lists.linux-foundation.org, Harpreet Singh Anand , Xiao W Wang , Stefan Hajnoczi , Eli Cohen , Eric Blake , Michael Lilja , Jim Harford , Rob Miller 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" Ck9uIDIwMjEvMS8zMCDkuIrljYg0OjU0LCBFdWdlbmlvIFDDqXJleiB3cm90ZToKPiBTaGFkb3cg dmlydHF1ZXVlIG5vdGlmaWNhdGlvbnMgZm9yd2FyZGluZyBpcyBkaXNhYmxlZCB3aGVuIHZob3N0 X2Rldgo+IHN0b3BzLgo+Cj4gU2lnbmVkLW9mZi1ieTogRXVnZW5pbyBQw6lyZXogPGVwZXJlem1h QHJlZGhhdC5jb20+Cj4gLS0tCj4gICBody92aXJ0aW8vdmhvc3Qtc2hhZG93LXZpcnRxdWV1ZS5o IHwgICA1ICsrCj4gICBpbmNsdWRlL2h3L3ZpcnRpby92aG9zdC5oICAgICAgICAgIHwgICA0ICsK PiAgIGh3L3ZpcnRpby92aG9zdC1zaGFkb3ctdmlydHF1ZXVlLmMgfCAxMjMgKysrKysrKysrKysr KysrKysrKysrKysrKy0KPiAgIGh3L3ZpcnRpby92aG9zdC5jICAgICAgICAgICAgICAgICAgfCAx MzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiAgIDQgZmlsZXMgY2hhbmdlZCwgMjY0 IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvaHcvdmlydGlv L3Zob3N0LXNoYWRvdy12aXJ0cXVldWUuaCBiL2h3L3ZpcnRpby92aG9zdC1zaGFkb3ctdmlydHF1 ZXVlLmgKPiBpbmRleCA2Y2MxOGQ2YWNiLi40NjZmOGFlNTk1IDEwMDY0NAo+IC0tLSBhL2h3L3Zp cnRpby92aG9zdC1zaGFkb3ctdmlydHF1ZXVlLmgKPiArKysgYi9ody92aXJ0aW8vdmhvc3Qtc2hh ZG93LXZpcnRxdWV1ZS5oCj4gQEAgLTE3LDYgKzE3LDExIEBACj4gICAKPiAgIHR5cGVkZWYgc3Ry dWN0IFZob3N0U2hhZG93VmlydHF1ZXVlIFZob3N0U2hhZG93VmlydHF1ZXVlOwo+ICAgCj4gK2Jv b2wgdmhvc3Rfc2hhZG93X3ZxX3N0YXJ0X3JjdShzdHJ1Y3Qgdmhvc3RfZGV2ICpkZXYsCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaG9zdFNoYWRvd1ZpcnRxdWV1ZSAqc3ZxKTsK PiArdm9pZCB2aG9zdF9zaGFkb3dfdnFfc3RvcF9yY3Uoc3RydWN0IHZob3N0X2RldiAqZGV2LAo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaG9zdFNoYWRvd1ZpcnRxdWV1ZSAqc3Zx KTsKPiArCj4gICBWaG9zdFNoYWRvd1ZpcnRxdWV1ZSAqdmhvc3Rfc2hhZG93X3ZxX25ldyhzdHJ1 Y3Qgdmhvc3RfZGV2ICpkZXYsIGludCBpZHgpOwo+ICAgCj4gICB2b2lkIHZob3N0X3NoYWRvd192 cV9mcmVlKFZob3N0U2hhZG93VmlydHF1ZXVlICp2cSk7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv aHcvdmlydGlvL3Zob3N0LmggYi9pbmNsdWRlL2h3L3ZpcnRpby92aG9zdC5oCj4gaW5kZXggMmJl NzgyY2VmZC4uNzMyYTRiMmEyYiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2h3L3ZpcnRpby92aG9z dC5oCj4gKysrIGIvaW5jbHVkZS9ody92aXJ0aW8vdmhvc3QuaAo+IEBAIC01NSw2ICs1NSw4IEBA IHN0cnVjdCB2aG9zdF9pb21tdSB7Cj4gICAgICAgUUxJU1RfRU5UUlkodmhvc3RfaW9tbXUpIGlv bW11X25leHQ7Cj4gICB9Owo+ICAgCj4gK3R5cGVkZWYgc3RydWN0IFZob3N0U2hhZG93VmlydHF1 ZXVlIFZob3N0U2hhZG93VmlydHF1ZXVlOwo+ICsKPiAgIHR5cGVkZWYgc3RydWN0IFZob3N0RGV2 Q29uZmlnT3BzIHsKPiAgICAgICAvKiBWaG9zdCBkZXZpY2UgY29uZmlnIHNwYWNlIGNoYW5nZWQg Y2FsbGJhY2sKPiAgICAgICAgKi8KPiBAQCAtODMsNyArODUsOSBAQCBzdHJ1Y3Qgdmhvc3RfZGV2 IHsKPiAgICAgICB1aW50NjRfdCBiYWNrZW5kX2NhcDsKPiAgICAgICBib29sIHN0YXJ0ZWQ7Cj4g ICAgICAgYm9vbCBsb2dfZW5hYmxlZDsKPiArICAgIGJvb2wgc3dfbG1fZW5hYmxlZDsKPiAgICAg ICB1aW50NjRfdCBsb2dfc2l6ZTsKPiArICAgIFZob3N0U2hhZG93VmlydHF1ZXVlICoqc2hhZG93 X3ZxczsKPiAgICAgICBFcnJvciAqbWlncmF0aW9uX2Jsb2NrZXI7Cj4gICAgICAgY29uc3QgVmhv c3RPcHMgKnZob3N0X29wczsKPiAgICAgICB2b2lkICpvcGFxdWU7Cj4gZGlmZiAtLWdpdCBhL2h3 L3ZpcnRpby92aG9zdC1zaGFkb3ctdmlydHF1ZXVlLmMgYi9ody92aXJ0aW8vdmhvc3Qtc2hhZG93 LXZpcnRxdWV1ZS5jCj4gaW5kZXggYzBjOTY3YTdjNS4uOTA4YzM2YzY2ZCAxMDA2NDQKPiAtLS0g YS9ody92aXJ0aW8vdmhvc3Qtc2hhZG93LXZpcnRxdWV1ZS5jCj4gKysrIGIvaHcvdmlydGlvL3Zo b3N0LXNoYWRvdy12aXJ0cXVldWUuYwo+IEBAIC04LDE1ICs4LDEyOSBAQAo+ICAgICovCj4gICAK PiAgICNpbmNsdWRlICJody92aXJ0aW8vdmhvc3Qtc2hhZG93LXZpcnRxdWV1ZS5oIgo+ICsjaW5j bHVkZSAiaHcvdmlydGlvL3Zob3N0LmgiCj4gKyNpbmNsdWRlICJody92aXJ0aW8vdmlydGlvLWFj Y2Vzcy5oIgo+ICsKPiArI2luY2x1ZGUgInN0YW5kYXJkLWhlYWRlcnMvbGludXgvdmhvc3RfdHlw ZXMuaCIKPiArI2luY2x1ZGUgInN0YW5kYXJkLWhlYWRlcnMvbGludXgvdmlydGlvX3JpbmcuaCIK PiAgIAo+ICAgI2luY2x1ZGUgInFlbXUvZXJyb3ItcmVwb3J0LmgiCj4gLSNpbmNsdWRlICJxZW11 L2V2ZW50X25vdGlmaWVyLmgiCj4gKyNpbmNsdWRlICJxZW11L21haW4tbG9vcC5oIgo+ICAgCj4g ICB0eXBlZGVmIHN0cnVjdCBWaG9zdFNoYWRvd1ZpcnRxdWV1ZSB7Cj4gICAgICAgRXZlbnROb3Rp ZmllciBraWNrX25vdGlmaWVyOwo+ICAgICAgIEV2ZW50Tm90aWZpZXIgY2FsbF9ub3RpZmllcjsK PiArICAgIGNvbnN0IHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKmh2cTsKPiArICAgIFZpcnRJT0Rl dmljZSAqdmRldjsKPiArICAgIFZpcnRRdWV1ZSAqdnE7Cj4gICB9IFZob3N0U2hhZG93VmlydHF1 ZXVlOwoKClNvIGluc3RlYWQgb2YgZG9pbmcgdGhpbmdzIGF0IHZpcnRpbyBsZXZlbCwgaG93IGFi b3V0IGRvIHRoZSBzaGFkb3cgCnN0dWZmcyBhdCB2aG9zdCBsZXZlbD8KCkl0IHdvcmtzIGxpa2U6 Cgp2aXJ0aW8gLT4gW3NoYWRvdyB2aG9zdCBiYWNrZW5kXSAtPiB2aG9zdCBiYWNrZW5kCgpUaGVu IHRoZSBRTVAgaXMgdXNlZCB0byBwbHVnIHRoZSBzaGFkb3cgdmhvc3QgYmFja2VuZCBpbiB0aGUg bWlkZGxlIG9yIG5vdC4KCkl0IGxvb2tzIGtpbmQgb2YgZWFzaWVyIHNpbmNlIHdlIGRvbid0IG5l ZWQgdG8gZGVhbCB3aXRoIHZpcnRxdWV1ZSAKaGFuZGxlcnMgZXRjLi4gSW5zdGVhZCwgd2UganVz dCBuZWVkIHRvIGRlYWwgd2l0aCBldmVudGZkIHN0dWZmczoKCldoZW4gc2hhZG93IHZob3N0IG1v ZGUgaXMgZW5hYmxlZCwgd2UganVzdCBpbnRlcmNlcHQgdGhlIGhvc3Rfbm90aWZpZXJzIAphbmQg Z3Vlc3Rfbm90aWZpZXJzLiBXaGVuIGl0IHdhcyBkaXNhYmxlZCwgd2UganVzdCBwYXNzIHRoZSBo b3N0L2d1ZXN0IApub3RpZmllcnMgdG8gdGhlIHJlYWwgdmhvc3QgYmFja2VuZHM/CgpUaGFua3MK Cgo+ICAgCj4gK3N0YXRpYyB1aW50MTZfdCB2aG9zdF9zaGFkb3dfdnJpbmdfdXNlZF9mbGFncyhW aG9zdFNoYWRvd1ZpcnRxdWV1ZSAqc3ZxKQo+ICt7Cj4gKyAgICBjb25zdCBzdHJ1Y3QgdnJpbmdf dXNlZCAqdXNlZCA9IHN2cS0+aHZxLT51c2VkOwo+ICsgICAgcmV0dXJuIHZpcnRpb190c3dhcDE2 KHN2cS0+dmRldiwgdXNlZC0+ZmxhZ3MpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCB2aG9zdF9z aGFkb3dfdnJpbmdfc2hvdWxkX2tpY2soVmhvc3RTaGFkb3dWaXJ0cXVldWUgKnZxKQo+ICt7Cj4g KyAgICByZXR1cm4gISh2aG9zdF9zaGFkb3dfdnJpbmdfdXNlZF9mbGFncyh2cSkgJiBWUklOR19V U0VEX0ZfTk9fTk9USUZZKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgdmhvc3Rfc2hhZG93X3Zy aW5nX2tpY2soVmhvc3RTaGFkb3dWaXJ0cXVldWUgKnZxKQo+ICt7Cj4gKyAgICBpZiAodmhvc3Rf c2hhZG93X3ZyaW5nX3Nob3VsZF9raWNrKHZxKSkgewo+ICsgICAgICAgIGV2ZW50X25vdGlmaWVy X3NldCgmdnEtPmtpY2tfbm90aWZpZXIpOwo+ICsgICAgfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9p ZCBoYW5kbGVfc2hhZG93X3ZxKFZpcnRJT0RldmljZSAqdmRldiwgVmlydFF1ZXVlICp2cSkKPiAr ewo+ICsgICAgc3RydWN0IHZob3N0X2RldiAqaGRldiA9IHZob3N0X2Rldl9mcm9tX3ZpcnRpbyh2 ZGV2KTsKPiArICAgIHVpbnQxNl90IGlkeCA9IHZpcnRpb19nZXRfcXVldWVfaW5kZXgodnEpOwo+ ICsKPiArICAgIFZob3N0U2hhZG93VmlydHF1ZXVlICpzdnEgPSBoZGV2LT5zaGFkb3dfdnFzW2lk eF07Cj4gKwo+ICsgICAgdmhvc3Rfc2hhZG93X3ZyaW5nX2tpY2soc3ZxKTsKPiArfQo+ICsKPiAr LyoKPiArICogU3RhcnQgc2hhZG93IHZpcnRxdWV1ZSBvcGVyYXRpb24uCj4gKyAqIEBkZXYgdmhv c3QgZGV2aWNlCj4gKyAqIEBzdnEgU2hhZG93IFZpcnRxdWV1ZQo+ICsgKgo+ICsgKiBSdW4gaW4g UkNVIGNvbnRleHQKPiArICovCj4gK2Jvb2wgdmhvc3Rfc2hhZG93X3ZxX3N0YXJ0X3JjdShzdHJ1 Y3Qgdmhvc3RfZGV2ICpkZXYsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaG9z dFNoYWRvd1ZpcnRxdWV1ZSAqc3ZxKQo+ICt7Cj4gKyAgICBjb25zdCBWaXJ0aW9EZXZpY2VDbGFz cyAqayA9IFZJUlRJT19ERVZJQ0VfR0VUX0NMQVNTKGRldi0+dmRldik7Cj4gKyAgICBFdmVudE5v dGlmaWVyICp2cV9ob3N0X25vdGlmaWVyID0gdmlydGlvX3F1ZXVlX2dldF9ob3N0X25vdGlmaWVy KHN2cS0+dnEpOwo+ICsgICAgdW5zaWduZWQgaWR4ID0gdmlydGlvX3F1ZXVlX2dldF9pZHgoc3Zx LT52ZGV2LCBzdnEtPnZxKTsKPiArICAgIHN0cnVjdCB2aG9zdF92cmluZ19maWxlIGtpY2tfZmls ZSA9IHsKPiArICAgICAgICAuaW5kZXggPSBpZHgsCj4gKyAgICAgICAgLmZkID0gZXZlbnRfbm90 aWZpZXJfZ2V0X2ZkKCZzdnEtPmtpY2tfbm90aWZpZXIpLAo+ICsgICAgfTsKPiArICAgIGludCBy Owo+ICsgICAgYm9vbCBvazsKPiArCj4gKyAgICAvKiBDaGVjayB0aGF0IG5vdGlmaWNhdGlvbnMg YXJlIHN0aWxsIGdvaW5nIGRpcmVjdGx5IHRvIHZob3N0IGRldiAqLwo+ICsgICAgYXNzZXJ0KHZp cnRpb19xdWV1ZV9ob3N0X25vdGlmaWVyX3N0YXR1cyhzdnEtPnZxKSk7Cj4gKwo+ICsgICAgb2sg PSBrLT5zZXRfdnFfaGFuZGxlcihkZXYtPnZkZXYsIGlkeCwgaGFuZGxlX3NoYWRvd192cSk7Cj4g KyAgICBpZiAoIW9rKSB7Cj4gKyAgICAgICAgZXJyb3JfcmVwb3J0KCJDb3VsZG4ndCBzZXQgdGhl IHZxIGhhbmRsZXIiKTsKPiArICAgICAgICBnb3RvIGVycl9zZXRfa2lja19oYW5kbGVyOwo+ICsg ICAgfQo+ICsKPiArICAgIHIgPSBkZXYtPnZob3N0X29wcy0+dmhvc3Rfc2V0X3ZyaW5nX2tpY2so ZGV2LCAma2lja19maWxlKTsKPiArICAgIGlmIChyICE9IDApIHsKPiArICAgICAgICBlcnJvcl9y ZXBvcnQoIkNvdWxkbid0IHNldCBraWNrIGZkOiAlcyIsIHN0cmVycm9yKGVycm5vKSk7Cj4gKyAg ICAgICAgZ290byBlcnJfc2V0X3ZyaW5nX2tpY2s7Cj4gKyAgICB9Cj4gKwo+ICsgICAgZXZlbnRf bm90aWZpZXJfc2V0X2hhbmRsZXIodnFfaG9zdF9ub3RpZmllciwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZpcnRpb19xdWV1ZV9ob3N0X25vdGlmaWVyX3JlYWQpOwo+ICsgICAg dmlydGlvX3F1ZXVlX3NldF9ob3N0X25vdGlmaWVyX2VuYWJsZWQoc3ZxLT52cSwgZmFsc2UpOwo+ ICsgICAgdmlydGlvX3F1ZXVlX2hvc3Rfbm90aWZpZXJfcmVhZCh2cV9ob3N0X25vdGlmaWVyKTsK PiArCj4gKyAgICByZXR1cm4gdHJ1ZTsKPiArCj4gK2Vycl9zZXRfdnJpbmdfa2ljazoKPiArICAg IGstPnNldF92cV9oYW5kbGVyKGRldi0+dmRldiwgaWR4LCBOVUxMKTsKPiArCj4gK2Vycl9zZXRf a2lja19oYW5kbGVyOgo+ICsgICAgcmV0dXJuIGZhbHNlOwo+ICt9Cj4gKwo+ICsvKgo+ICsgKiBT dG9wIHNoYWRvdyB2aXJ0cXVldWUgb3BlcmF0aW9uLgo+ICsgKiBAZGV2IHZob3N0IGRldmljZQo+ ICsgKiBAc3ZxIFNoYWRvdyBWaXJ0cXVldWUKPiArICoKPiArICogUnVuIGluIFJDVSBjb250ZXh0 Cj4gKyAqLwo+ICt2b2lkIHZob3N0X3NoYWRvd192cV9zdG9wX3JjdShzdHJ1Y3Qgdmhvc3RfZGV2 ICpkZXYsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZob3N0U2hhZG93VmlydHF1 ZXVlICpzdnEpCj4gK3sKPiArICAgIGNvbnN0IFZpcnRpb0RldmljZUNsYXNzICprID0gVklSVElP X0RFVklDRV9HRVRfQ0xBU1Moc3ZxLT52ZGV2KTsKPiArICAgIHVuc2lnbmVkIGlkeCA9IHZpcnRp b19xdWV1ZV9nZXRfaWR4KHN2cS0+dmRldiwgc3ZxLT52cSk7Cj4gKyAgICBFdmVudE5vdGlmaWVy ICp2cV9ob3N0X25vdGlmaWVyID0gdmlydGlvX3F1ZXVlX2dldF9ob3N0X25vdGlmaWVyKHN2cS0+ dnEpOwo+ICsgICAgc3RydWN0IHZob3N0X3ZyaW5nX2ZpbGUga2lja19maWxlID0gewo+ICsgICAg ICAgIC5pbmRleCA9IGlkeCwKPiArICAgICAgICAuZmQgPSBldmVudF9ub3RpZmllcl9nZXRfZmQo dnFfaG9zdF9ub3RpZmllciksCj4gKyAgICB9Owo+ICsgICAgaW50IHI7Cj4gKwo+ICsgICAgLyog UmVzdG9yZSB2aG9zdCBraWNrICovCj4gKyAgICByID0gZGV2LT52aG9zdF9vcHMtPnZob3N0X3Nl dF92cmluZ19raWNrKGRldiwgJmtpY2tfZmlsZSk7Cj4gKyAgICAvKiBDYW5ub3QgZG8gYSBsb3Qg b2YgdGhpbmdzICovCj4gKyAgICBhc3NlcnQociA9PSAwKTsKPiArCj4gKyAgICBldmVudF9ub3Rp Zmllcl9zZXRfaGFuZGxlcih2cV9ob3N0X25vdGlmaWVyLCBOVUxMKTsKPiArICAgIHZpcnRpb19x dWV1ZV9zZXRfaG9zdF9ub3RpZmllcl9lbmFibGVkKHN2cS0+dnEsIHRydWUpOwo+ICsgICAgay0+ c2V0X3ZxX2hhbmRsZXIoc3ZxLT52ZGV2LCBpZHgsIE5VTEwpOwo+ICt9Cj4gKwo+ICAgLyoKPiAg ICAqIENyZWF0ZXMgdmhvc3Qgc2hhZG93IHZpcnRxdWV1ZSwgYW5kIGluc3RydWN0IHZob3N0IGRl dmljZSB0byB1c2UgdGhlIHNoYWRvdwo+ICAgICogbWV0aG9kcyBhbmQgZmlsZSBkZXNjcmlwdG9y cy4KPiBAQCAtMjQsOCArMTM4LDEzIEBAIHR5cGVkZWYgc3RydWN0IFZob3N0U2hhZG93VmlydHF1 ZXVlIHsKPiAgIFZob3N0U2hhZG93VmlydHF1ZXVlICp2aG9zdF9zaGFkb3dfdnFfbmV3KHN0cnVj dCB2aG9zdF9kZXYgKmRldiwgaW50IGlkeCkKPiAgIHsKPiAgICAgICBnX2F1dG9mcmVlIFZob3N0 U2hhZG93VmlydHF1ZXVlICpzdnEgPSBnX25ldzAoVmhvc3RTaGFkb3dWaXJ0cXVldWUsIDEpOwo+ ICsgICAgaW50IHZxX2lkeCA9IGRldi0+dmhvc3Rfb3BzLT52aG9zdF9nZXRfdnFfaW5kZXgoZGV2 LCBkZXYtPnZxX2luZGV4ICsgaWR4KTsKPiAgICAgICBpbnQgcjsKPiAgIAo+ICsgICAgc3ZxLT52 cSA9IHZpcnRpb19nZXRfcXVldWUoZGV2LT52ZGV2LCB2cV9pZHgpOwo+ICsgICAgc3ZxLT5odnEg PSAmZGV2LT52cXNbaWR4XTsKPiArICAgIHN2cS0+dmRldiA9IGRldi0+dmRldjsKPiArCj4gICAg ICAgciA9IGV2ZW50X25vdGlmaWVyX2luaXQoJnN2cS0+a2lja19ub3RpZmllciwgMCk7Cj4gICAg ICAgaWYgKHIgIT0gMCkgewo+ICAgICAgICAgICBlcnJvcl9yZXBvcnQoIkNvdWxkbid0IGNyZWF0 ZSBraWNrIGV2ZW50IG5vdGlmaWVyOiAlcyIsCj4gQEAgLTQwLDcgKzE1OSw3IEBAIFZob3N0U2hh ZG93VmlydHF1ZXVlICp2aG9zdF9zaGFkb3dfdnFfbmV3KHN0cnVjdCB2aG9zdF9kZXYgKmRldiwg aW50IGlkeCkKPiAgICAgICAgICAgZ290byBlcnJfaW5pdF9jYWxsX25vdGlmaWVyOwo+ICAgICAg IH0KPiAgIAo+IC0gICAgcmV0dXJuIHN2cTsKPiArICAgIHJldHVybiBnX3N0ZWFsX3BvaW50ZXIo JnN2cSk7Cj4gICAKPiAgIGVycl9pbml0X2NhbGxfbm90aWZpZXI6Cj4gICAgICAgZXZlbnRfbm90 aWZpZXJfY2xlYW51cCgmc3ZxLT5raWNrX25vdGlmaWVyKTsKPiBkaWZmIC0tZ2l0IGEvaHcvdmly dGlvL3Zob3N0LmMgYi9ody92aXJ0aW8vdmhvc3QuYwo+IGluZGV4IDQyODM2ZTQ1ZjMuLmJkZTY4 OGYyNzggMTAwNjQ0Cj4gLS0tIGEvaHcvdmlydGlvL3Zob3N0LmMKPiArKysgYi9ody92aXJ0aW8v dmhvc3QuYwo+IEBAIC0yNSw2ICsyNSw3IEBACj4gICAjaW5jbHVkZSAiZXhlYy9hZGRyZXNzLXNw YWNlcy5oIgo+ICAgI2luY2x1ZGUgImh3L3ZpcnRpby92aXJ0aW8tYnVzLmgiCj4gICAjaW5jbHVk ZSAiaHcvdmlydGlvL3ZpcnRpby1hY2Nlc3MuaCIKPiArI2luY2x1ZGUgImh3L3ZpcnRpby92aG9z dC1zaGFkb3ctdmlydHF1ZXVlLmgiCj4gICAjaW5jbHVkZSAibWlncmF0aW9uL2Jsb2NrZXIuaCIK PiAgICNpbmNsdWRlICJtaWdyYXRpb24vcWVtdS1maWxlLXR5cGVzLmgiCj4gICAjaW5jbHVkZSAi c3lzZW11L2RtYS5oIgo+IEBAIC05NDUsNiArOTQ2LDgyIEBAIHN0YXRpYyB2b2lkIHZob3N0X2xv Z19nbG9iYWxfc3RvcChNZW1vcnlMaXN0ZW5lciAqbGlzdGVuZXIpCj4gICAgICAgfQo+ICAgfQo+ ICAgCj4gK3N0YXRpYyBpbnQgdmhvc3Rfc3dfbGl2ZV9taWdyYXRpb25fc3RvcChzdHJ1Y3Qgdmhv c3RfZGV2ICpkZXYpCj4gK3sKPiArICAgIGludCBpZHg7Cj4gKwo+ICsgICAgV0lUSF9SQ1VfUkVB RF9MT0NLX0dVQVJEKCkgewo+ICsgICAgICAgIGRldi0+c3dfbG1fZW5hYmxlZCA9IGZhbHNlOwo+ ICsKPiArICAgICAgICBmb3IgKGlkeCA9IDA7IGlkeCA8IGRldi0+bnZxczsgKytpZHgpIHsKPiAr ICAgICAgICAgICAgdmhvc3Rfc2hhZG93X3ZxX3N0b3BfcmN1KGRldiwgZGV2LT5zaGFkb3dfdnFz W2lkeF0pOwo+ICsgICAgICAgIH0KPiArICAgIH0KPiArCj4gKyAgICBmb3IgKGlkeCA9IDA7IGlk eCA8IGRldi0+bnZxczsgKytpZHgpIHsKPiArICAgICAgICB2aG9zdF9zaGFkb3dfdnFfZnJlZShk ZXYtPnNoYWRvd192cXNbaWR4XSk7Cj4gKyAgICB9Cj4gKwo+ICsgICAgZ19mcmVlKGRldi0+c2hh ZG93X3Zxcyk7Cj4gKyAgICBkZXYtPnNoYWRvd192cXMgPSBOVUxMOwo+ICsgICAgcmV0dXJuIDA7 Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgdmhvc3Rfc3dfbGl2ZV9taWdyYXRpb25fc3RhcnQoc3Ry dWN0IHZob3N0X2RldiAqZGV2KQo+ICt7Cj4gKyAgICBpbnQgaWR4Owo+ICsKPiArICAgIGRldi0+ c2hhZG93X3ZxcyA9IGdfbmV3MChWaG9zdFNoYWRvd1ZpcnRxdWV1ZSAqLCBkZXYtPm52cXMpOwo+ ICsgICAgZm9yIChpZHggPSAwOyBpZHggPCBkZXYtPm52cXM7ICsraWR4KSB7Cj4gKyAgICAgICAg ZGV2LT5zaGFkb3dfdnFzW2lkeF0gPSB2aG9zdF9zaGFkb3dfdnFfbmV3KGRldiwgaWR4KTsKPiAr ICAgICAgICBpZiAodW5saWtlbHkoZGV2LT5zaGFkb3dfdnFzW2lkeF0gPT0gTlVMTCkpIHsKPiAr ICAgICAgICAgICAgZ290byBlcnI7Cj4gKyAgICAgICAgfQo+ICsgICAgfQo+ICsKPiArICAgIFdJ VEhfUkNVX1JFQURfTE9DS19HVUFSRCgpIHsKPiArICAgICAgICBmb3IgKGlkeCA9IDA7IGlkeCA8 IGRldi0+bnZxczsgKytpZHgpIHsKPiArICAgICAgICAgICAgaW50IHN0b3BfaWR4ID0gaWR4Owo+ ICsgICAgICAgICAgICBib29sIG9rID0gdmhvc3Rfc2hhZG93X3ZxX3N0YXJ0X3JjdShkZXYsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldi0+c2hh ZG93X3Zxc1tpZHhdKTsKPiArCj4gKyAgICAgICAgICAgIGlmICghb2spIHsKPiArICAgICAgICAg ICAgICAgIHdoaWxlICgtLXN0b3BfaWR4ID49IDApIHsKPiArICAgICAgICAgICAgICAgICAgICB2 aG9zdF9zaGFkb3dfdnFfc3RvcF9yY3UoZGV2LCBkZXYtPnNoYWRvd192cXNbc3RvcF9pZHhdKTsK PiArICAgICAgICAgICAgICAgIH0KPiArCj4gKyAgICAgICAgICAgICAgICBnb3RvIGVycjsKPiAr ICAgICAgICAgICAgfQo+ICsgICAgICAgIH0KPiArICAgIH0KPiArCj4gKyAgICBkZXYtPnN3X2xt X2VuYWJsZWQgPSB0cnVlOwo+ICsgICAgcmV0dXJuIDA7Cj4gKwo+ICtlcnI6Cj4gKyAgICBmb3Ig KDsgaWR4ID49IDA7IC0taWR4KSB7Cj4gKyAgICAgICAgdmhvc3Rfc2hhZG93X3ZxX2ZyZWUoZGV2 LT5zaGFkb3dfdnFzW2lkeF0pOwo+ICsgICAgfQo+ICsgICAgZ19mcmVlKGRldi0+c2hhZG93X3Zx c1tpZHhdKTsKPiArCj4gKyAgICByZXR1cm4gLTE7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgdmhv c3Rfc3dfbGl2ZV9taWdyYXRpb25fZW5hYmxlKHN0cnVjdCB2aG9zdF9kZXYgKmRldiwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBlbmFibGVfbG0pCj4g K3sKPiArICAgIGludCByOwo+ICsKPiArICAgIGlmIChlbmFibGVfbG0gPT0gZGV2LT5zd19sbV9l bmFibGVkKSB7Cj4gKyAgICAgICAgcmV0dXJuIDA7Cj4gKyAgICB9Cj4gKwo+ICsgICAgciA9IGVu YWJsZV9sbSA/IHZob3N0X3N3X2xpdmVfbWlncmF0aW9uX3N0YXJ0KGRldikKPiArICAgICAgICAg ICAgICAgICAgOiB2aG9zdF9zd19saXZlX21pZ3JhdGlvbl9zdG9wKGRldik7Cj4gKwo+ICsgICAg cmV0dXJuIHI7Cj4gK30KPiArCj4gICBzdGF0aWMgdm9pZCB2aG9zdF9sb2dfc3RhcnQoTWVtb3J5 TGlzdGVuZXIgKmxpc3RlbmVyLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9y eVJlZ2lvblNlY3Rpb24gKnNlY3Rpb24sCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50IG9sZCwgaW50IG5ldykKPiBAQCAtMTM4OSw2ICsxNDY2LDcgQEAgaW50IHZob3N0X2Rldl9p bml0KHN0cnVjdCB2aG9zdF9kZXYgKmhkZXYsIHZvaWQgKm9wYXF1ZSwKPiAgICAgICBoZGV2LT5s b2cgPSBOVUxMOwo+ICAgICAgIGhkZXYtPmxvZ19zaXplID0gMDsKPiAgICAgICBoZGV2LT5sb2df ZW5hYmxlZCA9IGZhbHNlOwo+ICsgICAgaGRldi0+c3dfbG1fZW5hYmxlZCA9IGZhbHNlOwo+ICAg ICAgIGhkZXYtPnN0YXJ0ZWQgPSBmYWxzZTsKPiAgICAgICBtZW1vcnlfbGlzdGVuZXJfcmVnaXN0 ZXIoJmhkZXYtPm1lbW9yeV9saXN0ZW5lciwgJmFkZHJlc3Nfc3BhY2VfbWVtb3J5KTsKPiAgICAg ICBRTElTVF9JTlNFUlRfSEVBRCgmdmhvc3RfZGV2aWNlcywgaGRldiwgZW50cnkpOwo+IEBAIC0x ODE2LDYgKzE4OTQsMTEgQEAgdm9pZCB2aG9zdF9kZXZfc3RvcChzdHJ1Y3Qgdmhvc3RfZGV2ICpo ZGV2LCBWaXJ0SU9EZXZpY2UgKnZkZXYpCj4gICAgICAgICAgIGhkZXYtPnZob3N0X29wcy0+dmhv c3RfZGV2X3N0YXJ0KGhkZXYsIGZhbHNlKTsKPiAgICAgICB9Cj4gICAgICAgZm9yIChpID0gMDsg aSA8IGhkZXYtPm52cXM7ICsraSkgewo+ICsgICAgICAgIGlmIChoZGV2LT5zd19sbV9lbmFibGVk KSB7Cj4gKyAgICAgICAgICAgIHZob3N0X3NoYWRvd192cV9zdG9wX3JjdShoZGV2LCBoZGV2LT5z aGFkb3dfdnFzW2ldKTsKPiArICAgICAgICAgICAgdmhvc3Rfc2hhZG93X3ZxX2ZyZWUoaGRldi0+ c2hhZG93X3Zxc1tpXSk7Cj4gKyAgICAgICAgfQo+ICsKPiAgICAgICAgICAgdmhvc3RfdmlydHF1 ZXVlX3N0b3AoaGRldiwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmRldiwKPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGRldi0+dnFzICsgaSwKPiBAQCAtMTgyOSw2 ICsxOTEyLDggQEAgdm9pZCB2aG9zdF9kZXZfc3RvcChzdHJ1Y3Qgdmhvc3RfZGV2ICpoZGV2LCBW aXJ0SU9EZXZpY2UgKnZkZXYpCj4gICAgICAgICAgIG1lbW9yeV9saXN0ZW5lcl91bnJlZ2lzdGVy KCZoZGV2LT5pb21tdV9saXN0ZW5lcik7Cj4gICAgICAgfQo+ICAgICAgIHZob3N0X2xvZ19wdXQo aGRldiwgdHJ1ZSk7Cj4gKyAgICBnX2ZyZWUoaGRldi0+c2hhZG93X3Zxcyk7Cj4gKyAgICBoZGV2 LT5zd19sbV9lbmFibGVkID0gZmFsc2U7Cj4gICAgICAgaGRldi0+c3RhcnRlZCA9IGZhbHNlOwo+ ICAgICAgIGhkZXYtPnZkZXYgPSBOVUxMOwo+ICAgfQo+IEBAIC0xODQ1LDUgKzE5MzAsNTMgQEAg aW50IHZob3N0X25ldF9zZXRfYmFja2VuZChzdHJ1Y3Qgdmhvc3RfZGV2ICpoZGV2LAo+ICAgCj4g ICB2b2lkIHFtcF94X3Zob3N0X2VuYWJsZV9zaGFkb3dfdnEoY29uc3QgY2hhciAqbmFtZSwgYm9v bCBlbmFibGUsIEVycm9yICoqZXJycCkKPiAgIHsKPiAtICAgIGVycm9yX3NldGcoZXJycCwgIlNo YWRvdyB2aXJ0cXVldWUgc3RpbGwgbm90IGltcGxlbWVudGVkLiIpOwo+ICsgICAgc3RydWN0IHZo b3N0X2RldiAqaGRldjsKPiArICAgIGNvbnN0IGNoYXIgKmVycl9jYXVzZSA9IE5VTEw7Cj4gKyAg ICBjb25zdCBWaXJ0aW9EZXZpY2VDbGFzcyAqazsKPiArICAgIGludCByOwo+ICsgICAgRXJyb3JD bGFzcyBlcnJfY2xhc3MgPSBFUlJPUl9DTEFTU19HRU5FUklDX0VSUk9SOwo+ICsKPiArICAgIFFM SVNUX0ZPUkVBQ0goaGRldiwgJnZob3N0X2RldmljZXMsIGVudHJ5KSB7Cj4gKyAgICAgICAgaWYg KGhkZXYtPnZkZXYgJiYgMCA9PSBzdHJjbXAoaGRldi0+dmRldi0+bmFtZSwgbmFtZSkpIHsKPiAr ICAgICAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgfQo+ICsgICAgfQo+ICsKPiArICAgIGlmICgh aGRldikgewo+ICsgICAgICAgIGVycl9jbGFzcyA9IEVSUk9SX0NMQVNTX0RFVklDRV9OT1RfRk9V TkQ7Cj4gKyAgICAgICAgZXJyX2NhdXNlID0gIkRldmljZSBub3QgZm91bmQiOwo+ICsgICAgICAg IGdvdG8gZXJyOwo+ICsgICAgfQo+ICsKPiArICAgIGlmICghaGRldi0+c3RhcnRlZCkgewo+ICsg ICAgICAgIGVycl9jYXVzZSA9ICJEZXZpY2UgaXMgbm90IHN0YXJ0ZWQiOwo+ICsgICAgICAgIGdv dG8gZXJyOwo+ICsgICAgfQo+ICsKPiArICAgIGlmIChoZGV2LT5hY2tlZF9mZWF0dXJlcyAmIEJJ VF9VTEwoVklSVElPX0ZfUklOR19QQUNLRUQpKSB7Cj4gKyAgICAgICAgZXJyX2NhdXNlID0gIlVz ZSBwYWNrZWQgdnEiOwo+ICsgICAgICAgIGdvdG8gZXJyOwo+ICsgICAgfQo+ICsKPiArICAgIGlm ICh2aG9zdF9kZXZfaGFzX2lvbW11KGhkZXYpKSB7Cj4gKyAgICAgICAgZXJyX2NhdXNlID0gIkRl dmljZSB1c2UgSU9NTVUiOwo+ICsgICAgICAgIGdvdG8gZXJyOwo+ICsgICAgfQo+ICsKPiArICAg IGsgPSBWSVJUSU9fREVWSUNFX0dFVF9DTEFTUyhoZGV2LT52ZGV2KTsKPiArICAgIGlmICghay0+ c2V0X3ZxX2hhbmRsZXIpIHsKPiArICAgICAgICBlcnJfY2F1c2UgPSAiVmlydGlvIGRldmljZSB0 eXBlIGRvZXMgbm90IHN1cHBvcnQgcmVzZXQgb2YgdnEgaGFuZGxlciI7Cj4gKyAgICAgICAgZ290 byBlcnI7Cj4gKyAgICB9Cj4gKwo+ICsgICAgciA9IHZob3N0X3N3X2xpdmVfbWlncmF0aW9uX2Vu YWJsZShoZGV2LCBlbmFibGUpOwo+ICsgICAgaWYgKHVubGlrZWx5KHIpKSB7Cj4gKyAgICAgICAg ZXJyX2NhdXNlID0gIkVycm9yIGVuYWJsaW5nIChzZWUgbW9uaXRvcikiOwo+ICsgICAgfQo+ICsK PiArZXJyOgo+ICsgICAgaWYgKGVycl9jYXVzZSkgewo+ICsgICAgICAgIGVycm9yX3NldChlcnJw LCBlcnJfY2xhc3MsCj4gKyAgICAgICAgICAgICAgICAgICJDYW4ndCBlbmFibGUgc2hhZG93IHZx IG9uICVzOiAlcyIsIG5hbWUsIGVycl9jYXVzZSk7Cj4gKyAgICB9Cj4gICB9CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpWaXJ0dWFsaXphdGlvbiBtYWls aW5nIGxpc3QKVmlydHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6 Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vdmlydHVhbGl6YXRp b24=