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 C6489C4361B for ; Tue, 8 Dec 2020 19:16:15 +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 6F6EC23B78 for ; Tue, 8 Dec 2020 19:16:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6F6EC23B78 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 F0BF16E056; Tue, 8 Dec 2020 19:16:14 +0000 (UTC) Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) by gabe.freedesktop.org (Postfix) with ESMTPS id 710C26E053; Tue, 8 Dec 2020 19:16:13 +0000 (UTC) Received: by mail-ed1-x544.google.com with SMTP id cm17so18778490edb.4; Tue, 08 Dec 2020 11:16:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=reply-to:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=O6OGDTIwk/nY1zvG3kKBw9Nintnf8S2cG+YzwZ4Kx0w=; b=nWPc6zijEgmJ9neQuITqQmDwIydnwUtcUSHYIZLaqL32hjaG5FGv3fNAdtbE+hy1Tu CKwcn+Z2A+PNuXQUAk6v1aBTphBa1pLz45+WUz/jPYyfv6mEzDIcU8fzuGLuuAbjrj9p vZz5y0LiGduh8hRWxK7qqK8dw03IG2M5thDMcb/iLQbIS+AbhDWUlTEX1ZeKMGGzFnAn maR4J0keVwwWxZzzdKhKpaN/u3dbcVmGpmZEZmG/f7DOVcDmTwFQBcv8USX9BcN5u4vW EPfNHR3hSLnrg0mX0bHBGZNopxiB0JCKADRpivCuP9ozfXb3vY99Y0pvqtpweQCLA5zu tziw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:reply-to:subject:to:cc:references:from :message-id:date:user-agent:mime-version:in-reply-to :content-transfer-encoding:content-language; bh=O6OGDTIwk/nY1zvG3kKBw9Nintnf8S2cG+YzwZ4Kx0w=; b=ZEAadL6WWGGtIR5mCevwxVjAyZdbvk6ewPqe4OPNNRUek35bCbKw+lKP9ykKYC5Unu 7TjtxrIDngKNkmwY9ugfF7LZJ2nzOBJSD0gLNflxjuEZkxBCu8Y1sARMBqazVLgVNGfX v9LnyrOHxasbdXP+UVNujbNcQr5vyY5YZ/XaUwxtzsNarUwIWUoJt96Ci2s51/Ce3FTT cbNA4A2tmOm+5flnMwqe41xD81gg7o8vRxg8GQs7VdNYkYAygbEUMJfpmBsUCargI1u7 dLR7u5Lx92XOvVBo1dQFyXEW6L2Jj4RF0qnyGtjEy2Wd6hKaV3VclR2pcWQlnbO5NjO/ 1JYg== X-Gm-Message-State: AOAM530mSa8ZuyhVOkmoQDoYJkzE3URZ+SKhyjTRT5TGFIXaTbsHx/hz nhAq6kG1iyJ0HZjf29QPfHD6eB7w9LA= X-Google-Smtp-Source: ABdhPJxajGra1Gyn/UZvOETCWLhzd7NGBVckQEuBmISjaMw1NOcWaa7kDsO0PGrvZQLtzFzzFtEQgg== X-Received: by 2002:a50:af65:: with SMTP id g92mr25979944edd.273.1607454971889; Tue, 08 Dec 2020 11:16:11 -0800 (PST) Received: from ?IPv6:2a02:908:1252:fb60:be8a:bd56:1f94:86e7? ([2a02:908:1252:fb60:be8a:bd56:1f94:86e7]) by smtp.gmail.com with ESMTPSA id ef11sm3925806ejb.15.2020.12.08.11.16.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 08 Dec 2020 11:16:11 -0800 (PST) Subject: Re: [PATCH] drm/amdgpu: Initialise drm_gem_object_funcs for imported BOs To: Andrey Grodzovsky , =?UTF-8?Q?Christian_K=c3=b6nig?= , dri-devel@lists.freedesktop.org References: <1607447432-28982-1-git-send-email-andrey.grodzovsky@amd.com> <76baebc8-6fd3-6b28-8c62-bd049875a8c5@gmail.com> <3ac4b80b-5eeb-fd80-c458-98539c075424@amd.com> <1ad9ddd5-560c-842e-3eea-f09663ea1b60@amd.com> <1b93677a-b8d0-1c28-eb2e-d1a341e2c93e@amd.com> <0fb30648-762e-4d05-1aac-90107be4c67e@amd.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <15f7d7e4-c86f-9f8a-2ccd-5ce9f7047046@gmail.com> Date: Tue, 8 Dec 2020 20:16:09 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <0fb30648-762e-4d05-1aac-90107be4c67e@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: , Reply-To: christian.koenig@amd.com Cc: Alexander.Deucher@amd.com, amd-gfx@lists.freedesktop.org, tzimmermann@suse.de Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" QW0gMDguMTIuMjAgdW0gMjA6MTEgc2NocmllYiBBbmRyZXkgR3JvZHpvdnNreToKPgo+IE9uIDEy LzgvMjAgMjowMSBQTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPj4gQW0gMDguMTIuMjAgdW0g MTk6NTIgc2NocmllYiBBbmRyZXkgR3JvZHpvdnNreToKPj4+Cj4+PiBPbiAxMi84LzIwIDE6NDcg UE0sIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4+Pj4gQW0gMDguMTIuMjAgdW0gMTk6NDQgc2No cmllYiBBbmRyZXkgR3JvZHpvdnNreToKPj4+Pj4KPj4+Pj4gT24gMTIvOC8yMCAxOjI5IFBNLCBD aHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+Pj4+Pj4gQW0gMDguMTIuMjAgdW0gMTk6MjYgc2Nocmll YiBBbmRyZXkgR3JvZHpvdnNreToKPj4+Pj4+Pgo+Pj4+Pj4+IE9uIDEyLzgvMjAgMTI6MzYgUE0s IENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4+Pj4+Pj4+IEFtIDA4LjEyLjIwIHVtIDE4OjEwIHNj aHJpZWIgQW5kcmV5IEdyb2R6b3Zza3k6Cj4+Pj4+Pj4+PiBGb3IgQk9zIGltcG9ydGVkIGZyb20g b3V0c2lkZSBvZiBhbWRncHUsIHNldHRpbmcgb2YgCj4+Pj4+Pj4+PiBhbWRncHVfZ2VtX29iamVj dF9mdW5jcwo+Pj4+Pj4+Pj4gd2FzIG1pc3NpbmcgaW4gYW1kZ3B1X2RtYV9idWZfY3JlYXRlX29i ai4gRml4IGJ5IHJlZmFjdG9yaW5nIAo+Pj4+Pj4+Pj4gQk8gY3JlYXRpb24KPj4+Pj4+Pj4+IGFu ZCBhbWRncHVfZ2VtX29iamVjdF9mdW5jcyBzZXR0aW5nIGludG8gc2luZ2xlIGZ1bmN0aW9uIGNh bGxlZAo+Pj4+Pj4+Pj4gZnJvbSBib3RoIGNvZGUgcGF0aHMuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IENh biB5b3Ugb3V0bGluZSB3aHkgd2UgY2FuJ3QgdXNlIGFtZGdwdV9nZW1fb2JqZWN0X2NyZWF0ZSgp IAo+Pj4+Pj4+PiBkaXJlY3RseT8KPj4+Pj4+Pj4KPj4+Pj4+Pj4gSSBtZWFuIHdlIGhhdmUgYSBi aXQgb2YgZXh0cmEgZXJyb3IgaGFuZGxpbmcgaW4gdGhlcmUgYW5kIHdlIAo+Pj4+Pj4+PiBuZWVk IHRvIGdyYWIgdGhlIHJlc3YgbG9jayBhbmQgc2V0IHRoZSBkb21haW5zIGFmdGVyIGNyZWF0aW9u LCAKPj4+Pj4+Pj4gYnV0IHRoYXQgc2hvdWxkbid0IG1hdHRlciBhbmQgSSBkb24ndCBzZWUgd2h5 IHRoYXQgc2hvdWxkIG5vdCAKPj4+Pj4+Pj4gd29yay4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4g T24gdG9wIG9mIHdoYXQgeW91IG1lbnRpb25lZCB5b3UgYWxzbyBoYXZlIAo+Pj4+Pj4+IGJwLmRv bWFpbi9icC5wcmVmZXJyZWRfZG9tYWluIGJlaW5nIHNldCBkaWZmZXJlbnRseSBzbyB5b3UgbmVl ZCAKPj4+Pj4+PiB0byBhZGQgYW5vdGhlcgo+Pj4+Pj4+IGFyZ3VtZW50IHRvIGFtZGdwdV9nZW1f b2JqZWN0X2NyZWF0ZSB0byByZWZsZWN0IHRoaXMgZGlmZmVyZW5jZSAKPj4+Pj4+PiB3aGljaCBj bHV0dGVycyBldmVuIG1vcmUgdGhlIGFscmVhZHkgY2x1dHRlcmVkIGFyZ3VtZW50IGxpc3QuCj4+ Pj4+Pgo+Pj4+Pj4gVGhhdCBzaG91bGQgYmUgb3V0c2lkZSBvZiB0aGUgY2FsbCB0byBhbWRncHVf Z2VtX29iamVjdF9jcmVhdGUoKSwgCj4+Pj4+PiBzaW1pbGFyIHRvIGhvdyBpdCBpcyBvdXRzaWRl IG9mIHRoZSBhbWRncHVfYm9fY3JlYXRlIGN1cnJlbnRseS4KPj4+Pj4KPj4+Pj4KPj4+Pj4gU28g eW91IGFncmVlIHdlIGhhdmUgdG8gYWRkIGFub3RoZXIgYXJndW1lbnQgdG8gCj4+Pj4+IGFtZGdw dV9nZW1fb2JqZWN0X2NyZWF0ZSAoZS5nLiB1MzIgcHJlZmVycmVkX2RvbWFpbikgd2hpY2ggd2ls bCBiZSAKPj4+Pj4gMCBmb3IgYW1kZ3B1X2RtYV9idWZfY3JlYXRlX29iago+Pj4+PiBhbmQgZXF1 YWwgdG8gaW5pdGlhbF9kb21haW4gZm9yIGFsbCB0aGUgY29kZSBwYXRoIGN1cnJlbnRseSAKPj4+ Pj4gY2FsbGluZyBhbWRncHVfZ2VtX29iamVjdF9jcmVhdGUgPwo+Pj4+Cj4+Pj4gTm8sIEkganVz dCBkb24ndCBzZWUgdGhlIG5lZWQgZm9yIHRoYXQuIFdlIG5lZWQgdG8gb3ZlcndyaXRlIHRoZSAK Pj4+PiBwcmVmZXJyZWQgZG9tYWluIGFmdGVyIHRoZSBmdW5jdGlvbiBjYWxsIGFueXdheS4KPj4+ Pgo+Pj4+IERNQS1idWYgaW1wb3J0cyBhcmUgY3JlYXRlZCB3aXRoIHRoZSBpbml0aWFsIGRvbWFp biBDUFUgYW5kIHRoZW4gCj4+Pj4gZ2V0IHRoYXQgb3ZlcndyaXR0ZW4gdG8gR1RUIGFmdGVyIGNy ZWF0aW9uLgo+Pj4+Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4+IFJlZ2FyZGluZyB0aGUgZXh0 cmEgZXJyb3IgaGFuZGxpbmcgLSB5b3UgaGF2ZSB0aGUgJ3JldHJ5JyBkYW5jZSAKPj4+Pj4+PiBp biBhbWRncHVfZ2VtX29iamVjdF9jcmVhdGUgd2hpY2gganVtcHMgYmFjayB0byB0aGUgbWlkZGxl IG9mIAo+Pj4+Pj4+IGFtZGdwdV9ib19wYXJhbQo+Pj4+Pj4+IGluaXRpYWxpemF0aW9uIGJ1dCB5 b3UgZG9uJ3QgaGF2ZSBpdCBpbiAKPj4+Pj4+PiBhbWRncHVfZG1hX2J1Zl9jcmVhdGVfb2JqIHdo aWNoIGFsc28gY29tcGxpY2F0ZXMgdGhlIHJldXNlIG9mIAo+Pj4+Pj4+IGFtZGdwdV9nZW1fb2Jq ZWN0X2NyZWF0ZSBhcyBpcy4KPj4+Pj4+Cj4+Pj4+PiBSZWdhcmRpbmcgdGhlIGV4dHJhIGVycm9y IGhhbmRsaW5nLCB0aGF0IGtpY2tzIGluIG9ubHkgd2hlbiAKPj4+Pj4+IEFNREdQVV9HRU1fQ1JF QVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQgaXMgc3BlY2lmaWVkIGFzIGZsYWdzIG9yIAo+Pj4+Pj4g QU1ER1BVX0dFTV9ET01BSU5fVlJBTSBhcyBpbml0aWFsIGRvbWFpbi4gTmVpdGhlciBpcyB0aGUg Y2FzZSBoZXJlLgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBZZXMsIHN0aWxsLCBpdCBtYWtlcyBtZSBhIGJp dCB1bmNvbWZvcnRhYmxlIHJlbHlpbmcgb24gaW50ZXJuYWwgCj4+Pj4+IGltcGxlbWVudGF0aW9u IGRldGFpbHMgb2YgYW4gQVBJIGZ1bmN0aW9uIEkgY2FsbCB0byBkbyB0aGUgdGhpbmcgSSAKPj4+ Pj4gZXhwZWN0Lgo+Pj4+Cj4+Pj4gWWVhaCwgb2sgdGhhdCBpcyBhIHJhdGhlciBnb29kIGFyZ3Vt ZW50Lgo+Pj4+Cj4+Pj4gQ2hyaXN0aWFuLgo+Pj4KPj4+Cj4+PiBTbyBzaG91bGQgSSBqdXN0IGtl ZXAgaXQgYXMgaXMgb3IgeW91IHRoaW5rIGl0J3Mgc3RpbGwgd291bGQgYmUgbW9yZSAKPj4+IGJl bmVmaWNpYWwgdG8gdW5pZnkgdGhlbSB0aGUgd2F5IHlvdSBwcm9wb3NlID8KPj4KPj4gTWF5YmUg d2Ugc2hvdWxkIG1vdmUgdGhlIGVycm9yIGhhbmRsaW5nIGludG8gCj4+IGFtZGdwdV9nZW1fY3Jl YXRlX2lvY3RsKCkgYW55d2F5Lgo+Pgo+PiBXZSBkb24ndCByZWFsbHkgd2FudCB0aGF0IGhhbmRs aW5nIGluIHRoZSB1c2VycHRyIHN0dWZmIGFuZCBmb3IgdGhlIAo+PiBjYWxsIGZyb20gYW1kZ3B1 ZmJfY3JlYXRlX3Bpbm5lZF9vYmplY3QoKSB0aGF0IGlzIGFjdHVhbGx5IGEgYnVnIQo+Pgo+PiBF LmcuIGZvciB0aGUgZmIgZW11bGF0aW9uIHdlIGNhbid0IGZhbGwgYmFjayBmcm9tIFZSQU0gdG8g R1RUIGxpa2UgaW4gCj4+IHRoZSBjcmVhdGUgaW9jdGwuCj4KPgo+IFdoYXQgYWJvdXQgYW1kZ3B1 X21vZGVfZHVtYl9jcmVhdGUsIHNlZW1zIGxpa2UgdGhlcmUgR1RUIGRvbWFpbiBpcyAKPiBhbHNv IHJlbGV2YW50IGFuZCBzbyB0aGUgZXJyb3IgaGFuZGxpbmcgd291bGQgYmUgbmVlZGVkIHRoZXJl IHRvby4KCk5vcGUsIHNhbWUgdGhpbmcgYXMgd2l0aCB0aGUgZmIgZW11bGF0aW9uOgoKPiDCoMKg wqDCoMKgwqDCoCBkb21haW4gPSBhbWRncHVfYm9fZ2V0X3ByZWZlcnJlZF9waW5fZG9tYWluKGFk ZXYsCj4gYW1kZ3B1X2Rpc3BsYXlfc3VwcG9ydGVkX2RvbWFpbnMoYWRldiwgZmxhZ3MpKTsKClRo aXMgQk8gaXMgY3JlYXRlZCBmb3Igc2Nhbm91dCwgZmFsbGluZyBiYWNrIHRvIEdUVCBiZWNhdXNl IHdlIGRvbid0IApoYXZlIGVub3VnaCBtZW1vcnkgb3IgY2xlYXJpbmcgdGhlIENQVSBhY2Nlc3Mg ZmxhZyBpcyBtb3N0IGxpa2VseSBhIGJ1ZyAKaGVyZS4KCkNocmlzdGlhbi4KCj4KPiBBbmRyZXkK Pgo+Cj4+Cj4+IENocmlzdGlhbi4KPj4KPj4+Cj4+PiBBbmRyZXkKPj4+Cj4+Pgo+Pj4+Cj4+Pj4+ Cj4+Pj4+IEFuZHJleQo+Pj4+Pgo+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IENocmlzdGlhbi4KPj4+Pj4+ Cj4+Pj4+Pj4KPj4+Pj4+PiBBbmRyZXkKPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+ IFRoYW5rcywKPj4+Pj4+Pj4gQ2hyaXN0aWFuLgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ IFRoaXMgZml4ZXMgbnVsbCBwdHIgcmVncmVzc2lvbiBjYXN1ZWQgYnkgY29tbWl0Cj4+Pj4+Pj4+ PiBkNjkzZGVmIGRybTogUmVtb3ZlIG9ic29sZXRlIEdFTSBhbmQgUFJJTUUgY2FsbGJhY2tzIGZy b20gCj4+Pj4+Pj4+PiBzdHJ1Y3QgZHJtX2RyaXZlcgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFNpZ25l ZC1vZmYtYnk6IEFuZHJleSBHcm9kem92c2t5IDxhbmRyZXkuZ3JvZHpvdnNreUBhbWQuY29tPgo+ Pj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4+PiDCoCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfZG1hX2J1Zi5jIHwgMTMgKysrKysrLS0tLS0tLQo+Pj4+Pj4+Pj4gwqAgZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jwqDCoMKgwqAgfCAyMiAKPj4+Pj4+Pj4+ICsrKysr KysrKysrKysrKysrLS0tLS0KPj4+Pj4+Pj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9nZW0uaMKgwqDCoMKgIHzCoCA1ICsrKysrCj4+Pj4+Pj4+PiDCoCAzIGZpbGVzIGNo YW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQo+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZG1hX2J1 Zi5jIAo+Pj4+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZG1hX2J1 Zi5jCj4+Pj4+Pj4+PiBpbmRleCBlNTkxOWVmLi5kYTRkMGFiIDEwMDY0NAo+Pj4+Pj4+Pj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RtYV9idWYuYwo+Pj4+Pj4+Pj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RtYV9idWYuYwo+Pj4+Pj4+ Pj4gQEAgLTQwNSw2ICs0MDUsNyBAQCBzdHJ1Y3QgZG1hX2J1ZiAKPj4+Pj4+Pj4+ICphbWRncHVf Z2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdvYmosCj4+Pj4+Pj4+PiDC oMKgwqDCoMKgIHJldHVybiBidWY7Cj4+Pj4+Pj4+PiDCoCB9Cj4+Pj4+Pj4+PiDCoCArCj4+Pj4+ Pj4+PiDCoCAvKioKPj4+Pj4+Pj4+IMKgwqAgKiBhbWRncHVfZG1hX2J1Zl9jcmVhdGVfb2JqIC0g Y3JlYXRlIEJPIGZvciBETUEtYnVmIGltcG9ydAo+Pj4+Pj4+Pj4gwqDCoCAqCj4+Pj4+Pj4+PiBA QCAtNDI0LDcgKzQyNSw3IEBAIGFtZGdwdV9kbWFfYnVmX2NyZWF0ZV9vYmooc3RydWN0IAo+Pj4+ Pj4+Pj4gZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZikKPj4+Pj4+Pj4+ IMKgwqDCoMKgwqAgc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkcm1fdG9fYWRldihkZXYp Owo+Pj4+Pj4+Pj4gwqDCoMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X2JvICpibzsKPj4+Pj4+Pj4+IMKg wqDCoMKgwqAgc3RydWN0IGFtZGdwdV9ib19wYXJhbSBicDsKPj4+Pj4+Pj4+IC3CoMKgwqAgaW50 IHJldDsKPj4+Pj4+Pj4+ICvCoMKgwqAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7Cj4+Pj4+ Pj4+PiDCoCDCoMKgwqDCoMKgIG1lbXNldCgmYnAsIDAsIHNpemVvZihicCkpOwo+Pj4+Pj4+Pj4g wqDCoMKgwqDCoCBicC5zaXplID0gZG1hX2J1Zi0+c2l6ZTsKPj4+Pj4+Pj4+IEBAIC00MzQsMjEg KzQzNSwxOSBAQCBhbWRncHVfZG1hX2J1Zl9jcmVhdGVfb2JqKHN0cnVjdCAKPj4+Pj4+Pj4+IGRy bV9kZXZpY2UgKmRldiwgc3RydWN0IGRtYV9idWYgKmRtYV9idWYpCj4+Pj4+Pj4+PiDCoMKgwqDC oMKgIGJwLnR5cGUgPSB0dG1fYm9fdHlwZV9zZzsKPj4+Pj4+Pj4+IMKgwqDCoMKgwqAgYnAucmVz diA9IHJlc3Y7Cj4+Pj4+Pj4+PiDCoMKgwqDCoMKgIGRtYV9yZXN2X2xvY2socmVzdiwgTlVMTCk7 Cj4+Pj4+Pj4+PiAtwqDCoMKgIHJldCA9IGFtZGdwdV9ib19jcmVhdGUoYWRldiwgJmJwLCAmYm8p Owo+Pj4+Pj4+Pj4gLcKgwqDCoCBpZiAocmV0KQo+Pj4+Pj4+Pj4gK8KgwqDCoCBvYmogPSBhbWRn cHVfZ2VtX29iamVjdF9jcmVhdGVfcmF3KGFkZXYsICZicCk7Cj4+Pj4+Pj4+PiArwqDCoMKgIGlm IChJU19FUlIob2JqKSkKPj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGVycm9yOwo+ Pj4+Pj4+Pj4gwqAgK8KgwqDCoCBibyA9IGdlbV90b19hbWRncHVfYm8ob2JqKTsKPj4+Pj4+Pj4+ IMKgwqDCoMKgwqAgYm8tPmFsbG93ZWRfZG9tYWlucyA9IEFNREdQVV9HRU1fRE9NQUlOX0dUVDsK Pj4+Pj4+Pj4+IMKgwqDCoMKgwqAgYm8tPnByZWZlcnJlZF9kb21haW5zID0gQU1ER1BVX0dFTV9E T01BSU5fR1RUOwo+Pj4+Pj4+Pj4gwqDCoMKgwqDCoCBpZiAoZG1hX2J1Zi0+b3BzICE9ICZhbWRn cHVfZG1hYnVmX29wcykKPj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBiby0+cHJpbWVfc2hh cmVkX2NvdW50ID0gMTsKPj4+Pj4+Pj4+IMKgIC3CoMKgwqAgZG1hX3Jlc3ZfdW5sb2NrKHJlc3Yp Owo+Pj4+Pj4+Pj4gLcKgwqDCoCByZXR1cm4gJmJvLT50Ym8uYmFzZTsKPj4+Pj4+Pj4+IC0KPj4+ Pj4+Pj4+IMKgIGVycm9yOgo+Pj4+Pj4+Pj4gwqDCoMKgwqDCoCBkbWFfcmVzdl91bmxvY2socmVz dik7Cj4+Pj4+Pj4+PiAtwqDCoMKgIHJldHVybiBFUlJfUFRSKHJldCk7Cj4+Pj4+Pj4+PiArwqDC oMKgIHJldHVybiBvYmo7Cj4+Pj4+Pj4+PiDCoCB9Cj4+Pj4+Pj4+PiDCoCDCoCAvKioKPj4+Pj4+ Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMg Cj4+Pj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYwo+Pj4+ Pj4+Pj4gaW5kZXggYzlmOTRmYi4uNWYyMmNlNiAxMDA2NDQKPj4+Pj4+Pj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYwo+Pj4+Pj4+Pj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jCj4+Pj4+Pj4+PiBAQCAtNTIsMTMgKzUy LDI2IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9nZW1fb2JqZWN0X2ZyZWUoc3RydWN0IAo+Pj4+Pj4+ Pj4gZHJtX2dlbV9vYmplY3QgKmdvYmopCj4+Pj4+Pj4+PiDCoMKgwqDCoMKgIH0KPj4+Pj4+Pj4+ IMKgIH0KPj4+Pj4+Pj4+IMKgICtzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmFtZGdwdV9nZW1fb2Jq ZWN0X2NyZWF0ZV9yYXcoc3RydWN0IAo+Pj4+Pj4+Pj4gYW1kZ3B1X2RldmljZSAqYWRldiwKPj4+ Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgc3RydWN0IGFtZGdwdV9ib19wYXJhbSAqYnApCj4+Pj4+Pj4+PiArewo+Pj4+Pj4+Pj4g K8KgwqDCoCBzdHJ1Y3QgYW1kZ3B1X2JvICpibzsKPj4+Pj4+Pj4+ICvCoMKgwqAgaW50IHI7Cj4+ Pj4+Pj4+PiArCj4+Pj4+Pj4+PiArwqDCoMKgIHIgPSBhbWRncHVfYm9fY3JlYXRlKGFkZXYsIGJw LCAmYm8pOwo+Pj4+Pj4+Pj4gK8KgwqDCoCBpZiAocikKPj4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDC oCByZXR1cm4gRVJSX1BUUihyKTsKPj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+ICvCoMKgwqAgYm8tPnRi by5iYXNlLmZ1bmNzID0gJmFtZGdwdV9nZW1fb2JqZWN0X2Z1bmNzOwo+Pj4+Pj4+Pj4gK8KgwqDC oCByZXR1cm4gJmJvLT50Ym8uYmFzZTsKPj4+Pj4+Pj4+ICt9Cj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+ PiDCoCBpbnQgYW1kZ3B1X2dlbV9vYmplY3RfY3JlYXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LCAKPj4+Pj4+Pj4+IHVuc2lnbmVkIGxvbmcgc2l6ZSwKPj4+Pj4+Pj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgYWxpZ25tZW50LCB1MzIgaW5pdGlhbF9kb21h aW4sCj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTY0IGZs YWdzLCBlbnVtIHR0bV9ib190eXBlIHR5cGUsCj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRtYV9yZXN2ICpyZXN2LAo+Pj4+Pj4+Pj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqKm9i aikKPj4+Pj4+Pj4+IMKgIHsKPj4+Pj4+Pj4+IC3CoMKgwqAgc3RydWN0IGFtZGdwdV9ibyAqYm87 Cj4+Pj4+Pj4+PiDCoMKgwqDCoMKgIHN0cnVjdCBhbWRncHVfYm9fcGFyYW0gYnA7Cj4+Pj4+Pj4+ PiDCoMKgwqDCoMKgIGludCByOwo+Pj4+Pj4+Pj4gwqAgQEAgLTczLDggKzg2LDkgQEAgaW50IGFt ZGdwdV9nZW1fb2JqZWN0X2NyZWF0ZShzdHJ1Y3QgCj4+Pj4+Pj4+PiBhbWRncHVfZGV2aWNlICph ZGV2LCB1bnNpZ25lZCBsb25nIHNpemUsCj4+Pj4+Pj4+PiDCoCByZXRyeToKPj4+Pj4+Pj4+IMKg wqDCoMKgwqAgYnAuZmxhZ3MgPSBmbGFnczsKPj4+Pj4+Pj4+IMKgwqDCoMKgwqAgYnAuZG9tYWlu ID0gaW5pdGlhbF9kb21haW47Cj4+Pj4+Pj4+PiAtwqDCoMKgIHIgPSBhbWRncHVfYm9fY3JlYXRl KGFkZXYsICZicCwgJmJvKTsKPj4+Pj4+Pj4+IC3CoMKgwqAgaWYgKHIpIHsKPj4+Pj4+Pj4+ICvC oMKgwqAgKm9iaiA9IGFtZGdwdV9nZW1fb2JqZWN0X2NyZWF0ZV9yYXcoYWRldiwgJmJwKTsKPj4+ Pj4+Pj4+ICvCoMKgwqAgaWYgKElTX0VSUigqb2JqKSkgewo+Pj4+Pj4+Pj4gK8KgwqDCoMKgwqDC oMKgIHIgPSBQVFJfRVJSKCpvYmopOwo+Pj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChy ICE9IC1FUkVTVEFSVFNZUykgewo+Pj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg aWYgKGZsYWdzICYgCj4+Pj4+Pj4+PiBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJ UkVEKSB7Cj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZsYWdz ICY9IAo+Pj4+Pj4+Pj4gfkFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQ7Cj4+ Pj4+Pj4+PiBAQCAtOTAsOCArMTA0LDYgQEAgaW50IGFtZGdwdV9nZW1fb2JqZWN0X2NyZWF0ZShz dHJ1Y3QgCj4+Pj4+Pj4+PiBhbWRncHVfZGV2aWNlICphZGV2LCB1bnNpZ25lZCBsb25nIHNpemUs Cj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+Pj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgIHJldHVybiByOwo+Pj4+Pj4+Pj4gwqDCoMKgwqDCoCB9Cj4+Pj4+Pj4+PiAtwqDCoMKgICpv YmogPSAmYm8tPnRiby5iYXNlOwo+Pj4+Pj4+Pj4gLcKgwqDCoCAoKm9iaiktPmZ1bmNzID0gJmFt ZGdwdV9nZW1fb2JqZWN0X2Z1bmNzOwo+Pj4+Pj4+Pj4gwqAgwqDCoMKgwqDCoCByZXR1cm4gMDsK Pj4+Pj4+Pj4+IMKgIH0KPj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfZ2VtLmggCj4+Pj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9nZW0uaAo+Pj4+Pj4+Pj4gaW5kZXggNjM3YmY1MS4uYTZiOTBkMyAxMDA2NDQK Pj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uaAo+ Pj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5oCj4+ Pj4+Pj4+PiBAQCAtMzgsMTIgKzM4LDE3IEBAIHVuc2lnbmVkIGxvbmcgYW1kZ3B1X2dlbV90aW1l b3V0KHVpbnQ2NF90IAo+Pj4+Pj4+Pj4gdGltZW91dF9ucyk7Cj4+Pj4+Pj4+PiDCoCAvKgo+Pj4+ Pj4+Pj4gwqDCoCAqIEdFTSBvYmplY3RzLgo+Pj4+Pj4+Pj4gwqDCoCAqLwo+Pj4+Pj4+Pj4gKwo+ Pj4+Pj4+Pj4gK3N0cnVjdCBhbWRncHVfYm9fcGFyYW07Cj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+PiDC oCB2b2lkIGFtZGdwdV9nZW1fZm9yY2VfcmVsZWFzZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dik7Cj4+Pj4+Pj4+PiDCoCBpbnQgYW1kZ3B1X2dlbV9vYmplY3RfY3JlYXRlKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LCAKPj4+Pj4+Pj4+IHVuc2lnbmVkIGxvbmcgc2l6ZSwKPj4+Pj4+Pj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgYWxpZ25tZW50LCB1MzIg aW5pdGlhbF9kb21haW4sCj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgdTY0IGZsYWdzLCBlbnVtIHR0bV9ib190eXBlIHR5cGUsCj4+Pj4+Pj4+PiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRtYV9yZXN2ICpyZXN2LAo+Pj4+ Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqKm9iaik7Cj4+Pj4+Pj4+PiArc3RydWN0IGRybV9nZW1fb2JqZWN0ICphbWRncHVf Z2VtX29iamVjdF9jcmVhdGVfcmF3KHN0cnVjdCAKPj4+Pj4+Pj4+IGFtZGdwdV9kZXZpY2UgKmFk ZXYsCj4+Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHN0cnVjdCBhbWRncHVfYm9fcGFyYW0gKmJwKTsKPj4+Pj4+Pj4+IMKgIMKg IGludCBhbWRncHVfbW9kZV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwK Pj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPj4+Pj4+Pj4KPj4+Pj4+Cj4+Pj4KPj4KPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGFtZC1nZnggbWFpbGluZyBsaXN0Cj4gYW1k LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vYW1kLWdmeAo=