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 D578DC433DB for ; Wed, 27 Jan 2021 03:51:37 +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 4D49D206B5 for ; Wed, 27 Jan 2021 03:51:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4D49D206B5 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 DA09686ECC; Wed, 27 Jan 2021 03:51:36 +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 KCYrBZtYqizQ; Wed, 27 Jan 2021 03:51:35 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by hemlock.osuosl.org (Postfix) with ESMTP id A76EB86DD3; Wed, 27 Jan 2021 03:51:35 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 987A1C08A1; Wed, 27 Jan 2021 03:51:35 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 58307C013A for ; Wed, 27 Jan 2021 03:51:33 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 3AF5886E48 for ; Wed, 27 Jan 2021 03:51:33 +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 8GVjRL13zQDQ for ; Wed, 27 Jan 2021 03:51:31 +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 [63.128.21.124]) by hemlock.osuosl.org (Postfix) with ESMTPS id 742ED86DD3 for ; Wed, 27 Jan 2021 03:51:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1611719490; 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=FNG+VTVJfbMnKpgbUqXrdSPSraQfeLxNVgUW0Wm+BdI=; b=AG0P/WUnkL0zFWm1AhvsoVF9hM2C5yK9pm6XR3lr53pwr5fquxpAQ+Wn9cUZ2VLc+M6Wcp xh9SFpcQ9NXoGLGIsHHZPRX4Q7AVyLLinQKmFC/yG3Vqja7D3RyvZqUVB0obg//o8I8/z2 OUVORJiVOhDMxZf/kLj9JtthDbJ1bEI= 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-278-O5lo8PpiMASsSZJONxWo3w-1; Tue, 26 Jan 2021 22:51:27 -0500 X-MC-Unique: O5lo8PpiMASsSZJONxWo3w-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 A8704801AAB; Wed, 27 Jan 2021 03:51:25 +0000 (UTC) Received: from [10.72.13.33] (ovpn-13-33.pek2.redhat.com [10.72.13.33]) by smtp.corp.redhat.com (Postfix) with ESMTP id 11FFE5D9C6; Wed, 27 Jan 2021 03:51:05 +0000 (UTC) Subject: Re: [RFC v3 06/11] vhost-vdpa: Add an opaque pointer for vhost IOTLB To: Yongji Xie References: <20210119045920.447-1-xieyongji@bytedance.com> <20210119045920.447-7-xieyongji@bytedance.com> <455fe36a-23a2-5720-a721-8ae46515186b@redhat.com> From: Jason Wang Message-ID: <8b7d0b11-a206-7290-4a79-c1268538fea9@redhat.com> Date: Wed, 27 Jan 2021 11:51:04 +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: Content-Language: en-US X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Cc: axboe@kernel.dk, Jonathan Corbet , kvm@vger.kernel.org, "Michael S. Tsirkin" , linux-aio@kvack.org, netdev@vger.kernel.org, Randy Dunlap , Matthew Wilcox , virtualization@lists.linux-foundation.org, Christoph Hellwig , Bob Liu , bcrl@kvack.org, viro@zeniv.linux.org.uk, Stefan Hajnoczi , linux-fsdevel@vger.kernel.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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" Ck9uIDIwMjEvMS8yMCDkuIvljYgzOjUyLCBZb25namkgWGllIHdyb3RlOgo+IE9uIFdlZCwgSmFu IDIwLCAyMDIxIGF0IDI6MjQgUE0gSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4gd3Jv dGU6Cj4+Cj4+IE9uIDIwMjEvMS8xOSDkuIvljYgxMjo1OSwgWGllIFlvbmdqaSB3cm90ZToKPj4+ IEFkZCBhbiBvcGFxdWUgcG9pbnRlciBmb3Igdmhvc3QgSU9UTEIgdG8gc3RvcmUgdGhlCj4+PiBj b3JyZXNwb25kaW5nIHZtYS0+dm1fZmlsZSBhbmQgb2Zmc2V0IG9uIHRoZSBETUEgbWFwcGluZy4K Pj4KPj4gTGV0J3Mgc3BsaXQgdGhlIHBhdGNoIGludG8gdHdvLgo+Pgo+PiAxKSBvcGFxdWUgcG9p bnRlcgo+PiAyKSB2bWEgc3R1ZmZzCj4+Cj4gT0suCj4KPj4+IEl0IHdpbGwgYmUgdXNlZCBpbiBW RFVTRSBjYXNlIGxhdGVyLgo+Pj4KPj4+IFN1Z2dlc3RlZC1ieTogSmFzb24gV2FuZyA8amFzb3dh bmdAcmVkaGF0LmNvbT4KPj4+IFNpZ25lZC1vZmYtYnk6IFhpZSBZb25namkgPHhpZXlvbmdqaUBi eXRlZGFuY2UuY29tPgo+Pj4gLS0tCj4+PiAgICBkcml2ZXJzL3ZkcGEvdmRwYV9zaW0vdmRwYV9z aW0uYyB8IDExICsrKystLS0KPj4+ICAgIGRyaXZlcnMvdmhvc3QvaW90bGIuYyAgICAgICAgICAg IHwgIDUgKystCj4+PiAgICBkcml2ZXJzL3Zob3N0L3ZkcGEuYyAgICAgICAgICAgICB8IDY2ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPj4+ICAgIGRyaXZlcnMvdmhv c3Qvdmhvc3QuYyAgICAgICAgICAgIHwgIDQgKy0tCj4+PiAgICBpbmNsdWRlL2xpbnV4L3ZkcGEu aCAgICAgICAgICAgICB8ICAzICstCj4+PiAgICBpbmNsdWRlL2xpbnV4L3Zob3N0X2lvdGxiLmgg ICAgICB8ICA4ICsrKystCj4+PiAgICA2IGZpbGVzIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyks IDE4IGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZkcGEvdmRwYV9z aW0vdmRwYV9zaW0uYyBiL2RyaXZlcnMvdmRwYS92ZHBhX3NpbS92ZHBhX3NpbS5jCj4+PiBpbmRl eCAwM2M3OTY4NzNhNmIuLjFmZmNlZjY3OTU0ZiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvdmRw YS92ZHBhX3NpbS92ZHBhX3NpbS5jCj4+PiArKysgYi9kcml2ZXJzL3ZkcGEvdmRwYV9zaW0vdmRw YV9zaW0uYwo+Pj4gQEAgLTI3OSw3ICsyNzksNyBAQCBzdGF0aWMgZG1hX2FkZHJfdCB2ZHBhc2lt X21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCj4+PiAgICAg ICAgICovCj4+PiAgICAgICAgc3Bpbl9sb2NrKCZ2ZHBhc2ltLT5pb21tdV9sb2NrKTsKPj4+ICAg ICAgICByZXQgPSB2aG9zdF9pb3RsYl9hZGRfcmFuZ2UoaW9tbXUsIHBhLCBwYSArIHNpemUgLSAx LAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhLCBkaXJfdG9fcGVybShk aXIpKTsKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYSwgZGlyX3RvX3Bl cm0oZGlyKSwgTlVMTCk7Cj4+Cj4+IE1heWJlIGl0cyBiZXR0ZXIgdG8gaW50cm9kdWNlCj4+Cj4+ IHZob3N0X2lvdGxiX2FkZF9yYW5nZV9jdHgoKSB3aGljaCBjYW4gYWNjZXB0cyB0aGUgb3BhcXVl IChjb250ZXh0KS4gQW5kCj4+IGxldCB2aG9zdF9pb3RsYl9hZGRfcmFuZ2UoKSBqdXN0IGNhbGwg dGhhdC4KPj4KPiBJZiBzbywgd2UgbmVlZCBleHBvcnQgYm90aCB2aG9zdF9pb3RsYl9hZGRfcmFu Z2UoKSBhbmQKPiB2aG9zdF9pb3RsYl9hZGRfcmFuZ2VfY3R4KCkgd2hpY2ggd2lsbCBiZSB1c2Vk IGluIFZEVVNFIGRyaXZlci4gSXMgaXQKPiBhIGJpdCByZWR1bmRhbnQ/CgoKUHJvYmFibHkgbm90 LCB3ZSBkbyBzb21ldGhpbmcgc2ltaWxhciBpbiB2aXJ0aW8gY29yZToKCnZvaWQgKnZpcnRxdWV1 ZV9nZXRfYnVmX2N0eChzdHJ1Y3QgdmlydHF1ZXVlICpfdnEsIHVuc2lnbmVkIGludCAqbGVuLAog wqDCoMKgIMKgwqDCoCDCoMKgwqAgwqDCoMKgIHZvaWQgKipjdHgpCnsKIMKgwqDCoCBzdHJ1Y3Qg dnJpbmdfdmlydHF1ZXVlICp2cSA9IHRvX3Z2cShfdnEpOwoKIMKgwqDCoCByZXR1cm4gdnEtPnBh Y2tlZF9yaW5nID8gdmlydHF1ZXVlX2dldF9idWZfY3R4X3BhY2tlZChfdnEsIGxlbiwgY3R4KSA6 CiDCoMKgwqAgwqDCoMKgIMKgwqDCoCDCoMKgwqAgwqB2aXJ0cXVldWVfZ2V0X2J1Zl9jdHhfc3Bs aXQoX3ZxLCBsZW4sIGN0eCk7Cn0KRVhQT1JUX1NZTUJPTF9HUEwodmlydHF1ZXVlX2dldF9idWZf Y3R4KTsKCnZvaWQgKnZpcnRxdWV1ZV9nZXRfYnVmKHN0cnVjdCB2aXJ0cXVldWUgKl92cSwgdW5z aWduZWQgaW50ICpsZW4pCnsKIMKgwqDCoCByZXR1cm4gdmlydHF1ZXVlX2dldF9idWZfY3R4KF92 cSwgbGVuLCBOVUxMKTsKfQpFWFBPUlRfU1lNQk9MX0dQTCh2aXJ0cXVldWVfZ2V0X2J1Zik7CgoK Pgo+Pj4gICAgICAgIHNwaW5fdW5sb2NrKCZ2ZHBhc2ltLT5pb21tdV9sb2NrKTsKPj4+ICAgICAg ICBpZiAocmV0KQo+Pj4gICAgICAgICAgICAgICAgcmV0dXJuIERNQV9NQVBQSU5HX0VSUk9SOwo+ Pj4gQEAgLTMxNyw3ICszMTcsNyBAQCBzdGF0aWMgdm9pZCAqdmRwYXNpbV9hbGxvY19jb2hlcmVu dChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAo+Pj4KPj4+ICAgICAgICAgICAgICAg IHJldCA9IHZob3N0X2lvdGxiX2FkZF9yYW5nZShpb21tdSwgKHU2NClwYSwKPj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodTY0KXBhICsgc2l6ZSAtIDEsCj4+ PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYSwgVkhPU1RfTUFQ X1JXKTsKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhLCBW SE9TVF9NQVBfUlcsIE5VTEwpOwo+Pj4gICAgICAgICAgICAgICAgaWYgKHJldCkgewo+Pj4gICAg ICAgICAgICAgICAgICAgICAgICAqZG1hX2FkZHIgPSBETUFfTUFQUElOR19FUlJPUjsKPj4+ICAg ICAgICAgICAgICAgICAgICAgICAga2ZyZWUoYWRkcik7Cj4+PiBAQCAtNjI1LDcgKzYyNSw4IEBA IHN0YXRpYyBpbnQgdmRwYXNpbV9zZXRfbWFwKHN0cnVjdCB2ZHBhX2RldmljZSAqdmRwYSwKPj4+ ICAgICAgICBmb3IgKG1hcCA9IHZob3N0X2lvdGxiX2l0cmVlX2ZpcnN0KGlvdGxiLCBzdGFydCwg bGFzdCk7IG1hcDsKPj4+ICAgICAgICAgICAgIG1hcCA9IHZob3N0X2lvdGxiX2l0cmVlX25leHQo bWFwLCBzdGFydCwgbGFzdCkpIHsKPj4+ICAgICAgICAgICAgICAgIHJldCA9IHZob3N0X2lvdGxi X2FkZF9yYW5nZSh2ZHBhc2ltLT5pb21tdSwgbWFwLT5zdGFydCwKPj4+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC0+bGFzdCwgbWFwLT5hZGRyLCBtYXAtPnBl cm0pOwo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLT5s YXN0LCBtYXAtPmFkZHIsCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtYXAtPnBlcm0sIE5VTEwpOwo+Pj4gICAgICAgICAgICAgICAgaWYgKHJldCkKPj4+ICAg ICAgICAgICAgICAgICAgICAgICAgZ290byBlcnI7Cj4+PiAgICAgICAgfQo+Pj4gQEAgLTYzOSwx NCArNjQwLDE0IEBAIHN0YXRpYyBpbnQgdmRwYXNpbV9zZXRfbWFwKHN0cnVjdCB2ZHBhX2Rldmlj ZSAqdmRwYSwKPj4+ICAgIH0KPj4+Cj4+PiAgICBzdGF0aWMgaW50IHZkcGFzaW1fZG1hX21hcChz dHJ1Y3QgdmRwYV9kZXZpY2UgKnZkcGEsIHU2NCBpb3ZhLCB1NjQgc2l6ZSwKPj4+IC0gICAgICAg ICAgICAgICAgICAgICAgICB1NjQgcGEsIHUzMiBwZXJtKQo+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIHU2NCBwYSwgdTMyIHBlcm0sIHZvaWQgKm9wYXF1ZSkKPj4+ICAgIHsKPj4+ICAgICAg ICBzdHJ1Y3QgdmRwYXNpbSAqdmRwYXNpbSA9IHZkcGFfdG9fc2ltKHZkcGEpOwo+Pj4gICAgICAg IGludCByZXQ7Cj4+Pgo+Pj4gICAgICAgIHNwaW5fbG9jaygmdmRwYXNpbS0+aW9tbXVfbG9jayk7 Cj4+PiAgICAgICAgcmV0ID0gdmhvc3RfaW90bGJfYWRkX3JhbmdlKHZkcGFzaW0tPmlvbW11LCBp b3ZhLCBpb3ZhICsgc2l6ZSAtIDEsIHBhLAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBlcm0pOwo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcm0s IE5VTEwpOwo+Pj4gICAgICAgIHNwaW5fdW5sb2NrKCZ2ZHBhc2ltLT5pb21tdV9sb2NrKTsKPj4+ Cj4+PiAgICAgICAgcmV0dXJuIHJldDsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3Zob3N0L2lv dGxiLmMgYi9kcml2ZXJzL3Zob3N0L2lvdGxiLmMKPj4+IGluZGV4IDBmZDNmODdlOTEzYy4uM2Jk NWJkMDZjZGJjIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy92aG9zdC9pb3RsYi5jCj4+PiArKysg Yi9kcml2ZXJzL3Zob3N0L2lvdGxiLmMKPj4+IEBAIC00MiwxMyArNDIsMTUgQEAgRVhQT1JUX1NZ TUJPTF9HUEwodmhvc3RfaW90bGJfbWFwX2ZyZWUpOwo+Pj4gICAgICogQGxhc3Q6IGxhc3Qgb2Yg SU9WQSByYW5nZQo+Pj4gICAgICogQGFkZHI6IHRoZSBhZGRyZXNzIHRoYXQgaXMgbWFwcGVkIHRv IEBzdGFydAo+Pj4gICAgICogQHBlcm06IGFjY2VzcyBwZXJtaXNzaW9uIG9mIHRoaXMgcmFuZ2UK Pj4+ICsgKiBAb3BhcXVlOiB0aGUgb3BhcXVlIHBvaW50ZXIgZm9yIHRoZSBJT1RMQiBtYXBwaW5n Cj4+PiAgICAgKgo+Pj4gICAgICogUmV0dXJucyBhbiBlcnJvciBsYXN0IGlzIHNtYWxsZXIgdGhh biBzdGFydCBvciBtZW1vcnkgYWxsb2NhdGlvbgo+Pj4gICAgICogZmFpbHMKPj4+ICAgICAqLwo+ Pj4gICAgaW50IHZob3N0X2lvdGxiX2FkZF9yYW5nZShzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxi LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIHU2NCBzdGFydCwgdTY0IGxhc3QsCj4+PiAt ICAgICAgICAgICAgICAgICAgICAgICB1NjQgYWRkciwgdW5zaWduZWQgaW50IHBlcm0pCj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICB1NjQgYWRkciwgdW5zaWduZWQgaW50IHBlcm0sCj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpvcGFxdWUpCj4+PiAgICB7Cj4+PiAgICAgICAg c3RydWN0IHZob3N0X2lvdGxiX21hcCAqbWFwOwo+Pj4KPj4+IEBAIC03MSw2ICs3Myw3IEBAIGlu dCB2aG9zdF9pb3RsYl9hZGRfcmFuZ2Uoc3RydWN0IHZob3N0X2lvdGxiICppb3RsYiwKPj4+ICAg ICAgICBtYXAtPmxhc3QgPSBsYXN0Owo+Pj4gICAgICAgIG1hcC0+YWRkciA9IGFkZHI7Cj4+PiAg ICAgICAgbWFwLT5wZXJtID0gcGVybTsKPj4+ICsgICAgIG1hcC0+b3BhcXVlID0gb3BhcXVlOwo+ Pj4KPj4+ICAgICAgICBpb3RsYi0+bm1hcHMrKzsKPj4+ICAgICAgICB2aG9zdF9pb3RsYl9pdHJl ZV9pbnNlcnQobWFwLCAmaW90bGItPnJvb3QpOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmhv c3QvdmRwYS5jIGIvZHJpdmVycy92aG9zdC92ZHBhLmMKPj4+IGluZGV4IDM2YjY5NTBiYTM3Zi4u ZTgzZTViZTdjZWM4IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy92aG9zdC92ZHBhLmMKPj4+ICsr KyBiL2RyaXZlcnMvdmhvc3QvdmRwYS5jCj4+PiBAQCAtNDg4LDYgKzQ4OCw3IEBAIHN0YXRpYyB2 b2lkIHZob3N0X3ZkcGFfaW90bGJfdW5tYXAoc3RydWN0IHZob3N0X3ZkcGEgKnYsIHU2NCBzdGFy dCwgdTY0IGxhc3QpCj4+PiAgICAgICAgc3RydWN0IHZob3N0X2RldiAqZGV2ID0gJnYtPnZkZXY7 Cj4+PiAgICAgICAgc3RydWN0IHZkcGFfZGV2aWNlICp2ZHBhID0gdi0+dmRwYTsKPj4+ICAgICAg ICBzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxiID0gZGV2LT5pb3RsYjsKPj4+ICsgICAgIHN0cnVj dCB2aG9zdF9pb3RsYl9maWxlICppb3RsYl9maWxlOwo+Pj4gICAgICAgIHN0cnVjdCB2aG9zdF9p b3RsYl9tYXAgKm1hcDsKPj4+ICAgICAgICBzdHJ1Y3QgcGFnZSAqcGFnZTsKPj4+ICAgICAgICB1 bnNpZ25lZCBsb25nIHBmbiwgcGlubmVkOwo+Pj4gQEAgLTUwNCw2ICs1MDUsMTAgQEAgc3RhdGlj IHZvaWQgdmhvc3RfdmRwYV9pb3RsYl91bm1hcChzdHJ1Y3Qgdmhvc3RfdmRwYSAqdiwgdTY0IHN0 YXJ0LCB1NjQgbGFzdCkKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgfQo+Pj4gICAgICAgICAg ICAgICAgICAgICAgICBhdG9taWM2NF9zdWIobWFwLT5zaXplID4+IFBBR0VfU0hJRlQsCj4+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGV2LT5tbS0+cGlubmVkX3Zt KTsKPj4+ICsgICAgICAgICAgICAgfSBlbHNlIGlmIChtYXAtPm9wYXF1ZSkgewo+Pj4gKyAgICAg ICAgICAgICAgICAgICAgIGlvdGxiX2ZpbGUgPSAoc3RydWN0IHZob3N0X2lvdGxiX2ZpbGUgKilt YXAtPm9wYXF1ZTsKPj4+ICsgICAgICAgICAgICAgICAgICAgICBmcHV0KGlvdGxiX2ZpbGUtPmZp bGUpOwo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIGtmcmVlKGlvdGxiX2ZpbGUpOwo+Pj4gICAg ICAgICAgICAgICAgfQo+Pj4gICAgICAgICAgICAgICAgdmhvc3RfaW90bGJfbWFwX2ZyZWUoaW90 bGIsIG1hcCk7Cj4+PiAgICAgICAgfQo+Pj4gQEAgLTU0MCw4ICs1NDUsOCBAQCBzdGF0aWMgaW50 IHBlcm1fdG9faW9tbXVfZmxhZ3ModTMyIHBlcm0pCj4+PiAgICAgICAgcmV0dXJuIGZsYWdzIHwg SU9NTVVfQ0FDSEU7Cj4+PiAgICB9Cj4+Pgo+Pj4gLXN0YXRpYyBpbnQgdmhvc3RfdmRwYV9tYXAo c3RydWN0IHZob3N0X3ZkcGEgKnYsCj4+PiAtICAgICAgICAgICAgICAgICAgICAgICB1NjQgaW92 YSwgdTY0IHNpemUsIHU2NCBwYSwgdTMyIHBlcm0pCj4+PiArc3RhdGljIGludCB2aG9zdF92ZHBh X21hcChzdHJ1Y3Qgdmhvc3RfdmRwYSAqdiwgdTY0IGlvdmEsCj4+PiArICAgICAgICAgICAgICAg ICAgICAgICB1NjQgc2l6ZSwgdTY0IHBhLCB1MzIgcGVybSwgdm9pZCAqb3BhcXVlKQo+Pj4gICAg ewo+Pj4gICAgICAgIHN0cnVjdCB2aG9zdF9kZXYgKmRldiA9ICZ2LT52ZGV2Owo+Pj4gICAgICAg IHN0cnVjdCB2ZHBhX2RldmljZSAqdmRwYSA9IHYtPnZkcGE7Cj4+PiBAQCAtNTQ5LDEyICs1NTQs MTIgQEAgc3RhdGljIGludCB2aG9zdF92ZHBhX21hcChzdHJ1Y3Qgdmhvc3RfdmRwYSAqdiwKPj4+ ICAgICAgICBpbnQgciA9IDA7Cj4+Pgo+Pj4gICAgICAgIHIgPSB2aG9zdF9pb3RsYl9hZGRfcmFu Z2UoZGV2LT5pb3RsYiwgaW92YSwgaW92YSArIHNpemUgLSAxLAo+Pj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwYSwgcGVybSk7Cj4+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBhLCBwZXJtLCBvcGFxdWUpOwo+Pj4gICAgICAgIGlmIChyKQo+Pj4gICAgICAgICAg ICAgICAgcmV0dXJuIHI7Cj4+Pgo+Pj4gICAgICAgIGlmIChvcHMtPmRtYV9tYXApIHsKPj4+IC0g ICAgICAgICAgICAgciA9IG9wcy0+ZG1hX21hcCh2ZHBhLCBpb3ZhLCBzaXplLCBwYSwgcGVybSk7 Cj4+PiArICAgICAgICAgICAgIHIgPSBvcHMtPmRtYV9tYXAodmRwYSwgaW92YSwgc2l6ZSwgcGEs IHBlcm0sIG9wYXF1ZSk7Cj4+PiAgICAgICAgfSBlbHNlIGlmIChvcHMtPnNldF9tYXApIHsKPj4+ ICAgICAgICAgICAgICAgIGlmICghdi0+aW5fYmF0Y2gpCj4+PiAgICAgICAgICAgICAgICAgICAg ICAgIHIgPSBvcHMtPnNldF9tYXAodmRwYSwgZGV2LT5pb3RsYik7Cj4+PiBAQCAtNTkxLDYgKzU5 Niw1MSBAQCBzdGF0aWMgdm9pZCB2aG9zdF92ZHBhX3VubWFwKHN0cnVjdCB2aG9zdF92ZHBhICp2 LCB1NjQgaW92YSwgdTY0IHNpemUpCj4+PiAgICAgICAgfQo+Pj4gICAgfQo+Pj4KPj4+ICtzdGF0 aWMgaW50IHZob3N0X3ZkcGFfc3ZhX21hcChzdHJ1Y3Qgdmhvc3RfdmRwYSAqdiwKPj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICB1NjQgaW92YSwgdTY0IHNpemUsIHU2NCB1YWRkciwgdTMy IHBlcm0pCj4+PiArewo+Pj4gKyAgICAgdTY0IG9mZnNldCwgbWFwX3NpemUsIG1hcF9pb3ZhID0g aW92YTsKPj4+ICsgICAgIHN0cnVjdCB2aG9zdF9pb3RsYl9maWxlICppb3RsYl9maWxlOwo+Pj4g KyAgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7Cj4+PiArICAgICBpbnQgcmV0Owo+Pgo+ PiBMYWNraW5nIG1tYXBfcmVhZF9sb2NrKCkuCj4+Cj4gR29vZCBjYXRjaCEgV2lsbCBmaXggaXQu Cj4KPj4+ICsKPj4+ICsgICAgIHdoaWxlIChzaXplKSB7Cj4+PiArICAgICAgICAgICAgIHZtYSA9 IGZpbmRfdm1hKGN1cnJlbnQtPm1tLCB1YWRkcik7Cj4+PiArICAgICAgICAgICAgIGlmICghdm1h KSB7Cj4+PiArICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKPj4+ICsgICAgICAg ICAgICAgICAgICAgICBnb3RvIGVycjsKPj4+ICsgICAgICAgICAgICAgfQo+Pj4gKyAgICAgICAg ICAgICBtYXBfc2l6ZSA9IG1pbihzaXplLCB2bWEtPnZtX2VuZCAtIHVhZGRyKTsKPj4+ICsgICAg ICAgICAgICAgb2Zmc2V0ID0gKHZtYS0+dm1fcGdvZmYgPDwgUEFHRV9TSElGVCkgKyB1YWRkciAt IHZtYS0+dm1fc3RhcnQ7Cj4+PiArICAgICAgICAgICAgIGlvdGxiX2ZpbGUgPSBOVUxMOwo+Pj4g KyAgICAgICAgICAgICBpZiAodm1hLT52bV9maWxlICYmICh2bWEtPnZtX2ZsYWdzICYgVk1fU0hB UkVEKSkgewo+Pgo+PiBJIHdvbmRlciBpZiB3ZSBuZWVkIG1vcmUgc3RyaWN0IGNoZWNrIGhlcmUu IFdoZW4gZGV2ZWxvcGluZyB2aG9zdC12ZHBhLAo+PiBJIHRyeSBoYXJkIHRvIG1ha2Ugc3VyZSB0 aGUgbWFwIGNhbiBvbmx5IHdvcmsgZm9yIHVzZXIgcGFnZXMuCj4+Cj4+IFNvIHRoZSBxdWVzdGlv biBpczogZG8gd2UgbmVlZCB0byBleGNsdWRlIE1NSU8gYXJlYSBvciBvbmx5IGFsbG93IHNobWVt Cj4+IHRvIHdvcmsgaGVyZT8KPj4KPiBEbyB5b3UgbWVhbiB3ZSBuZWVkIHRvIGNoZWNrIFZNX01J WEVETUFQIHwgVk1fUEZOTUFQIGhlcmU/CgoKSSBtZWFudCBkbyB3ZSBuZWVkIHRvIGFsbG93IFZN X0lPIGhlcmU/IChXZSBkb24ndCBhbGxvdyBzdWNoIGNhc2UgaW4gCnZob3N0LXZkcGEgbm93KS4K Cgo+Cj4gSXQgbWFrZXMgc2Vuc2UgdG8gbWUuCj4KPj4KPj4+ICsgICAgICAgICAgICAgICAgICAg ICBpb3RsYl9maWxlID0ga21hbGxvYyhzaXplb2YoKmlvdGxiX2ZpbGUpLCBHRlBfS0VSTkVMKTsK Pj4+ICsgICAgICAgICAgICAgICAgICAgICBpZiAoIWlvdGxiX2ZpbGUpIHsKPj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJldCA9IC1FTk9NRU07Cj4+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnb3RvIGVycjsKPj4+ICsgICAgICAgICAgICAgICAgICAgICB9Cj4+PiAr ICAgICAgICAgICAgICAgICAgICAgaW90bGJfZmlsZS0+ZmlsZSA9IGdldF9maWxlKHZtYS0+dm1f ZmlsZSk7Cj4+PiArICAgICAgICAgICAgICAgICAgICAgaW90bGJfZmlsZS0+b2Zmc2V0ID0gb2Zm c2V0Owo+Pj4gKyAgICAgICAgICAgICB9Cj4+Cj4+IEkgd29uZGVyIGlmIGl0J3MgYmV0dGVyIHRv IGFsbG9jYXRlIGlvdGxiX2ZpbGUgYW5kIG1ha2UgaW90bGJfZmlsZS0+ZmlsZQo+PiA9IE5VTEwg JiYgaW90bGJfZmlsZS0+b2Zmc2V0ID0gMC4gVGhpcyBjYW4gZm9yY2UgYSBjb25zaXN0ZW50IGNv ZGUgZm9yCj4+IHRoZSB2RFBBIHBhcmVudHMuCj4+Cj4gTG9va3MgZmluZSB0byBtZS4KPgo+PiBP ciB3ZSBjYW4gc2ltcGx5IGZhaWwgdGhlIG1hcCB3aXRob3V0IGEgZmlsZSBhcyBiYWNrZW5kLgo+ Pgo+IEFjdHVhbGx5IHRoZXJlIHdpbGwgYmUgc29tZSB2bWEgd2l0aG91dCB2bV9maWxlIGR1cmlu ZyB2bSBib290aW5nLgoKClllcywgZS5nIGJpb3Mgb3Igb3RoZXIgcm9tLiBWaG9zdC11c2VyIGhh cyB0aGUgc2ltaWxhciBpc3N1ZSBhbmQgdGhleSAKZmlsdGVyIHRoZSBvdXQgdGhlbSBpbiBxZW11 LgoKRm9yIHZob3N0LXZEUEEsIGNvbnNpZGVyIGl0IGNhbiBzdXBwb3J0cyB2YXJpb3VzIGRpZmZl cmVuY2UgYmFja2VuZHMsIHdlIApjYW4ndCBkbyB0aGF0LgoKCj4KPj4+ICsgICAgICAgICAgICAg cmV0ID0gdmhvc3RfdmRwYV9tYXAodiwgbWFwX2lvdmEsIG1hcF9zaXplLCB1YWRkciwKPj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVybSwgaW90bGJfZmlsZSk7Cj4+ PiArICAgICAgICAgICAgIGlmIChyZXQpIHsKPj4+ICsgICAgICAgICAgICAgICAgICAgICBpZiAo aW90bGJfZmlsZSkgewo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnB1dChpb3Rs Yl9maWxlLT5maWxlKTsKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtmcmVlKGlv dGxiX2ZpbGUpOwo+Pj4gKyAgICAgICAgICAgICAgICAgICAgIH0KPj4+ICsgICAgICAgICAgICAg ICAgICAgICBnb3RvIGVycjsKPj4+ICsgICAgICAgICAgICAgfQo+Pj4gKyAgICAgICAgICAgICBz aXplIC09IG1hcF9zaXplOwo+Pj4gKyAgICAgICAgICAgICB1YWRkciArPSBtYXBfc2l6ZTsKPj4+ ICsgICAgICAgICAgICAgbWFwX2lvdmEgKz0gbWFwX3NpemU7Cj4+PiArICAgICB9Cj4+PiArICAg ICByZXR1cm4gMDsKPj4+ICtlcnI6Cj4+PiArICAgICB2aG9zdF92ZHBhX3VubWFwKHYsIGlvdmEs IG1hcF9pb3ZhIC0gaW92YSk7Cj4+PiArICAgICByZXR1cm4gcmV0Owo+Pj4gK30KPj4+ICsKPj4+ ICAgIHN0YXRpYyBpbnQgdmhvc3RfdmRwYV9wcm9jZXNzX2lvdGxiX3VwZGF0ZShzdHJ1Y3Qgdmhv c3RfdmRwYSAqdiwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCB2aG9zdF9pb3RsYl9tc2cgKm1zZykKPj4+ICAgIHsKPj4+IEBAIC02MTUsOCArNjY1 LDggQEAgc3RhdGljIGludCB2aG9zdF92ZHBhX3Byb2Nlc3NfaW90bGJfdXBkYXRlKHN0cnVjdCB2 aG9zdF92ZHBhICp2LAo+Pj4gICAgICAgICAgICAgICAgcmV0dXJuIC1FRVhJU1Q7Cj4+Pgo+Pj4g ICAgICAgIGlmICh2ZHBhLT5zdmEpCj4+PiAtICAgICAgICAgICAgIHJldHVybiB2aG9zdF92ZHBh X21hcCh2LCBtc2ctPmlvdmEsIG1zZy0+c2l6ZSwKPj4+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1zZy0+dWFkZHIsIG1zZy0+cGVybSk7Cj4+PiArICAgICAgICAgICAgIHJl dHVybiB2aG9zdF92ZHBhX3N2YV9tYXAodiwgbXNnLT5pb3ZhLCBtc2ctPnNpemUsCj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnLT51YWRkciwgbXNnLT5wZXJt KTsKPj4KPj4gU28gSSB0aGluayBpdCdzIGJldHRlciBzcXVhc2ggdmhvc3RfdmRwYV9zdmFfbWFw KCkgYW5kIHJlbGF0ZWQgY2hhbmdlcwo+PiBpbnRvIHByZXZpb3VzIHBhdGNoLgo+Pgo+IE9LLCBz byB0aGUgb3JkZXIgb2YgdGhlIHBhdGNoZXMgaXM6Cj4gMSkgb3BhcXVlIHBvaW50ZXIKPiAyKSB2 YSBzdXBwb3J0ICsgdm1hIHN0dWZmcz8KPgo+IElzIGl0IE9LPwoKCkZpbmUgd2l0aCBtZS4KCgo+ Cj4+PiAgICAgICAgLyogTGltaXQgdGhlIHVzZSBvZiBtZW1vcnkgZm9yIGJvb2trZWVwaW5nICov Cj4+PiAgICAgICAgcGFnZV9saXN0ID0gKHN0cnVjdCBwYWdlICoqKSBfX2dldF9mcmVlX3BhZ2Uo R0ZQX0tFUk5FTCk7Cj4+PiBAQCAtNjcxLDcgKzcyMSw3IEBAIHN0YXRpYyBpbnQgdmhvc3RfdmRw YV9wcm9jZXNzX2lvdGxiX3VwZGF0ZShzdHJ1Y3Qgdmhvc3RfdmRwYSAqdiwKPj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjc2l6ZSA9IChsYXN0X3BmbiAtIG1hcF9wZm4gKyAxKSA8 PCBQQUdFX1NISUZUOwo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IHZo b3N0X3ZkcGFfbWFwKHYsIGlvdmEsIGNzaXplLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcF9wZm4gPDwgUEFHRV9TSElGVCwKPj4+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZy0+cGVy bSk7Cj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtc2ctPnBlcm0sIE5VTEwpOwo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IChyZXQpIHsKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qCj4+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBVbnBpbiB0aGUgcGFn ZXMgdGhhdCBhcmUgbGVmdCB1bm1hcHBlZAo+Pj4gQEAgLTcwMCw3ICs3NTAsNyBAQCBzdGF0aWMg aW50IHZob3N0X3ZkcGFfcHJvY2Vzc19pb3RsYl91cGRhdGUoc3RydWN0IHZob3N0X3ZkcGEgKnYs Cj4+Pgo+Pj4gICAgICAgIC8qIFBpbiB0aGUgcmVzdCBjaHVuayAqLwo+Pj4gICAgICAgIHJldCA9 IHZob3N0X3ZkcGFfbWFwKHYsIGlvdmEsIChsYXN0X3BmbiAtIG1hcF9wZm4gKyAxKSA8PCBQQUdF X1NISUZULAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwX3BmbiA8PCBQQUdFX1NI SUZULCBtc2ctPnBlcm0pOwo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwX3BmbiA8 PCBQQUdFX1NISUZULCBtc2ctPnBlcm0sIE5VTEwpOwo+Pj4gICAgb3V0Ogo+Pj4gICAgICAgIGlm IChyZXQpIHsKPj4+ICAgICAgICAgICAgICAgIGlmIChuY2h1bmtzKSB7Cj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy92aG9zdC92aG9zdC5jIGIvZHJpdmVycy92aG9zdC92aG9zdC5jCj4+PiBpbmRl eCBhMjYyZTEyYzZkYzIuLjEyMGRkNWIzYzExOSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvdmhv c3Qvdmhvc3QuYwo+Pj4gKysrIGIvZHJpdmVycy92aG9zdC92aG9zdC5jCj4+PiBAQCAtMTEwNCw3 ICsxMTA0LDcgQEAgc3RhdGljIGludCB2aG9zdF9wcm9jZXNzX2lvdGxiX21zZyhzdHJ1Y3Qgdmhv c3RfZGV2ICpkZXYsCj4+PiAgICAgICAgICAgICAgICB2aG9zdF92cV9tZXRhX3Jlc2V0KGRldik7 Cj4+PiAgICAgICAgICAgICAgICBpZiAodmhvc3RfaW90bGJfYWRkX3JhbmdlKGRldi0+aW90bGIs IG1zZy0+aW92YSwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bXNnLT5pb3ZhICsgbXNnLT5zaXplIC0gMSwKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtc2ctPnVhZGRyLCBtc2ctPnBlcm0pKSB7Cj4+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnLT51YWRkciwgbXNnLT5wZXJtLCBOVUxMKSkg ewo+Pj4gICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAtRU5PTUVNOwo+Pj4gICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsKPj4+ICAgICAgICAgICAgICAgIH0KPj4+IEBAIC0xNDUwLDcg KzE0NTAsNyBAQCBzdGF0aWMgbG9uZyB2aG9zdF9zZXRfbWVtb3J5KHN0cnVjdCB2aG9zdF9kZXYg KmQsIHN0cnVjdCB2aG9zdF9tZW1vcnkgX191c2VyICptKQo+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZWdpb24tPmd1ZXN0X3BoeXNfYWRkciArCj4+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbi0+bWVtb3J5X3NpemUg LSAxLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpb24t PnVzZXJzcGFjZV9hZGRyLAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFZIT1NUX01BUF9SVykpCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVkhPU1RfTUFQX1JXLCBOVUxMKSkKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgZ290 byBlcnI7Cj4+PiAgICAgICAgfQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3Zk cGEuaCBiL2luY2x1ZGUvbGludXgvdmRwYS5oCj4+PiBpbmRleCBmODY4Njk2NTE2MTQuLmIyNjRj NjI3ZTk0YiAxMDA2NDQKPj4+IC0tLSBhL2luY2x1ZGUvbGludXgvdmRwYS5oCj4+PiArKysgYi9p bmNsdWRlL2xpbnV4L3ZkcGEuaAo+Pj4gQEAgLTE4OSw2ICsxODksNyBAQCBzdHJ1Y3QgdmRwYV9p b3ZhX3JhbmdlIHsKPj4+ICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBAc2l6ZTogc2l6 ZSBvZiB0aGUgYXJlYQo+Pj4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIEBwYTogcGh5 c2ljYWwgYWRkcmVzcyBmb3IgdGhlIG1hcAo+Pj4gICAgICogICAgICAgICAgICAgICAgICAgICAg ICAgIEBwZXJtOiBkZXZpY2UgYWNjZXNzIHBlcm1pc3Npb24gKFZIT1NUX01BUF9YWCkKPj4+ICsg KiAgICAgICAgICAgICAgICAgICAgICAgICAgIEBvcGFxdWU6IHRoZSBvcGFxdWUgcG9pbnRlciBm b3IgdGhlIG1hcHBpbmcKPj4+ICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm5z IGludGVnZXI6IHN1Y2Nlc3MgKDApIG9yIGVycm9yICg8IDApCj4+PiAgICAgKiBAZG1hX3VubWFw OiAgICAgICAgICAgICAgICAgICAgICBVbm1hcCBhbiBhcmVhIG9mIElPVkEgKG9wdGlvbmFsIGJ1 dAo+Pj4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIG11c3QgYmUgaW1wbGVtZW50ZWQg d2l0aCBkbWFfbWFwKQo+Pj4gQEAgLTI0Myw3ICsyNDQsNyBAQCBzdHJ1Y3QgdmRwYV9jb25maWdf b3BzIHsKPj4+ICAgICAgICAvKiBETUEgb3BzICovCj4+PiAgICAgICAgaW50ICgqc2V0X21hcCko c3RydWN0IHZkcGFfZGV2aWNlICp2ZGV2LCBzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxiKTsKPj4+ ICAgICAgICBpbnQgKCpkbWFfbWFwKShzdHJ1Y3QgdmRwYV9kZXZpY2UgKnZkZXYsIHU2NCBpb3Zh LCB1NjQgc2l6ZSwKPj4+IC0gICAgICAgICAgICAgICAgICAgIHU2NCBwYSwgdTMyIHBlcm0pOwo+ Pj4gKyAgICAgICAgICAgICAgICAgICAgdTY0IHBhLCB1MzIgcGVybSwgdm9pZCAqb3BhcXVlKTsK Pj4+ICAgICAgICBpbnQgKCpkbWFfdW5tYXApKHN0cnVjdCB2ZHBhX2RldmljZSAqdmRldiwgdTY0 IGlvdmEsIHU2NCBzaXplKTsKPj4+Cj4+PiAgICAgICAgLyogRnJlZSBkZXZpY2UgcmVzb3VyY2Vz ICovCj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC92aG9zdF9pb3RsYi5oIGIvaW5jbHVk ZS9saW51eC92aG9zdF9pb3RsYi5oCj4+PiBpbmRleCA2YjA5Yjc4NmE3NjIuLjY2YTUwYzExYzhj YSAxMDA2NDQKPj4+IC0tLSBhL2luY2x1ZGUvbGludXgvdmhvc3RfaW90bGIuaAo+Pj4gKysrIGIv aW5jbHVkZS9saW51eC92aG9zdF9pb3RsYi5oCj4+PiBAQCAtNCw2ICs0LDExIEBACj4+Pgo+Pj4g ICAgI2luY2x1ZGUgPGxpbnV4L2ludGVydmFsX3RyZWVfZ2VuZXJpYy5oPgo+Pj4KPj4+ICtzdHJ1 Y3Qgdmhvc3RfaW90bGJfZmlsZSB7Cj4+PiArICAgICBzdHJ1Y3QgZmlsZSAqZmlsZTsKPj4+ICsg ICAgIHU2NCBvZmZzZXQ7Cj4+PiArfTsKPj4KPj4gSSB0aGluayB3ZSdkIGJldHRlciBlaXRoZXI6 Cj4+Cj4+IDEpIHNpbXBseSB1c2Ugc3RydWN0IHZob3N0X2lvdGxiX2ZpbGUgKiBpbnN0ZWFkIG9m IHZvaWQgKm9wYXF1ZSBmb3IKPj4gdmhvc3RfaW90bGJfbWFwCj4+Cj4+IG9yCj4+Cj4+IDIpcmVu YW1lIGFuZCBtb3ZlIHRoZSB2aG9zdF9pb3RsYl9maWxlIHRvIHZkcGEKPj4KPj4gMikgbG9va3Mg YmV0dGVyIHNpbmNlIHdlIHdhbnQgdG8gbGV0IHZob3N0IGlvdGxiIHRvIGNhcnJ5IGFueSB0eXBl IG9mCj4+IGNvbnRleHQgKG9wYXF1ZSBwb2ludGVyKQo+Pgo+IEkgYWdyZWUuIFNvIHdlIG5lZWQg dG8gaW50cm9kdWNlIHN0cnVjdCB2ZHBhX2lvdGxiX2ZpbGUgaW4KPiBpbmNsdWRlL2xpbnV4L3Zk cGEuaCwgcmlnaHQ/CgoKWWVzLgoKCj4KPj4gQW5kIGlmIHdlIGRvIHRoaXMsIHRoZSBtb2RpZmlj YXRpb24gb2YgdmRwYV9jb25maWdfb3BzIGRlc2VydmVzIGEKPj4gc2VwYXJhdGUgcGF0Y2guCj4+ Cj4gU29ycnksIEkgZGlkbid0IGdldCB5b3UgaGVyZS4gV2hhdCBkbyB5b3UgbWVhbiBieSB0aGUg bW9kaWZpY2F0aW9uIG9mCj4gdmRwYV9jb25maWdfb3BzPyBEbyB5b3UgbWVhbiBhZGRpbmcgYW4g b3BhcXVlIHBvaW50ZXIgdG8gb3BzLmRtYV9tYXA/CgoKWWVzLgoKVGhhbmtzCgoKPgo+IFRoYW5r cywKPiBZb25namkKPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KVmlydHVhbGl6YXRpb24gbWFpbGluZyBsaXN0ClZpcnR1YWxpemF0aW9uQGxpc3RzLmxp bnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWls bWFuL2xpc3RpbmZvL3ZpcnR1YWxpemF0aW9u