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=-13.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 C656CC433E0 for ; Wed, 23 Dec 2020 07:53:16 +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 5813020723 for ; Wed, 23 Dec 2020 07:53:16 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5813020723 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 D6F398722B; Wed, 23 Dec 2020 07:53:15 +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 6GZ79gaeHynn; Wed, 23 Dec 2020 07:53:14 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by hemlock.osuosl.org (Postfix) with ESMTP id C056687215; Wed, 23 Dec 2020 07:53:14 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 827F6C1825; Wed, 23 Dec 2020 07:53:14 +0000 (UTC) Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by lists.linuxfoundation.org (Postfix) with ESMTP id F0881C0893 for ; Wed, 23 Dec 2020 07:53:13 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id D844F85D44 for ; Wed, 23 Dec 2020 07:53:13 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qpXsJCGmrJVf for ; Wed, 23 Dec 2020 07:53:13 +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 fraxinus.osuosl.org (Postfix) with ESMTPS id DF2CD85D40 for ; Wed, 23 Dec 2020 07:53:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1608709991; 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=2LuEJpdhogjyey+E0kWnGpg+oVclCEiACHdXhHbTHKE=; b=ffPxdPQz2Ayq+ugZZXcEAbCK7kxSKc8XysSgNFSj2WL8EmMQTUC69qj1u3ag03nbMO3N0w atnzLHhYiqzyBzgJwwNfNAgFBOo8snb4WfhkXz9CPqahjc7Es2y7B8l4zrVKy6cR0Dqa8k 1hvGaOi4He7wK6e3ZcoivRkIYQY2Xkk= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-412-vzuBZK0EMFmlGv4lr4LRow-1; Wed, 23 Dec 2020 02:53:09 -0500 X-MC-Unique: vzuBZK0EMFmlGv4lr4LRow-1 Received: by mail-wm1-f70.google.com with SMTP id k67so2749687wmk.5 for ; Tue, 22 Dec 2020 23:53:09 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=2LuEJpdhogjyey+E0kWnGpg+oVclCEiACHdXhHbTHKE=; b=UJux2mMAg2cuH9cU78XlWF1CfiNb/Y8vwZY92ECwlZC2YLRwG1n/lvRaFtFJLGNYSS leF6cJ0UTLyTYC9F1qeLFCooGl55y1GOvZHckryzCxMGcQSr2vgI332R2IPq/bhev5D8 /1DdCCWZLvNRL8/dpYVCN0n3zVm6lmRJQVkHeLE3qNq8hUv8Z7NOeAgVnKME47a1px1C T4xUyYRrVYQWqOOAUOQT0gV/tLfdIDOKeCcNUXAYmWg1Q9WR95Hw3tTsd7v+2E1QdhTW cF5Qy+TOoX/5ep83TV1MzOyrkHDWdJF50w01jaMOGX5O/oKNDCYGWHxBlG8zS0AdSEz/ 4fHA== X-Gm-Message-State: AOAM531JeIhWK2msdQ0LcBiaFnLsr92Le27C8ikoSawN8X9aiDKh2gd6 UXT1UdQ8MdG6K9l2E7vHJ5gmGfb0Y6c7aQ9Hx5/PQ7hQn7adTFVm1cilmwek44a+zU++8/5CLeP 4Fcy+2iTdr6sVelg/CXPoa5lM5AxulEfEUyj2KwrLoA== X-Received: by 2002:a1c:4184:: with SMTP id o126mr24755254wma.107.1608709988449; Tue, 22 Dec 2020 23:53:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJw9i3zfmonQx+FiljQTjSpvG+qZI7YRQY/uMvSgDjYiUp+dKxN/3gTLUAxyGcoZykR1prG1Ig== X-Received: by 2002:a1c:4184:: with SMTP id o126mr24755228wma.107.1608709988213; Tue, 22 Dec 2020 23:53:08 -0800 (PST) Received: from steredhat (host-79-34-249-199.business.telecomitalia.it. [79.34.249.199]) by smtp.gmail.com with ESMTPSA id 189sm31263380wma.22.2020.12.22.23.53.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Dec 2020 23:53:07 -0800 (PST) Date: Wed, 23 Dec 2020 08:53:05 +0100 From: Stefano Garzarella To: Jason Wang Subject: Re: [PATCH] vdpa_sim: use iova module to allocate IOVA addresses Message-ID: <20201223075305.7nzfihyhedn6cmet@steredhat> References: <20201222174551.133678-1-sgarzare@redhat.com> MIME-Version: 1.0 In-Reply-To: Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=sgarzare@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline Cc: Max Gurtovoy , Laurent Vivier , "Michael S. Tsirkin" , linux-kernel@vger.kernel.org, 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" T24gV2VkLCBEZWMgMjMsIDIwMjAgYXQgMTE6NDM6NDBBTSArMDgwMCwgSmFzb24gV2FuZyB3cm90 ZToKPgo+T24gMjAyMC8xMi8yMyDkuIrljYgxOjQ1LCBTdGVmYW5vIEdhcnphcmVsbGEgd3JvdGU6 Cj4+VGhlIGlkZW50aWNhbCBtYXBwaW5nIHVzZWQgdW50aWwgbm93IGNyZWF0ZWQgaXNzdWVzIHdo ZW4gbWFwcGluZwo+PmRpZmZlcmVudCB2aXJ0dWFsIHBhZ2VzIHdpdGggdGhlIHNhbWUgcGh5c2lj YWwgYWRkcmVzcy4KPj5UbyBzb2x2ZSB0aGlzIGlzc3VlLCB3ZSBjYW4gdXNlIHRoZSBpb3ZhIG1v ZHVsZSwgdG8gaGFuZGxlIHRoZSBJT1ZBCj4+YWxsb2NhdGlvbi4KPj5Gb3Igc2VtcGxpY2l0eSB3 ZSB1c2UgYW4gSU9WQSBhbGxvY2F0b3Igd2l0aCBieXRlIGdyYW51bGFyaXR5Lgo+Cj4KPlNob3Vs ZCBiZSBzaW1wbGljaXR5LCBzbyBkaWQgb25lIGNvbW1lbnQgYmVsb3cuCgpSaWdodCwgSSdsbCBm aXggaGVyZSBhbmQgaW4gdGhlIGNvbW1lbnQgYmVsb3cuCgo+Cj4KPj4KPj5XZSBhZGQgdHdvIG5l dyBmdW5jdGlvbnMsIHZkcGFzaW1fbWFwX3JhbmdlKCkgYW5kIHZkcGFzaW1fdW5tYXBfcmFuZ2Uo KSwKPj50byBoYW5kbGUgdGhlIElPVkEgYWxsb2NhdGlvbiBhbmQgdGhlIHJlZ2lzdHJhdGlvbiBp bnRvIHRoZSBJT01NVS9JT1RMQi4KPj5UaGVzZSBmdW5jdGlvbnMgYXJlIHVzZWQgYnkgZG1hX21h cF9vcHMgY2FsbGJhY2tzLgo+Pgo+PlNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gR2FyemFyZWxsYSA8 c2dhcnphcmVAcmVkaGF0LmNvbT4KPgo+Cj5GZXcgbml0cywgYnV0Ogo+Cj5BY2tlZC1ieTogSmFz b24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KClRoYW5rcyEKCj4KPgo+Pi0tLQo+PiAgZHJp dmVycy92ZHBhL3ZkcGFfc2ltL3ZkcGFfc2ltLmggfCAgIDIgKwo+PiAgZHJpdmVycy92ZHBhL3Zk cGFfc2ltL3ZkcGFfc2ltLmMgfCAxMDggKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ PiAgZHJpdmVycy92ZHBhL0tjb25maWcgICAgICAgICAgICAgfCAgIDEgKwo+PiAgMyBmaWxlcyBj aGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspLCA0MiBkZWxldGlvbnMoLSkKPj4KPj5kaWZmIC0tZ2l0 IGEvZHJpdmVycy92ZHBhL3ZkcGFfc2ltL3ZkcGFfc2ltLmggYi9kcml2ZXJzL3ZkcGEvdmRwYV9z aW0vdmRwYV9zaW0uaAo+PmluZGV4IGIwMjE0MjI5M2Q1Yi4uNmVmZTIwNWU1ODNlIDEwMDY0NAo+ Pi0tLSBhL2RyaXZlcnMvdmRwYS92ZHBhX3NpbS92ZHBhX3NpbS5oCj4+KysrIGIvZHJpdmVycy92 ZHBhL3ZkcGFfc2ltL3ZkcGFfc2ltLmgKPj5AQCAtNiw2ICs2LDcgQEAKPj4gICNpZm5kZWYgX1ZE UEFfU0lNX0gKPj4gICNkZWZpbmUgX1ZEUEFfU0lNX0gKPj4rI2luY2x1ZGUgPGxpbnV4L2lvdmEu aD4KPj4gICNpbmNsdWRlIDxsaW51eC92cmluZ2guaD4KPj4gICNpbmNsdWRlIDxsaW51eC92ZHBh Lmg+Cj4+ICAjaW5jbHVkZSA8bGludXgvdmlydGlvX2J5dGVvcmRlci5oPgo+PkBAIC01NSw2ICs1 Niw3IEBAIHN0cnVjdCB2ZHBhc2ltIHsKPj4gIAkvKiB2aXJ0aW8gY29uZmlnIGFjY29yZGluZyB0 byBkZXZpY2UgdHlwZSAqLwo+PiAgCXZvaWQgKmNvbmZpZzsKPj4gIAlzdHJ1Y3Qgdmhvc3RfaW90 bGIgKmlvbW11Owo+PisJc3RydWN0IGlvdmFfZG9tYWluIGlvdmE7Cj4+ICAJdm9pZCAqYnVmZmVy Owo+PiAgCXUzMiBzdGF0dXM7Cj4+ICAJdTMyIGdlbmVyYXRpb247Cj4+ZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdmRwYS92ZHBhX3NpbS92ZHBhX3NpbS5jIGIvZHJpdmVycy92ZHBhL3ZkcGFfc2ltL3Zk cGFfc2ltLmMKPj5pbmRleCBiM2ZjYzY3YmZkZjAuLjM0MWI5ZGFmMmVhNCAxMDA2NDQKPj4tLS0g YS9kcml2ZXJzL3ZkcGEvdmRwYV9zaW0vdmRwYV9zaW0uYwo+PisrKyBiL2RyaXZlcnMvdmRwYS92 ZHBhX3NpbS92ZHBhX3NpbS5jCj4+QEAgLTE3LDYgKzE3LDcgQEAKPj4gICNpbmNsdWRlIDxsaW51 eC92cmluZ2guaD4KPj4gICNpbmNsdWRlIDxsaW51eC92ZHBhLmg+Cj4+ICAjaW5jbHVkZSA8bGlu dXgvdmhvc3RfaW90bGIuaD4KPj4rI2luY2x1ZGUgPGxpbnV4L2lvdmEuaD4KPj4gICNpbmNsdWRl ICJ2ZHBhX3NpbS5oIgo+PkBAIC0xMjgsMzAgKzEyOSw1NyBAQCBzdGF0aWMgaW50IGRpcl90b19w ZXJtKGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikKPj4gIAlyZXR1cm4gcGVybTsKPj4gIH0K Pj4rc3RhdGljIGRtYV9hZGRyX3QgdmRwYXNpbV9tYXBfcmFuZ2Uoc3RydWN0IHZkcGFzaW0gKnZk cGFzaW0sIHBoeXNfYWRkcl90IHBhZGRyLAo+PisJCQkJICAgIHNpemVfdCBzaXplLCB1bnNpZ25l ZCBpbnQgcGVybSkKPj4rewo+PisJc3RydWN0IGlvdmEgKmlvdmE7Cj4+KwlkbWFfYWRkcl90IGRt YV9hZGRyOwo+PisJaW50IHJldDsKPj4rCj4+KwkvKiBXZSBzZXQgdGhlIGxpbWl0X3BmbiB0byB0 aGUgbWF4aW11bSAofjBVTCAtIDEpICovCj4+Kwlpb3ZhID0gYWxsb2NfaW92YSgmdmRwYXNpbS0+ aW92YSwgc2l6ZSwgfjBVTCAtIDEsIHRydWUpOwo+Cj4KPkxldCdzIHVzZSBVTE9OR19NQVg/CgpE ZWZpbml0ZWx5LCBtdWNoIGJldHRlciEKCj4KPgo+PisJaWYgKCFpb3ZhKQo+PisJCXJldHVybiBE TUFfTUFQUElOR19FUlJPUjsKPj4rCj4+KwlkbWFfYWRkciA9IGlvdmFfZG1hX2FkZHIoJnZkcGFz aW0tPmlvdmEsIGlvdmEpOwo+PisKPj4rCXNwaW5fbG9jaygmdmRwYXNpbS0+aW9tbXVfbG9jayk7 Cj4+KwlyZXQgPSB2aG9zdF9pb3RsYl9hZGRfcmFuZ2UodmRwYXNpbS0+aW9tbXUsICh1NjQpZG1h X2FkZHIsCj4+KwkJCQkgICAgKHU2NClkbWFfYWRkciArIHNpemUgLSAxLCAodTY0KXBhZGRyLCBw ZXJtKTsKPj4rCXNwaW5fdW5sb2NrKCZ2ZHBhc2ltLT5pb21tdV9sb2NrKTsKPj4rCj4+KwlpZiAo cmV0KSB7Cj4+KwkJX19mcmVlX2lvdmEoJnZkcGFzaW0tPmlvdmEsIGlvdmEpOwo+PisJCXJldHVy biBETUFfTUFQUElOR19FUlJPUjsKPj4rCX0KPj4rCj4+KwlyZXR1cm4gZG1hX2FkZHI7Cj4+K30K Pj4rCj4+K3N0YXRpYyB2b2lkIHZkcGFzaW1fdW5tYXBfcmFuZ2Uoc3RydWN0IHZkcGFzaW0gKnZk cGFzaW0sIGRtYV9hZGRyX3QgZG1hX2FkZHIsCj4+KwkJCQlzaXplX3Qgc2l6ZSkKPj4rewo+PisJ c3Bpbl9sb2NrKCZ2ZHBhc2ltLT5pb21tdV9sb2NrKTsKPj4rCXZob3N0X2lvdGxiX2RlbF9yYW5n ZSh2ZHBhc2ltLT5pb21tdSwgKHU2NClkbWFfYWRkciwKPj4rCQkJICAgICAgKHU2NClkbWFfYWRk ciArIHNpemUgLSAxKTsKPj4rCXNwaW5fdW5sb2NrKCZ2ZHBhc2ltLT5pb21tdV9sb2NrKTsKPj4r Cj4+KwlmcmVlX2lvdmEoJnZkcGFzaW0tPmlvdmEsIGlvdmFfcGZuKCZ2ZHBhc2ltLT5pb3ZhLCBk bWFfYWRkcikpOwo+Pit9Cj4+Kwo+PiAgc3RhdGljIGRtYV9hZGRyX3QgdmRwYXNpbV9tYXBfcGFn ZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAo+PiAgCQkJCSAgIHVuc2ln bmVkIGxvbmcgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwKPj4gIAkJCQkgICBlbnVtIGRtYV9kYXRhX2Rp cmVjdGlvbiBkaXIsCj4+ICAJCQkJICAgdW5zaWduZWQgbG9uZyBhdHRycykKPj4gIHsKPj4gIAlz dHJ1Y3QgdmRwYXNpbSAqdmRwYXNpbSA9IGRldl90b19zaW0oZGV2KTsKPj4tCXN0cnVjdCB2aG9z dF9pb3RsYiAqaW9tbXUgPSB2ZHBhc2ltLT5pb21tdTsKPj4tCXU2NCBwYSA9IChwYWdlX3RvX3Bm bihwYWdlKSA8PCBQQUdFX1NISUZUKSArIG9mZnNldDsKPj4tCWludCByZXQsIHBlcm0gPSBkaXJf dG9fcGVybShkaXIpOwo+PisJcGh5c19hZGRyX3QgcGFkZHIgPSBwYWdlX3RvX3BoeXMocGFnZSkg KyBvZmZzZXQ7Cj4+KwlpbnQgcGVybSA9IGRpcl90b19wZXJtKGRpcik7Cj4+ICAJaWYgKHBlcm0g PCAwKQo+PiAgCQlyZXR1cm4gRE1BX01BUFBJTkdfRVJST1I7Cj4+LQkvKiBGb3Igc2ltcGxpY2l0 eSwgdXNlIGlkZW50aWNhbCBtYXBwaW5nIHRvIGF2b2lkIGUuZyBpb3ZhCj4+LQkgKiBhbGxvY2F0 b3IuCj4+LQkgKi8KPj4tCXNwaW5fbG9jaygmdmRwYXNpbS0+aW9tbXVfbG9jayk7Cj4+LQlyZXQg PSB2aG9zdF9pb3RsYl9hZGRfcmFuZ2UoaW9tbXUsIHBhLCBwYSArIHNpemUgLSAxLAo+Pi0JCQkJ ICAgIHBhLCBkaXJfdG9fcGVybShkaXIpKTsKPj4tCXNwaW5fdW5sb2NrKCZ2ZHBhc2ltLT5pb21t dV9sb2NrKTsKPj4tCWlmIChyZXQpCj4+LQkJcmV0dXJuIERNQV9NQVBQSU5HX0VSUk9SOwo+Pi0K Pj4tCXJldHVybiAoZG1hX2FkZHJfdCkocGEpOwo+PisJcmV0dXJuIHZkcGFzaW1fbWFwX3Jhbmdl KHZkcGFzaW0sIHBhZGRyLCBzaXplLCBwZXJtKTsKPj4gIH0KPj4gIHN0YXRpYyB2b2lkIHZkcGFz aW1fdW5tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGRtYV9hZGRyX3QgZG1hX2FkZHIsCj4+ QEAgLTE1OSwxMiArMTg3LDggQEAgc3RhdGljIHZvaWQgdmRwYXNpbV91bm1hcF9wYWdlKHN0cnVj dCBkZXZpY2UgKmRldiwgZG1hX2FkZHJfdCBkbWFfYWRkciwKPj4gIAkJCSAgICAgICB1bnNpZ25l ZCBsb25nIGF0dHJzKQo+PiAgewo+PiAgCXN0cnVjdCB2ZHBhc2ltICp2ZHBhc2ltID0gZGV2X3Rv X3NpbShkZXYpOwo+Pi0Jc3RydWN0IHZob3N0X2lvdGxiICppb21tdSA9IHZkcGFzaW0tPmlvbW11 Owo+Pi0Jc3Bpbl9sb2NrKCZ2ZHBhc2ltLT5pb21tdV9sb2NrKTsKPj4tCXZob3N0X2lvdGxiX2Rl bF9yYW5nZShpb21tdSwgKHU2NClkbWFfYWRkciwKPj4tCQkJICAgICAgKHU2NClkbWFfYWRkciAr IHNpemUgLSAxKTsKPj4tCXNwaW5fdW5sb2NrKCZ2ZHBhc2ltLT5pb21tdV9sb2NrKTsKPj4rCXZk cGFzaW1fdW5tYXBfcmFuZ2UodmRwYXNpbSwgZG1hX2FkZHIsIHNpemUpOwo+PiAgfQo+PiAgc3Rh dGljIHZvaWQgKnZkcGFzaW1fYWxsb2NfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXpl X3Qgc2l6ZSwKPj5AQCAtMTcyLDI3ICsxOTYsMjIgQEAgc3RhdGljIHZvaWQgKnZkcGFzaW1fYWxs b2NfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKPj4gIAkJCQkgICAg dW5zaWduZWQgbG9uZyBhdHRycykKPj4gIHsKPj4gIAlzdHJ1Y3QgdmRwYXNpbSAqdmRwYXNpbSA9 IGRldl90b19zaW0oZGV2KTsKPj4tCXN0cnVjdCB2aG9zdF9pb3RsYiAqaW9tbXUgPSB2ZHBhc2lt LT5pb21tdTsKPj4tCXZvaWQgKmFkZHIgPSBrbWFsbG9jKHNpemUsIGZsYWcpOwo+Pi0JaW50IHJl dDsKPj4rCXBoeXNfYWRkcl90IHBhZGRyOwo+PisJdm9pZCAqYWRkcjsKPj4tCXNwaW5fbG9jaygm dmRwYXNpbS0+aW9tbXVfbG9jayk7Cj4+KwlhZGRyID0ga21hbGxvYyhzaXplLCBmbGFnKTsKPj4g IAlpZiAoIWFkZHIpIHsKPj4gIAkJKmRtYV9hZGRyID0gRE1BX01BUFBJTkdfRVJST1I7Cj4+LQl9 IGVsc2Ugewo+Pi0JCXU2NCBwYSA9IHZpcnRfdG9fcGh5cyhhZGRyKTsKPj4tCj4+LQkJcmV0ID0g dmhvc3RfaW90bGJfYWRkX3JhbmdlKGlvbW11LCAodTY0KXBhLAo+Pi0JCQkJCSAgICAodTY0KXBh ICsgc2l6ZSAtIDEsCj4+LQkJCQkJICAgIHBhLCBWSE9TVF9NQVBfUlcpOwo+Pi0JCWlmIChyZXQp IHsKPj4tCQkJKmRtYV9hZGRyID0gRE1BX01BUFBJTkdfRVJST1I7Cj4+LQkJCWtmcmVlKGFkZHIp Owo+Pi0JCQlhZGRyID0gTlVMTDsKPj4tCQl9IGVsc2UKPj4tCQkJKmRtYV9hZGRyID0gKGRtYV9h ZGRyX3QpcGE7Cj4+KwkJcmV0dXJuIE5VTEw7Cj4+Kwl9Cj4+Kwo+PisJcGFkZHIgPSB2aXJ0X3Rv X3BoeXMoYWRkcik7Cj4+Kwo+PisJKmRtYV9hZGRyID0gdmRwYXNpbV9tYXBfcmFuZ2UodmRwYXNp bSwgcGFkZHIsIHNpemUsIFZIT1NUX01BUF9SVyk7Cj4+KwlpZiAoKmRtYV9hZGRyID09IERNQV9N QVBQSU5HX0VSUk9SKSB7Cj4+KwkJa2ZyZWUoYWRkcik7Cj4+KwkJcmV0dXJuIE5VTEw7Cj4+ICAJ fQo+Pi0Jc3Bpbl91bmxvY2soJnZkcGFzaW0tPmlvbW11X2xvY2spOwo+PiAgCXJldHVybiBhZGRy Owo+PiAgfQo+PkBAIC0yMDIsMTQgKzIyMSwxMCBAQCBzdGF0aWMgdm9pZCB2ZHBhc2ltX2ZyZWVf Y29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKPj4gIAkJCQkgIHVuc2ln bmVkIGxvbmcgYXR0cnMpCj4+ICB7Cj4+ICAJc3RydWN0IHZkcGFzaW0gKnZkcGFzaW0gPSBkZXZf dG9fc2ltKGRldik7Cj4+LQlzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvbW11ID0gdmRwYXNpbS0+aW9t bXU7Cj4+LQlzcGluX2xvY2soJnZkcGFzaW0tPmlvbW11X2xvY2spOwo+Pi0Jdmhvc3RfaW90bGJf ZGVsX3JhbmdlKGlvbW11LCAodTY0KWRtYV9hZGRyLAo+Pi0JCQkgICAgICAodTY0KWRtYV9hZGRy ICsgc2l6ZSAtIDEpOwo+Pi0Jc3Bpbl91bmxvY2soJnZkcGFzaW0tPmlvbW11X2xvY2spOwo+PisJ dmRwYXNpbV91bm1hcF9yYW5nZSh2ZHBhc2ltLCBkbWFfYWRkciwgc2l6ZSk7Cj4+LQlrZnJlZShw aHlzX3RvX3ZpcnQoKHVpbnRwdHJfdClkbWFfYWRkcikpOwo+PisJa2ZyZWUodmFkZHIpOwo+PiAg fQo+PiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyB2ZHBhc2ltX2RtYV9vcHMgPSB7 Cj4+QEAgLTI3MCw2ICsyODUsMTMgQEAgc3RydWN0IHZkcGFzaW0gKnZkcGFzaW1fY3JlYXRlKHN0 cnVjdCB2ZHBhc2ltX2Rldl9hdHRyICpkZXZfYXR0cikKPj4gIAlmb3IgKGkgPSAwOyBpIDwgZGV2 X2F0dHItPm52cXM7IGkrKykKPj4gIAkJdnJpbmdoX3NldF9pb3RsYigmdmRwYXNpbS0+dnFzW2ld LnZyaW5nLCB2ZHBhc2ltLT5pb21tdSk7Cj4+KwlyZXQgPSBpb3ZhX2NhY2hlX2dldCgpOwo+PisJ aWYgKHJldCkKPj4rCQlnb3RvIGVycl9pb21tdTsKPj4rCj4+KwkvKiBGb3Igc2VtcGxpY2l0eSB3 ZSB1c2UgYW4gSU9WQSBhbGxvY2F0b3Igd2l0aCBieXRlIGdyYW51bGFyaXR5ICovCj4KPgo+U2hv dWxkIGJlIHNpbXBsaWNpdHkuCgpGaXhlZCA6LSkKClRoYW5rcywKU3RlZmFubwoKPgo+VGhhbmtz Cj4KPgo+PisJaW5pdF9pb3ZhX2RvbWFpbigmdmRwYXNpbS0+aW92YSwgMSwgMCk7Cj4+Kwo+PiAg CXZkcGFzaW0tPnZkcGEuZG1hX2RldiA9IGRldjsKPj4gIAlyZXR1cm4gdmRwYXNpbTsKPj5AQCAt NTQwLDYgKzU2Miw4IEBAIHN0YXRpYyB2b2lkIHZkcGFzaW1fZnJlZShzdHJ1Y3QgdmRwYV9kZXZp Y2UgKnZkcGEpCj4+ICAJc3RydWN0IHZkcGFzaW0gKnZkcGFzaW0gPSB2ZHBhX3RvX3NpbSh2ZHBh KTsKPj4gIAljYW5jZWxfd29ya19zeW5jKCZ2ZHBhc2ltLT53b3JrKTsKPj4rCXB1dF9pb3ZhX2Rv bWFpbigmdmRwYXNpbS0+aW92YSk7Cj4+Kwlpb3ZhX2NhY2hlX3B1dCgpOwo+PiAgCWt2ZnJlZSh2 ZHBhc2ltLT5idWZmZXIpOwo+PiAgCWlmICh2ZHBhc2ltLT5pb21tdSkKPj4gIAkJdmhvc3RfaW90 bGJfZnJlZSh2ZHBhc2ltLT5pb21tdSk7Cj4+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmRwYS9LY29u ZmlnIGIvZHJpdmVycy92ZHBhL0tjb25maWcKPj5pbmRleCA5MmE2Mzk2ZjhhNzMuLjg5NjVlMzcx NzIzMSAxMDA2NDQKPj4tLS0gYS9kcml2ZXJzL3ZkcGEvS2NvbmZpZwo+PisrKyBiL2RyaXZlcnMv dmRwYS9LY29uZmlnCj4+QEAgLTEzLDYgKzEzLDcgQEAgY29uZmlnIFZEUEFfU0lNCj4+ICAJZGVw ZW5kcyBvbiBSVU5USU1FX1RFU1RJTkdfTUVOVSAmJiBIQVNfRE1BCj4+ICAJc2VsZWN0IERNQV9P UFMKPj4gIAlzZWxlY3QgVkhPU1RfUklORwo+PisJc2VsZWN0IElPTU1VX0lPVkEKPj4gIAloZWxw Cj4+ICAJICBFbmFibGUgdGhpcyBtb2R1bGUgdG8gc3VwcG9ydCB2RFBBIGRldmljZSBzaW11bGF0 b3JzLiBUaGVzZSBkZXZpY2VzCj4+ICAJICBhcmUgdXNlZCBmb3IgdGVzdGluZywgcHJvdG90eXBp bmcgYW5kIGRldmVsb3BtZW50IG9mIHZEUEEuCj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClZpcnR1YWxpemF0aW9uIG1haWxpbmcgbGlzdApWaXJ0dWFs aXphdGlvbkBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91 bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby92aXJ0dWFsaXphdGlvbg==