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=-9.4 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 9F2D5C4360C for ; Thu, 26 Sep 2019 11:21:53 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 66B24217F4 for ; Thu, 26 Sep 2019 11:21:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="L5zcFhAf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 66B24217F4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iDRpt-0008SG-T3; Thu, 26 Sep 2019 11:21:25 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iDRps-0008Rd-Uw for xen-devel@lists.xenproject.org; Thu, 26 Sep 2019 11:21:24 +0000 X-Inumbo-ID: b7492da2-e04f-11e9-bf31-bc764e2007e4 Received: from mail-lj1-x244.google.com (unknown [2a00:1450:4864:20::244]) by localhost (Halon) with ESMTPS id b7492da2-e04f-11e9-bf31-bc764e2007e4; Thu, 26 Sep 2019 11:21:00 +0000 (UTC) Received: by mail-lj1-x244.google.com with SMTP id b20so1760940ljj.5 for ; Thu, 26 Sep 2019 04:20:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ygXMAlCnrfkzZBZu6m4j35jgHRta1mO3lz0G6znyQH0=; b=L5zcFhAfaXRpm+Kzg/OWNZGwkMzhJXtXxDxnqLrzd0YBWte2T82pvZCrjFhUgBbkFW czk6sd83csCdg1ivUbietdJiV2DMZecRrHPMqljrxR83uoKT1U7vB7Zi2d6VAhLOZWL2 xV10miak2K8XHsfpMX4hpRhW3t5B8rKaTkMhxBm3WX8u2VQSnFO2UJJZLkol2zFHFtx6 JIgfUBqq5yCqahRxro62YtshZhULWd7wfDm5Qcg+auUwTNOE4Ap2DALYhwtvKA8UKD6G yn++wT/iOpxBdlpdvYH6TCJfAAjNWDLunwxw8bvBUf0XCnZDk54a+ufBvCM2ZA6jgiq4 lsvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ygXMAlCnrfkzZBZu6m4j35jgHRta1mO3lz0G6znyQH0=; b=nZ2k8VidJNCzmCt8i1RC86BVcxffX1eAlhPmfZyP99lphjKTtD6KYenjS9klw3ET+D gvuYJ7RQYbLAKn0DnaB+NvTzQHanVNetr+0yolsHsZBD+xfa6yCPuoHIA6AjYZN9Bqvg tzt4DVIXar6zN7eanVifCWnVKhaGAM37dxQXWObB82wP8c8DEhZxOmPFp3fXquRh5ji6 o6sDqsQHSwPO+TfGz9XxOGXRADmE7T9CPR3jm1bLFkqWdHPRTm/pHs7MWdw0TvlLMKO3 OeOMppH3CWtVutMbnB/UA6krGW0f8uvnWmFjbn5aO4b4uygtAmMYRIgaHjZsQO1EjKev C6yw== X-Gm-Message-State: APjAAAUmYqngwLImY+ZgAyiiJdRgrw0+DyYQbJ3lUAxr9hS5C1QFh2Wb E/xOZWjddOH4uKlB1FZ/IDlYGyfSqJM= X-Google-Smtp-Source: APXvYqwIYuLnmMwhb5mjdTfD3F6+GKI6A9DDx9gWy2PTsOIuaAW/77ffeS2Ucm9kez801S2tgY1v4A== X-Received: by 2002:a2e:4296:: with SMTP id h22mr2247567ljf.208.1569496858613; Thu, 26 Sep 2019 04:20:58 -0700 (PDT) Received: from otyshchenko.kyiv.epam.com (ll-22.209.223.85.sovam.net.ua. [85.223.209.22]) by smtp.gmail.com with ESMTPSA id n4sm526810lfi.63.2019.09.26.04.20.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 26 Sep 2019 04:20:58 -0700 (PDT) From: Oleksandr Tyshchenko To: xen-devel@lists.xenproject.org Date: Thu, 26 Sep 2019 14:20:31 +0300 Message-Id: <1569496834-7796-6-git-send-email-olekstysh@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1569496834-7796-1-git-send-email-olekstysh@gmail.com> References: <1569496834-7796-1-git-send-email-olekstysh@gmail.com> Subject: [Xen-devel] [PATCH V6 5/8] iommu/arm: Add lightweight iommu_fwspec support X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Oleksandr Tyshchenko , julien.grall@arm.com, sstabellini@kernel.org, volodymyr_babchuk@epam.com MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" RnJvbTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0uY29t PgoKV2UgbmVlZCB0byBoYXZlIHNvbWUgYWJzdHJhY3Qgd2F5IHRvIGFkZCBuZXcgZGV2aWNlIHRv IHRoZSBJT01NVQpiYXNlZCBvbiB0aGUgZ2VuZXJpYyBJT01NVSBEVCBiaW5kaW5ncyBbMV0gd2hp Y2ggY2FuIGJlIHVzZWQgZm9yCmJvdGggRFQgKHJpZ2h0IG5vdykgYW5kIEFDUEkgKGluIGZ1dHVy ZSkuCgpGb3IgdGhhdCByZWFzb24gd2UgY2FuIGJvcnJvdyB0aGUgaWRlYSB1c2VkIGluIExpbnV4 IHRoZXNlIGRheXMKY2FsbGVkICJpb21tdV9md3NwZWMiLiBIYXZpbmcgdGhpcyBpbiwgaXQgd2ls bCBiZSBwb3NzaWJsZQp0byBjb25maWd1cmUgSU9NTVUgbWFzdGVyIGludGVyZmFjZXMgb2YgdGhl IGRldmljZSAoZGV2aWNlIElEcykKZnJvbSBhIHNpbmdsZSBjb21tb24gcGxhY2UgYW5kIGF2b2lk IGtlZXBpbmcgYWxtb3N0IGlkZW50aWNhbCBsb29rLXVwCmltcGxlbWVudGF0aW9ucyBpbiBlYWNo IElPTU1VIGRyaXZlci4KClRoZXJlIGlzIG5vIG5lZWQgdG8gcG9ydCB0aGUgd2hvbGUgaW1wbGVt ZW50YXRpb24gb2YgImlvbW11X2Z3c3BlYyIKdG8gWGVuLCB3ZSBjb3VsZCwgcHJvYmFibHksIGVu ZCB1cCB3aXRoIGEgbXVjaCBzaW1wbGVyIHNvbHV0aW9uLApzb21lICJzdHJpcHBlZCBkb3duIiB2 ZXJzaW9uIHdoaWNoIGZpdHMgb3VyIHJlcXVpcmVtZW50cy4KClNvLCB0aGlzIHBhdGNoIGFkZHMg dGhlIGZvbGxvd2luZzoKMS4gQSBjb21tb24gc3RydWN0dXJlICJpb21tdV9md3NwZWMiIHRvIGhv bGQgdGhlIHRoZSBwZXItZGV2aWNlCiAgIGZpcm13YXJlIGRhdGEKMi4gTmV3IG1lbWJlciAiaW9t bXVfZndzcGVjIiBvZiBzdHJ1Y3QgZGV2aWNlCjMuIEZ1bmN0aW9ucy9oZWxwZXJzIHRvIGRlYWwg d2l0aCAiZGV2LT5pb21tdV9md3NwZWMiCgpJdCBzaG91bGQgYmUgbm90ZWQgdGhhdCBpbiBjb21w YXJpc29uIG9mIHRoZSBvcmlnaW5hbCAiaW9tbXVfZndzcGVjIgpYZW4ncyB2YXJpYW50IGRvZXNu J3QgY29udGFpbiBzb21lIGZpZWxkcywgd2hpY2ggYXJlIG5vdCByZWFsbHkKbmVlZGVkIGF0IHRo ZSBtb21lbnQgKG9wcywgZmxhZykgYW5kICJpb21tdV9md25vZGUiIGZpZWxkIHdhcyByZXBsYWNl ZApieSAiaW9tbXVfZGV2IiB0byBhdm9pZCBwb3J0aW5nIGEgbG90IG9mIGNvZGUgKHRvIHN1cHBv cnQgImZ3bm9kZV9oYW5kbGUiKQp3aXRoIGxpdHRsZSBiZW5lZml0LgoKVGhlICJpb21tdV9md3Nw ZWMiIHN1cHBvcnQgaXMgYmFzZWQgb24gdGhlIExpbnV4J3MgY29tbWl0OgpmNzRjMmJiOTg3NzZl MmRlNTA4ZjRkNjA3Y2Q1MTk4NzMwNjUxMThlICJMaW51eCA1LjMtcmM4IgoKU3Vic2VxdWVudCBw YXRjaGVzIHdpbGwgdXNlIG9mIHRoYXQgc3VwcG9ydC4KClsxXSBodHRwczovL3d3dy5rZXJuZWwu b3JnL2RvYy9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaW9tbXUvaW9tbXUudHh0 CgpTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgVHlzaGNoZW5rbyA8b2xla3NhbmRyX3R5c2hjaGVu a29AZXBhbS5jb20+CkFja2VkLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29t PgoKLS0tCkNoYW5nZXMgVjUgLT4gVjY6CiAgICAtIGFkZGVkIEp1bGllbidzIEEtYgoKQ2hhbmdl cyBWNCAtPiBWNToKICAgIC0gbW9kaWZpZWQgc3RydWN0IGlvbW11X2Z3c3BlYyB0byB1c2UgZmxl eGlibGUgYXJyYXkgKHVpbnQzMl90IGlkc1tdKQogICAgLSBtb2RpZmllZCB0byB1c2UgeHphbGxv Y19mbGV4X3N0cnVjdCgpIG9uIHRoZSBmaXJzdCBhbGxvY2F0aW9uCiAgICAtIGFkZGVkICJjb25z dCIgdG8gdWludDMyX3QgKmlkcyBpbiBpb21tdV9md3NwZWNfYWRkX2lkcygpCgpDaGFuZ2VzIFYz IC0+IFY0OgogICAgLSBtb2RpZmllZCBpb21tdV9md3NwZWNfYWRkX2lkcygpIHRvIHVzZSBuZXcg aW1wbGVtZW50YXRpb24gb2YKICAgICAgeHJlYWxsb2NfZmxleF9zdHJ1Y3QoKQogICAgLSBtZW50 aW9uZWQgZXhhY3QgTGludXggdmVyc2lvbiB3ZSBhcmUgYmFzZWQgb24KICAgIC0gZml4ZWQgR3Jh bW1hdGljYWwgZXJyb3IKCkNoYW5nZXMgVjIgLT4gVjM6CiAgICAtIGFkZGVkIENvcHlyaWdodCBm cm9tIExpbnV4CiAgICAtIG9yZGVyZWQgdGhlIGhlYWRlcnMgYWxwaGFiZXRpY2FsbHkKICAgIC0g cmVtb3ZlZCBjaGVjayBmb3Igbm90IGEgTlVMTCBiZWZvcmUgY2FsbGluZyB4ZnJlZSgpCiAgICAt IHVzZWQgdW5zaWduZWQgZm9yIHZhcmlhYmxlcyB3aGljaCBjYW4ndCBiZSBuZWdhdGl2ZQogICAg LSByZW1vdmVkICNpbmNsdWRlIDxhc20vaW9tbXVfZndzcGVjLmg+IGZyb20gaW9tbXUuaAogICAg LSBhZGRlZCBjaGVjayB0byBpb21tdV9md3NwZWNfaW5pdCgpIHRvIG5vdCBhbGxvdyBvdmVycmlk aW5nCiAgICAtIGNsYXJpZmllZCBjb21tZW50cyBpbiBjb2RlCiAgICAtIG1vZGlmaWVkIGlvbW11 X2Z3c3BlY19hZGRfaWRzKCkgdG8gdXNlIHR5cGUtc2FmZSB4cmVhbGxvY19mbGV4X3N0cnVjdCgp Ci0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL01ha2VmaWxlICAgICAgIHwgIDIgKy0K IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9pb21tdV9md3NwZWMuYyB8IDk3ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogeGVuL2luY2x1ZGUvYXNtLWFybS9kZXZpY2UuaCAgICAg ICAgICAgICAgIHwgIDEgKwogeGVuL2luY2x1ZGUvYXNtLWFybS9pb21tdV9md3NwZWMuaCAgICAg ICAgIHwgNjggKysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDE2NyBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvYXJtL2lvbW11X2Z3c3BlYy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2lu Y2x1ZGUvYXNtLWFybS9pb21tdV9md3NwZWMuaAoKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2FybS9NYWtlZmlsZSBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9NYWtl ZmlsZQppbmRleCA0YWJiODdhLi41ZmJhZDQ1IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9hcm0vTWFrZWZpbGUKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL01h a2VmaWxlCkBAIC0xLDIgKzEsMiBAQAotb2JqLXkgKz0gaW9tbXUubyBpb21tdV9oZWxwZXJzLm8K K29iai15ICs9IGlvbW11Lm8gaW9tbXVfaGVscGVycy5vIGlvbW11X2Z3c3BlYy5vCiBvYmotJChD T05GSUdfQVJNX1NNTVUpICs9IHNtbXUubwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYXJtL2lvbW11X2Z3c3BlYy5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL2lv bW11X2Z3c3BlYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjOTdjN2MK LS0tIC9kZXYvbnVsbAorKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vaW9tbXVfZndz cGVjLmMKQEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Fy bS9pb21tdV9md3NwZWMuYworICoKKyAqIENvbnRhaW5zIGZ1bmN0aW9ucyB0byBtYWludGFpbiBw ZXItZGV2aWNlIGZpcm13YXJlIGRhdGEKKyAqCisgKiBCYXNlZCBvbiBMaW51eCdzIGlvbW11X2Z3 c3BlYyBzdXBwb3J0IHlvdSBjYW4gZmluZCBhdDoKKyAqICAgIGRyaXZlcnMvaW9tbXUvaW9tbXUu YworICoKKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IEFkdmFuY2VkIE1pY3JvIERldmljZXMs IEluYy4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgRVBBTSBTeXN0ZW1zIEluYy4KKyAqCisg KiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UsIHZlcnNpb24gMiwgYXMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisjaW5jbHVkZSA8eGVu L2lvbW11Lmg+CisjaW5jbHVkZSA8eGVuL2xpYi5oPgorCisjaW5jbHVkZSA8YXNtL2RldmljZS5o PgorI2luY2x1ZGUgPGFzbS9pb21tdV9md3NwZWMuaD4KKworaW50IGlvbW11X2Z3c3BlY19pbml0 KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqaW9tbXVfZGV2KQoreworICAgIHN0 cnVjdCBpb21tdV9md3NwZWMgKmZ3c3BlYyA9IGRldl9pb21tdV9md3NwZWNfZ2V0KGRldik7CisK KyAgICBpZiAoIGZ3c3BlYyApCisgICAgeworICAgICAgICAvKiBXZSBleHBlY3QgdGhlIGRldmlj ZSB0byBiZSBwcm90ZWN0ZWQgYnkgb25seSBvbmUgSU9NTVUuICovCisgICAgICAgIGlmICggZndz cGVjLT5pb21tdV9kZXYgIT0gaW9tbXVfZGV2ICkKKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFM OworCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qCisgICAgICogQWxsb2NhdGUg d2l0aCBpZHNbMV0gdG8gYXZvaWQgdGhlIHJlLWFsbG9jYXRpb24gaW4gdGhlIGNvbW1vbiBjYXNl CisgICAgICogd2hlcmUgYSBkZXZpY2UgaGFzIGEgc2luZ2xlIGRldmljZSBJRC4KKyAgICAgKi8K KyAgICBmd3NwZWMgPSB4emFsbG9jX2ZsZXhfc3RydWN0KHN0cnVjdCBpb21tdV9md3NwZWMsIGlk cywgMSk7CisgICAgaWYgKCAhZndzcGVjICkKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisKKyAg ICBmd3NwZWMtPmlvbW11X2RldiA9IGlvbW11X2RldjsKKyAgICBkZXZfaW9tbXVfZndzcGVjX3Nl dChkZXYsIGZ3c3BlYyk7CisKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBpb21tdV9md3NwZWNf ZnJlZShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisgICAgc3RydWN0IGlvbW11X2Z3c3BlYyAqZndz cGVjID0gZGV2X2lvbW11X2Z3c3BlY19nZXQoZGV2KTsKKworICAgIHhmcmVlKGZ3c3BlYyk7Cisg ICAgZGV2X2lvbW11X2Z3c3BlY19zZXQoZGV2LCBOVUxMKTsKK30KKworaW50IGlvbW11X2Z3c3Bl Y19hZGRfaWRzKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgdWludDMyX3QgKmlkcywKKyAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX2lkcykKK3sKKyAgICBzdHJ1Y3Qg aW9tbXVfZndzcGVjICpmd3NwZWMgPSBkZXZfaW9tbXVfZndzcGVjX2dldChkZXYpOworICAgIHVu c2lnbmVkIGludCBpOworCisgICAgaWYgKCAhZndzcGVjICkKKyAgICAgICAgcmV0dXJuIC1FSU5W QUw7CisKKyAgICBmd3NwZWMgPSB4cmVhbGxvY19mbGV4X3N0cnVjdChmd3NwZWMsIGlkcywgZndz cGVjLT5udW1faWRzICsgbnVtX2lkcyk7CisgICAgaWYgKCAhZndzcGVjICkKKyAgICAgICAgcmV0 dXJuIC1FTk9NRU07CisKKyAgICBkZXZfaW9tbXVfZndzcGVjX3NldChkZXYsIGZ3c3BlYyk7CisK KyAgICBmb3IgKCBpID0gMDsgaSA8IG51bV9pZHM7IGkrKyApCisgICAgICAgIGZ3c3BlYy0+aWRz W2Z3c3BlYy0+bnVtX2lkcyArIGldID0gaWRzW2ldOworCisgICAgZndzcGVjLT5udW1faWRzICs9 IG51bV9pZHM7CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoK KyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0 CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvYXNtLWFybS9kZXZpY2UuaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZGV2aWNlLmgK aW5kZXggZWUxYzNiYy4uZWU3Y2ZmMiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9k ZXZpY2UuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2RldmljZS5oCkBAIC0xOCw2ICsxOCw3 IEBAIHN0cnVjdCBkZXZpY2UKICAgICBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm9mX25vZGU7IC8q IFVzZWQgYnkgZHJpdmVycyBpbXBvcnRlZCBmcm9tIExpbnV4ICovCiAjZW5kaWYKICAgICBzdHJ1 Y3QgZGV2X2FyY2hkYXRhIGFyY2hkYXRhOworICAgIHN0cnVjdCBpb21tdV9md3NwZWMgKmlvbW11 X2Z3c3BlYzsgLyogcGVyLWRldmljZSBJT01NVSBpbnN0YW5jZSBkYXRhICovCiB9OwogCiB0eXBl ZGVmIHN0cnVjdCBkZXZpY2UgZGV2aWNlX3Q7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20t YXJtL2lvbW11X2Z3c3BlYy5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9pb21tdV9md3NwZWMuaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Y2RiNTNmCi0tLSAvZGV2L251bGwK KysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9pb21tdV9md3NwZWMuaApAQCAtMCwwICsxLDY4IEBA CisvKgorICogeGVuL2luY2x1ZGUvYXNtLWFybS9pb21tdV9md3NwZWMuaAorICoKKyAqIENvbnRh aW5zIGEgY29tbW9uIHN0cnVjdHVyZSB0byBob2xkIHRoZSBwZXItZGV2aWNlIGZpcm13YXJlIGRh dGEgYW5kCisgKiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbnMgdXNlZCB0byBtYWludGFpbiB0aGF0 IGRhdGEKKyAqCisgKiBCYXNlZCBvbiBMaW51eCdzIGlvbW11X2Z3c3BlYyBzdXBwb3J0IHlvdSBj YW4gZmluZCBhdDoKKyAqICAgIGluY2x1ZGUvbGludXgvaW9tbXUuaAorICoKKyAqIENvcHlyaWdo dCAoQykgMjAwNy0yMDA4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBDb3B5 cmlnaHQgKEMpIDIwMTkgRVBBTSBTeXN0ZW1zIEluYy4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg aXQgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMKKyAqIExpY2Vuc2UsIHZlcnNpb24gMiwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExp Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisjaWZuZGVmIF9fQVJDSF9BUk1fSU9NTVVfRldTUEVD X0hfXworI2RlZmluZSBfX0FSQ0hfQVJNX0lPTU1VX0ZXU1BFQ19IX18KKworLyogcGVyLWRldmlj ZSBJT01NVSBpbnN0YW5jZSBkYXRhICovCitzdHJ1Y3QgaW9tbXVfZndzcGVjIHsKKyAgICAvKiB0 aGlzIGRldmljZSdzIElPTU1VICovCisgICAgc3RydWN0IGRldmljZSAqaW9tbXVfZGV2OworICAg IC8qIElPTU1VIGRyaXZlciBwcml2YXRlIGRhdGEgZm9yIHRoaXMgZGV2aWNlICovCisgICAgdm9p ZCAqaW9tbXVfcHJpdjsKKyAgICAvKiBudW1iZXIgb2YgYXNzb2NpYXRlZCBkZXZpY2UgSURzICov CisgICAgdW5zaWduZWQgaW50IG51bV9pZHM7CisgICAgLyogSURzIHdoaWNoIHRoaXMgZGV2aWNl IG1heSBwcmVzZW50IHRvIHRoZSBJT01NVSAqLworICAgIHVpbnQzMl90IGlkc1tdOworfTsKKwor aW50IGlvbW11X2Z3c3BlY19pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAq aW9tbXVfZGV2KTsKK3ZvaWQgaW9tbXVfZndzcGVjX2ZyZWUoc3RydWN0IGRldmljZSAqZGV2KTsK K2ludCBpb21tdV9md3NwZWNfYWRkX2lkcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHVpbnQz Ml90ICppZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG51bV9pZHMp OworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBpb21tdV9md3NwZWMgKmRldl9pb21tdV9md3NwZWNf Z2V0KHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKyAgICByZXR1cm4gZGV2LT5pb21tdV9md3NwZWM7 Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBkZXZfaW9tbXVfZndzcGVjX3NldChzdHJ1Y3QgZGV2 aWNlICpkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGlvbW11X2Z3c3BlYyAqZndzcGVjKQoreworICAgIGRldi0+aW9tbXVfZndzcGVjID0gZndzcGVj OworfQorCisjZW5kaWYgLyogX19BUkNIX0FSTV9JT01NVV9GV1NQRUNfSF9fICovCisKKy8qCisg KiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisg KiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2Rl OiBuaWwKKyAqIEVuZDoKKyAqLwotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4v bGlzdGluZm8veGVuLWRldmVs