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 58555C43331 for ; Tue, 16 Mar 2021 15:13:56 +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 1469F6508F for ; Tue, 16 Mar 2021 15:13:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1469F6508F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 95EBA89DC9; Tue, 16 Mar 2021 15:13:55 +0000 (UTC) Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7772B89DC9 for ; Tue, 16 Mar 2021 15:13:54 +0000 (UTC) Received: by mail-ed1-x52d.google.com with SMTP id h13so21948150eds.5 for ; Tue, 16 Mar 2021 08:13:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=i+UbEcAnpZbveCKAjjGAXxDDymdjzsMhaS1MGEKjUf0=; b=BRQ1zBPTKxuKXBo/15Y7NSv7j4oPtYEz2UkC0QKvlHY/CCGTBpvSW+rrghQ/gaXkN/ ZWnyN113G3jv3W/P9b6gmIyK0W0cgSiF81xkZqQqKXHGqaynS6+pn1yQ4cuwYAfNPppB 4LXBAzvzkYZi3uTbAOobHjxLbdjvzZPSxXY5liQ9Q9pDvjnJUEHnXXeSwudkowQ1EABE y5OxOSkwrXWmbIxRoXMWUar6ZW/FdjSQFZc39jnTzP1x68yzEyD6ybMOZF0XQFEh1+pN nKrjAUQrlKY30K1By1DZvXHUG1kV/0tHl+gmb9aeZkTAO/+7Uj7IoVlt7prtqL/3eWlg Lwhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=i+UbEcAnpZbveCKAjjGAXxDDymdjzsMhaS1MGEKjUf0=; b=Sh1cYFMAssiR/9Oaa6sDvDagIlzICAB5Ti9F2x7e3OzOtLz9ZjW2gvbfYBK6OZO29i 4rP0R927zsTyG7mATGQzqzC8B+Rz8gSKFIjCfrz6gWgtfT/9sL3mfxq4PWsvA8TsM3sN PfXrAl4bki0U+gAtGVZxFctZtF/zTS2zfo1HmYe0OF+2UiEl1MwJtIRZegk4RMgO+Zr5 7PHCoGkdOf4Zldj6yyVsi89QFunJyVbp80yAbcpOl/TTmTn7MjvUYoZn5bqEGgQv3ABv FL32A4x8rwsQrtD+2rkB0uf5d5YXcbaNGWWJy0yxHPSPLVsI3fKGVBr4OStQ0Bu+pvV+ 6Dkw== X-Gm-Message-State: AOAM530SyLBc+0Qce465YINuA09j/9HC/lsnObjjAelAlboRgUNnKLoE nsBwzjid2MEzpPas+/axcdWcTMlaCkw= X-Google-Smtp-Source: ABdhPJwq0tcFocjtnEdgRHOeffohbIq8qW82N5UeBwDtP92CiY0SmMvdA/S1tjsTURUWJkZfe2z+Aw== X-Received: by 2002:a05:6402:382:: with SMTP id o2mr37486664edv.238.1615907632917; Tue, 16 Mar 2021 08:13:52 -0700 (PDT) Received: from ?IPv6:2a02:908:1252:fb60:b42c:fec3:9423:57fe? ([2a02:908:1252:fb60:b42c:fec3:9423:57fe]) by smtp.gmail.com with ESMTPSA id i2sm10741100edy.72.2021.03.16.08.13.52 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 16 Mar 2021 08:13:52 -0700 (PDT) Subject: Re: [PATCH 3/3] drm/ttm: switch to per device LRU lock To: Daniel Vetter References: <20210315160422.152528-1-christian.koenig@amd.com> <20210315160422.152528-3-christian.koenig@amd.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: Date: Tue, 16 Mar 2021 16:13:51 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Huang Rui , dri-devel Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" CgpBbSAxNi4wMy4yMSB1bSAxMzowNSBzY2hyaWViIERhbmllbCBWZXR0ZXI6Cj4gT24gVHVlLCBN YXIgMTYsIDIwMjEgYXQgMTowMyBQTSBDaHJpc3RpYW4gS8O2bmlnCj4gPGNrb2VuaWcubGVpY2h0 enVtZXJrZW5AZ21haWwuY29tPiB3cm90ZToKPj4gQW0gMTYuMDMuMjEgdW0gMTA6MzUgc2Nocmll YiBEYW5pZWwgVmV0dGVyOgo+Pj4gT24gTW9uLCBNYXIgMTUsIDIwMjEgYXQgMDU6MDQ6MjJQTSAr MDEwMCwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPj4+PiBJbnN0ZWFkIG9mIGhhdmluZyBhIGds b2JhbCBsb2NrLgo+Pj4+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hy aXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+Pj4gSSBndWVzcyBwZXIgem9uZSBscnUgbG9jayBpcyBh IGxvdCBtb3JlIHdvcmsgc2luY2UgdGhlbiB3ZSBuZWVkIHRvIGhhbmRsZQo+Pj4gb3JkZXJpbmcg YW5kIEFCQkEgZGVhZGxvY2tzPyBzL3pvbmUvbWVtIHJlZ2lvbi8gSSB0aGluayBpcyB0aGUgcHJv cGVyIHR0bQo+Pj4gbGluZ28uCj4+IE1ha2luZyB0aGUgTFJVIHBlciByZXNvdXJjZSBtYW5hZ2Vy IGlzIHRoZSBsb25nIHRlcm0gZ29hbCwgeWVzLgo+Pgo+PiBNeSBrZXkgaWRlYSBzbyBmYXIgaXMg dGhhdCB3ZSBtYWtlIGJvLT5tZW0gYSBwb2ludGVyIGFuZCB0aGVuIG1vdmUgdGhlCj4+IExSVSBo YW5kbGluZyBpbnRvIHRoZSByZXNvdXJjZSBvYmplY3QgaW5zdGVhZCBvZiB0aGUgQk8uCj4+Cj4+ IFRoZSByZXNvdXJjZSBvYmplY3QgdGhlbiBqdXN0IHJlZmVyZW5jZXMgdGhlIEJPIGFuZCBzbyB0 aGF0IHdlIGNhbgo+PiBmaWd1cmUgb3V0IHdoaWNoIEJPIHRvIGV2aWN0IG9yIHdoaWNoIGZlbmNl IHRvIHdhaXQgZm9yIHRvIGZyZWUgdXAgYQo+PiByZXNvdXJjZS4KPiBIbSB5ZWFoIHRoYXQgY291 bGQgd29yayBvdXQgZmFpcmx5IG5pY2VseS4gQm90aCBmcm9tIGxvY2tpbmcgYnV0IGFsc28KPiBy ZWZjb3VudGluZyBwb3YuIEFuZCBtYXliZSB3ZSBjb3VsZCB0aGVuIHVzZSBlbnRpcmVseSBmcmVl LXN0YW5kaW5nCj4gbWVtIG9iamVjdHMgaW5zdGVhZCBvZiBnaG9zdCBvYmplY3RzPyBTaW5jZSB0 aGF0J3MgYSBwYXJ0IG9mIHR0bSBJCj4gZG9uJ3QgZ3JvayBhbmQgaXQgYWx3YXlzIGxvb2tzIGEg Yml0IGxpa2UgYSBoYWNrIHRvIG1lLiBTbyBmb3IgdGhlc2UKPiBnaG9zdCBtZW0gb2JqZWN0cyB5 b3UnZCBvbmx5IG5lZWQgdGhlIGxydSArIGRtYV9mZW5jZV93YWl0IChjYW4gZ3JhYiBhCj4gZmVu Y2UgcmVmIHVuZGVyIHRoZSBscnUgYW5kIHRoZW4gZHJvcCBscnUgbG9jayBmb3IgdGhhdCkgZm9y IGV2aWN0aW9uLAo+IG5vIGRtYV9yZXN2X2xvY2suCgpFeGFjdGx5IHRoYXQncyB0aGUgYmFja2dy b3VuZCBoZXJlLCB5ZXMuCgpUaG9zZSBnaG9zdCBvYmplY3RzIGFyZSBtb3JlIHRoYW4ganVzdCBh IGJpdCBvZiBhIGhhY2sgYW5kIHJlc3VsdCBpbiAKdG9ucyBvZiBjaGVja3MgaW4gdGhlIGRyaXZl ciBpZiBhIEJPIGlzIHJlYWxseSBhIEJPIG9yIGEgZ2hvc3QuCgpNb3ZpbmcgYWxsIHRoYXQgaGFu ZGxpbmcgaW50byB0aGUgcmVzb3VyY2Ugb2JqZWN0cyBub3Qgb25seSBhbGxvd3MgdXMgdG8gCnJl bW92ZSB0aGF0LCBidXQgYWxzbyBtYWtlcyB0aGluZ3MgbGlrZSBkZWxheWVkIGRlbGV0ZSB3b3Jr IG91dCBwcmV0dHkgCm5pY2VseS4KCkNocmlzdGlhbi4KCj4gLURhbmllbAo+PiBSZWdhcmRzLAo+ PiBDaHJpc3RpYW4uCj4+Cj4+PiAtRGFuaWVsCj4+Pgo+Pj4+IC0tLQo+Pj4+ICAgIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jIHwgIDggKystLS0KPj4+PiAgICBkcml2ZXJz L2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMgICAgICB8ICA1ICstLQo+Pj4+ICAgIGRyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvLmMgICAgICAgICAgIHwgNDkgKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0KPj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9kZXZpY2UuYyAgICAgICB8IDEy ICsrKy0tLS0KPj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYyB8 ICA4ICsrLS0tCj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcmVzb3VyY2UuYyAgICAg fCAgOSArKystLQo+Pj4+ICAgIGluY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggICAgICAg IHwgIDQgKy0tCj4+Pj4gICAgaW5jbHVkZS9kcm0vdHRtL3R0bV9kZXZpY2UuaCAgICAgICAgICAg fCAgNCArLS0KPj4+PiAgICA4IGZpbGVzIGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKyksIDU2IGRl bGV0aW9ucygtKQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV92bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMK Pj4+PiBpbmRleCA5ZDE5MDc4MjQ2YzguLmFlMThjMGUzMjM0NyAxMDA2NDQKPj4+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+Pj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4+Pj4gQEAgLTYzOCwxNSArNjM4LDE1IEBA IHZvaWQgYW1kZ3B1X3ZtX21vdmVfdG9fbHJ1X3RhaWwoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsCj4+Pj4gICAgICAgc3RydWN0IGFtZGdwdV92bV9ib19iYXNlICpib19iYXNlOwo+Pj4+Cj4+ Pj4gICAgICAgaWYgKHZtLT5idWxrX21vdmVhYmxlKSB7Cj4+Pj4gLSAgICAgICAgICAgIHNwaW5f bG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+Pj4+ICsgICAgICAgICAgICBzcGluX2xvY2soJmFk ZXYtPm1tYW4uYmRldi5scnVfbG9jayk7Cj4+Pj4gICAgICAgICAgICAgICB0dG1fYm9fYnVsa19t b3ZlX2xydV90YWlsKCZ2bS0+bHJ1X2J1bGtfbW92ZSk7Cj4+Pj4gLSAgICAgICAgICAgIHNwaW5f dW5sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+Pj4gKyAgICAgICAgICAgIHNwaW5fdW5sb2Nr KCZhZGV2LT5tbWFuLmJkZXYubHJ1X2xvY2spOwo+Pj4+ICAgICAgICAgICAgICAgcmV0dXJuOwo+ Pj4+ICAgICAgIH0KPj4+Pgo+Pj4+ICAgICAgIG1lbXNldCgmdm0tPmxydV9idWxrX21vdmUsIDAs IHNpemVvZih2bS0+bHJ1X2J1bGtfbW92ZSkpOwo+Pj4+Cj4+Pj4gLSAgICBzcGluX2xvY2soJnR0 bV9nbG9iLmxydV9sb2NrKTsKPj4+PiArICAgIHNwaW5fbG9jaygmYWRldi0+bW1hbi5iZGV2Lmxy dV9sb2NrKTsKPj4+PiAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGJvX2Jhc2UsICZ2bS0+aWRs ZSwgdm1fc3RhdHVzKSB7Cj4+Pj4gICAgICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9 IGJvX2Jhc2UtPmJvOwo+Pj4+Cj4+Pj4gQEAgLTY2MCw3ICs2NjAsNyBAQCB2b2lkIGFtZGdwdV92 bV9tb3ZlX3RvX2xydV90YWlsKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYm8tPnNoYWRvdy0+dGJv Lm1lbSwKPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JnZtLT5scnVfYnVsa19tb3ZlKTsKPj4+PiAgICAgICB9Cj4+Pj4gLSAgICBzcGluX3VubG9jaygm dHRtX2dsb2IubHJ1X2xvY2spOwo+Pj4+ICsgICAgc3Bpbl91bmxvY2soJmFkZXYtPm1tYW4uYmRl di5scnVfbG9jayk7Cj4+Pj4KPj4+PiAgICAgICB2bS0+YnVsa19tb3ZlYWJsZSA9IHRydWU7Cj4+ Pj4gICAgfQo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNl LmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNlLmMKPj4+PiBpbmRleCBmNTg0NWM5 NmQ0MTQuLmIxOWYyZjAwYjIxNSAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhs L3F4bF9yZWxlYXNlLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNl LmMKPj4+PiBAQCAtNDI2LDE2ICs0MjYsMTMgQEAgdm9pZCBxeGxfcmVsZWFzZV9mZW5jZV9idWZm ZXJfb2JqZWN0cyhzdHJ1Y3QgcXhsX3JlbGVhc2UgKnJlbGVhc2UpCj4+Pj4gICAgICAgICAgICAg ICAgICAgICAgcmVsZWFzZS0+aWQgfCAweGYwMDAwMDAwLCByZWxlYXNlLT5iYXNlLnNlcW5vKTsK Pj4+PiAgICAgICB0cmFjZV9kbWFfZmVuY2VfZW1pdCgmcmVsZWFzZS0+YmFzZSk7Cj4+Pj4KPj4+ PiAtICAgIHNwaW5fbG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+Pj4+IC0KPj4+PiAgICAgICBs aXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmcmVsZWFzZS0+Ym9zLCBoZWFkKSB7Cj4+Pj4gICAg ICAgICAgICAgICBibyA9IGVudHJ5LT5ibzsKPj4+Pgo+Pj4+ICAgICAgICAgICAgICAgZG1hX3Jl c3ZfYWRkX3NoYXJlZF9mZW5jZShiby0+YmFzZS5yZXN2LCAmcmVsZWFzZS0+YmFzZSk7Cj4+Pj4g LSAgICAgICAgICAgIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsKGJvLCAmYm8tPm1lbSwgTlVMTCk7 Cj4+Pj4gKyAgICAgICAgICAgIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsX3VubG9ja2VkKGJvKTsK Pj4+PiAgICAgICAgICAgICAgIGRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKPj4+PiAg ICAgICB9Cj4+Pj4gLSAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+Pj4+ICAg ICAgIHd3X2FjcXVpcmVfZmluaSgmcmVsZWFzZS0+dGlja2V0KTsKPj4+PiAgICB9Cj4+Pj4KPj4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyBiL2RyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX2JvLmMKPj4+PiBpbmRleCBhMWJlODhiZTM1N2IuLmE4MTAzYzg3MThhMyAx MDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+Pj4+IEBAIC0yNDIsOSArMjQyLDkgQEAgc3Rh dGljIGludCB0dG1fYm9faW5kaXZpZHVhbGl6ZV9yZXN2KHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8pCj4+Pj4gICAgICAgICAgICAgICAgKiByZWZlcmVuY2UgaXQgYW55IG1vcmUuIFRoZSBv bmx5IHRyaWNreSBjYXNlIGlzIHRoZSB0cnlsb2NrIG9uCj4+Pj4gICAgICAgICAgICAgICAgKiB0 aGUgcmVzdiBvYmplY3Qgd2hpbGUgaG9sZGluZyB0aGUgbHJ1X2xvY2suCj4+Pj4gICAgICAgICAg ICAgICAgKi8KPj4+PiAtICAgICAgICAgICAgc3Bpbl9sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7 Cj4+Pj4gKyAgICAgICAgICAgIHNwaW5fbG9jaygmYm8tPmJkZXYtPmxydV9sb2NrKTsKPj4+PiAg ICAgICAgICAgICAgIGJvLT5iYXNlLnJlc3YgPSAmYm8tPmJhc2UuX3Jlc3Y7Cj4+Pj4gLSAgICAg ICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+Pj4gKyAgICAgICAgICAg IHNwaW5fdW5sb2NrKCZiby0+YmRldi0+bHJ1X2xvY2spOwo+Pj4+ICAgICAgIH0KPj4+Pgo+Pj4+ ICAgICAgIHJldHVybiByOwo+Pj4+IEBAIC0zMDMsNyArMzAzLDcgQEAgc3RhdGljIGludCB0dG1f Ym9fY2xlYW51cF9yZWZzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+Pj4KPj4+PiAg ICAgICAgICAgICAgIGlmICh1bmxvY2tfcmVzdikKPj4+PiAgICAgICAgICAgICAgICAgICAgICAg ZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwo+Pj4+IC0gICAgICAgICAgICBzcGluX3Vu bG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+Pj4+ICsgICAgICAgICAgICBzcGluX3VubG9jaygm Ym8tPmJkZXYtPmxydV9sb2NrKTsKPj4+Pgo+Pj4+ICAgICAgICAgICAgICAgbHJldCA9IGRtYV9y ZXN2X3dhaXRfdGltZW91dF9yY3UocmVzdiwgdHJ1ZSwgaW50ZXJydXB0aWJsZSwKPj4+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwICogSFopOwo+Pj4+ IEBAIC0zMTMsNyArMzEzLDcgQEAgc3RhdGljIGludCB0dG1fYm9fY2xlYW51cF9yZWZzKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+Pj4gICAgICAgICAgICAgICBlbHNlIGlmIChscmV0 ID09IDApCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUJVU1k7Cj4+Pj4KPj4+ PiAtICAgICAgICAgICAgc3Bpbl9sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+Pj4gKyAgICAg ICAgICAgIHNwaW5fbG9jaygmYm8tPmJkZXYtPmxydV9sb2NrKTsKPj4+PiAgICAgICAgICAgICAg IGlmICh1bmxvY2tfcmVzdiAmJiAhZG1hX3Jlc3ZfdHJ5bG9jayhiby0+YmFzZS5yZXN2KSkgewo+ Pj4+ICAgICAgICAgICAgICAgICAgICAgICAvKgo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAg KiBXZSByYWNlZCwgYW5kIGxvc3QsIHNvbWVvbmUgZWxzZSBob2xkcyB0aGUgcmVzZXJ2YXRpb24g bm93LAo+Pj4+IEBAIC0zMjMsNyArMzIzLDcgQEAgc3RhdGljIGludCB0dG1fYm9fY2xlYW51cF9y ZWZzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAqIGRlbGF5ZWQgZGVzdHJ1Y3Rpb24gd291bGQgc3VjY2VlZCwgc28ganVzdCByZXR1cm4g c3VjY2Vzcwo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgKiBoZXJlLgo+Pj4+ICAgICAgICAg ICAgICAgICAgICAgICAgKi8KPj4+PiAtICAgICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygm dHRtX2dsb2IubHJ1X2xvY2spOwo+Pj4+ICsgICAgICAgICAgICAgICAgICAgIHNwaW5fdW5sb2Nr KCZiby0+YmRldi0+bHJ1X2xvY2spOwo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g MDsKPj4+PiAgICAgICAgICAgICAgIH0KPj4+PiAgICAgICAgICAgICAgIHJldCA9IDA7Cj4+Pj4g QEAgLTMzMiwxMyArMzMyLDEzIEBAIHN0YXRpYyBpbnQgdHRtX2JvX2NsZWFudXBfcmVmcyhzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4+ICAgICAgIGlmIChyZXQgfHwgdW5saWtlbHko bGlzdF9lbXB0eSgmYm8tPmRkZXN0cm95KSkpIHsKPj4+PiAgICAgICAgICAgICAgIGlmICh1bmxv Y2tfcmVzdikKPj4+PiAgICAgICAgICAgICAgICAgICAgICAgZG1hX3Jlc3ZfdW5sb2NrKGJvLT5i YXNlLnJlc3YpOwo+Pj4+IC0gICAgICAgICAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xv Y2spOwo+Pj4+ICsgICAgICAgICAgICBzcGluX3VubG9jaygmYm8tPmJkZXYtPmxydV9sb2NrKTsK Pj4+PiAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+Pj4gICAgICAgfQo+Pj4+Cj4+Pj4gICAg ICAgdHRtX2JvX2RlbF9mcm9tX2xydShibyk7Cj4+Pj4gICAgICAgbGlzdF9kZWxfaW5pdCgmYm8t PmRkZXN0cm95KTsKPj4+PiAtICAgIHNwaW5fdW5sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+ Pj4gKyAgICBzcGluX3VubG9jaygmYm8tPmJkZXYtPmxydV9sb2NrKTsKPj4+PiAgICAgICB0dG1f Ym9fY2xlYW51cF9tZW10eXBlX3VzZShibyk7Cj4+Pj4KPj4+PiAgICAgICBpZiAodW5sb2NrX3Jl c3YpCj4+Pj4gQEAgLTM1NSwxMyArMzU1LDEyIEBAIHN0YXRpYyBpbnQgdHRtX2JvX2NsZWFudXBf cmVmcyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4+ICAgICAqLwo+Pj4+ICAgIGJv b2wgdHRtX2JvX2RlbGF5ZWRfZGVsZXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBib29sIHJl bW92ZV9hbGwpCj4+Pj4gICAgewo+Pj4+IC0gICAgc3RydWN0IHR0bV9nbG9iYWwgKmdsb2IgPSAm dHRtX2dsb2I7Cj4+Pj4gICAgICAgc3RydWN0IGxpc3RfaGVhZCByZW1vdmVkOwo+Pj4+ICAgICAg IGJvb2wgZW1wdHk7Cj4+Pj4KPj4+PiAgICAgICBJTklUX0xJU1RfSEVBRCgmcmVtb3ZlZCk7Cj4+ Pj4KPj4+PiAtICAgIHNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+Pj4+ICsgICAgc3Bpbl9s b2NrKCZiZGV2LT5scnVfbG9jayk7Cj4+Pj4gICAgICAgd2hpbGUgKCFsaXN0X2VtcHR5KCZiZGV2 LT5kZGVzdHJveSkpIHsKPj4+PiAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm87Cj4+Pj4KPj4+PiBAQCAtMzcyLDI0ICszNzEsMjQgQEAgYm9vbCB0dG1fYm9fZGVsYXll ZF9kZWxldGUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIGJvb2wgcmVtb3ZlX2FsbCkKPj4+PiAg ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4+Pj4KPj4+PiAgICAgICAgICAgICAgIGlm IChyZW1vdmVfYWxsIHx8IGJvLT5iYXNlLnJlc3YgIT0gJmJvLT5iYXNlLl9yZXN2KSB7Cj4+Pj4g LSAgICAgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKPj4+PiAr ICAgICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmYmRldi0+bHJ1X2xvY2spOwo+Pj4+ICAg ICAgICAgICAgICAgICAgICAgICBkbWFfcmVzdl9sb2NrKGJvLT5iYXNlLnJlc3YsIE5VTEwpOwo+ Pj4+Cj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7 Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgc3Bpbl9sb2NrKCZiZGV2LT5scnVfbG9jayk7Cj4+ Pj4gICAgICAgICAgICAgICAgICAgICAgIHR0bV9ib19jbGVhbnVwX3JlZnMoYm8sIGZhbHNlLCAh cmVtb3ZlX2FsbCwgdHJ1ZSk7Cj4+Pj4KPj4+PiAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZG1h X3Jlc3ZfdHJ5bG9jayhiby0+YmFzZS5yZXN2KSkgewo+Pj4+ICAgICAgICAgICAgICAgICAgICAg ICB0dG1fYm9fY2xlYW51cF9yZWZzKGJvLCBmYWxzZSwgIXJlbW92ZV9hbGwsIHRydWUpOwo+Pj4+ ICAgICAgICAgICAgICAgfSBlbHNlIHsKPj4+PiAtICAgICAgICAgICAgICAgICAgICBzcGluX3Vu bG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+Pj4+ICsgICAgICAgICAgICAgICAgICAgIHNwaW5fdW5s b2NrKCZiZGV2LT5scnVfbG9jayk7Cj4+Pj4gICAgICAgICAgICAgICB9Cj4+Pj4KPj4+PiAgICAg ICAgICAgICAgIHR0bV9ib19wdXQoYm8pOwo+Pj4+IC0gICAgICAgICAgICBzcGluX2xvY2soJmds b2ItPmxydV9sb2NrKTsKPj4+PiArICAgICAgICAgICAgc3Bpbl9sb2NrKCZiZGV2LT5scnVfbG9j ayk7Cj4+Pj4gICAgICAgfQo+Pj4+ICAgICAgIGxpc3Rfc3BsaWNlX3RhaWwoJnJlbW92ZWQsICZi ZGV2LT5kZGVzdHJveSk7Cj4+Pj4gICAgICAgZW1wdHkgPSBsaXN0X2VtcHR5KCZiZGV2LT5kZGVz dHJveSk7Cj4+Pj4gLSAgICBzcGluX3VubG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+Pj4+ICsgICAg c3Bpbl91bmxvY2soJmJkZXYtPmxydV9sb2NrKTsKPj4+Pgo+Pj4+ICAgICAgIHJldHVybiBlbXB0 eTsKPj4+PiAgICB9Cj4+Pj4gQEAgLTQyNCw3ICs0MjMsNyBAQCBzdGF0aWMgdm9pZCB0dG1fYm9f cmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3JlZikKPj4+PiAgICAgICAgICAgICAgIHR0bV9ib19mbHVz aF9hbGxfZmVuY2VzKGJvKTsKPj4+PiAgICAgICAgICAgICAgIGJvLT5kZWxldGVkID0gdHJ1ZTsK Pj4+Pgo+Pj4+IC0gICAgICAgICAgICBzcGluX2xvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4+ PiArICAgICAgICAgICAgc3Bpbl9sb2NrKCZiby0+YmRldi0+bHJ1X2xvY2spOwo+Pj4+Cj4+Pj4g ICAgICAgICAgICAgICAvKgo+Pj4+ICAgICAgICAgICAgICAgICogTWFrZSBwaW5uZWQgYm9zIGlt bWVkaWF0ZWx5IGF2YWlsYWJsZSB0bwo+Pj4+IEBAIC00MzgsMTcgKzQzNywxNyBAQCBzdGF0aWMg dm9pZCB0dG1fYm9fcmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3JlZikKPj4+Pgo+Pj4+ICAgICAgICAg ICAgICAga3JlZl9pbml0KCZiby0+a3JlZik7Cj4+Pj4gICAgICAgICAgICAgICBsaXN0X2FkZF90 YWlsKCZiby0+ZGRlc3Ryb3ksICZiZGV2LT5kZGVzdHJveSk7Cj4+Pj4gLSAgICAgICAgICAgIHNw aW5fdW5sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+Pj4gKyAgICAgICAgICAgIHNwaW5fdW5s b2NrKCZiby0+YmRldi0+bHJ1X2xvY2spOwo+Pj4+Cj4+Pj4gICAgICAgICAgICAgICBzY2hlZHVs ZV9kZWxheWVkX3dvcmsoJmJkZXYtPndxLAo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICgoSFogLyAxMDApIDwgMSkgPyAxIDogSFogLyAxMDApOwo+Pj4+ICAgICAgICAg ICAgICAgcmV0dXJuOwo+Pj4+ICAgICAgIH0KPj4+Pgo+Pj4+IC0gICAgc3Bpbl9sb2NrKCZ0dG1f Z2xvYi5scnVfbG9jayk7Cj4+Pj4gKyAgICBzcGluX2xvY2soJmJvLT5iZGV2LT5scnVfbG9jayk7 Cj4+Pj4gICAgICAgdHRtX2JvX2RlbF9mcm9tX2xydShibyk7Cj4+Pj4gICAgICAgbGlzdF9kZWwo JmJvLT5kZGVzdHJveSk7Cj4+Pj4gLSAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2sp Owo+Pj4+ICsgICAgc3Bpbl91bmxvY2soJmJvLT5iZGV2LT5scnVfbG9jayk7Cj4+Pj4KPj4+PiAg ICAgICB0dG1fYm9fY2xlYW51cF9tZW10eXBlX3VzZShibyk7Cj4+Pj4gICAgICAgZG1hX3Jlc3Zf dW5sb2NrKGJvLT5iYXNlLnJlc3YpOwo+Pj4+IEBAIC02MjIsNyArNjIxLDcgQEAgaW50IHR0bV9t ZW1fZXZpY3RfZmlyc3Qoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+Pj4gICAgICAgdW5zaWdu ZWQgaTsKPj4+PiAgICAgICBpbnQgcmV0Owo+Pj4+Cj4+Pj4gLSAgICBzcGluX2xvY2soJnR0bV9n bG9iLmxydV9sb2NrKTsKPj4+PiArICAgIHNwaW5fbG9jaygmYm8tPmJkZXYtPmxydV9sb2NrKTsK Pj4+PiAgICAgICBmb3IgKGkgPSAwOyBpIDwgVFRNX01BWF9CT19QUklPUklUWTsgKytpKSB7Cj4+ Pj4gICAgICAgICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGJvLCAmbWFuLT5scnVbaV0sIGxy dSkgewo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICBib29sIGJ1c3k7Cj4+Pj4gQEAgLTY1OSw3 ICs2NTgsNyBAQCBpbnQgdHRtX21lbV9ldmljdF9maXJzdChzdHJ1Y3QgdHRtX2RldmljZSAqYmRl diwKPj4+PiAgICAgICBpZiAoIWJvKSB7Cj4+Pj4gICAgICAgICAgICAgICBpZiAoYnVzeV9ibyAm JiAhdHRtX2JvX2dldF91bmxlc3NfemVybyhidXN5X2JvKSkKPj4+PiAgICAgICAgICAgICAgICAg ICAgICAgYnVzeV9ibyA9IE5VTEw7Cj4+Pj4gLSAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZ0dG1f Z2xvYi5scnVfbG9jayk7Cj4+Pj4gKyAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZiby0+YmRldi0+ bHJ1X2xvY2spOwo+Pj4+ICAgICAgICAgICAgICAgcmV0ID0gdHRtX21lbV9ldmljdF93YWl0X2J1 c3koYnVzeV9ibywgY3R4LCB0aWNrZXQpOwo+Pj4+ICAgICAgICAgICAgICAgaWYgKGJ1c3lfYm8p Cj4+Pj4gICAgICAgICAgICAgICAgICAgICAgIHR0bV9ib19wdXQoYnVzeV9ibyk7Cj4+Pj4gQEAg LTY3Myw3ICs2NzIsNyBAQCBpbnQgdHRtX21lbV9ldmljdF9maXJzdChzdHJ1Y3QgdHRtX2Rldmlj ZSAqYmRldiwKPj4+PiAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+Pj4gICAgICAgfQo+Pj4+ Cj4+Pj4gLSAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+Pj4+ICsgICAgc3Bp bl91bmxvY2soJmJvLT5iZGV2LT5scnVfbG9jayk7Cj4+Pj4KPj4+PiAgICAgICByZXQgPSB0dG1f Ym9fZXZpY3QoYm8sIGN0eCk7Cj4+Pj4gICAgICAgaWYgKGxvY2tlZCkKPj4+PiBAQCAtNzczLDEw ICs3NzIsOSBAQCBzdGF0aWMgaW50IHR0bV9ib19tZW1fcGxhY2VtZW50KHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqYm8sCj4+Pj4gICAgICAgbWVtLT5tZW1fdHlwZSA9IHBsYWNlLT5tZW1fdHlw ZTsKPj4+PiAgICAgICBtZW0tPnBsYWNlbWVudCA9IHBsYWNlLT5mbGFnczsKPj4+Pgo+Pj4+IC0g ICAgc3Bpbl9sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+Pj4gKyAgICBzcGluX2xvY2soJmJv LT5iZGV2LT5scnVfbG9jayk7Cj4+Pj4gICAgICAgdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoYm8s IG1lbSwgTlVMTCk7Cj4+Pj4gLSAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+ Pj4+IC0KPj4+PiArICAgIHNwaW5fdW5sb2NrKCZiby0+YmRldi0+bHJ1X2xvY2spOwo+Pj4+ICAg ICAgIHJldHVybiAwOwo+Pj4+ICAgIH0KPj4+Pgo+Pj4+IEBAIC0xMTYwLDcgKzExNTgsNiBAQCBF WFBPUlRfU1lNQk9MKHR0bV9ib193YWl0KTsKPj4+PiAgICBpbnQgdHRtX2JvX3N3YXBvdXQoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgs Cj4+Pj4gICAgICAgICAgICAgICAgICBnZnBfdCBnZnBfZmxhZ3MpCj4+Pj4gICAgewo+Pj4+IC0g ICAgc3RydWN0IHR0bV9nbG9iYWwgKmdsb2IgPSAmdHRtX2dsb2I7Cj4+Pj4gICAgICAgYm9vbCBs b2NrZWQ7Cj4+Pj4gICAgICAgaW50IHJldDsKPj4+Pgo+Pj4+IEBAIC0xMTg1LDcgKzExODIsNyBA QCBpbnQgdHRtX2JvX3N3YXBvdXQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgc3RydWN0 IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsCj4+Pj4KPj4+PiAgICAgICB0dG1fYm9fZGVsX2Zyb21f bHJ1KGJvKTsKPj4+PiAgICAgICAvKiBUT0RPOiBDbGVhbnVwIHRoZSBsb2NraW5nICovCj4+Pj4g LSAgICBzcGluX3VubG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+Pj4+ICsgICAgc3Bpbl91bmxvY2so JmJvLT5iZGV2LT5scnVfbG9jayk7Cj4+Pj4KPj4+PiAgICAgICAvKgo+Pj4+ICAgICAgICAqIE1v dmUgdG8gc3lzdGVtIGNhY2hlZAo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2RldmljZS5jCj4+Pj4gaW5k ZXggMmMyODBmYjFlOTkyLi45MjRkODkyMTA5ZTggMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fZGV2aWNlLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9kZXZpY2UuYwo+Pj4+IEBAIC04MSw3ICs4MSw2IEBAIHN0YXRpYyBpbnQgdHRtX2dsb2JhbF9p bml0KHZvaWQpCj4+Pj4gICAgICAgdHRtX3Bvb2xfbWdyX2luaXQobnVtX3BhZ2VzICogNTAgLyAx MDApOwo+Pj4+ICAgICAgIHR0bV90dF9tZ3JfaW5pdCgpOwo+Pj4+Cj4+Pj4gLSAgICBzcGluX2xv Y2tfaW5pdCgmZ2xvYi0+bHJ1X2xvY2spOwo+Pj4+ICAgICAgIGdsb2ItPmR1bW15X3JlYWRfcGFn ZSA9IGFsbG9jX3BhZ2UoX19HRlBfWkVSTyB8IEdGUF9ETUEzMik7Cj4+Pj4KPj4+PiAgICAgICBp ZiAodW5saWtlbHkoZ2xvYi0+ZHVtbXlfcmVhZF9wYWdlID09IE5VTEwpKSB7Cj4+Pj4gQEAgLTEy NSwxMyArMTI0LDEyIEBAIEVYUE9SVF9TWU1CT0wodHRtX2dsb2JhbF9zd2Fwb3V0KTsKPj4+PiAg ICBsb25nIHR0bV9kZXZpY2Vfc3dhcG91dChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0 IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgIGdmcF90 IGdmcF9mbGFncykKPj4+PiAgICB7Cj4+Pj4gLSAgICBzdHJ1Y3QgdHRtX2dsb2JhbCAqZ2xvYiA9 ICZ0dG1fZ2xvYjsKPj4+PiAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbjsK Pj4+PiAgICAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvOwo+Pj4+ICAgICAgIHVuc2ln bmVkIGksIGo7Cj4+Pj4gICAgICAgaW50IHJldDsKPj4+Pgo+Pj4+IC0gICAgc3Bpbl9sb2NrKCZn bG9iLT5scnVfbG9jayk7Cj4+Pj4gKyAgICBzcGluX2xvY2soJmJkZXYtPmxydV9sb2NrKTsKPj4+ PiAgICAgICBmb3IgKGkgPSBUVE1fUExfU1lTVEVNOyBpIDwgVFRNX05VTV9NRU1fVFlQRVM7ICsr aSkgewo+Pj4+ICAgICAgICAgICAgICAgbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBpKTsK Pj4+PiAgICAgICAgICAgICAgIGlmICghbWFuIHx8ICFtYW4tPnVzZV90dCkKPj4+PiBAQCAtMTU2 LDcgKzE1NCw3IEBAIGxvbmcgdHRtX2RldmljZV9zd2Fwb3V0KHN0cnVjdCB0dG1fZGV2aWNlICpi ZGV2LCBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCwKPj4+PiAgICAgICAgICAgICAgICAg ICAgICAgfQo+Pj4+ICAgICAgICAgICAgICAgfQo+Pj4+ICAgICAgIH0KPj4+PiAtICAgIHNwaW5f dW5sb2NrKCZnbG9iLT5scnVfbG9jayk7Cj4+Pj4gKyAgICBzcGluX3VubG9jaygmYmRldi0+bHJ1 X2xvY2spOwo+Pj4+ICAgICAgIHJldHVybiAwOwo+Pj4+ICAgIH0KPj4+PiAgICBFWFBPUlRfU1lN Qk9MKHR0bV9kZXZpY2Vfc3dhcG91dCk7Cj4+Pj4gQEAgLTIyMyw2ICsyMjEsNyBAQCBpbnQgdHRt X2RldmljZV9pbml0KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX2RldmljZV9m dW5jcyAqZnVuY3MsCj4+Pj4KPj4+PiAgICAgICBiZGV2LT52bWFfbWFuYWdlciA9IHZtYV9tYW5h Z2VyOwo+Pj4+ICAgICAgIElOSVRfREVMQVlFRF9XT1JLKCZiZGV2LT53cSwgdHRtX2RldmljZV9k ZWxheWVkX3dvcmtxdWV1ZSk7Cj4+Pj4gKyAgICBzcGluX2xvY2tfaW5pdCgmYmRldi0+bHJ1X2xv Y2spOwo+Pj4+ICAgICAgIElOSVRfTElTVF9IRUFEKCZiZGV2LT5kZGVzdHJveSk7Cj4+Pj4gICAg ICAgYmRldi0+ZGV2X21hcHBpbmcgPSBtYXBwaW5nOwo+Pj4+ICAgICAgIG11dGV4X2xvY2soJnR0 bV9nbG9iYWxfbXV0ZXgpOwo+Pj4+IEBAIC0yMzUsNyArMjM0LDYgQEAgRVhQT1JUX1NZTUJPTCh0 dG1fZGV2aWNlX2luaXQpOwo+Pj4+Cj4+Pj4gICAgdm9pZCB0dG1fZGV2aWNlX2Zpbmkoc3RydWN0 IHR0bV9kZXZpY2UgKmJkZXYpCj4+Pj4gICAgewo+Pj4+IC0gICAgc3RydWN0IHR0bV9nbG9iYWwg Kmdsb2IgPSAmdHRtX2dsb2I7Cj4+Pj4gICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2Vy ICptYW47Cj4+Pj4gICAgICAgdW5zaWduZWQgaTsKPj4+Pgo+Pj4+IEBAIC0yNTIsMTEgKzI1MCwx MSBAQCB2b2lkIHR0bV9kZXZpY2VfZmluaShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldikKPj4+PiAg ICAgICBpZiAodHRtX2JvX2RlbGF5ZWRfZGVsZXRlKGJkZXYsIHRydWUpKQo+Pj4+ICAgICAgICAg ICAgICAgcHJfZGVidWcoIkRlbGF5ZWQgZGVzdHJveSBsaXN0IHdhcyBjbGVhblxuIik7Cj4+Pj4K Pj4+PiAtICAgIHNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+Pj4+ICsgICAgc3Bpbl9sb2Nr KCZiZGV2LT5scnVfbG9jayk7Cj4+Pj4gICAgICAgZm9yIChpID0gMDsgaSA8IFRUTV9NQVhfQk9f UFJJT1JJVFk7ICsraSkKPj4+PiAgICAgICAgICAgICAgIGlmIChsaXN0X2VtcHR5KCZtYW4tPmxy dVswXSkpCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgIHByX2RlYnVnKCJTd2FwIGxpc3QgJWQg d2FzIGNsZWFuXG4iLCBpKTsKPj4+PiAtICAgIHNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7 Cj4+Pj4gKyAgICBzcGluX3VubG9jaygmYmRldi0+bHJ1X2xvY2spOwo+Pj4+Cj4+Pj4gICAgICAg dHRtX3Bvb2xfZmluaSgmYmRldi0+cG9vbCk7Cj4+Pj4gICAgICAgdHRtX2dsb2JhbF9yZWxlYXNl KCk7Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2V4ZWNidWZfdXRp bC5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmMKPj4+PiBpbmRleCA2 OTBhYjk3ZDUyYjcuLjA3MWM0OGQ2NzJjNiAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0v dHRtX2V4ZWNidWZfdXRpbC5jCj4+Pj4gQEAgLTUxLDE0ICs1MSwxMiBAQCB2b2lkIHR0bV9ldV9i YWNrb2ZmX3Jlc2VydmF0aW9uKHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0LAo+Pj4+ICAg ICAgIGlmIChsaXN0X2VtcHR5KGxpc3QpKQo+Pj4+ICAgICAgICAgICAgICAgcmV0dXJuOwo+Pj4+ Cj4+Pj4gLSAgICBzcGluX2xvY2soJnR0bV9nbG9iLmxydV9sb2NrKTsKPj4+PiAgICAgICBsaXN0 X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCBsaXN0LCBoZWFkKSB7Cj4+Pj4gICAgICAgICAgICAgICBz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gZW50cnktPmJvOwo+Pj4+Cj4+Pj4gLSAgICAg ICAgICAgIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsKGJvLCAmYm8tPm1lbSwgTlVMTCk7Cj4+Pj4g KyAgICAgICAgICAgIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsX3VubG9ja2VkKGJvKTsKPj4+PiAg ICAgICAgICAgICAgIGRtYV9yZXN2X3VubG9jayhiby0+YmFzZS5yZXN2KTsKPj4+PiAgICAgICB9 Cj4+Pj4gLSAgICBzcGluX3VubG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+Pj4+Cj4+Pj4gICAg ICAgaWYgKHRpY2tldCkKPj4+PiAgICAgICAgICAgICAgIHd3X2FjcXVpcmVfZmluaSh0aWNrZXQp Owo+Pj4+IEBAIC0xNTQsNyArMTUyLDYgQEAgdm9pZCB0dG1fZXVfZmVuY2VfYnVmZmVyX29iamVj dHMoc3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQsCj4+Pj4gICAgICAgaWYgKGxpc3RfZW1w dHkobGlzdCkpCj4+Pj4gICAgICAgICAgICAgICByZXR1cm47Cj4+Pj4KPj4+PiAtICAgIHNwaW5f bG9jaygmdHRtX2dsb2IubHJ1X2xvY2spOwo+Pj4+ICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnko ZW50cnksIGxpc3QsIGhlYWQpIHsKPj4+PiAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8gPSBlbnRyeS0+Ym87Cj4+Pj4KPj4+PiBAQCAtMTYyLDEwICsxNTksOSBAQCB2 b2lkIHR0bV9ldV9mZW5jZV9idWZmZXJfb2JqZWN0cyhzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHggKnRp Y2tldCwKPj4+PiAgICAgICAgICAgICAgICAgICAgICAgZG1hX3Jlc3ZfYWRkX3NoYXJlZF9mZW5j ZShiby0+YmFzZS5yZXN2LCBmZW5jZSk7Cj4+Pj4gICAgICAgICAgICAgICBlbHNlCj4+Pj4gICAg ICAgICAgICAgICAgICAgICAgIGRtYV9yZXN2X2FkZF9leGNsX2ZlbmNlKGJvLT5iYXNlLnJlc3Ys IGZlbmNlKTsKPj4+PiAtICAgICAgICAgICAgdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoYm8sICZi by0+bWVtLCBOVUxMKTsKPj4+PiArICAgICAgICAgICAgdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWxf dW5sb2NrZWQoYm8pOwo+Pj4+ICAgICAgICAgICAgICAgZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNl LnJlc3YpOwo+Pj4+ICAgICAgIH0KPj4+PiAtICAgIHNwaW5fdW5sb2NrKCZ0dG1fZ2xvYi5scnVf bG9jayk7Cj4+Pj4gICAgICAgaWYgKHRpY2tldCkKPj4+PiAgICAgICAgICAgICAgIHd3X2FjcXVp cmVfZmluaSh0aWNrZXQpOwo+Pj4+ICAgIH0KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3R0bS90dG1fcmVzb3VyY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Jlc291cmNl LmMKPj4+PiBpbmRleCBlZDE2NzJhOWYzMzIuLjA0ZjJlZWY2NTNhYiAxMDA2NDQKPj4+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5jCj4+Pj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fcmVzb3VyY2UuYwo+Pj4+IEBAIC05MSw3ICs5MSw2IEBAIGludCB0dG1f cmVzb3VyY2VfbWFuYWdlcl9ldmljdF9hbGwoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+Pj4g ICAgICAgICAgICAgICAubm9fd2FpdF9ncHUgPSBmYWxzZSwKPj4+PiAgICAgICAgICAgICAgIC5m b3JjZV9hbGxvYyA9IHRydWUKPj4+PiAgICAgICB9Owo+Pj4+IC0gICAgc3RydWN0IHR0bV9nbG9i YWwgKmdsb2IgPSAmdHRtX2dsb2I7Cj4+Pj4gICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7 Cj4+Pj4gICAgICAgaW50IHJldDsKPj4+PiAgICAgICB1bnNpZ25lZCBpOwo+Pj4+IEBAIC0xMDAs MTggKzk5LDE4IEBAIGludCB0dG1fcmVzb3VyY2VfbWFuYWdlcl9ldmljdF9hbGwoc3RydWN0IHR0 bV9kZXZpY2UgKmJkZXYsCj4+Pj4gICAgICAgICogQ2FuJ3QgdXNlIHN0YW5kYXJkIGxpc3QgdHJh dmVyc2FsIHNpbmNlIHdlJ3JlIHVubG9ja2luZy4KPj4+PiAgICAgICAgKi8KPj4+Pgo+Pj4+IC0g ICAgc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7Cj4+Pj4gKyAgICBzcGluX2xvY2soJmJkZXYt PmxydV9sb2NrKTsKPj4+PiAgICAgICBmb3IgKGkgPSAwOyBpIDwgVFRNX01BWF9CT19QUklPUklU WTsgKytpKSB7Cj4+Pj4gICAgICAgICAgICAgICB3aGlsZSAoIWxpc3RfZW1wdHkoJm1hbi0+bHJ1 W2ldKSkgewo+Pj4+IC0gICAgICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZnbG9iLT5scnVf bG9jayk7Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJmJkZXYtPmxydV9s b2NrKTsKPj4+PiAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gdHRtX21lbV9ldmljdF9maXJz dChiZGV2LCBtYW4sIE5VTEwsICZjdHgsCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Cj4+Pj4gICAgICAgICAgICAgICAgICAgICAgIGlm IChyZXQpCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4+ PiAtICAgICAgICAgICAgICAgICAgICBzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKPj4+PiAr ICAgICAgICAgICAgICAgICAgICBzcGluX2xvY2soJmJkZXYtPmxydV9sb2NrKTsKPj4+PiAgICAg ICAgICAgICAgIH0KPj4+PiAgICAgICB9Cj4+Pj4gLSAgICBzcGluX3VubG9jaygmZ2xvYi0+bHJ1 X2xvY2spOwo+Pj4+ICsgICAgc3Bpbl91bmxvY2soJmJkZXYtPmxydV9sb2NrKTsKPj4+Pgo+Pj4+ ICAgICAgIHNwaW5fbG9jaygmbWFuLT5tb3ZlX2xvY2spOwo+Pj4+ICAgICAgIGZlbmNlID0gZG1h X2ZlbmNlX2dldChtYW4tPm1vdmUpOwo+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0v dHRtX2JvX2RyaXZlci5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAo+Pj4+IGlu ZGV4IGQwMDdmZWVmNzY3Ni4uZGJjY2FjOTU3ZjhmIDEwMDY0NAo+Pj4+IC0tLSBhL2luY2x1ZGUv ZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKPj4+PiArKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2Jv X2RyaXZlci5oCj4+Pj4gQEAgLTE4MCw5ICsxODAsOSBAQCBzdGF0aWMgaW5saW5lIGludCB0dG1f Ym9fcmVzZXJ2ZV9zbG93cGF0aChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4+ICAg IHN0YXRpYyBpbmxpbmUgdm9pZAo+Pj4+ICAgIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsX3VubG9j a2VkKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCj4+Pj4gICAgewo+Pj4+IC0gICAgc3Bp bl9sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+Pj4gKyAgICBzcGluX2xvY2soJmJvLT5iZGV2 LT5scnVfbG9jayk7Cj4+Pj4gICAgICAgdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoYm8sICZiby0+ bWVtLCBOVUxMKTsKPj4+PiAtICAgIHNwaW5fdW5sb2NrKCZ0dG1fZ2xvYi5scnVfbG9jayk7Cj4+ Pj4gKyAgICBzcGluX3VubG9jaygmYm8tPmJkZXYtPmxydV9sb2NrKTsKPj4+PiAgICB9Cj4+Pj4K Pj4+PiAgICBzdGF0aWMgaW5saW5lIHZvaWQgdHRtX2JvX2Fzc2lnbl9tZW0oc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywKPj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9k ZXZpY2UuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fZGV2aWNlLmgKPj4+PiBpbmRleCBjZGE2ZWZi NGMzNGIuLmJhZTU2ZDI5ZThmZiAxMDA2NDQKPj4+PiAtLS0gYS9pbmNsdWRlL2RybS90dG0vdHRt X2RldmljZS5oCj4+Pj4gKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9kZXZpY2UuaAo+Pj4+IEBA IC01Niw3ICs1Niw2IEBAIGV4dGVybiBzdHJ1Y3QgdHRtX2dsb2JhbCB7Cj4+Pj4gICAgICAgICov Cj4+Pj4KPj4+PiAgICAgICBzdHJ1Y3QgcGFnZSAqZHVtbXlfcmVhZF9wYWdlOwo+Pj4+IC0gICAg c3BpbmxvY2tfdCBscnVfbG9jazsKPj4+Pgo+Pj4+ICAgICAgIC8qKgo+Pj4+ICAgICAgICAqIFBy b3RlY3RlZCBieSB0dG1fZ2xvYmFsX211dGV4Lgo+Pj4+IEBAIC0yNzcsOCArMjc2LDkgQEAgc3Ry dWN0IHR0bV9kZXZpY2Ugewo+Pj4+ICAgICAgIHN0cnVjdCB0dG1fcG9vbCBwb29sOwo+Pj4+Cj4+ Pj4gICAgICAgLyoKPj4+PiAtICAgICAqIFByb3RlY3RlZCBieSB0aGUgZ2xvYmFsOmxydSBsb2Nr Lgo+Pj4+ICsgICAgICogUHJvdGVjdGlvbiBmb3IgdGhlIHBlciBtYW5hZ2VyIExSVSBhbmQgZGRl c3Ryb3kgbGlzdHMuCj4+Pj4gICAgICAgICovCj4+Pj4gKyAgICBzcGlubG9ja190IGxydV9sb2Nr Owo+Pj4+ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZGRlc3Ryb3k7Cj4+Pj4KPj4+PiAgICAgICAv Kgo+Pj4+IC0tCj4+Pj4gMi4yNS4xCj4+Pj4KPj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwo+Pj4+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPj4+PiBk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==