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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 3379FC53219 for ; Tue, 28 Jul 2026 14:35:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=R1avwdFQQH7loNB1ufGUF9Hyu/agxccjpY1PDNDlDbk=; b=vIJ9u1M8rAHAVA LoCsNh0r8a1kHBXH3HhOxCy6uVKOtUZRYD6X3WAm88jC8gMSZq3AX6LzZM6T5yGe4Oho715+rLtd5 skYPmeDRIDGVd2/S1jgAnugKBczLcnldel40BdlOV4WV1VZymytQrBn1mKlbRvEkfnzUBGG+PMN1G ehkh6Asp3X+7qh9QLSv7wxphaITPx+lXlM1iqzKpVXNSIBYhmpLovEYZ0SHLleMcZNFsKCewo8YFi TNb5qerWpzHl9vaSlR5WWcxIFjeKFh+4TWK8ihRqesp+MWbxX+tSoMLFIRU5IsT6n4gAKDWlPk5E7 Jy6z4KtJHJ6IECgeqzvg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1woitv-00000005WAy-2zpU; Tue, 28 Jul 2026 14:35:23 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1woito-00000005W8W-25am for linux-rockchip@lists.infradead.org; Tue, 28 Jul 2026 14:35:22 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 607C9175D for ; Tue, 28 Jul 2026 07:35:08 -0700 (PDT) Received: from [10.2.11.34] (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 236543F66F for ; Tue, 28 Jul 2026 07:35:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1785249312; bh=Inv7KrlemkdgK5E3nHXTAHNRQzVGjk/0dJV4TgUWtLg=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=X9SFQKDqKdiAJJpYGpeAQhsdUiK8udq6P1syVxbE4WSmEuCa5FgiKswWq+PLunxXo v6nkaJbmskWwG8OVuZO2q2+/TLI5HIAUmF86SBVjbMwrqJIsHZTTHPCX+tTNStgyEY +4aTUOqnuY0kCpJOZwdgUoPq3xP6lMiBHmCthp7A= Date: Tue, 28 Jul 2026 15:34:00 +0100 From: Liviu Dudau To: =?utf-8?Q?Adri=C3=A1n?= Larumbe Cc: Alex Deucher , Christian =?utf-8?B?S8O2bmln?= , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Lucas Stach , Russell King , Christian Gmeiner , Jianmin Lv , Qianhai Wu , Huacai Chen , Mingcong Bai , Xi Ruoyao , Icenowy Zheng , Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , Lyude Paul , Danilo Krummrich , Boris Brezillon , Steven Price , Sandy Huang , Heiko =?utf-8?Q?St=C3=BCbner?= , Andy Yan , Thierry Reding , Mikko Perttunen , Jonathan Hunter , Zack Rusin , Broadcom internal kernel review list , Matthew Brost , Thomas =?utf-8?Q?Hellstr=C3=B6m?= , Rodrigo Vivi , Oleksandr Andrushchenko , Sumit Semwal , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, etnaviv@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, nouveau@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-tegra@vger.kernel.org, intel-xe@lists.freedesktop.org, xen-devel@lists.xenproject.org, linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org Subject: Re: [PATCH] drm/gem: Move pages_to_sg helper into drm_gem.c Message-ID: References: <20260724-get_pages-v1-1-b10e5d65628e@collabora.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20260724-get_pages-v1-1-b10e5d65628e@collabora.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260728_073516_626133_9C18A23F X-CRM114-Status: GOOD ( 33.25 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org T24gRnJpLCBKdWwgMjQsIDIwMjYgYXQgMDE6MDg6NThQTSArMDEwMCwgQWRyacOhbiBMYXJ1bWJl IHdyb3RlOgo+IE5vbmUgb2YgdGhlIHNlbWFudGljcyBvZiB0aGUgZnVuY3Rpb24gdGVsbCBvZiBp dCBiZWluZyBhIFBSSU1FLWV4Y2x1c2l2ZQo+IGVudHJ5IHBvaW50LiBJbiBmYWN0LCBtb3N0IGRy aXZlcnMgc2VlbSB0byBiZSB1c2luZyBpdCB0byB0cmFuc2xhdGUgYSBsaXN0Cj4gb2YgcGFnZXMg aW50byBhbiBzZyB0YWJsZSB0aGF0IGNhbiBiZSB1c2VkIGZvciBHUFUgbWFwcGluZyBsYXRlciBv biwgcmF0aGVyCj4gdGhhbiBqdXN0IGZvciBzaGFyaW5nIGFuIG9iamVjdCdzIHBhZ2VzIHdpdGgg YW5vdGhlciBkcml2ZXIuCj4gCj4gTW92ZSBpdCBhY3Jvc3MgZmlsZXMgYW5kIHJlbmFtZSBhY2Nv cmRpbmdseS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBBZHJpw6FuIExhcnVtYmUgPGFkcmlhbi5sYXJ1 bWJlQGNvbGxhYm9yYS5jb20+Cj4gLS0tCj4gZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKCkgaGFzIG5v IHJlYWwgZGVwZW5kZW5jeSBvbiBQUklNRS9kbWEtYnVmIGludGVyZmFjZXMuCj4gSXQgaXMgYSBn ZW5lcmljIGhlbHBlciB0aGF0IGNvbnZlcnRzIGEgcGFnZSBhcnJheSBpbnRvIGEgc2NhdHRlci9n YXRoZXIKPiB0YWJsZSB2aWEgZG1hX21hcF9zZ19hdHRycy4gTm90aGluZyBpbiBpdHMgaW1wbGVt ZW50YXRpb24gdG91Y2hlcyBzdHJ1Y3QKPiBkbWFfYnVmIG9yIGltcG9ydC9leHBvcnQgbG9naWMu Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kbWFfYnVmLmMgfCAg NiArKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2dlbS5jICAgICAgICAgICAgICAgICAgIHwg MzUgKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9nZW1f c2htZW1faGVscGVyLmMgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUu YyAgICAgICAgICAgICAgICAgfCAzOCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbS5jICAgICAgIHwgIDMgKy0tCj4gIGRy aXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtX3ByaW1lLmMgfCAgMyArKy0KPiAgZHJp dmVycy9ncHUvZHJtL2xvb25nc29uL2xzZGNfZ2VtLmMgICAgICAgICB8ICAzICstLQo+ICBkcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uYyAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fZ2VtX3ByaW1lLmMgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfcHJpbWUuYyAgICAgfCAgNCArLS0KPiAgZHJpdmVycy9n cHUvZHJtL3BhbnRob3IvcGFudGhvcl9nZW0uYyAgICAgICB8ICA2ICsrLS0tCgpGb3IgUGFudGhv ciBhbmQgdGhlIGdlbmVyYWwgcmVuYW1lOgoKUmV2aWV3ZWQtYnk6IExpdml1IER1ZGF1IDxsaXZp dS5kdWRhdUBhcm0uY29tPgoKQmVzdCByZWdhcmRzLApMaXZpdQoKPiAgZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fcHJpbWUuYyAgICAgICB8ICA1ICsrLS0KPiAgZHJpdmVycy9ncHUvZHJt L3JvY2tjaGlwL3JvY2tjaGlwX2RybV9nZW0uYyB8ICA2ICsrLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS90ZWdyYS9nZW0uYyAgICAgICAgICAgICAgICAgfCAgNCArLS0KPiAgZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfZ2VtLmMgICAgICAgICB8ICA0ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0v eGUveGVfZG1hX2J1Zi5jICAgICAgICAgICAgIHwgIDYgKystLS0KPiAgZHJpdmVycy9ncHUvZHJt L3hlbi94ZW5fZHJtX2Zyb250X2dlbS5jICAgICB8ICAyICstCj4gIGluY2x1ZGUvZHJtL2RybV9n ZW0uaCAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArKystCj4gIGluY2x1ZGUvZHJtL2RybV9w cmltZS5oICAgICAgICAgICAgICAgICAgICAgfCAgMiAtLQo+ICAxOSBmaWxlcyBjaGFuZ2VkLCA2 OCBpbnNlcnRpb25zKCspLCA3MCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RtYV9idWYuYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9kbWFfYnVmLmMKPiBpbmRleCBiMzNjMzAwZTI2ZTIuLmM5YTk4YWVj N2ViNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZG1h X2J1Zi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RtYV9idWYu Ywo+IEBAIC0yMDMsOSArMjAzLDkgQEAgc3RhdGljIHN0cnVjdCBzZ190YWJsZSAqYW1kZ3B1X2Rt YV9idWZfbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCwKPiAgCj4gIAlzd2l0 Y2ggKGJvLT50Ym8ucmVzb3VyY2UtPm1lbV90eXBlKSB7Cj4gIAljYXNlIFRUTV9QTF9UVDoKPiAt CQlzZ3QgPSBkcm1fcHJpbWVfcGFnZXNfdG9fc2cob2JqLT5kZXYsCj4gLQkJCQkJICAgIGJvLT50 Ym8udHRtLT5wYWdlcywKPiAtCQkJCQkgICAgYm8tPnRiby50dG0tPm51bV9wYWdlcyk7Cj4gKwkJ c2d0ID0gZHJtX3BhZ2VzX3RvX3NnKG9iai0+ZGV2LAo+ICsJCQkJICAgICAgYm8tPnRiby50dG0t PnBhZ2VzLAo+ICsJCQkJICAgICAgYm8tPnRiby50dG0tPm51bV9wYWdlcyk7Cj4gIAkJaWYgKElT X0VSUihzZ3QpKQo+ICAJCQlyZXR1cm4gc2d0Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtLmMKPiBpbmRleCAwMThk Zjk3ZDU5MGQuLjIyYzhhM2I1ZjY2NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW0uYwo+IEBAIC03ODAsNiArNzgw LDQxIEBAIHZvaWQgZHJtX2dlbV9wdXRfcGFnZXMoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmos IHN0cnVjdCBwYWdlICoqcGFnZXMsCj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3B1dF9w YWdlcyk7Cj4gIAo+ICsvKioKPiArICogZHJtX3BhZ2VzX3RvX3NnIC0gY29udmVydHMgYSBwYWdl IGFycmF5IGludG8gYW4gc2cgbGlzdAo+ICsgKiBAZGV2OiBEUk0gZGV2aWNlCj4gKyAqIEBwYWdl czogcG9pbnRlciB0byB0aGUgYXJyYXkgb2YgcGFnZSBwb2ludGVycyB0byBjb252ZXJ0Cj4gKyAq IEBucl9wYWdlczogbGVuZ3RoIG9mIHRoZSBwYWdlIHZlY3Rvcgo+ICsgKgo+ICsgKiBUaGlzIGhl bHBlciBjcmVhdGVzIGFuIHNnIHRhYmxlIG9iamVjdCBmcm9tIGEgc2V0IG9mIHBhZ2VzLgo+ICsg KiBUaGlzIGlzIHVzZWZ1bCBmb3IgaW1wbGVtZW50aW5nICZkcm1fZ2VtX29iamVjdF9mdW5jcy5n ZXRfc2dfdGFibGUuCj4gKyAqLwo+ICtzdHJ1Y3Qgc2dfdGFibGUgKmRybV9wYWdlc190b19zZyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkJIHN0cnVjdCBwYWdlICoqcGFnZXMsIHVuc2ln bmVkIGludCBucl9wYWdlcykKPiArewo+ICsJc3RydWN0IHNnX3RhYmxlICpzZzsKPiArCXNpemVf dCBtYXhfc2VnbWVudCA9IDA7Cj4gKwlpbnQgZXJyOwo+ICsKPiArCXNnID0ga21hbGxvY19vYmoo c3RydWN0IHNnX3RhYmxlKTsKPiArCWlmICghc2cpCj4gKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01F TSk7Cj4gKwo+ICsJaWYgKGRldikKPiArCQltYXhfc2VnbWVudCA9IGRtYV9tYXhfbWFwcGluZ19z aXplKGRybV9kZXZfZG1hX2RldihkZXYpKTsKPiArCWlmIChtYXhfc2VnbWVudCA9PSAwKQo+ICsJ CW1heF9zZWdtZW50ID0gVUlOVF9NQVg7Cj4gKwllcnIgPSBzZ19hbGxvY190YWJsZV9mcm9tX3Bh Z2VzX3NlZ21lbnQoc2csIHBhZ2VzLCBucl9wYWdlcywgMCwKPiArCQkJCQkJKHVuc2lnbmVkIGxv bmcpbnJfcGFnZXMgPDwgUEFHRV9TSElGVCwKPiArCQkJCQkJbWF4X3NlZ21lbnQsIEdGUF9LRVJO RUwpOwo+ICsJaWYgKGVycikgewo+ICsJCWtmcmVlKHNnKTsKPiArCQlzZyA9IEVSUl9QVFIoZXJy KTsKPiArCX0KPiArCXJldHVybiBzZzsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9wYWdlc190 b19zZyk7Cj4gKwo+ICBzdGF0aWMgaW50IG9iamVjdHNfbG9va3VwKHN0cnVjdCBkcm1fZmlsZSAq ZmlscCwgdTMyICpoYW5kbGUsIGludCBjb3VudCwKPiAgCQkJICBzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKipvYmpzKQo+ICB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3No bWVtX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fc2htZW1faGVscGVyLmMKPiBp bmRleCAyMmVjNTJlMmZmYjguLjE0NGQwODhhNDc3ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2dlbV9zaG1lbV9oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f Z2VtX3NobWVtX2hlbHBlci5jCj4gQEAgLTgyNSw3ICs4MjUsNyBAQCBzdHJ1Y3Qgc2dfdGFibGUg KmRybV9nZW1fc2htZW1fZ2V0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZ2VtX3NobWVtX29iamVjdCAq c2htZW0pCj4gIAo+ICAJZHJtX1dBUk5fT04ob2JqLT5kZXYsIGRybV9nZW1faXNfaW1wb3J0ZWQo b2JqKSk7Cj4gIAo+IC0JcmV0dXJuIGRybV9wcmltZV9wYWdlc190b19zZyhvYmotPmRldiwgc2ht ZW0tPnBhZ2VzLCBvYmotPnNpemUgPj4gUEFHRV9TSElGVCk7Cj4gKwlyZXR1cm4gZHJtX3BhZ2Vz X3RvX3NnKG9iai0+ZGV2LCBzaG1lbS0+cGFnZXMsIG9iai0+c2l6ZSA+PiBQQUdFX1NISUZUKTsK PiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQTChkcm1fZ2VtX3NobWVtX2dldF9zZ190YWJsZSk7Cj4g IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX3ByaW1lLmMKPiBpbmRleCA5YjQ0Yzc4Y2Q3N2YuLjU0NTM5YTg5MjljMSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX3ByaW1lLmMKPiBAQCAtODM1LDQ0ICs4MzUsNiBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRtYV9idWZfb3BzIGRybV9nZW1fcHJpbWVfZG1hYnVmX29wcyA9ICB7Cj4gIAkudnVubWFw ID0gZHJtX2dlbV9kbWFidWZfdnVubWFwLAo+ICB9Owo+ICAKPiAtLyoqCj4gLSAqIGRybV9wcmlt ZV9wYWdlc190b19zZyAtIGNvbnZlcnRzIGEgcGFnZSBhcnJheSBpbnRvIGFuIHNnIGxpc3QKPiAt ICogQGRldjogRFJNIGRldmljZQo+IC0gKiBAcGFnZXM6IHBvaW50ZXIgdG8gdGhlIGFycmF5IG9m IHBhZ2UgcG9pbnRlcnMgdG8gY29udmVydAo+IC0gKiBAbnJfcGFnZXM6IGxlbmd0aCBvZiB0aGUg cGFnZSB2ZWN0b3IKPiAtICoKPiAtICogVGhpcyBoZWxwZXIgY3JlYXRlcyBhbiBzZyB0YWJsZSBv YmplY3QgZnJvbSBhIHNldCBvZiBwYWdlcwo+IC0gKiB0aGUgZHJpdmVyIGlzIHJlc3BvbnNpYmxl IGZvciBtYXBwaW5nIHRoZSBwYWdlcyBpbnRvIHRoZQo+IC0gKiBpbXBvcnRlcnMgYWRkcmVzcyBz cGFjZSBmb3IgdXNlIHdpdGggZG1hX2J1ZiBpdHNlbGYuCj4gLSAqCj4gLSAqIFRoaXMgaXMgdXNl ZnVsIGZvciBpbXBsZW1lbnRpbmcgJmRybV9nZW1fb2JqZWN0X2Z1bmNzLmdldF9zZ190YWJsZS4K PiAtICovCj4gLXN0cnVjdCBzZ190YWJsZSAqZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gLQkJCQkgICAgICAgc3RydWN0IHBhZ2UgKipwYWdlcywgdW5zaWdu ZWQgaW50IG5yX3BhZ2VzKQo+IC17Cj4gLQlzdHJ1Y3Qgc2dfdGFibGUgKnNnOwo+IC0Jc2l6ZV90 IG1heF9zZWdtZW50ID0gMDsKPiAtCWludCBlcnI7Cj4gLQo+IC0Jc2cgPSBrbWFsbG9jX29iaihz dHJ1Y3Qgc2dfdGFibGUpOwo+IC0JaWYgKCFzZykKPiAtCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVN KTsKPiAtCj4gLQlpZiAoZGV2KQo+IC0JCW1heF9zZWdtZW50ID0gZG1hX21heF9tYXBwaW5nX3Np emUoZHJtX2Rldl9kbWFfZGV2KGRldikpOwo+IC0JaWYgKG1heF9zZWdtZW50ID09IDApCj4gLQkJ bWF4X3NlZ21lbnQgPSBVSU5UX01BWDsKPiAtCWVyciA9IHNnX2FsbG9jX3RhYmxlX2Zyb21fcGFn ZXNfc2VnbWVudChzZywgcGFnZXMsIG5yX3BhZ2VzLCAwLAo+IC0JCQkJCQkodW5zaWduZWQgbG9u Zylucl9wYWdlcyA8PCBQQUdFX1NISUZULAo+IC0JCQkJCQltYXhfc2VnbWVudCwgR0ZQX0tFUk5F TCk7Cj4gLQlpZiAoZXJyKSB7Cj4gLQkJa2ZyZWUoc2cpOwo+IC0JCXNnID0gRVJSX1BUUihlcnIp Owo+IC0JfQo+IC0JcmV0dXJuIHNnOwo+IC19Cj4gLUVYUE9SVF9TWU1CT0woZHJtX3ByaW1lX3Bh Z2VzX3RvX3NnKTsKPiAtCj4gIC8qKgo+ICAgKiBkcm1fcHJpbWVfZ2V0X2NvbnRpZ3VvdXNfc2l6 ZSAtIHJldHVybnMgdGhlIGNvbnRpZ3VvdXMgc2l6ZSBvZiB0aGUgYnVmZmVyCj4gICAqIEBzZ3Q6 IHNnX3RhYmxlIGRlc2NyaWJpbmcgdGhlIGJ1ZmZlciB0byBjaGVjawo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2V0 bmF2aXYvZXRuYXZpdl9nZW0uYwo+IGluZGV4IGIwNDM2YTFlMTAzZi4uYThlODYxNGY4MjEwIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbS5jCj4gQEAgLTMsNyArMyw2IEBA Cj4gICAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE4IEV0bmF2aXYgUHJvamVjdAo+ICAgKi8KPiAg Cj4gLSNpbmNsdWRlIDxkcm0vZHJtX3ByaW1lLmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX3ByaW50 Lmg+Cj4gICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgo+ICAjaW5jbHVkZSA8bGludXgv c2htZW1fZnMuaD4KPiBAQCAtMTA0LDcgKzEwMyw3IEBAIHN0cnVjdCBwYWdlICoqZXRuYXZpdl9n ZW1fZ2V0X3BhZ2VzKHN0cnVjdCBldG5hdml2X2dlbV9vYmplY3QgKmV0bmF2aXZfb2JqKQo+ICAJ CXVuc2lnbmVkIGludCBucGFnZXMgPSBldG5hdml2X29iai0+YmFzZS5zaXplID4+IFBBR0VfU0hJ RlQ7Cj4gIAkJc3RydWN0IHNnX3RhYmxlICpzZ3Q7Cj4gIAo+IC0JCXNndCA9IGRybV9wcmltZV9w YWdlc190b19zZyhkZXYsIGV0bmF2aXZfb2JqLT5wYWdlcywgbnBhZ2VzKTsKPiArCQlzZ3QgPSBk cm1fcGFnZXNfdG9fc2coZGV2LCBldG5hdml2X29iai0+cGFnZXMsIG5wYWdlcyk7Cj4gIAkJaWYg KElTX0VSUihzZ3QpKSB7Cj4gIAkJCWRldl9lcnIoZGV2LT5kZXYsICJmYWlsZWQgdG8gYWxsb2Nh dGUgc2d0OiAlbGRcbiIsCj4gIAkJCQlQVFJfRVJSKHNndCkpOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbV9wcmltZS5jIGIvZHJpdmVycy9ncHUvZHJt L2V0bmF2aXYvZXRuYXZpdl9nZW1fcHJpbWUuYwo+IGluZGV4IDY3NTdhZTZlYzMwNC4uZjQ0NDg0 MzI1ZGRiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2Vt X3ByaW1lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbV9wcmlt ZS5jCj4gQEAgLTMsNiArMyw3IEBACj4gICAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE4IEV0bmF2 aXYgUHJvamVjdAo+ICAgKi8KPiAgCj4gKyNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgo+ICAjaW5j bHVkZSA8ZHJtL2RybV9wcmltZS5oPgo+ICAjaW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgo+ICAj aW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gQEAgLTIyLDcgKzIzLDcgQEAgc3RydWN0IHNnX3Rh YmxlICpldG5hdml2X2dlbV9wcmltZV9nZXRfc2dfdGFibGUoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmopCj4gIAlpZiAoV0FSTl9PTighZXRuYXZpdl9vYmotPnBhZ2VzKSkgIC8qIHNob3VsZCBo YXZlIGFscmVhZHkgcGlubmVkISAqLwo+ICAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwo+ICAK PiAtCXJldHVybiBkcm1fcHJpbWVfcGFnZXNfdG9fc2cob2JqLT5kZXYsIGV0bmF2aXZfb2JqLT5w YWdlcywgbnBhZ2VzKTsKPiArCXJldHVybiBkcm1fcGFnZXNfdG9fc2cob2JqLT5kZXYsIGV0bmF2 aXZfb2JqLT5wYWdlcywgbnBhZ2VzKTsKPiAgfQo+ICAKPiAgaW50IGV0bmF2aXZfZ2VtX3ByaW1l X3ZtYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBpb3N5c19tYXAgKm1hcCkK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2xvb25nc29uL2xzZGNfZ2VtLmMgYi9kcml2 ZXJzL2dwdS9kcm0vbG9vbmdzb24vbHNkY19nZW0uYwo+IGluZGV4IDJmYjAzNDg3Yzk4My4uMzcx NjAyMjgyNDRjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9sb29uZ3Nvbi9sc2RjX2dl bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2xvb25nc29uL2xzZGNfZ2VtLmMKPiBAQCAtOSw3 ICs5LDYgQEAKPiAgI2luY2x1ZGUgPGRybS9kcm1fZHVtYl9idWZmZXJzLmg+Cj4gICNpbmNsdWRl IDxkcm0vZHJtX2ZpbGUuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+Cj4gLSNpbmNsdWRl IDxkcm0vZHJtX3ByaW1lLmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+Cj4gIAo+ICAj aW5jbHVkZSAibHNkY19kcnYuaCIKPiBAQCAtNTEsNyArNTAsNyBAQCBzdGF0aWMgc3RydWN0IHNn X3RhYmxlICpsc2RjX2dlbV9wcmltZV9nZXRfc2dfdGFibGUoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmopCj4gIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gIAl9Cj4gIAo+IC0JcmV0dXJu IGRybV9wcmltZV9wYWdlc190b19zZyhvYmotPmRldiwgdHQtPnBhZ2VzLCB0dC0+bnVtX3BhZ2Vz KTsKPiArCXJldHVybiBkcm1fcGFnZXNfdG9fc2cob2JqLT5kZXYsIHR0LT5wYWdlcywgdHQtPm51 bV9wYWdlcyk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGxzZGNfZ2VtX29iamVjdF9mcmVlKHN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXNtL21zbV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5jCj4gaW5kZXggZWZk M2QzYzlhNDQ5Li43ZTM0MTgyOTBjMjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9tc21fZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uYwo+IEBAIC0y MDcsNyArMjA3LDcgQEAgc3RhdGljIHN0cnVjdCBwYWdlICoqZ2V0X3BhZ2VzKHN0cnVjdCBkcm1f Z2VtX29iamVjdCAqb2JqKQo+ICAKPiAgCQltc21fb2JqLT5wYWdlcyA9IHA7Cj4gIAo+IC0JCW1z bV9vYmotPnNndCA9IGRybV9wcmltZV9wYWdlc190b19zZyhvYmotPmRldiwgcCwgbnBhZ2VzKTsK PiArCQltc21fb2JqLT5zZ3QgPSBkcm1fcGFnZXNfdG9fc2cob2JqLT5kZXYsIHAsIG5wYWdlcyk7 Cj4gIAkJaWYgKElTX0VSUihtc21fb2JqLT5zZ3QpKSB7Cj4gIAkJCXZvaWQgKnB0ciA9IEVSUl9D QVNUKG1zbV9vYmotPnNndCk7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9nZW1fcHJpbWUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbV9wcmltZS5jCj4g aW5kZXggMDM2ZDM0YzY3NGQ5Li5kMjUzOTNhOWU1NDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL21zbS9tc21fZ2VtX3ByaW1lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9nZW1fcHJpbWUuYwo+IEBAIC0yMyw3ICsyMyw3IEBAIHN0cnVjdCBzZ190YWJsZSAqbXNtX2dl bV9wcmltZV9nZXRfc2dfdGFibGUoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCj4gIAlpZiAo V0FSTl9PTighbXNtX29iai0+cGFnZXMpKSAgLyogc2hvdWxkIGhhdmUgYWxyZWFkeSBwaW5uZWQh ICovCj4gIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gIAo+IC0JcmV0dXJuIGRybV9wcmlt ZV9wYWdlc190b19zZyhvYmotPmRldiwgbXNtX29iai0+cGFnZXMsIG5wYWdlcyk7Cj4gKwlyZXR1 cm4gZHJtX3BhZ2VzX3RvX3NnKG9iai0+ZGV2LCBtc21fb2JqLT5wYWdlcywgbnBhZ2VzKTsKPiAg fQo+ICAKPiAgaW50IG1zbV9nZW1fcHJpbWVfdm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i aiwgc3RydWN0IGlvc3lzX21hcCAqbWFwKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9ub3V2ZWF1X3ByaW1lLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1 X3ByaW1lLmMKPiBpbmRleCBjYWFiNjBmYzYyZjYuLmI5NWYyZjA3ZGY3NCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3ByaW1lLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3ByaW1lLmMKPiBAQCAtMzIsOCArMzIsOCBAQCBzdHJ1 Y3Qgc2dfdGFibGUgKm5vdXZlYXVfZ2VtX3ByaW1lX2dldF9zZ190YWJsZShzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKm9iaikKPiAgewo+ICAJc3RydWN0IG5vdXZlYXVfYm8gKm52Ym8gPSBub3V2ZWF1 X2dlbV9vYmplY3Qob2JqKTsKPiAgCj4gLQlyZXR1cm4gZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKG9i ai0+ZGV2LCBudmJvLT5iby50dG0tPnBhZ2VzLAo+IC0JCQkJICAgICBudmJvLT5iby50dG0tPm51 bV9wYWdlcyk7Cj4gKwlyZXR1cm4gZHJtX3BhZ2VzX3RvX3NnKG9iai0+ZGV2LCBudmJvLT5iby50 dG0tPnBhZ2VzLAo+ICsJCQkgICAgICAgbnZiby0+Ym8udHRtLT5udW1fcGFnZXMpOwo+ICB9Cj4g IAo+ICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm5vdXZlYXVfZ2VtX3ByaW1lX2ltcG9ydF9zZ190 YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcGFudGhvci9wYW50aG9yX2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbnRob3IvcGFudGhv cl9nZW0uYwo+IGluZGV4IDk4NTVkZjczODE5NC4uZWM1MzBkMjU0ZmE0IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9wYW50aG9yL3BhbnRob3JfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vcGFudGhvci9wYW50aG9yX2dlbS5jCj4gQEAgLTMyMSw4ICszMjEsOCBAQCBwYW50aG9y X2dlbV9kZXZfbWFwX2dldF9zZ3RfbG9ja2VkKHN0cnVjdCBwYW50aG9yX2dlbV9vYmplY3QgKmJv KQo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ICAKPiAtCXNndCA9IGRy bV9wcmltZV9wYWdlc190b19zZyhiby0+YmFzZS5kZXYsIGJvLT5iYWNraW5nLnBhZ2VzLAo+IC0J CQkJICAgIGJvLT5iYXNlLnNpemUgPj4gUEFHRV9TSElGVCk7Cj4gKwlzZ3QgPSBkcm1fcGFnZXNf dG9fc2coYm8tPmJhc2UuZGV2LCBiby0+YmFja2luZy5wYWdlcywKPiArCQkJICAgICAgYm8tPmJh c2Uuc2l6ZSA+PiBQQUdFX1NISUZUKTsKPiAgCWlmIChJU19FUlIoc2d0KSkKPiAgCQlyZXR1cm4g c2d0Owo+ICAKPiBAQCAtNzAyLDcgKzcwMiw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2dfdGFibGUgKnBh bnRob3JfZ2VtX2dldF9zZ190YWJsZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKPiAgCWRy bV9XQVJOX09OX09OQ0Uob2JqLT5kZXYsICFiby0+YmFja2luZy5wYWdlcyk7Cj4gIAlkcm1fV0FS Tl9PTl9PTkNFKG9iai0+ZGV2LCAhcmVmY291bnRfcmVhZCgmYm8tPmJhY2tpbmcucGluX2NvdW50 KSk7Cj4gIAo+IC0JcmV0dXJuIGRybV9wcmltZV9wYWdlc190b19zZyhvYmotPmRldiwgYm8tPmJh Y2tpbmcucGFnZXMsIG9iai0+c2l6ZSA+PiBQQUdFX1NISUZUKTsKPiArCXJldHVybiBkcm1fcGFn ZXNfdG9fc2cob2JqLT5kZXYsIGJvLT5iYWNraW5nLnBhZ2VzLCBvYmotPnNpemUgPj4gUEFHRV9T SElGVCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQgcGFudGhvcl9nZW1fdm1hcF9sb2NrZWQoc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX3ByaW1lLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9wcmlt ZS5jCj4gaW5kZXggYTc3ODgxZjAzNWU3Li40Y2ZjNDI4MmE1OWMgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fcHJpbWUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX3ByaW1lLmMKPiBAQCAtMjYsNiArMjYsNyBAQAo+ICAKPiAgI2luY2x1 ZGUgPGxpbnV4L2RtYS1idWYuaD4KPiAgCj4gKyNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgo+ICAj aW5jbHVkZSA8ZHJtL2RybV9wcmltZS5oPgo+ICAjaW5jbHVkZSA8ZHJtL3JhZGVvbl9kcm0uaD4K PiAgCj4gQEAgLTM4LDggKzM5LDggQEAgc3RydWN0IHNnX3RhYmxlICpyYWRlb25fZ2VtX3ByaW1l X2dldF9zZ190YWJsZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKPiAgewo+ICAJc3RydWN0 IHJhZGVvbl9ibyAqYm8gPSBnZW1fdG9fcmFkZW9uX2JvKG9iaik7Cj4gIAo+IC0JcmV0dXJuIGRy bV9wcmltZV9wYWdlc190b19zZyhvYmotPmRldiwgYm8tPnRiby50dG0tPnBhZ2VzLAo+IC0JCQkJ ICAgICBiby0+dGJvLnR0bS0+bnVtX3BhZ2VzKTsKPiArCXJldHVybiBkcm1fcGFnZXNfdG9fc2co b2JqLT5kZXYsIGJvLT50Ym8udHRtLT5wYWdlcywKPiArCQkJICAgICAgIGJvLT50Ym8udHRtLT5u dW1fcGFnZXMpOwo+ICB9Cj4gIAo+ICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKnJhZGVvbl9nZW1f cHJpbWVfaW1wb3J0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZ2VtLmMgYi9kcml2ZXJz L2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2dlbS5jCj4gaW5kZXggYjE4ODUzOWRjYTBi Li43ODk3ZGEwYmVjZjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3Jv Y2tjaGlwX2RybV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hp cF9kcm1fZ2VtLmMKPiBAQCAtODksOCArODksOCBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX2dlbV9n ZXRfcGFnZXMoc3RydWN0IHJvY2tjaGlwX2dlbV9vYmplY3QgKnJrX29iaikKPiAgCj4gIAlya19v YmotPm51bV9wYWdlcyA9IHJrX29iai0+YmFzZS5zaXplID4+IFBBR0VfU0hJRlQ7Cj4gIAo+IC0J cmtfb2JqLT5zZ3QgPSBkcm1fcHJpbWVfcGFnZXNfdG9fc2cocmtfb2JqLT5iYXNlLmRldiwKPiAt CQkJCQkgICAgcmtfb2JqLT5wYWdlcywgcmtfb2JqLT5udW1fcGFnZXMpOwo+ICsJcmtfb2JqLT5z Z3QgPSBkcm1fcGFnZXNfdG9fc2cocmtfb2JqLT5iYXNlLmRldiwKPiArCQkJCSAgICAgIHJrX29i ai0+cGFnZXMsIHJrX29iai0+bnVtX3BhZ2VzKTsKPiAgCWlmIChJU19FUlIocmtfb2JqLT5zZ3Qp KSB7Cj4gIAkJcmV0ID0gUFRSX0VSUihya19vYmotPnNndCk7Cj4gIAkJZ290byBlcnJfcHV0X3Bh Z2VzOwo+IEBAIC00MzIsNyArNDMyLDcgQEAgc3RydWN0IHNnX3RhYmxlICpyb2NrY2hpcF9nZW1f cHJpbWVfZ2V0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQo+ICAJaW50IHJl dDsKPiAgCj4gIAlpZiAocmtfb2JqLT5wYWdlcykKPiAtCQlyZXR1cm4gZHJtX3ByaW1lX3BhZ2Vz X3RvX3NnKG9iai0+ZGV2LCBya19vYmotPnBhZ2VzLCBya19vYmotPm51bV9wYWdlcyk7Cj4gKwkJ cmV0dXJuIGRybV9wYWdlc190b19zZyhvYmotPmRldiwgcmtfb2JqLT5wYWdlcywgcmtfb2JqLT5u dW1fcGFnZXMpOwo+ICAKPiAgCXNndCA9IGt6YWxsb2Nfb2JqKCpzZ3QpOwo+ICAJaWYgKCFzZ3Qp Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS90ZWdyYS9nZW0uYwo+IGluZGV4IDQzNjM5NGUwNDgxMi4uNzAxYWY2NzJiNGU1IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS90ZWdyYS9nZW0uYwo+IEBAIC0xNyw3ICsxNyw3IEBACj4gIAo+ICAjaW5jbHVkZSA8ZHJt L2RybV9kcnYuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fZHVtYl9idWZmZXJzLmg+Cj4gLSNpbmNs dWRlIDxkcm0vZHJtX3ByaW1lLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgo+ICAKPiAg I2luY2x1ZGUgImRybS5oIgo+ICAjaW5jbHVkZSAiZ2VtLmgiCj4gQEAgLTM1Miw3ICszNTIsNyBA QCBzdGF0aWMgaW50IHRlZ3JhX2JvX2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBz dHJ1Y3QgdGVncmFfYm8gKmJvKQo+ICAKPiAgCWJvLT5udW1fcGFnZXMgPSBiby0+Z2VtLnNpemUg Pj4gUEFHRV9TSElGVDsKPiAgCj4gLQliby0+c2d0ID0gZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKGJv LT5nZW0uZGV2LCBiby0+cGFnZXMsIGJvLT5udW1fcGFnZXMpOwo+ICsJYm8tPnNndCA9IGRybV9w YWdlc190b19zZyhiby0+Z2VtLmRldiwgYm8tPnBhZ2VzLCBiby0+bnVtX3BhZ2VzKTsKPiAgCWlm IChJU19FUlIoYm8tPnNndCkpIHsKPiAgCQllcnIgPSBQVFJfRVJSKGJvLT5zZ3QpOwo+ICAJCWdv dG8gcHV0X3BhZ2VzOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2dlbS5jCj4gaW5kZXggMzlm OGM0NjU1MGMyLi5jOWU3ZjJlMzY2OGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9n ZW0uYwo+IEBAIC0yOCw3ICsyOCw3IEBACj4gICNpbmNsdWRlICJ2bXdnZnhfYm8uaCIKPiAgI2lu Y2x1ZGUgInZtd2dmeF9kcnYuaCIKPiAgCj4gLSNpbmNsdWRlICJkcm0vZHJtX3ByaW1lLmgiCj4g KyNpbmNsdWRlICJkcm0vZHJtX2dlbS5oIgo+ICAjaW5jbHVkZSAiZHJtL2RybV9nZW1fdHRtX2hl bHBlci5oIgo+ICAKPiAgI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KPiBAQCAtNzYsNyArNzYs NyBAQCBzdGF0aWMgc3RydWN0IHNnX3RhYmxlICp2bXdfZ2VtX29iamVjdF9nZXRfc2dfdGFibGUo c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCj4gIAlpZiAodm13X3R0LT52c2d0LnNndCkKPiAg CQlyZXR1cm4gdm13X3R0LT52c2d0LnNndDsKPiAgCj4gLQlyZXR1cm4gZHJtX3ByaW1lX3BhZ2Vz X3RvX3NnKG9iai0+ZGV2LCB2bXdfdHQtPmRtYV90dG0ucGFnZXMsIHZtd190dC0+ZG1hX3R0bS5u dW1fcGFnZXMpOwo+ICsJcmV0dXJuIGRybV9wYWdlc190b19zZyhvYmotPmRldiwgdm13X3R0LT5k bWFfdHRtLnBhZ2VzLCB2bXdfdHQtPmRtYV90dG0ubnVtX3BhZ2VzKTsKPiAgfQo+ICAKPiAgc3Rh dGljIGludCB2bXdfZ2VtX3ZtYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBp b3N5c19tYXAgKm1hcCkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2RtYV9i dWYuYyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9kbWFfYnVmLmMKPiBpbmRleCA4YTkyMGU1ODI0 NWMuLmYwZmU4MDcwNmI3OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfZG1h X2J1Zi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2RtYV9idWYuYwo+IEBAIC0xMTgs OSArMTE4LDkgQEAgc3RhdGljIHN0cnVjdCBzZ190YWJsZSAqeGVfZG1hX2J1Zl9tYXAoc3RydWN0 IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLAo+ICAKPiAgCXN3aXRjaCAoYm8tPnR0bS5yZXNv dXJjZS0+bWVtX3R5cGUpIHsKPiAgCWNhc2UgWEVfUExfVFQ6Cj4gLQkJc2d0ID0gZHJtX3ByaW1l X3BhZ2VzX3RvX3NnKG9iai0+ZGV2LAo+IC0JCQkJCSAgICBiby0+dHRtLnR0bS0+cGFnZXMsCj4g LQkJCQkJICAgIG9iai0+c2l6ZSA+PiBQQUdFX1NISUZUKTsKPiArCQlzZ3QgPSBkcm1fcGFnZXNf dG9fc2cob2JqLT5kZXYsCj4gKwkJCQkgICAgICBiby0+dHRtLnR0bS0+cGFnZXMsCj4gKwkJCQkg ICAgICBvYmotPnNpemUgPj4gUEFHRV9TSElGVCk7Cj4gIAkJaWYgKElTX0VSUihzZ3QpKQo+ICAJ CQlyZXR1cm4gc2d0Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5f ZHJtX2Zyb250X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2dlbS5j Cj4gaW5kZXggZWVjNGMxZGEzZjllLi5hNGE3YzdmMmM5MWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3hlbi94ZW5fZHJtX2Zyb250X2dlbS5jCj4gQEAgLTIzNiw3ICsyMzYsNyBAQCBzdHJ1Y3Qgc2df dGFibGUgKnhlbl9kcm1fZnJvbnRfZ2VtX2dldF9zZ190YWJsZShzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKmdlbV9vYmopCj4gIAlpZiAoIXhlbl9vYmotPnBhZ2VzKQo+ICAJCXJldHVybiBFUlJfUFRS KC1FTk9NRU0pOwo+ICAKPiAtCXJldHVybiBkcm1fcHJpbWVfcGFnZXNfdG9fc2coZ2VtX29iai0+ ZGV2LAo+ICsJcmV0dXJuIGRybV9wYWdlc190b19zZyhnZW1fb2JqLT5kZXYsCj4gIAkJCQkgICAg IHhlbl9vYmotPnBhZ2VzLCB4ZW5fb2JqLT5udW1fcGFnZXMpOwo+ICB9Cj4gIAo+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL2RybS9kcm1fZ2VtLmggYi9pbmNsdWRlL2RybS9kcm1fZ2VtLmgKPiBpbmRl eCA4ODUyNDRlMzc1ZDMuLjdiOWNjNjMzNTY4OSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9k cm1fZ2VtLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fZ2VtLmgKPiBAQCAtMTU1LDcgKzE1NSw3 IEBAIHN0cnVjdCBkcm1fZ2VtX29iamVjdF9mdW5jcyB7Cj4gIAkgKiBoZXJlIGNhbm5vdCBiZSB1 c2VkIGZvciBzZyB0YWJsZXMgcG9pbnRpbmcgYXQgZHJpdmVyIHByaXZhdGUgbWVtb3J5Cj4gIAkg KiByYW5nZXMuCj4gIAkgKgo+IC0JICogU2VlIGFsc28gZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKCku Cj4gKwkgKiBTZWUgYWxzbyBkcm1fcGFnZXNfdG9fc2coKS4KPiAgCSAqLwo+ICAJc3RydWN0IHNn X3RhYmxlICooKmdldF9zZ190YWJsZSkoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwo+ICAK PiBAQCAtNTg5LDYgKzU4OSw5IEBAIHN0cnVjdCBwYWdlICoqZHJtX2dlbV9nZXRfcGFnZXMoc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwo+ICB2b2lkIGRybV9nZW1fcHV0X3BhZ2VzKHN0cnVj dCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLAo+ICAJCWJvb2wgZGly dHksIGJvb2wgYWNjZXNzZWQpOwo+ICAKPiArc3RydWN0IHNnX3RhYmxlICpkcm1fcGFnZXNfdG9f c2coc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJCSBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCB1 bnNpZ25lZCBpbnQgbnJfcGFnZXMpOwo+ICsKPiAgdm9pZCBkcm1fZ2VtX2xvY2soc3RydWN0IGRy bV9nZW1fb2JqZWN0ICpvYmopOwo+ICB2b2lkIGRybV9nZW1fdW5sb2NrKHN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqb2JqKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9wcmltZS5o IGIvaW5jbHVkZS9kcm0vZHJtX3ByaW1lLmgKPiBpbmRleCBmNTBmODYyZjBkOGIuLjYwM2UxNmE0 MGFlNyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fcHJpbWUuaAo+ICsrKyBiL2luY2x1 ZGUvZHJtL2RybV9wcmltZS5oCj4gQEAgLTkyLDggKzkyLDYgQEAgdm9pZCBkcm1fZ2VtX2RtYWJ1 Zl92dW5tYXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYsIHN0cnVjdCBpb3N5c19tYXAgKm1hcCk7 Cj4gIGludCBkcm1fZ2VtX3ByaW1lX21tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0 cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKPiAgaW50IGRybV9nZW1fZG1hYnVmX21tYXAoc3Ry dWN0IGRtYV9idWYgKmRtYV9idWYsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKPiAgCj4g LXN0cnVjdCBzZ190YWJsZSAqZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gLQkJCQkgICAgICAgc3RydWN0IHBhZ2UgKipwYWdlcywgdW5zaWduZWQgaW50IG5y X3BhZ2VzKTsKPiAgc3RydWN0IGRtYV9idWYgKmRybV9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqb2JqLAo+ICAJCQkJICAgICBpbnQgZmxhZ3MpOwo+ICAKPiAKPiAtLS0K PiBiYXNlLWNvbW1pdDogNDhkZDM3ZDFmZWYzM2ZiZjQyZjFkNjg4N2M2MWUyNDJmZDIxZDAwZAo+ IGNoYW5nZS1pZDogMjAyNjA3MjQtZ2V0X3BhZ2VzLWUyZTkxYzUzZWFhMwo+IAo+IEJlc3QgcmVn YXJkcywKPiAtLSAgCj4gQWRyacOhbiBMYXJ1bWJlIDxhZHJpYW4ubGFydW1iZUBjb2xsYWJvcmEu Y29tPgo+IAoKLS0gCj09PT09PT09PT09PT09PT09PT09CnwgSSB3b3VsZCBsaWtlIHRvIHwKfCBm aXggdGhlIHdvcmxkLCAgfAp8IGJ1dCB0aGV5J3JlIG5vdCB8CnwgZ2l2aW5nIG1lIHRoZSAgIHwK IFwgc291cmNlIGNvZGUhICAvCiAgLS0tLS0tLS0tLS0tLS0tCiAgICDCr1xfKOODhClfL8KvCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1yb2Nr Y2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tjaGlwCg==