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=-12.0 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,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 89E05C433ED for ; Wed, 19 May 2021 10:04:58 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 47CE8611BF for ; Wed, 19 May 2021 10:04:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 47CE8611BF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B5D796ED05; Wed, 19 May 2021 10:04:57 +0000 (UTC) Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) by gabe.freedesktop.org (Postfix) with ESMTPS id 181306ED03 for ; Wed, 19 May 2021 10:04:56 +0000 (UTC) Received: by mail-ej1-x636.google.com with SMTP id l1so19118827ejb.6 for ; Wed, 19 May 2021 03:04:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=TdCxedGJP2GV2n32g8Bb0/ITzrehN2f2sqpSoKeyya4=; b=HjH9aqi4m4fft5KEXphon3G0gojQrF7s9tdQCH6Y03zGO2lBc7g49EYZ6dOwq/mrgT LAm1JAoFmbAHYfuXCfw2cOjNX5nvT0avtAkZ9nYtsvKpeRAI//7QtRDUqELKV4Kd4i4I lxBBXP8vRXdLqqDIV+VV5Tc3udOnil9x+WqtSpYVv97gHih0Od3ucTj1SS1qwnYqlJD3 warEgGfaPRccGwqi0bFU1O4K/HIZj6g1XZsyEbIixgxNlOMP65PQ/6HNKRN/SbKe8F3X JN0M6gTHXXLwUFf/ErA4Mlhlnq2DVTpOuQrcAZTXw9euwtdfAqSqgUPrgt4+v1P/IikL Ta3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=TdCxedGJP2GV2n32g8Bb0/ITzrehN2f2sqpSoKeyya4=; b=YTmrT6F4dJewRYCvCOpyXUW5nmkz4RE/hTFvHwq4PDrn/v8o3Wz7GTPnW4CharflfP uGbNaLDl1F/NRXLJKcFkEaFOnKfxZTLTLreIe6W0oT+yBCAosoTb1p4NgjjNNhM6yzo+ N6C3dyz+7vRa0kLl7UO6xM8TA21m6lxKYqX+eZ1FePhldt3Vw4QMJhPb5VpgtwH5JRHh k9fQAwc8/UbOfKW5REsAgSFnZKqlxEDo6gcs9UMFfhYT0ORv1dpj6ug84F1rlxe9odEC 1ZYD66/2nWeva1JCjtIhogJ3NhEXQB+OALkXogu+GsZi7SZQ+aHuU2yYkFVMHFWppaen viUw== X-Gm-Message-State: AOAM533GgZJig+/yCP6PFi4ubwixtC9jWDNTb2RqQBrez24BFksj+4fm Ql62NkuQi4OTIFp2Ft67ztND250CP/w= X-Google-Smtp-Source: ABdhPJwUV3ZdaC87ZDr8XkdLUDtyQ7jorCvTaXO1ooeuR1Mc1KL/D+WGNzCNZ5TjSIkNNDCd9f+glQ== X-Received: by 2002:a17:906:15c7:: with SMTP id l7mr12058018ejd.167.1621418694562; Wed, 19 May 2021 03:04:54 -0700 (PDT) Received: from ?IPv6:2a02:908:1252:fb60:8e28:1d3:41f3:e15a? ([2a02:908:1252:fb60:8e28:1d3:41f3:e15a]) by smtp.gmail.com with ESMTPSA id k9sm15834558edv.69.2021.05.19.03.04.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 19 May 2021 03:04:54 -0700 (PDT) Subject: Re: [PATCH 1/3] drm/amdgpu: Add new domain for preemptible SG BOs To: Felix Kuehling , amd-gfx@lists.freedesktop.org References: <20210519054536.4690-1-Felix.Kuehling@amd.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: Date: Wed, 19 May 2021 12:04:53 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: <20210519054536.4690-1-Felix.Kuehling@amd.com> Content-Language: en-US X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx 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: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" QW0gMTkuMDUuMjEgdW0gMDc6NDUgc2NocmllYiBGZWxpeCBLdWVobGluZzoKPiBTRyBCT3Mgc3Vj aCBhcyBkbWFidWYgaW1wb3J0cyBhbmQgdXNlcnB0ciBCT3MgZG8gbm90IGNvbnN1bWUgc3lzdGVt Cj4gcmVzb3VyY2VzIGRpcmVjdGx5LiBJbnN0ZWFkIHRoZXkgcG9pbnQgdG8gcmVzb3VyY2VzIG93 bmVkIGVsc2V3aGVyZS4KPiBUaGV5IHR5cGljYWxseSBnZXQgZXZpY3RlZCBieSBETUFCdWYgbW92 ZSBub3RpZmllcnMgb2YgTU1VIG5vdGlmaWVycy4KPiBJZiB0aG9zZSBub3RpZmllcnMgZG9uJ3Qg bmVlZCB0byB3YWl0IGZvciBoYXJkd2FyZSBmZW5jZXMgKGkuZS4gdGhlIFNHCj4gQk9zIGFyZSB1 c2VkIGluIGEgcHJlZW1wdGlibGUgY29udGV4dCksIHRoZW4gd2UgZG9uJ3QgbmVlZCB0byBsaW1p dAo+IHRoZW0gdG8gdGhlIEdUVCBzaXplIGFuZCB3ZSBkb24ndCBuZWVkIFRUTSB0byBldmljdCB0 aGVtLgo+Cj4gQ3JlYXRlIGEgbmV3IGRvbWFpbiBmb3Igc3VjaCBwcmVlbXB0aWJsZSBTRyBCT3Mg dGhhdCBkb2VzIG5vdCBpbXBvc2UKPiBhcnRpZmljaWFsIHNpemUgbGltaXRzIGFuZCBUVE0gZXZp Y3Rpb25zLgoKUGxlYXNlIGRvbid0IGNyZWF0ZSBhbiBHRU0gZG9tYWluIGZvciB0aGlzLiBUaGlz IGhhcyBqdXN0IHRvIG11Y2ggCnBvdGVudGlhbCB0byBiZSBhYnVzZWQgYnkgdXNlcnNwYWNlLgoK VGhlIGtlcm5lbCBpcyB0aGUgb25seSBwbGFjZSB3aGVyZSB3ZSBjYW4gZGVjaWRlIGlmIHRoZSBC TyBpcyAKcHJlZW1wdGlibGUgb3Igbm90LgoKQ2hyaXN0aWFuLgoKPgo+IFNpZ25lZC1vZmYtYnk6 IEZlbGl4IEt1ZWhsaW5nIDxGZWxpeC5LdWVobGluZ0BhbWQuY29tPgo+IC0tLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUgICAgICAgICAgIHwgICA3ICstCj4gICBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMgICAgICAgfCAgIDQgKwo+ICAgZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jICAgIHwgICA4ICsKPiAgIC4u Li9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ByZWVtcHRfbWdyLmMgICB8IDE5MCArKysrKysr KysrKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYyAg ICAgICB8ICAzNyArKystCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRt LmggICAgICAgfCAgMTEgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zt LmMgICAgICAgIHwgICAzICstCj4gICBpbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaCAgICAg ICAgICAgICAgICAgfCAgIDcgKy0KPiAgIDggZmlsZXMgY2hhbmdlZCwgMjU4IGluc2VydGlvbnMo KyksIDkgZGVsZXRpb25zKC0pCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3ByZWVtcHRfbWdyLmMKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L01ha2VmaWxlCj4gaW5kZXggNjMzMWExMTI5OWQwLi42Y2YwZmU4NzFkNmMgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZQo+IEBAIC01MSw5ICs1MSwxMCBAQCBhbWRncHUteSAr PSBhbWRncHVfZGV2aWNlLm8gYW1kZ3B1X2ttcy5vIFwKPiAgIAlhdG9tYmlvc19lbmNvZGVycy5v IGFtZGdwdV9zYS5vIGF0b21iaW9zX2kyYy5vIFwKPiAgIAlhbWRncHVfZG1hX2J1Zi5vIGFtZGdw dV92bS5vIGFtZGdwdV9pYi5vIGFtZGdwdV9wbGwubyBcCj4gICAJYW1kZ3B1X3Vjb2RlLm8gYW1k Z3B1X2JvX2xpc3QubyBhbWRncHVfY3R4Lm8gYW1kZ3B1X3N5bmMubyBcCj4gLQlhbWRncHVfZ3R0 X21nci5vIGFtZGdwdV92cmFtX21nci5vIGFtZGdwdV92aXJ0Lm8gYW1kZ3B1X2F0b21maXJtd2Fy ZS5vIFwKPiAtCWFtZGdwdV92Zl9lcnJvci5vIGFtZGdwdV9zY2hlZC5vIGFtZGdwdV9kZWJ1Z2Zz Lm8gYW1kZ3B1X2lkcy5vIFwKPiAtCWFtZGdwdV9nbWMubyBhbWRncHVfbW1odWIubyBhbWRncHVf eGdtaS5vIGFtZGdwdV9jc2EubyBhbWRncHVfcmFzLm8gYW1kZ3B1X3ZtX2NwdS5vIFwKPiArCWFt ZGdwdV9ndHRfbWdyLm8gYW1kZ3B1X3ByZWVtcHRfbWdyLm8gYW1kZ3B1X3ZyYW1fbWdyLm8gYW1k Z3B1X3ZpcnQubyBcCj4gKwlhbWRncHVfYXRvbWZpcm13YXJlLm8gYW1kZ3B1X3ZmX2Vycm9yLm8g YW1kZ3B1X3NjaGVkLm8gXAo+ICsJYW1kZ3B1X2RlYnVnZnMubyBhbWRncHVfaWRzLm8gYW1kZ3B1 X2dtYy5vIGFtZGdwdV9tbWh1Yi5vIFwKPiArCWFtZGdwdV94Z21pLm8gYW1kZ3B1X2NzYS5vIGFt ZGdwdV9yYXMubyBhbWRncHVfdm1fY3B1Lm8gXAo+ICAgCWFtZGdwdV92bV9zZG1hLm8gYW1kZ3B1 X2Rpc2NvdmVyeS5vIGFtZGdwdV9yYXNfZWVwcm9tLm8gYW1kZ3B1X25iaW8ubyBcCj4gICAJYW1k Z3B1X3VtYy5vIHNtdV92MTFfMF9pMmMubyBhbWRncHVfZnJ1X2VlcHJvbS5vIGFtZGdwdV9yYXAu byBcCj4gICAJYW1kZ3B1X2Z3X2F0dGVzdGF0aW9uLm8gYW1kZ3B1X3NlY3VyZWRpc3BsYXkubyBh bWRncHVfaGRwLm8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jCj4gaW5k ZXggMzExYmNkYzU5ZWRhLi4yODBjYzBjMGE5YjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2dlbS5jCj4gQEAgLTI0Niw2ICsyNDYsMTAgQEAgaW50IGFtZGdwdV9nZW1f Y3JlYXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJaWYg KGFyZ3MtPmluLmRvbWFpbnMgJiB+QU1ER1BVX0dFTV9ET01BSU5fTUFTSykKPiAgIAkJcmV0dXJu IC1FSU5WQUw7Cj4gICAKPiArCS8qIHByZWVtcHRpYmxlIGRvbWFpbiBub3Qgc3VwcG9ydGVkIGJ5 IGN1cnJlbnQgQ1MgQVBJICovCj4gKwlpZiAoYXJncy0+aW4uZG9tYWlucyAmIEFNREdQVV9HRU1f RE9NQUlOX1BSRUVNUFQpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICAgCWlmICghYW1kZ3B1 X2lzX3RteihhZGV2KSAmJiAoZmxhZ3MgJiBBTURHUFVfR0VNX0NSRUFURV9FTkNSWVBURUQpKSB7 Cj4gICAJCURSTV9OT1RFX09OQ0UoIkNhbm5vdCBhbGxvY2F0ZSBzZWN1cmUgYnVmZmVyIHNpbmNl IFRNWiBpcyBkaXNhYmxlZFxuIik7Cj4gICAJCXJldHVybiAtRUlOVkFMOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKPiBpbmRleCA3NDVmY2YzZWE0NTAuLjVi NTM4ZTc0NmFmYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfb2JqZWN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2Jq ZWN0LmMKPiBAQCAtMTk0LDYgKzE5NCwxNCBAQCB2b2lkIGFtZGdwdV9ib19wbGFjZW1lbnRfZnJv bV9kb21haW4oc3RydWN0IGFtZGdwdV9ibyAqYWJvLCB1MzIgZG9tYWluKQo+ICAgCQljKys7Cj4g ICAJfQo+ICAgCj4gKwlpZiAoZG9tYWluICYgQU1ER1BVX0dFTV9ET01BSU5fUFJFRU1QVCkgewo+ ICsJCXBsYWNlc1tjXS5mcGZuID0gMDsKPiArCQlwbGFjZXNbY10ubHBmbiA9IDA7Cj4gKwkJcGxh Y2VzW2NdLm1lbV90eXBlID0gQU1ER1BVX1BMX1BSRUVNUFQ7Cj4gKwkJcGxhY2VzW2NdLmZsYWdz ID0gMDsKPiArCQljKys7Cj4gKwl9Cj4gKwo+ICAgCWlmICghYykgewo+ICAgCQlwbGFjZXNbY10u ZnBmbiA9IDA7Cj4gICAJCXBsYWNlc1tjXS5scGZuID0gMDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ByZWVtcHRfbWdyLmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfcHJlZW1wdF9tZ3IuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi5iNDE4NWRjM2MzOTQKPiAtLS0gL2Rldi9udWxsCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ByZWVtcHRfbWdyLmMKPiBAQCAt MCwwICsxLDE5MCBAQAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgMjAxNi0yMDIxIEFkdmFuY2VkIE1p Y3JvIERldmljZXMsIEluYy4KPiArICoKPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPiArICogY29weSBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAi U29mdHdhcmUiKSwKPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmlj dGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ICsgKiB0aGUgcmlnaHRzIHRvIHVz ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwK PiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBw ZXJzb25zIHRvIHdob20gdGhlCj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywg c3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92 ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGlu Y2x1ZGVkIGluCj4gKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl IFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwg V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJ TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ TElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ TkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMp IE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgo+ICsgKiBP VEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9S IE9USEVSV0lTRSwKPiArICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX SVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCj4gKyAqIE9USEVSIERFQUxJTkdTIElOIFRI RSBTT0ZUV0FSRS4KPiArICoKPiArICogQXV0aG9yczogQ2hyaXN0aWFuIEvDtm5pZywgRmVsaXgg S3VlaGxpbmcKPiArICovCj4gKwo+ICsjaW5jbHVkZSAiYW1kZ3B1LmgiCj4gKwo+ICtzdGF0aWMg aW5saW5lIHN0cnVjdCBhbWRncHVfcHJlZW1wdF9tZ3IgKgo+ICt0b19wcmVlbXB0X21ncihzdHJ1 Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbikKPiArewo+ICsJcmV0dXJuIGNvbnRhaW5lcl9v ZihtYW4sIHN0cnVjdCBhbWRncHVfcHJlZW1wdF9tZ3IsIG1hbmFnZXIpOwo+ICt9Cj4gKwo+ICsv KioKPiArICogRE9DOiBtZW1faW5mb19wcmVlbXB0X3VzZWQKPiArICoKPiArICogVGhlIGFtZGdw dSBkcml2ZXIgcHJvdmlkZXMgYSBzeXNmcyBBUEkgZm9yIHJlcG9ydGluZyBjdXJyZW50IHRvdGFs IGFtb3VudCBvZgo+ICsgKiB1c2VkIHByZWVtcHRpYmxlIG1lbW9yeS4KPiArICogVGhlIGZpbGUg bWVtX2luZm9fcHJlZW1wdF91c2VkIGlzIHVzZWQgZm9yIHRoaXMsIGFuZCByZXR1cm5zIHRoZSBj dXJyZW50Cj4gKyAqIHVzZWQgc2l6ZSBvZiB0aGUgcHJlZW1wdGlibGUgYmxvY2ssIGluIGJ5dGVz Cj4gKyAqLwo+ICtzdGF0aWMgc3NpemVfdCBhbWRncHVfbWVtX2luZm9fcHJlZW1wdF91c2VkX3No b3coc3RydWN0IGRldmljZSAqZGV2LAo+ICsJCQkJCQkgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUg KmF0dHIsCj4gKwkJCQkJCSBjaGFyICpidWYpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpk ZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diA9IGRybV90b19hZGV2KGRkZXYpOwo+ICsJc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICpt YW47Cj4gKwo+ICsJbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2LCBBTURH UFVfUExfUFJFRU1QVCk7Cj4gKwlyZXR1cm4gc3lzZnNfZW1pdChidWYsICIlbGx1XG4iLCBhbWRn cHVfcHJlZW1wdF9tZ3JfdXNhZ2UobWFuKSk7Cj4gK30KPiArCj4gK3N0YXRpYyBERVZJQ0VfQVRU UihtZW1faW5mb19wcmVlbXB0X3VzZWQsIFNfSVJVR08sCj4gKwkgICAgICAgICAgIGFtZGdwdV9t ZW1faW5mb19wcmVlbXB0X3VzZWRfc2hvdywgTlVMTCk7Cj4gKwo+ICsvKioKPiArICogYW1kZ3B1 X3ByZWVtcHRfbWdyX25ldyAtIGFsbG9jYXRlIGEgbmV3IG5vZGUKPiArICoKPiArICogQG1hbjog VFRNIG1lbW9yeSB0eXBlIG1hbmFnZXIKPiArICogQHRibzogVFRNIEJPIHdlIG5lZWQgdGhpcyBy YW5nZSBmb3IKPiArICogQHBsYWNlOiBwbGFjZW1lbnQgZmxhZ3MgYW5kIHJlc3RyaWN0aW9ucwo+ ICsgKiBAbWVtOiB0aGUgcmVzdWx0aW5nIG1lbSBvYmplY3QKPiArICoKPiArICogRHVtbXksIGp1 c3QgY291bnQgdGhlIHNwYWNlIHVzZWQgd2l0aG91dCBhbGxvY2F0aW5nIHJlc291cmNlcyBvciBh bnkgbGltaXQuCj4gKyAqLwo+ICtzdGF0aWMgaW50IGFtZGdwdV9wcmVlbXB0X21ncl9uZXcoc3Ry dWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gKwkJCQkgIHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqdGJvLAo+ICsJCQkJICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwKPiAr CQkJCSAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKQo+ICt7Cj4gKwlzdHJ1Y3QgYW1kZ3B1X3By ZWVtcHRfbWdyICptZ3IgPSB0b19wcmVlbXB0X21ncihtYW4pOwo+ICsKPiArCWF0b21pYzY0X2Fk ZChtZW0tPm51bV9wYWdlcywgJm1nci0+dXNlZCk7Cj4gKwo+ICsJbWVtLT5tbV9ub2RlID0gTlVM TDsKPiArCW1lbS0+c3RhcnQgPSBBTURHUFVfQk9fSU5WQUxJRF9PRkZTRVQ7Cj4gKwlyZXR1cm4g MDsKPiArfQo+ICsKPiArLyoqCj4gKyAqIGFtZGdwdV9wcmVlbXB0X21ncl9kZWwgLSBmcmVlIHJh bmdlcwo+ICsgKgo+ICsgKiBAbWFuOiBUVE0gbWVtb3J5IHR5cGUgbWFuYWdlcgo+ICsgKiBAbWVt OiBUVE0gbWVtb3J5IG9iamVjdAo+ICsgKgo+ICsgKiBGcmVlIHRoZSBhbGxvY2F0ZWQgR1RUIGFn YWluLgo+ICsgKi8KPiArc3RhdGljIHZvaWQgYW1kZ3B1X3ByZWVtcHRfbWdyX2RlbChzdHJ1Y3Qg dHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiArCQkJCSAgIHN0cnVjdCB0dG1fcmVzb3VyY2Ug Km1lbSkKPiArewo+ICsJc3RydWN0IGFtZGdwdV9wcmVlbXB0X21nciAqbWdyID0gdG9fcHJlZW1w dF9tZ3IobWFuKTsKPiArCj4gKwlhdG9taWM2NF9zdWIobWVtLT5udW1fcGFnZXMsICZtZ3ItPnVz ZWQpOwo+ICt9Cj4gKwo+ICsvKioKPiArICogYW1kZ3B1X3ByZWVtcHRfbWdyX3VzYWdlIC0gcmV0 dXJuIHVzYWdlIG9mIFBSRUVNUFQgZG9tYWluCj4gKyAqCj4gKyAqIEBtYW46IFRUTSBtZW1vcnkg dHlwZSBtYW5hZ2VyCj4gKyAqCj4gKyAqIFJldHVybiBob3cgbWFueSBieXRlcyBhcmUgdXNlZCBp biB0aGUgR1RUIGRvbWFpbgo+ICsgKi8KPiArdWludDY0X3QgYW1kZ3B1X3ByZWVtcHRfbWdyX3Vz YWdlKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuKQo+ICt7Cj4gKwlzdHJ1Y3QgYW1k Z3B1X3ByZWVtcHRfbWdyICptZ3IgPSB0b19wcmVlbXB0X21ncihtYW4pOwo+ICsJczY0IHJlc3Vs dCA9IGF0b21pYzY0X3JlYWQoJm1nci0+dXNlZCk7Cj4gKwo+ICsJcmV0dXJuIChyZXN1bHQgPiAw ID8gcmVzdWx0IDogMCkgKiBQQUdFX1NJWkU7Cj4gK30KPiArCj4gKy8qKgo+ICsgKiBhbWRncHVf cHJlZW1wdF9tZ3JfZGVidWcgLSBkdW1wIFZSQU0gdGFibGUKPiArICoKPiArICogQG1hbjogVFRN IG1lbW9yeSB0eXBlIG1hbmFnZXIKPiArICogQHByaW50ZXI6IERSTSBwcmludGVyIHRvIHVzZQo+ ICsgKgo+ICsgKiBEdW1wIHRoZSB0YWJsZSBjb250ZW50IHVzaW5nIHByaW50ay4KPiArICovCj4g K3N0YXRpYyB2b2lkIGFtZGdwdV9wcmVlbXB0X21ncl9kZWJ1ZyhzdHJ1Y3QgdHRtX3Jlc291cmNl X21hbmFnZXIgKm1hbiwKPiArCQkJCSAgICAgc3RydWN0IGRybV9wcmludGVyICpwcmludGVyKQo+ ICt7Cj4gKwlzdHJ1Y3QgYW1kZ3B1X3ByZWVtcHRfbWdyICptZ3IgPSB0b19wcmVlbXB0X21nciht YW4pOwo+ICsKPiArCWRybV9wcmludGYocHJpbnRlciwgIm1hbiBzaXplOiVsbHUgcGFnZXMsIHBy ZWVtcHQgdXNlZDolbGxkIHBhZ2VzXG4iLAo+ICsJCSAgIG1hbi0+c2l6ZSwgKHU2NClhdG9taWM2 NF9yZWFkKCZtZ3ItPnVzZWQpKTsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCB0dG1f cmVzb3VyY2VfbWFuYWdlcl9mdW5jIGFtZGdwdV9wcmVlbXB0X21ncl9mdW5jID0gewo+ICsJLmFs bG9jID0gYW1kZ3B1X3ByZWVtcHRfbWdyX25ldywKPiArCS5mcmVlID0gYW1kZ3B1X3ByZWVtcHRf bWdyX2RlbCwKPiArCS5kZWJ1ZyA9IGFtZGdwdV9wcmVlbXB0X21ncl9kZWJ1Zwo+ICt9Owo+ICsK PiArLyoqCj4gKyAqIGFtZGdwdV9wcmVlbXB0X21ncl9pbml0IC0gaW5pdCBQUkVFTVBUIG1hbmFn ZXIgYW5kIERSTSBNTQo+ICsgKgo+ICsgKiBAYWRldjogYW1kZ3B1X2RldmljZSBwb2ludGVyCj4g KyAqCj4gKyAqIEFsbG9jYXRlIGFuZCBpbml0aWFsaXplIHRoZSBHVFQgbWFuYWdlci4KPiArICov Cj4gK2ludCBhbWRncHVfcHJlZW1wdF9tZ3JfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKPiArewo+ICsJc3RydWN0IGFtZGdwdV9wcmVlbXB0X21nciAqbWdyID0gJmFkZXYtPm1tYW4u cHJlZW1wdF9tZ3I7Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9ICZtZ3It Pm1hbmFnZXI7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCW1hbi0+dXNlX3R0ID0gdHJ1ZTsKPiArCW1h bi0+ZnVuYyA9ICZhbWRncHVfcHJlZW1wdF9tZ3JfZnVuYzsKPiArCj4gKwl0dG1fcmVzb3VyY2Vf bWFuYWdlcl9pbml0KG1hbiwgKDEgPDwgMzApKTsKPiArCj4gKwlhdG9taWM2NF9zZXQoJm1nci0+ dXNlZCwgMCk7Cj4gKwo+ICsJcmV0ID0gZGV2aWNlX2NyZWF0ZV9maWxlKGFkZXYtPmRldiwgJmRl dl9hdHRyX21lbV9pbmZvX3ByZWVtcHRfdXNlZCk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJRFJNX0VS Uk9SKCJGYWlsZWQgdG8gY3JlYXRlIGRldmljZSBmaWxlIG1lbV9pbmZvX3ByZWVtcHRfdXNlZFxu Iik7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwl0dG1fc2V0X2RyaXZlcl9tYW5hZ2Vy KCZhZGV2LT5tbWFuLmJkZXYsIEFNREdQVV9QTF9QUkVFTVBULAo+ICsJCQkgICAgICAgJm1nci0+ bWFuYWdlcik7Cj4gKwl0dG1fcmVzb3VyY2VfbWFuYWdlcl9zZXRfdXNlZChtYW4sIHRydWUpOwo+ ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gKy8qKgo+ICsgKiBhbWRncHVfcHJlZW1wdF9tZ3JfZmlu aSAtIGZyZWUgYW5kIGRlc3Ryb3kgR1RUIG1hbmFnZXIKPiArICoKPiArICogQGFkZXY6IGFtZGdw dV9kZXZpY2UgcG9pbnRlcgo+ICsgKgo+ICsgKiBEZXN0cm95IGFuZCBmcmVlIHRoZSBHVFQgbWFu YWdlciwgcmV0dXJucyAtRUJVU1kgaWYgcmFuZ2VzIGFyZSBzdGlsbAo+ICsgKiBhbGxvY2F0ZWQg aW5zaWRlIGl0Lgo+ICsgKi8KPiArdm9pZCBhbWRncHVfcHJlZW1wdF9tZ3JfZmluaShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKPiArewo+ICsJc3RydWN0IGFtZGdwdV9wcmVlbXB0X21nciAq bWdyID0gJmFkZXYtPm1tYW4ucHJlZW1wdF9tZ3I7Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21h bmFnZXIgKm1hbiA9ICZtZ3ItPm1hbmFnZXI7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXR0bV9yZXNv dXJjZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgZmFsc2UpOwo+ICsKPiArCXJldCA9IHR0bV9yZXNv dXJjZV9tYW5hZ2VyX2V2aWN0X2FsbCgmYWRldi0+bW1hbi5iZGV2LCBtYW4pOwo+ICsJaWYgKHJl dCkKPiArCQlyZXR1cm47Cj4gKwo+ICsJZGV2aWNlX3JlbW92ZV9maWxlKGFkZXYtPmRldiwgJmRl dl9hdHRyX21lbV9pbmZvX3ByZWVtcHRfdXNlZCk7Cj4gKwo+ICsJdHRtX3Jlc291cmNlX21hbmFn ZXJfY2xlYW51cChtYW4pOwo+ICsJdHRtX3NldF9kcml2ZXJfbWFuYWdlcigmYWRldi0+bW1hbi5i ZGV2LCBBTURHUFVfUExfUFJFRU1QVCwgTlVMTCk7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3R0bS5jCj4gaW5kZXggZDg1NmIyMDRjZDEyLi5jNmViNmYxYzcwODIgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCj4gQEAgLTE1OCw2ICsx NTgsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZXZpY3RfZmxhZ3Moc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywKPiAgIAkJfQo+ICAgCQlicmVhazsKPiAgIAljYXNlIFRUTV9QTF9UVDoKPiAr CWNhc2UgQU1ER1BVX1BMX1BSRUVNUFQ6Cj4gICAJZGVmYXVsdDoKPiAgIAkJYW1kZ3B1X2JvX3Bs YWNlbWVudF9mcm9tX2RvbWFpbihhYm8sIEFNREdQVV9HRU1fRE9NQUlOX0NQVSk7Cj4gICAJCWJy ZWFrOwo+IEBAIC0yMTcsNiArMjE4LDcgQEAgc3RhdGljIGludCBhbWRncHVfdHRtX21hcF9idWZm ZXIoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIAo+ICAgCUJVR19PTihhZGV2LT5t bWFuLmJ1ZmZlcl9mdW5jcy0+Y29weV9tYXhfYnl0ZXMgPAo+ICAgCSAgICAgICBBTURHUFVfR1RU X01BWF9UUkFOU0ZFUl9TSVpFICogOCk7Cj4gKwlCVUdfT04obWVtLT5tZW1fdHlwZSA9PSBBTURH UFVfUExfUFJFRU1QVCk7Cj4gICAKPiAgIAkvKiBNYXAgb25seSB3aGF0IGNhbid0IGJlIGFjY2Vz c2VkIGRpcmVjdGx5ICovCj4gICAJaWYgKCF0bXogJiYgbWVtLT5zdGFydCAhPSBBTURHUFVfQk9f SU5WQUxJRF9PRkZTRVQpIHsKPiBAQCAtNDgwLDcgKzQ4Miw4IEBAIHN0YXRpYyBpbnQgYW1kZ3B1 X2JvX21vdmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgYm9vbCBldmljdCwKPiAgIAlz dHJ1Y3QgdHRtX3Jlc291cmNlICpvbGRfbWVtID0gJmJvLT5tZW07Cj4gICAJaW50IHI7Cj4gICAK PiAtCWlmIChuZXdfbWVtLT5tZW1fdHlwZSA9PSBUVE1fUExfVFQpIHsKPiArCWlmIChuZXdfbWVt LT5tZW1fdHlwZSA9PSBUVE1fUExfVFQgfHwKPiArCSAgICBuZXdfbWVtLT5tZW1fdHlwZSA9PSBB TURHUFVfUExfUFJFRU1QVCkgewo+ICAgCQlyID0gYW1kZ3B1X3R0bV9iYWNrZW5kX2JpbmQoYm8t PmJkZXYsIGJvLT50dG0sIG5ld19tZW0pOwo+ICAgCQlpZiAocikKPiAgIAkJCXJldHVybiByOwo+ IEBAIC00OTgsMTEgKzUwMSwxMyBAQCBzdGF0aWMgaW50IGFtZGdwdV9ib19tb3ZlKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wgZXZpY3QsCj4gICAJCWdvdG8gb3V0Owo+ICAgCX0K PiAgIAlpZiAob2xkX21lbS0+bWVtX3R5cGUgPT0gVFRNX1BMX1NZU1RFTSAmJgo+IC0JICAgIG5l d19tZW0tPm1lbV90eXBlID09IFRUTV9QTF9UVCkgewo+ICsJICAgIChuZXdfbWVtLT5tZW1fdHlw ZSA9PSBUVE1fUExfVFQgfHwKPiArCSAgICAgbmV3X21lbS0+bWVtX3R5cGUgPT0gQU1ER1BVX1BM X1BSRUVNUFQpKSB7Cj4gICAJCXR0bV9ib19tb3ZlX251bGwoYm8sIG5ld19tZW0pOwo+ICAgCQln b3RvIG91dDsKPiAgIAl9Cj4gLQlpZiAob2xkX21lbS0+bWVtX3R5cGUgPT0gVFRNX1BMX1RUICYm Cj4gKwlpZiAoKG9sZF9tZW0tPm1lbV90eXBlID09IFRUTV9QTF9UVCB8fAo+ICsJICAgICBvbGRf bWVtLT5tZW1fdHlwZSA9PSBBTURHUFVfUExfUFJFRU1QVCkgJiYKPiAgIAkgICAgbmV3X21lbS0+ bWVtX3R5cGUgPT0gVFRNX1BMX1NZU1RFTSkgewo+ICAgCQlyID0gdHRtX2JvX3dhaXRfY3R4KGJv LCBjdHgpOwo+ICAgCQlpZiAocikKPiBAQCAtNTg3LDYgKzU5Miw3IEBAIHN0YXRpYyBpbnQgYW1k Z3B1X3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPiAgIAkJLyog c3lzdGVtIG1lbW9yeSAqLwo+ICAgCQlyZXR1cm4gMDsKPiAgIAljYXNlIFRUTV9QTF9UVDoKPiAr CWNhc2UgQU1ER1BVX1BMX1BSRUVNUFQ6Cj4gICAJCWJyZWFrOwo+ICAgCWNhc2UgVFRNX1BMX1ZS QU06Cj4gICAJCW1lbS0+YnVzLm9mZnNldCA9IG1lbS0+c3RhcnQgPDwgUEFHRV9TSElGVDsKPiBA QCAtMTI5Myw3ICsxMjk5LDggQEAgdWludDY0X3QgYW1kZ3B1X3R0bV90dF9wZGVfZmxhZ3Moc3Ry dWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pCj4gICAJaWYgKG1lbSAm JiBtZW0tPm1lbV90eXBlICE9IFRUTV9QTF9TWVNURU0pCj4gICAJCWZsYWdzIHw9IEFNREdQVV9Q VEVfVkFMSUQ7Cj4gICAKPiAtCWlmIChtZW0gJiYgbWVtLT5tZW1fdHlwZSA9PSBUVE1fUExfVFQp IHsKPiArCWlmIChtZW0gJiYgKG1lbS0+bWVtX3R5cGUgPT0gVFRNX1BMX1RUIHx8Cj4gKwkJICAg IG1lbS0+bWVtX3R5cGUgPT0gQU1ER1BVX1BMX1BSRUVNUFQpKSB7Cj4gICAJCWZsYWdzIHw9IEFN REdQVV9QVEVfU1lTVEVNOwo+ICAgCj4gICAJCWlmICh0dG0tPmNhY2hpbmcgPT0gdHRtX2NhY2hl ZCkKPiBAQCAtMTM2Nyw2ICsxMzc0LDE1IEBAIHN0YXRpYyBib29sIGFtZGdwdV90dG1fYm9fZXZp Y3Rpb25fdmFsdWFibGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIAl9Cj4gICAK PiAgIAlzd2l0Y2ggKGJvLT5tZW0ubWVtX3R5cGUpIHsKPiArCWNhc2UgQU1ER1BVX1BMX1BSRUVN UFQ6Cj4gKwkJLyogUHJlZW1wdGlibGUgQk9zIGRvbid0IG93biBzeXN0ZW0gcmVzb3VyY2VzIG1h bmFnZWQgYnkgdGhlCj4gKwkJICogZHJpdmVyIChwYWdlcywgVlJBTSwgR0FSVCBzcGFjZSkuIFRo ZXkgcG9pbnQgdG8gcmVzb3VyY2VzCj4gKwkJICogb3duZWQgYnkgc29tZW9uZSBlbHNlIChlLmcu IHBhZ2VhYmxlIG1lbW9yeSBpbiB1c2VyIG1vZGUKPiArCQkgKiBvciBhIERNQUJ1ZikuIFRoZXkg YXJlIHVzZWQgaW4gYSBwcmVlbXB0aWJsZSBjb250ZXh0IHNvIHdlCj4gKwkJICogY2FuIGd1YXJh bnRlZSBubyBkZWFkbG9ja3MgYW5kIGdvb2QgUW9TIGluIGNhc2Ugb2YgTU1VCj4gKwkJICogbm90 aWZpZXJzIG9yIERNQUJ1ZiBtb3ZlIG5vdGlmaWVycyBmcm9tIHRoZSByZXNvdXJjZSBvd25lci4K PiArCQkgKi8KPiArCQlyZXR1cm4gZmFsc2U7Cj4gICAJY2FzZSBUVE1fUExfVFQ6Cj4gICAJCWlm IChhbWRncHVfYm9faXNfYW1kZ3B1X2JvKGJvKSAmJgo+ICAgCQkgICAgYW1kZ3B1X2JvX2VuY3J5 cHRlZCh0dG1fdG9fYW1kZ3B1X2JvKGJvKSkpCj4gQEAgLTE3NDgsNiArMTc2NCwxMyBAQCBpbnQg YW1kZ3B1X3R0bV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgCURSTV9JTkZP KCJhbWRncHU6ICV1TSBvZiBHVFQgbWVtb3J5IHJlYWR5LlxuIiwKPiAgIAkJICh1bnNpZ25lZCko Z3R0X3NpemUgLyAoMTAyNCAqIDEwMjQpKSk7Cj4gICAKPiArCS8qIEluaXRpYWxpemUgcHJlZW1w dGlibGUgbWVtb3J5IHBvb2wgKi8KPiArCXIgPSBhbWRncHVfcHJlZW1wdF9tZ3JfaW5pdChhZGV2 KTsKPiArCWlmIChyKSB7Cj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgaW5pdGlhbGl6aW5nIFBSRUVN UFQgaGVhcC5cbiIpOwo+ICsJCXJldHVybiByOwo+ICsJfQo+ICsKPiAgIAkvKiBJbml0aWFsaXpl IHZhcmlvdXMgb24tY2hpcCBtZW1vcnkgcG9vbHMgKi8KPiAgIAlyID0gYW1kZ3B1X3R0bV9pbml0 X29uX2NoaXAoYWRldiwgQU1ER1BVX1BMX0dEUywgYWRldi0+Z2RzLmdkc19zaXplKTsKPiAgIAlp ZiAocikgewo+IEBAIC0xNzkyLDYgKzE4MTUsNyBAQCB2b2lkIGFtZGdwdV90dG1fZmluaShzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgIAo+ICAgCWFtZGdwdV92cmFtX21ncl9maW5pKGFk ZXYpOwo+ICAgCWFtZGdwdV9ndHRfbWdyX2ZpbmkoYWRldik7Cj4gKwlhbWRncHVfcHJlZW1wdF9t Z3JfZmluaShhZGV2KTsKPiAgIAl0dG1fcmFuZ2VfbWFuX2ZpbmkoJmFkZXYtPm1tYW4uYmRldiwg QU1ER1BVX1BMX0dEUyk7Cj4gICAJdHRtX3JhbmdlX21hbl9maW5pKCZhZGV2LT5tbWFuLmJkZXYs IEFNREdQVV9QTF9HV1MpOwo+ICAgCXR0bV9yYW5nZV9tYW5fZmluaSgmYWRldi0+bW1hbi5iZGV2 LCBBTURHUFVfUExfT0EpOwo+IEBAIC0xOTg2LDYgKzIwMTAsMTEgQEAgaW50IGFtZGdwdV9maWxs X2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X2JvICpibywKPiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4gICAJ fQo+ICAgCj4gKwlpZiAoYm8tPnRiby5tZW0ubWVtX3R5cGUgPT0gQU1ER1BVX1BMX1BSRUVNUFQp IHsKPiArCQlEUk1fRVJST1IoIlRyeWluZyB0byBjbGVhciBwcmVlbXB0aWJsZSBtZW1vcnkuXG4i KTsKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPiArCj4gICAJaWYgKGJvLT50Ym8ubWVtLm1l bV90eXBlID09IFRUTV9QTF9UVCkgewo+ICAgCQlyID0gYW1kZ3B1X3R0bV9hbGxvY19nYXJ0KCZi by0+dGJvKTsKPiAgIAkJaWYgKHIpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV90dG0uaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90 dG0uaAo+IGluZGV4IGViODRhNjljNGI3NC4uMjg3N2E5MjQwODZmIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAo+IEBAIC0zMSw2ICszMSw3IEBACj4gICAjZGVm aW5lIEFNREdQVV9QTF9HRFMJCShUVE1fUExfUFJJViArIDApCj4gICAjZGVmaW5lIEFNREdQVV9Q TF9HV1MJCShUVE1fUExfUFJJViArIDEpCj4gICAjZGVmaW5lIEFNREdQVV9QTF9PQQkJKFRUTV9Q TF9QUklWICsgMikKPiArI2RlZmluZSBBTURHUFVfUExfUFJFRU1QVAkoVFRNX1BMX1BSSVYgKyAz KQo+ICAgCj4gICAjZGVmaW5lIEFNREdQVV9HVFRfTUFYX1RSQU5TRkVSX1NJWkUJNTEyCj4gICAj ZGVmaW5lIEFNREdQVV9HVFRfTlVNX1RSQU5TRkVSX1dJTkRPV1MJMgo+IEBAIC01NCw2ICs1NSwx MSBAQCBzdHJ1Y3QgYW1kZ3B1X2d0dF9tZ3Igewo+ICAgCWF0b21pYzY0X3QgYXZhaWxhYmxlOwo+ ICAgfTsKPiAgIAo+ICtzdHJ1Y3QgYW1kZ3B1X3ByZWVtcHRfbWdyIHsKPiArCXN0cnVjdCB0dG1f cmVzb3VyY2VfbWFuYWdlciBtYW5hZ2VyOwo+ICsJYXRvbWljNjRfdCB1c2VkOwo+ICt9Owo+ICsK PiAgIHN0cnVjdCBhbWRncHVfbW1hbiB7Cj4gICAJc3RydWN0IHR0bV9kZXZpY2UJCWJkZXY7Cj4g ICAJYm9vbAkJCQlpbml0aWFsaXplZDsKPiBAQCAtNzAsNiArNzYsNyBAQCBzdHJ1Y3QgYW1kZ3B1 X21tYW4gewo+ICAgCj4gICAJc3RydWN0IGFtZGdwdV92cmFtX21nciB2cmFtX21ncjsKPiAgIAlz dHJ1Y3QgYW1kZ3B1X2d0dF9tZ3IgZ3R0X21ncjsKPiArCXN0cnVjdCBhbWRncHVfcHJlZW1wdF9t Z3IgcHJlZW1wdF9tZ3I7Cj4gICAKPiAgIAl1aW50NjRfdAkJc3RvbGVuX3ZnYV9zaXplOwo+ICAg CXN0cnVjdCBhbWRncHVfYm8JKnN0b2xlbl92Z2FfbWVtb3J5Owo+IEBAIC05Nyw2ICsxMDQsOCBA QCBzdHJ1Y3QgYW1kZ3B1X2NvcHlfbWVtIHsKPiAgIAo+ICAgaW50IGFtZGdwdV9ndHRfbWdyX2lu aXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQ2NF90IGd0dF9zaXplKTsKPiAgIHZv aWQgYW1kZ3B1X2d0dF9tZ3JfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4gK2lu dCBhbWRncHVfcHJlZW1wdF9tZ3JfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4g K3ZvaWQgYW1kZ3B1X3ByZWVtcHRfbWdyX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp Owo+ICAgaW50IGFtZGdwdV92cmFtX21ncl9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KTsKPiAgIHZvaWQgYW1kZ3B1X3ZyYW1fbWdyX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpOwo+ICAgCj4gQEAgLTEwNCw2ICsxMTMsOCBAQCBib29sIGFtZGdwdV9ndHRfbWdyX2hhc19n YXJ0X2FkZHIoc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKTsKPiAgIHVpbnQ2NF90IGFtZGdwdV9n dHRfbWdyX3VzYWdlKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuKTsKPiAgIGludCBh bWRncHVfZ3R0X21ncl9yZWNvdmVyKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuKTsK PiAgIAo+ICt1aW50NjRfdCBhbWRncHVfcHJlZW1wdF9tZ3JfdXNhZ2Uoc3RydWN0IHR0bV9yZXNv dXJjZV9tYW5hZ2VyICptYW4pOwo+ICsKPiAgIHU2NCBhbWRncHVfdnJhbV9tZ3JfYm9fdmlzaWJs ZV9zaXplKHN0cnVjdCBhbWRncHVfYm8gKmJvKTsKPiAgIGludCBhbWRncHVfdnJhbV9tZ3JfYWxs b2Nfc2d0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAgCQkJICAgICAgc3RydWN0IHR0 bV9yZXNvdXJjZSAqbWVtLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4g aW5kZXggNTU5OTFmMzkzNDgxLi5kYTE1NWMyNzZjNTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdm0uYwo+IEBAIC0xODE3LDcgKzE4MTcsOCBAQCBpbnQgYW1kZ3B1X3Zt X2JvX3VwZGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV9ib192 YSAqYm9fdmEsCj4gICAJCQkJYm8gPSBnZW1fdG9fYW1kZ3B1X2JvKGdvYmopOwo+ICAgCQl9Cj4g ICAJCW1lbSA9ICZiby0+dGJvLm1lbTsKPiAtCQlpZiAobWVtLT5tZW1fdHlwZSA9PSBUVE1fUExf VFQpCj4gKwkJaWYgKG1lbS0+bWVtX3R5cGUgPT0gVFRNX1BMX1RUIHx8Cj4gKwkJICAgIG1lbS0+ bWVtX3R5cGUgPT0gQU1ER1BVX1BMX1BSRUVNUFQpCj4gICAJCQlwYWdlc19hZGRyID0gYm8tPnRi by50dG0tPmRtYV9hZGRyZXNzOwo+ICAgCX0KPiAgIAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3Vh cGkvZHJtL2FtZGdwdV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oCj4gaW5k ZXggOTE2OWRmN2ZhZGVlLi40ZTQ0MjJiYzU0ZWEgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS91YXBp L2RybS9hbWRncHVfZHJtLmgKPiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaAo+ IEBAIC05Nyw2ICs5Nyw5IEBAIGV4dGVybiAiQyIgewo+ICAgICoKPiAgICAqICVBTURHUFVfR0VN X0RPTUFJTl9PQQlPcmRlcmVkIGFwcGVuZCwgdXNlZCBieSAzRCBvciBDb21wdXRlIGVuZ2luZXMK PiAgICAqIGZvciBhcHBlbmRpbmcgZGF0YS4KPiArICoKPiArICogJUFNREdQVV9HRU1fRE9NQUlO X1BSRUVNUFQJVXNlcnB0cnMgYW5kIERNQWJ1ZiBpbXBvcnRzIGluIHByZWVtcHRpYmxlCj4gKyAq IGNvbnRleHRzLCB3aGljaCBhbGxvdyBtZW1vcnkgdG8gYmUgZXZpY3RlZCB3aXRob3V0IHdhaXRp bmcgZm9yIGZlbmNlcy4KPiAgICAqLwo+ICAgI2RlZmluZSBBTURHUFVfR0VNX0RPTUFJTl9DUFUJ CTB4MQo+ICAgI2RlZmluZSBBTURHUFVfR0VNX0RPTUFJTl9HVFQJCTB4Mgo+IEBAIC0xMDQsMTIg KzEwNywxNCBAQCBleHRlcm4gIkMiIHsKPiAgICNkZWZpbmUgQU1ER1BVX0dFTV9ET01BSU5fR0RT CQkweDgKPiAgICNkZWZpbmUgQU1ER1BVX0dFTV9ET01BSU5fR1dTCQkweDEwCj4gICAjZGVmaW5l IEFNREdQVV9HRU1fRE9NQUlOX09BCQkweDIwCj4gKyNkZWZpbmUgQU1ER1BVX0dFTV9ET01BSU5f UFJFRU1QVAkweDQwCj4gICAjZGVmaW5lIEFNREdQVV9HRU1fRE9NQUlOX01BU0sJCShBTURHUFVf R0VNX0RPTUFJTl9DUFUgfCBcCj4gICAJCQkJCSBBTURHUFVfR0VNX0RPTUFJTl9HVFQgfCBcCj4g ICAJCQkJCSBBTURHUFVfR0VNX0RPTUFJTl9WUkFNIHwgXAo+ICAgCQkJCQkgQU1ER1BVX0dFTV9E T01BSU5fR0RTIHwgXAo+ICAgCQkJCQkgQU1ER1BVX0dFTV9ET01BSU5fR1dTIHwgXAo+IC0JCQkJ CSBBTURHUFVfR0VNX0RPTUFJTl9PQSkKPiArCQkJCQkgQU1ER1BVX0dFTV9ET01BSU5fT0EgfCBc Cj4gKwkJCQkJIEFNREdQVV9HRU1fRE9NQUlOX1BSRUVNUFQpCj4gICAKPiAgIC8qIEZsYWcgdGhh dCBDUFUgYWNjZXNzIHdpbGwgYmUgcmVxdWlyZWQgZm9yIHRoZSBjYXNlIG9mIFZSQU0gZG9tYWlu ICovCj4gICAjZGVmaW5lIEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQJKDEg PDwgMCkKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFt ZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=