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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 241A0FCC9A6 for ; Tue, 10 Mar 2026 08:21:32 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 28FCB10E21F; Tue, 10 Mar 2026 08:21:31 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.b="fuRAwTJ1"; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b="eE6+nWQN"; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.b="fuRAwTJ1"; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b="eE6+nWQN"; dkim-atps=neutral Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by gabe.freedesktop.org (Postfix) with ESMTPS id D2F1610E21F for ; Tue, 10 Mar 2026 08:21:29 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 7DB204D2DF; Tue, 10 Mar 2026 08:21:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1773130888; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=9MnK8258wQHQB1iDU8FfPmKfR9GYkR3psD4htu6ItZs=; b=fuRAwTJ1ba8FDodmt6OT+9BhjUpakvW0fS7MpqQz48DBEccMNi9mJB3h1SfqT2iwt/u/1X 7fLaabso6+j7kB6zpIkbv+hZ79SezfOQ0s4s3mVnnYMgYG3aG5UAnnPAr8as0hGmdnnTek ok5OZz09BSoLEEMbqwwREaPlNf86M2c= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1773130888; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=9MnK8258wQHQB1iDU8FfPmKfR9GYkR3psD4htu6ItZs=; b=eE6+nWQNZY4Ie5iDeL57Wqd11NTJfIkefZmxBwFKfmI1C03tSJVfwa5vYU+FCs9DWea8qc DpglCviLZQ+SICDw== Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1773130888; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=9MnK8258wQHQB1iDU8FfPmKfR9GYkR3psD4htu6ItZs=; b=fuRAwTJ1ba8FDodmt6OT+9BhjUpakvW0fS7MpqQz48DBEccMNi9mJB3h1SfqT2iwt/u/1X 7fLaabso6+j7kB6zpIkbv+hZ79SezfOQ0s4s3mVnnYMgYG3aG5UAnnPAr8as0hGmdnnTek ok5OZz09BSoLEEMbqwwREaPlNf86M2c= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1773130888; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=9MnK8258wQHQB1iDU8FfPmKfR9GYkR3psD4htu6ItZs=; b=eE6+nWQNZY4Ie5iDeL57Wqd11NTJfIkefZmxBwFKfmI1C03tSJVfwa5vYU+FCs9DWea8qc DpglCviLZQ+SICDw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 067A53F365; Tue, 10 Mar 2026 08:21:27 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id 2u37OofUr2mfCwAAD6G6ig (envelope-from ); Tue, 10 Mar 2026 08:21:27 +0000 Message-ID: Date: Tue, 10 Mar 2026 09:21:27 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH RESEND 3/4] drm/mediatek: Set dedicated DMA device and drop custom GEM callbacks To: Chen-Yu Tsai , Matthias Brugger , AngeloGioacchino Del Regno , Chun-Kuang Hu , Philipp Zabel , Maarten Lankhorst , Maxime Ripard , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , David Airlie , Simona Vetter Cc: linux-sunxi@lists.linux.dev, Paul Kocialkowski , linux-mediatek@lists.infradead.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20260310032511.2545500-1-wenst@chromium.org> <20260310032511.2545500-4-wenst@chromium.org> Content-Language: en-US From: Thomas Zimmermann Autocrypt: addr=tzimmermann@suse.de; keydata= xsBNBFs50uABCADEHPidWt974CaxBVbrIBwqcq/WURinJ3+2WlIrKWspiP83vfZKaXhFYsdg XH47fDVbPPj+d6tQrw5lPQCyqjwrCPYnq3WlIBnGPJ4/jreTL6V+qfKRDlGLWFjZcsrPJGE0 BeB5BbqP5erN1qylK9i3gPoQjXGhpBpQYwRrEyQyjuvk+Ev0K1Jc5tVDeJAuau3TGNgah4Yc hdHm3bkPjz9EErV85RwvImQ1dptvx6s7xzwXTgGAsaYZsL8WCwDaTuqFa1d1jjlaxg6+tZsB 9GluwvIhSezPgnEmimZDkGnZRRSFiGP8yjqTjjWuf0bSj5rUnTGiyLyRZRNGcXmu6hjlABEB AAHNJ1Rob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNlLmRlPsLAjgQTAQgAOAIb AwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgBYhBHIX+6yM6c9jRKFo5WgNwR1TC3ojBQJftODH AAoJEGgNwR1TC3ojx1wH/0hKGWugiqDgLNXLRD/4TfHBEKmxIrmfu9Z5t7vwUKfwhFL6hqvo lXPJJKQpQ2z8+X2vZm/slsLn7J1yjrOsoJhKABDi+3QWWSGkaGwRJAdPVVyJMfJRNNNIKwVb U6B1BkX2XDKDGffF4TxlOpSQzdtNI/9gleOoUA8+jy8knnDYzjBNOZqLG2FuTdicBXblz0Mf vg41gd9kCwYXDnD91rJU8tzylXv03E75NCaTxTM+FBXPmsAVYQ4GYhhgFt8S2UWMoaaABLDe 7l5FdnLdDEcbmd8uLU2CaG4W2cLrUaI4jz2XbkcPQkqTQ3EB67hYkjiEE6Zy3ggOitiQGcqp j//OwE0EWznS4AEIAMYmP4M/V+T5RY5at/g7rUdNsLhWv1APYrh9RQefODYHrNRHUE9eosYb T6XMryR9hT8XlGOYRwKWwiQBoWSDiTMo/Xi29jUnn4BXfI2px2DTXwc22LKtLAgTRjP+qbU6 3Y0xnQN29UGDbYgyyK51DW3H0If2a3JNsheAAK+Xc9baj0LGIc8T9uiEWHBnCH+RdhgATnWW GKdDegUR5BkDfDg5O/FISymJBHx2Dyoklv5g4BzkgqTqwmaYzsl8UxZKvbaxq0zbehDda8lv hFXodNFMAgTLJlLuDYOGLK2AwbrS3Sp0AEbkpdJBb44qVlGm5bApZouHeJ/+n+7r12+lqdsA EQEAAcLAdgQYAQgAIAIbDBYhBHIX+6yM6c9jRKFo5WgNwR1TC3ojBQJftOH6AAoJEGgNwR1T C3ojVSkIALpAPkIJPQoURPb1VWjh34l0HlglmYHvZszJWTXYwavHR8+k6Baa6H7ufXNQtThR yIxJrQLW6rV5lm7TjhffEhxVCn37+cg0zZ3j7zIsSS0rx/aMwi6VhFJA5hfn3T0TtrijKP4A SAQO9xD1Zk9/61JWk8OysuIh7MXkl0fxbRKWE93XeQBhIJHQfnc+YBLprdnxR446Sh8Wn/2D Ya8cavuWf2zrB6cZurs048xe0UbSW5AOSo4V9M0jzYI4nZqTmPxYyXbm30Kvmz0rYVRaitYJ 4kyYYMhuULvrJDMjZRvaNe52tkKAvMevcGdt38H4KSVXAylqyQOW5zvPc4/sq9c= In-Reply-To: <20260310032511.2545500-4-wenst@chromium.org> Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; SUSPICIOUS_RECIPS(1.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; TAGGED_RCPT(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_TWELVE(0.00)[18]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FREEMAIL_TO(0.00)[chromium.org,gmail.com,collabora.com,kernel.org,pengutronix.de,linux.intel.com,sholland.org,ffwll.ch]; FREEMAIL_ENVRCPT(0.00)[gmail.com]; TO_DN_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; DBL_BLOCKED_OPENRESOLVER(0.00)[bootlin.com:url, chromium.org:email, imap1.dmz-prg2.suse.org:helo, suse.com:url] 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: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkKCkFtIDEwLjAzLjI2IHVtIDA0OjI1IHNjaHJpZWIgQ2hlbi1ZdSBUc2FpOgo+IEluIGNvbW1p dCA5YjU0YTMyYzdjNmEgKCJkcm0vbWVkaWF0ZWs6IG10a19nZW06IFBhcnRpYWwgcmVmYWN0b3Ig YW5kCj4gdXNlIGRybV9nZW1fZG1hX29iamVjdCIpIHRoZSBNZWRpYVRlayBEUk0gZHJpdmVyIHdh cyByZWZhY3RvcmVkIHRvIHVzZQo+IGRybV9nZW1fZG1hX29iamVjdCwgYnV0IGN1c3RvbSBjYWxs YmFja3Mgd2VyZSBzdGlsbCBuZWVkZWQgdG8gZGVhbCB3aXRoCj4gdXNpbmcgdGhlIGZpcnN0IGRl dmljZSBvZiB0aGUgcGlwZWxpbmUgYXMgdGhlIERNQSBkZXZpY2UsIGluc3RlYWQgb2YKPiB0aGUg TU1TWVMgZGV2aWNlIHRoYXQgdGhlIERSTSBkcml2ZXIgYmluZHMgdG8uCj4KPiBUdXJucyBvdXQg dGhlcmUgaXMgYWxyZWFkeSBwYXJ0aWFsIHN1cHBvcnQgZm9yIGRlZGljYXRlZCBETUEgZGV2aWNl cyBpbgo+IHRoZSBEUk0gc3Vic3lzdGVtIGZvciBQUklNRSBpbXBvcnRzLiBUaGUgcHJlY2VkaW5n IHBhdGNoZXMgYWRkIHN1cHBvcnQKPiBmb3IgZGVkaWNhdGVkIERNQSBkZXZpY2VzIHRvIHRoZSBH RU0gRE1BIGhlbHBlcnMuCj4KPiBUaGlzIGFsbG93cyB1cyB0byBqdXN0IHNldCB0aGUgZGVkaWNh dGVkIERNQSBkZXZpY2UgZm9yIHRoZSBEUk0gZGV2aWNlLAo+IGFuZCBkcm9wIGFsbCB0aGUgY3Vz dG9tIEdFTSBjYWxsYmFja3MuIEFsc28gZHJvcCB0aGUgLmRtYV9kZXYgZmllbGQKPiBmcm9tIHRo ZSBkcml2ZXIgcHJpdmF0ZSBkYXRhIGFzIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQuCgpNeSBpbXBy ZXNzaW9uIGlzIHRoYXQgdGhpcyBwYXRjaCBzaG91bGQgYmUgc3BsaXQgdXA6IGZpcnN0IHJlcGxh Y2UgCmRtYV9kZXYgd2l0aCB0aGUgZG1hIGRldmljZTsgdGhlbiByZXBsYWNlIHRoZSBub3ctZHVw bGljYXRlIGNvZGUgd2l0aCAKc2hhcmVkIGhlbHBlcnMuCgo+Cj4gVGhlcmUgYXJlIHNsaWdodCBk aWZmZXJlbmNlcyBpbiB0aGUgbW1hcCBoZWxwZXI6IHRoZSBWTV9ET05URFVNUCBhbmQKPiBWTV9J TyBmbGFncyBhcmUgbm8gbG9uZ2VyIHNldC4gQm90aCB3ZXJlIGxpZnRlZCBmcm9tIGRybV9nZW1f bW1hcF9vYmooKS4KPiBWTV9JTyBwcm9iYWJseSBkb2Vzbid0IG1ha2Ugc2Vuc2Ugc2luY2UgdGhl IGJ1ZmZlciBpcyBhbGxvY2F0ZWQgdXNpbmcKPiBkbWFfYWxsb2NfYXR0cnMoKS4KCldlIGNhbiBh ZGQgVk1fRE9OVERVTVAgdG8gZ2VtLWRtYSdzIG1tYXAgaGVscGVyLiBbMV0gSXQncyBtb3N0IGxp a2VseSAKdGhlIHJpZ2h0IHRoaW5nIHRvIG5vdCBkdW1wIGdyYXBoaWNzIGJ1ZmZlcnMgYW5kIHN0 YW5kYXJkIHByYWN0aWNlIGluIAptb3N0IG90aGVyIEdFTSBtZW1vcnkgbWFuYWdlcnMuCgpbMV0g Cmh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L3Y2LjE5LjYvc291cmNlL2RyaXZlcnMv Z3B1L2RybS9kcm1fZ2VtX2RtYV9oZWxwZXIuYyNMNTM3Cgo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hl bi1ZdSBUc2FpIDx3ZW5zdEBjaHJvbWl1bS5vcmc+CgpUaGUgY2hhbmdlcyBsb29rIGNvcnJlY3Qs IHNvIEknbSBoZXJlJ3MgdGhlCgpSZXZpZXdlZC1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1t ZXJtYW5uQHN1c2UuZGU+CgpCdXQgdGhpcyBwYXRjaCByZXF1aXJlcyBhIHJldmlldyBmcm9tIHRo ZSBkcml2ZXIgbWFpbnRhaW5lciBhcyB3ZWxsLgoKQmVzdCByZWdhcmRzClRob21hcwoKPiAtLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5jICAgIHwgICAxIC0KPiAgIGRy aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jIHwgIDIxICstLQo+ICAgZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmggfCAgIDEgLQo+ICAgZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19nZW0uYyAgICAgfCAyMzEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+ICAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19nZW0uaCAgICAgfCAgMTcgLS0KPiAg IDUgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyNjggZGVsZXRpb25zKC0pCj4gICBk ZWxldGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19nZW0uYwo+ICAg ZGVsZXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZ2VtLmgKPgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2NydGMuYyBiL2RyaXZl cnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5jCj4gaW5kZXggMzUxZDU4YzUwYjg0Li5mY2Ix NmYzZjdiMjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19jcnRj LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2NydGMuYwo+IEBAIC0yMyw3 ICsyMyw2IEBACj4gICAjaW5jbHVkZSAibXRrX2NydGMuaCIKPiAgICNpbmNsdWRlICJtdGtfZGRw X2NvbXAuaCIKPiAgICNpbmNsdWRlICJtdGtfZHJtX2Rydi5oIgo+IC0jaW5jbHVkZSAibXRrX2dl bS5oIgo+ICAgI2luY2x1ZGUgIm10a19wbGFuZS5oIgo+ICAgCj4gICAvKgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jCj4gaW5kZXggYTk0YzUxYTgzMjYxLi42ZjZkYjJlMTk4 MGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYwo+IEBAIC0xOSw2 ICsxOSw3IEBACj4gICAjaW5jbHVkZSA8ZHJtL2RybV9mYmRldl9kbWEuaD4KPiAgICNpbmNsdWRl IDxkcm0vZHJtX2ZvdXJjYy5oPgo+ICAgI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+Cj4gKyNpbmNs dWRlIDxkcm0vZHJtX2dlbV9kbWFfaGVscGVyLmg+Cj4gICAjaW5jbHVkZSA8ZHJtL2RybV9nZW1f ZnJhbWVidWZmZXJfaGVscGVyLmg+Cj4gICAjaW5jbHVkZSA8ZHJtL2RybV9pb2N0bC5oPgo+ICAg I2luY2x1ZGUgPGRybS9kcm1fb2YuaD4KPiBAQCAtMjksNyArMzAsNiBAQAo+ICAgI2luY2x1ZGUg Im10a19kZHBfY29tcC5oIgo+ICAgI2luY2x1ZGUgIm10a19kaXNwX2Rydi5oIgo+ICAgI2luY2x1 ZGUgIm10a19kcm1fZHJ2LmgiCj4gLSNpbmNsdWRlICJtdGtfZ2VtLmgiCj4gICAKPiAgICNkZWZp bmUgRFJJVkVSX05BTUUgIm1lZGlhdGVrIgo+ICAgI2RlZmluZSBEUklWRVJfREVTQyAiTWVkaWF0 ZWsgU29DIERSTSIKPiBAQCAtNTY1LDggKzU2NSw3IEBAIHN0YXRpYyBpbnQgbXRrX2RybV9rbXNf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtKQo+ICAgCQlnb3RvIGVycl9jb21wb25lbnRfdW5i aW5kOwo+ICAgCX0KPiAgIAo+IC0JZm9yIChpID0gMDsgaSA8IHByaXZhdGUtPmRhdGEtPm1tc3lz X2Rldl9udW07IGkrKykKPiAtCQlwcml2YXRlLT5hbGxfZHJtX3ByaXZhdGVbaV0tPmRtYV9kZXYg PSBkbWFfZGV2Owo+ICsJZHJtX2Rldl9zZXRfZG1hX2Rldihkcm0sIGRtYV9kZXYpOwo+ICAgCj4g ICAJLyoKPiAgIAkgKiBDb25maWd1cmUgdGhlIERNQSBzZWdtZW50IHNpemUgdG8gbWFrZSBzdXJl IHdlIGdldCBjb250aWd1b3VzIElPVkEKPiBAQCAtNjAwLDI2ICs1OTksMTIgQEAgc3RhdGljIHZv aWQgbXRrX2RybV9rbXNfZGVpbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCj4gICAKPiAgIERF RklORV9EUk1fR0VNX0ZPUFMobXRrX2RybV9mb3BzKTsKPiAgIAo+IC0vKgo+IC0gKiBXZSBuZWVk IHRvIG92ZXJyaWRlIHRoaXMgYmVjYXVzZSB0aGUgZGV2aWNlIHVzZWQgdG8gaW1wb3J0IHRoZSBt ZW1vcnkgaXMKPiAtICogbm90IGRldi0+ZGV2LCBhcyBkcm1fZ2VtX3ByaW1lX2ltcG9ydCgpIGV4 cGVjdHMuCj4gLSAqLwo+IC1zdGF0aWMgc3RydWN0IGRybV9nZW1fb2JqZWN0ICptdGtfZ2VtX3By aW1lX2ltcG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCQkJCQkgICBzdHJ1Y3QgZG1h X2J1ZiAqZG1hX2J1ZikKPiAtewo+IC0Jc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdmF0ZSA9 IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQo+IC0JcmV0dXJuIGRybV9nZW1fcHJpbWVfaW1wb3J0X2Rl dihkZXYsIGRtYV9idWYsIHByaXZhdGUtPmRtYV9kZXYpOwo+IC19Cj4gLQo+ICAgc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fZHJpdmVyIG10a19kcm1fZHJpdmVyID0gewo+ICAgCS5kcml2ZXJfZmVh dHVyZXMgPSBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9HRU0gfCBEUklWRVJfQVRPTUlDLAo+ICAg Cj4gLQkuZHVtYl9jcmVhdGUgPSBtdGtfZ2VtX2R1bWJfY3JlYXRlLAo+ICsJRFJNX0dFTV9ETUFf RFJJVkVSX09QUywKPiAgIAlEUk1fRkJERVZfRE1BX0RSSVZFUl9PUFMsCj4gICAKPiAtCS5nZW1f cHJpbWVfaW1wb3J0ID0gbXRrX2dlbV9wcmltZV9pbXBvcnQsCj4gLQkuZ2VtX3ByaW1lX2ltcG9y dF9zZ190YWJsZSA9IG10a19nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlLAo+ICAgCS5mb3BzID0g Jm10a19kcm1fZm9wcywKPiAgIAo+ICAgCS5uYW1lID0gRFJJVkVSX05BTUUsCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmgKPiBpbmRleCA2NzVjZGM5MGE0NDAuLjFmYzNkZjRi NTQ4NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oCj4gQEAgLTU0 LDcgKzU0LDYgQEAgc3RydWN0IG10a19tbXN5c19kcml2ZXJfZGF0YSB7Cj4gICAKPiAgIHN0cnVj dCBtdGtfZHJtX3ByaXZhdGUgewo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkcm07Cj4gLQlzdHJ1 Y3QgZGV2aWNlICpkbWFfZGV2Owo+ICAgCWJvb2wgbXRrX2RybV9ib3VuZDsKPiAgIAlib29sIGRy bV9tYXN0ZXI7Cj4gICAJc3RydWN0IGRldmljZSAqZGV2Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210 a19nZW0uYwo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IGYwNTlhMTQ1MjIyMC4u MDAwMDAwMDAwMDAwCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19nZW0uYwo+ ICsrKyAvZGV2L251bGwKPiBAQCAtMSwyMzEgKzAsMCBAQAo+IC0vLyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogR1BMLTIuMC1vbmx5Cj4gLS8qCj4gLSAqIENvcHlyaWdodCAoYykgMjAxNSBNZWRp YVRlayBJbmMuCj4gLSAqIENvcHlyaWdodCAoYykgMjAyNSBDb2xsYWJvcmEgTHRkLgo+IC0gKiAg ICAgICAgICAgICAgICAgICAgQW5nZWxvR2lvYWNjaGlubyBEZWwgUmVnbm8gPGFuZ2Vsb2dpb2Fj Y2hpbm8uZGVscmVnbm9AY29sbGFib3JhLmNvbT4KPiAtICovCj4gLQo+IC0jaW5jbHVkZSA8bGlu dXgvZG1hLWJ1Zi5oPgo+IC0jaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgo+IC0KPiAtI2luY2x1 ZGUgPGRybS9kcm0uaD4KPiAtI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+Cj4gLSNpbmNsdWRl IDxkcm0vZHJtX2dlbS5oPgo+IC0jaW5jbHVkZSA8ZHJtL2RybV9nZW1fZG1hX2hlbHBlci5oPgo+ IC0jaW5jbHVkZSA8ZHJtL2RybV9wcmltZS5oPgo+IC0jaW5jbHVkZSA8ZHJtL2RybV9wcmludC5o Pgo+IC0KPiAtI2luY2x1ZGUgIm10a19kcm1fZHJ2LmgiCj4gLSNpbmNsdWRlICJtdGtfZ2VtLmgi Cj4gLQo+IC1zdGF0aWMgaW50IG10a19nZW1fb2JqZWN0X21tYXAoc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICpvYmosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKPiAtCj4gLXN0YXRpYyB2b2lk IG10a19nZW1fZnJlZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCj4gLXsKPiAt CXN0cnVjdCBkcm1fZ2VtX2RtYV9vYmplY3QgKmRtYV9vYmogPSB0b19kcm1fZ2VtX2RtYV9vYmoo b2JqKTsKPiAtCXN0cnVjdCBtdGtfZHJtX3ByaXZhdGUgKnByaXYgPSBvYmotPmRldi0+ZGV2X3By aXZhdGU7Cj4gLQo+IC0JaWYgKGRtYV9vYmotPnNndCkKPiAtCQlkcm1fcHJpbWVfZ2VtX2Rlc3Ry b3kob2JqLCBkbWFfb2JqLT5zZ3QpOwo+IC0JZWxzZQo+IC0JCWRtYV9mcmVlX3djKHByaXYtPmRt YV9kZXYsIGRtYV9vYmotPmJhc2Uuc2l6ZSwKPiAtCQkJICAgIGRtYV9vYmotPnZhZGRyLCBkbWFf b2JqLT5kbWFfYWRkcik7Cj4gLQo+IC0JLyogcmVsZWFzZSBmaWxlIHBvaW50ZXIgdG8gZ2VtIG9i amVjdC4gKi8KPiAtCWRybV9nZW1fb2JqZWN0X3JlbGVhc2Uob2JqKTsKPiAtCj4gLQlrZnJlZShk bWFfb2JqKTsKPiAtfQo+IC0KPiAtLyoKPiAtICogQWxsb2NhdGUgYSBzZ190YWJsZSBmb3IgdGhp cyBHRU0gb2JqZWN0Lgo+IC0gKiBOb3RlOiBCb3RoIHRoZSB0YWJsZSdzIGNvbnRlbnRzLCBhbmQg dGhlIHNnX3RhYmxlIGl0c2VsZiBtdXN0IGJlIGZyZWVkIGJ5Cj4gLSAqICAgICAgIHRoZSBjYWxs ZXIuCj4gLSAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBuZXdseSBhbGxvY2F0ZWQgc2dfdGFi bGUsIG9yIGFuIEVSUl9QVFIoKSBlcnJvci4KPiAtICovCj4gLXN0YXRpYyBzdHJ1Y3Qgc2dfdGFi bGUgKm10a19nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2Jq KQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2dlbV9kbWFfb2JqZWN0ICpkbWFfb2JqID0gdG9fZHJtX2dl bV9kbWFfb2JqKG9iaik7Cj4gLQlzdHJ1Y3QgbXRrX2RybV9wcml2YXRlICpwcml2ID0gb2JqLT5k ZXYtPmRldl9wcml2YXRlOwo+IC0Jc3RydWN0IHNnX3RhYmxlICpzZ3Q7Cj4gLQlpbnQgcmV0Owo+ IC0KPiAtCXNndCA9IGt6YWxsb2Nfb2JqKCpzZ3QpOwo+IC0JaWYgKCFzZ3QpCj4gLQkJcmV0dXJu IEVSUl9QVFIoLUVOT01FTSk7Cj4gLQo+IC0JcmV0ID0gZG1hX2dldF9zZ3RhYmxlKHByaXYtPmRt YV9kZXYsIHNndCwgZG1hX29iai0+dmFkZHIsCj4gLQkJCSAgICAgIGRtYV9vYmotPmRtYV9hZGRy LCBvYmotPnNpemUpOwo+IC0JaWYgKHJldCkgewo+IC0JCURSTV9FUlJPUigiZmFpbGVkIHRvIGFs bG9jYXRlIHNndCwgJWRcbiIsIHJldCk7Cj4gLQkJa2ZyZWUoc2d0KTsKPiAtCQlyZXR1cm4gRVJS X1BUUihyZXQpOwo+IC0JfQo+IC0KPiAtCXJldHVybiBzZ3Q7Cj4gLX0KPiAtCj4gLXN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3RfZnVuY3MgbXRrX2dlbV9vYmplY3RfZnVuY3MgPSB7 Cj4gLQkuZnJlZSA9IG10a19nZW1fZnJlZV9vYmplY3QsCj4gLQkucHJpbnRfaW5mbyA9IGRybV9n ZW1fZG1hX29iamVjdF9wcmludF9pbmZvLAo+IC0JLmdldF9zZ190YWJsZSA9IG10a19nZW1fcHJp bWVfZ2V0X3NnX3RhYmxlLAo+IC0JLnZtYXAgPSBkcm1fZ2VtX2RtYV9vYmplY3Rfdm1hcCwKPiAt CS5tbWFwID0gbXRrX2dlbV9vYmplY3RfbW1hcCwKPiAtCS52bV9vcHMgPSAmZHJtX2dlbV9kbWFf dm1fb3BzLAo+IC19Owo+IC0KPiAtc3RhdGljIHN0cnVjdCBkcm1fZ2VtX2RtYV9vYmplY3QgKm10 a19nZW1faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCQkJCXVuc2lnbmVkIGxvbmcg c2l6ZSwgYm9vbCBwcml2YXRlKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2dlbV9kbWFfb2JqZWN0ICpk bWFfb2JqOwo+IC0JaW50IHJldDsKPiAtCj4gLQlzaXplID0gcm91bmRfdXAoc2l6ZSwgUEFHRV9T SVpFKTsKPiAtCj4gLQlpZiAoc2l6ZSA9PSAwKQo+IC0JCXJldHVybiBFUlJfUFRSKC1FSU5WQUwp Owo+IC0KPiAtCWRtYV9vYmogPSBremFsbG9jX29iaigqZG1hX29iaik7Cj4gLQlpZiAoIWRtYV9v YmopCj4gLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gLQo+IC0JZG1hX29iai0+YmFzZS5m dW5jcyA9ICZtdGtfZ2VtX29iamVjdF9mdW5jczsKPiAtCj4gLQlpZiAocHJpdmF0ZSkgewo+IC0J CXJldCA9IDA7Cj4gLQkJZHJtX2dlbV9wcml2YXRlX29iamVjdF9pbml0KGRldiwgJmRtYV9vYmot PmJhc2UsIHNpemUpOwo+IC0JfSBlbHNlIHsKPiAtCQlyZXQgPSBkcm1fZ2VtX29iamVjdF9pbml0 KGRldiwgJmRtYV9vYmotPmJhc2UsIHNpemUpOwo+IC0JfQo+IC0JaWYgKHJldCkgewo+IC0JCURS TV9FUlJPUigiZmFpbGVkIHRvIGluaXRpYWxpemUgZ2VtIG9iamVjdFxuIik7Cj4gLQkJa2ZyZWUo ZG1hX29iaik7Cj4gLQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiAtCX0KPiAtCj4gLQlyZXR1cm4g ZG1hX29iajsKPiAtfQo+IC0KPiAtc3RhdGljIHN0cnVjdCBkcm1fZ2VtX2RtYV9vYmplY3QgKm10 a19nZW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHNpemVfdCBzaXplKQo+IC17Cj4g LQlzdHJ1Y3QgbXRrX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0 cnVjdCBkcm1fZ2VtX2RtYV9vYmplY3QgKmRtYV9vYmo7Cj4gLQlzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKm9iajsKPiAtCWludCByZXQ7Cj4gLQo+IC0JZG1hX29iaiA9IG10a19nZW1faW5pdChkZXYs IHNpemUsIGZhbHNlKTsKPiAtCWlmIChJU19FUlIoZG1hX29iaikpCj4gLQkJcmV0dXJuIEVSUl9D QVNUKGRtYV9vYmopOwo+IC0KPiAtCW9iaiA9ICZkbWFfb2JqLT5iYXNlOwo+IC0KPiAtCWRtYV9v YmotPnZhZGRyID0gZG1hX2FsbG9jX3djKHByaXYtPmRtYV9kZXYsIG9iai0+c2l6ZSwKPiAtCQkJ CSAgICAgICZkbWFfb2JqLT5kbWFfYWRkciwKPiAtCQkJCSAgICAgIEdGUF9LRVJORUwgfCBfX0dG UF9OT1dBUk4pOwo+IC0JaWYgKCFkbWFfb2JqLT52YWRkcikgewo+IC0JCURSTV9FUlJPUigiZmFp bGVkIHRvIGFsbG9jYXRlICV6eCBieXRlIGRtYSBidWZmZXIiLCBvYmotPnNpemUpOwo+IC0JCXJl dCA9IC1FTk9NRU07Cj4gLQkJZ290byBlcnJfZ2VtX2ZyZWU7Cj4gLQl9Cj4gLQo+IC0JRFJNX0RF QlVHX0RSSVZFUigidmFkZHIgPSAlcCBkbWFfYWRkciA9ICVwYWQgc2l6ZSA9ICV6dVxuIiwKPiAt CQkJIGRtYV9vYmotPnZhZGRyLCAmZG1hX29iai0+ZG1hX2FkZHIsCj4gLQkJCSBzaXplKTsKPiAt Cj4gLQlyZXR1cm4gZG1hX29iajsKPiAtCj4gLWVycl9nZW1fZnJlZToKPiAtCWRybV9nZW1fb2Jq ZWN0X3JlbGVhc2Uob2JqKTsKPiAtCWtmcmVlKGRtYV9vYmopOwo+IC0JcmV0dXJuIEVSUl9QVFIo cmV0KTsKPiAtfQo+IC0KPiAtaW50IG10a19nZW1fZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxl ICpmaWxlX3ByaXYsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gLQkJCXN0cnVjdCBkcm1fbW9k ZV9jcmVhdGVfZHVtYiAqYXJncykKPiAtewo+IC0Jc3RydWN0IGRybV9nZW1fZG1hX29iamVjdCAq ZG1hX29iajsKPiAtCWludCByZXQ7Cj4gLQo+IC0JYXJncy0+cGl0Y2ggPSBESVZfUk9VTkRfVVAo YXJncy0+d2lkdGggKiBhcmdzLT5icHAsIDgpOwo+IC0KPiAtCS8qCj4gLQkgKiBNdWx0aXBseSAy IHZhcmlhYmxlcyBvZiBkaWZmZXJlbnQgdHlwZXMsCj4gLQkgKiBmb3IgZXhhbXBsZTogYXJncy0+ c2l6ZSA9IGFyZ3MtPnNwYWNpbmcgKiBhcmdzLT5oZWlnaHQ7Cj4gLQkgKiBtYXkgY2F1c2UgY292 ZXJpdHkgaXNzdWUgd2l0aCB1bmludGVudGlvbmFsIG92ZXJmbG93Lgo+IC0JICovCj4gLQlhcmdz LT5zaXplID0gYXJncy0+cGl0Y2g7Cj4gLQlhcmdzLT5zaXplICo9IGFyZ3MtPmhlaWdodDsKPiAt Cj4gLQlkbWFfb2JqID0gbXRrX2dlbV9jcmVhdGUoZGV2LCBhcmdzLT5zaXplKTsKPiAtCWlmIChJ U19FUlIoZG1hX29iaikpCj4gLQkJcmV0dXJuIFBUUl9FUlIoZG1hX29iaik7Cj4gLQo+IC0JLyoK PiAtCSAqIGFsbG9jYXRlIGEgaWQgb2YgaWRyIHRhYmxlIHdoZXJlIHRoZSBvYmogaXMgcmVnaXN0 ZXJlZAo+IC0JICogYW5kIGhhbmRsZSBoYXMgdGhlIGlkIHdoYXQgdXNlciBjYW4gc2VlLgo+IC0J ICovCj4gLQlyZXQgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZV9wcml2LCAmZG1hX29iai0+ YmFzZSwgJmFyZ3MtPmhhbmRsZSk7Cj4gLQlpZiAocmV0KQo+IC0JCWdvdG8gZXJyX2hhbmRsZV9j cmVhdGU7Cj4gLQo+IC0JLyogZHJvcCByZWZlcmVuY2UgZnJvbSBhbGxvY2F0ZSAtIGhhbmRsZSBo b2xkcyBpdCBub3cuICovCj4gLQlkcm1fZ2VtX29iamVjdF9wdXQoJmRtYV9vYmotPmJhc2UpOwo+ IC0KPiAtCXJldHVybiAwOwo+IC0KPiAtZXJyX2hhbmRsZV9jcmVhdGU6Cj4gLQltdGtfZ2VtX2Zy ZWVfb2JqZWN0KCZkbWFfb2JqLT5iYXNlKTsKPiAtCXJldHVybiByZXQ7Cj4gLX0KPiAtCj4gLXN0 YXRpYyBpbnQgbXRrX2dlbV9vYmplY3RfbW1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwK PiAtCQkJICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQo+IC0KPiAtewo+IC0Jc3Ry dWN0IGRybV9nZW1fZG1hX29iamVjdCAqZG1hX29iaiA9IHRvX2RybV9nZW1fZG1hX29iaihvYmop Owo+IC0Jc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdiA9IG9iai0+ZGV2LT5kZXZfcHJpdmF0 ZTsKPiAtCWludCByZXQ7Cj4gLQo+IC0JLyoKPiAtCSAqIFNldCB2bV9wZ29mZiAodXNlZCBhcyBh IGZha2UgYnVmZmVyIG9mZnNldCBieSBEUk0pIHRvIDAgYW5kIG1hcCB0aGUKPiAtCSAqIHdob2xl IGJ1ZmZlciBmcm9tIHRoZSBzdGFydC4KPiAtCSAqLwo+IC0Jdm1hLT52bV9wZ29mZiAtPSBkcm1f dm1hX25vZGVfc3RhcnQoJm9iai0+dm1hX25vZGUpOwo+IC0KPiAtCS8qCj4gLQkgKiBkbWFfYWxs b2NfYXR0cnMoKSBhbGxvY2F0ZWQgYSBzdHJ1Y3QgcGFnZSB0YWJsZSBmb3IgbXRrX2dlbSwgc28g Y2xlYXIKPiAtCSAqIFZNX1BGTk1BUCBmbGFnIHRoYXQgd2FzIHNldCBieSBkcm1fZ2VtX21tYXBf b2JqKCkvZHJtX2dlbV9tbWFwKCkuCj4gLQkgKi8KPiAtCXZtX2ZsYWdzX21vZCh2bWEsIFZNX0lP IHwgVk1fRE9OVEVYUEFORCB8IFZNX0RPTlREVU1QLCBWTV9QRk5NQVApOwo+IC0KPiAtCXZtYS0+ dm1fcGFnZV9wcm90ID0gcGdwcm90X3dyaXRlY29tYmluZSh2bV9nZXRfcGFnZV9wcm90KHZtYS0+ dm1fZmxhZ3MpKTsKPiAtCXZtYS0+dm1fcGFnZV9wcm90ID0gcGdwcm90X2RlY3J5cHRlZCh2bWEt PnZtX3BhZ2VfcHJvdCk7Cj4gLQo+IC0JcmV0ID0gZG1hX21tYXBfd2MocHJpdi0+ZG1hX2Rldiwg dm1hLCBkbWFfb2JqLT52YWRkciwKPiAtCQkJICBkbWFfb2JqLT5kbWFfYWRkciwgb2JqLT5zaXpl KTsKPiAtCWlmIChyZXQpCj4gLQkJZHJtX2dlbV92bV9jbG9zZSh2bWEpOwo+IC0KPiAtCXJldHVy biByZXQ7Cj4gLX0KPiAtCj4gLXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqbXRrX2dlbV9wcmltZV9p bXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAtCQkJc3RydWN0IGRtYV9i dWZfYXR0YWNobWVudCAqYXR0YWNoLCBzdHJ1Y3Qgc2dfdGFibGUgKnNndCkKPiAtewo+IC0Jc3Ry dWN0IGRybV9nZW1fZG1hX29iamVjdCAqZG1hX29iajsKPiAtCj4gLQkvKiBjaGVjayBpZiB0aGUg ZW50cmllcyBpbiB0aGUgc2dfdGFibGUgYXJlIGNvbnRpZ3VvdXMgKi8KPiAtCWlmIChkcm1fcHJp bWVfZ2V0X2NvbnRpZ3VvdXNfc2l6ZShzZ3QpIDwgYXR0YWNoLT5kbWFidWYtPnNpemUpIHsKPiAt CQlEUk1fRVJST1IoInNnX3RhYmxlIGlzIG5vdCBjb250aWd1b3VzIik7Cj4gLQkJcmV0dXJuIEVS Ul9QVFIoLUVJTlZBTCk7Cj4gLQl9Cj4gLQo+IC0JZG1hX29iaiA9IG10a19nZW1faW5pdChkZXYs IGF0dGFjaC0+ZG1hYnVmLT5zaXplLCB0cnVlKTsKPiAtCWlmIChJU19FUlIoZG1hX29iaikpCj4g LQkJcmV0dXJuIEVSUl9DQVNUKGRtYV9vYmopOwo+IC0KPiAtCWRtYV9vYmotPmRtYV9hZGRyID0g c2dfZG1hX2FkZHJlc3Moc2d0LT5zZ2wpOwo+IC0JZG1hX29iai0+c2d0ID0gc2d0Owo+IC0KPiAt CXJldHVybiAmZG1hX29iai0+YmFzZTsKPiAtfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2dlbS5oIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19nZW0u aAo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IGFmZWJjM2E5NzBhOC4uMDAwMDAw MDAwMDAwCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19nZW0uaAo+ICsrKyAv ZGV2L251bGwKPiBAQCAtMSwxNyArMCwwIEBACj4gLS8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wLW9ubHkgKi8KPiAtLyoKPiAtICogQ29weXJpZ2h0IChjKSAyMDE1IE1lZGlhVGVr IEluYy4KPiAtICovCj4gLQo+IC0jaWZuZGVmIF9NVEtfR0VNX0hfCj4gLSNkZWZpbmUgX01US19H RU1fSF8KPiAtCj4gLSNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgo+IC0jaW5jbHVkZSA8ZHJtL2Ry bV9nZW1fZG1hX2hlbHBlci5oPgo+IC0KPiAtaW50IG10a19nZW1fZHVtYl9jcmVhdGUoc3RydWN0 IGRybV9maWxlICpmaWxlX3ByaXYsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gLQkJCXN0cnVj dCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncyk7Cj4gLXN0cnVjdCBkcm1fZ2VtX29iamVjdCAq bXRrX2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAt CQkJc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLCBzdHJ1Y3Qgc2dfdGFibGUgKnNn KTsKPiAtCj4gLSNlbmRpZgoKLS0gCi0tClRob21hcyBaaW1tZXJtYW5uCkdyYXBoaWNzIERyaXZl ciBEZXZlbG9wZXIKU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJICkZyYW5rZW5z dHIuIDE0NiwgOTA0NjEgTsO8cm5iZXJnLCBHZXJtYW55LCB3d3cuc3VzZS5jb20KR0Y6IEpvY2hl biBKYXNlciwgQW5kcmV3IE1jRG9uYWxkLCBXZXJuZXIgS25vYmxpY2gsIChIUkIgMzY4MDksIEFH IE7DvHJuYmVyZykKCgo=