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 1F7F3C7EE26 for ; Mon, 22 May 2023 15:40:35 +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:MIME-Version:References:In-Reply-To: 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=uc2TZOAPoMY6b6OEyypHkNHffnPgHQUgyFa58qH8Wwg=; b=Nk92Vx/Rh3GMqI wxjx1PTxy/91anycgj6JEy+cacU8UvgAKDi1rih8MKzlut7LTJR4GcwrPDuWH9CngMFpjtrXO87nv Q3m9mPg89pqn4OjxXxjx3J18iVIoOAmzw6JRiAgCrvcvrIPiF8yCDXqlkoY/Bw1pzsMRofjCK7gc6 8vAVQKKFKfmT8yNi8brnVvqLCHqWfn1Jk2tbPXZlSTrZLaRKTGefludaa/TAW9WWs/IymCLuwjSmP BmObH89GPyyWtHDAEh6CtIWe3QjLqogU1mQUzu/bpe8F3lIZhT4aBoBudY3ahc4sWAUXqy6mDbmC8 pEJy6U6egY5PbmfUaKyg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q17e2-0073PN-1y; Mon, 22 May 2023 15:40:22 +0000 Received: from desiato.infradead.org ([90.155.92.199]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q17e1-0073Oi-09; Mon, 22 May 2023 15:40:21 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:Content-Type :MIME-Version:References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=oTNkxoXNH5nvERaedEuKHmNcyqjQZ3XwX/bJPv/WU2E=; b=IOqvYUx3TLV3ixZAlIHz5B0NYR dw1qC+IURV6ErdMZ2aqGeSTVRVFixalyJ3fvadSna/XSO1z37qIVVmKyC/B/6jr9X858U82+2Fc9a ZBcldNy/F/8fZdvxS4wrZ3dcANKqW+70/nkpVHIXaVvzJkPBd89QO5JmMpO4EdpH9MhkVQF9g9dDb Y6KzBSMKZxViKcZtGm2t6+9iYIHzn8sHfTK9a4FqVU/P80Iho+6NzWgsVYPLjFC+P0kuBc1N3myqX g7RBbUXm2kwMB51zd4TV+MFvGB2z2R3UWc6FI3BnLIuorfJCkIDhmGfcxUpMPaG2yRcgtT0iLLnKj V4qAhgjg==; Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]) by desiato.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q17Xa-0023uI-2T; Mon, 22 May 2023 15:33:45 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id 2A4A31C0005; Mon, 22 May 2023 15:33:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1684769616; h=from:from:reply-to:subject:subject: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; bh=oTNkxoXNH5nvERaedEuKHmNcyqjQZ3XwX/bJPv/WU2E=; b=IMfkVryp9hj5PV2VbxjCP00/4UBpe7QvP7AMSW1tCJYsSxYTfaqfamdu967u9eZ6yiNe0t SDMkMU05PlO5frq8G1ylfScOAt07sko9Lp7twLGrUT0lgJkInzkhhAUMetD88+ho+cqzZt qtMsnt2Ya1wyWfDbJitR82/79DlbC4su/82/cN0+7fjDgKpb63mmrsMOEtaoRthcA2mCye u8N6U9wB5um5tfwEA5rW/Z7rJtHhH7MJsg5r00HOv+uqYSwz8xii/CyW7bBMIjCwLeMMw+ osue2lKX/WEXPJTx7w8p9Er2+2G31gbt2gYX0k90MBCEo/w2SGUSiTMcIo1rIg== Date: Mon, 22 May 2023 17:33:34 +0200 From: Miquel Raynal To: Arseniy Krasnov Cc: Liang Yang , Richard Weinberger , Vignesh Raghavendra , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Yixun Lan , Jianxin Pan , , , , , , Subject: Re: [PATCH v4 2/5] mtd: rawnand: meson: move OOB to non-protected ECC area Message-ID: <20230522173334.7aa6f917@xps-13> In-Reply-To: <20230515094440.3552094-3-AVKrasnov@sberdevices.ru> References: <20230515094440.3552094-1-AVKrasnov@sberdevices.ru> <20230515094440.3552094-3-AVKrasnov@sberdevices.ru> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230522_163342_997712_49927A96 X-CRM114-Status: GOOD ( 39.29 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org SGkgQXJzZW5peSwKCkFWS3Jhc25vdkBzYmVyZGV2aWNlcy5ydSB3cm90ZSBvbiBNb24sIDE1IE1h eSAyMDIzIDEyOjQ0OjM2ICswMzAwOgoKVGhlIHRpdGxlIHNob3VsZCBwZXJoYXBzIGJlICJvbmx5 IGV4cG9zZSB1bnByb3RlY3RlZCB1c2VyIE9PQiBieXRlcyIuCgo+IFRoaXMgbW92ZXMgZnJlZSBi eXRlcyBvZiBPT0IgdG8gbm9uLXByb3RlY3RlZCBFQ0MgYXJlYS4gSXQgaXMgbmVlZGVkIHRvCj4g bWFrZSBKRkZTMiB3b3JrcyBjb3JyZWN0bHkgd2l0aCB0aGlzIE5BTkQgY29udHJvbGxlci4gUHJv YmxlbSBmaXJlcyB3aGVuCj4gSkZGUzIgZHJpdmVyIHdyaXRlcyBjbGVhbm1hcmtlciB0byBzb21l IHBhZ2UgYW5kIGxhdGVyIGl0IHRyaWVzIHRvIHdyaXRlCj4gdG8gdGhpcyBwYWdlIC0gd3JpdGUg d2lsbCBiZSBkb25lIHN1Y2Nlc3NmdWxseSwgYnV0IGFmdGVyIHRoYXQgc3VjaCBwYWdlCj4gYmVj b21lcyB1bnJlYWRhYmxlIGR1ZSB0byBpbnZhbGlkIEVDQyBjb2Rlcy4gVGhpcyBoYXBwZW5zIGJl Y2F1c2Ugc2Vjb25kCj4gd3JpdGUgbmVlZHMgdG8gdXBkYXRlIEVDQyBjb2RlcywgYnV0IGl0IGlz IGltcG9zc2libGUgdG8gZG8gaXQgY29ycmVjdGx5Cj4gd2l0aG91dCBibG9jayBlcmFzZS4gU28g aWRlYSBvZiB0aGlzIHBhdGNoIGlzIHRvCgoiLi4uIGlzIHRvIHVzZSB0aGUgdW5wcm90ZWN0ZWQg T09CIGFyZWEgdG8gc3RvcmUgdGhlIGNsZWFubWFya2Vycywgc28KdGhhdCB0aGV5IGNhbiBiZSB3 cml0dGVuIGJ5IHRoZSBmaWxlc3lzdGVtIHdpdGhvdXQgY2FyaW5nIG11Y2ggYWJvdXQKdGhlIHBh Z2UgYmVpbmcgZW1wdHkgb3Igbm90OiB0aGUgRUNDIGNvZGVzIHdpbGwgbm90IGJlIHdyaXR0ZW4g YW55d2F5LiIKPwoKSkZGUzIgaXMgb25seSB1c2VmdWwgb24gdGlueSBOQU5EIGRldmljZXMsIHdo ZXJlIFVCSSBkb2VzIG5vdCBmaXQsCndoaWNoIGFyZSB1c3VhbGx5IHRydWUgU0xDIGZsYXNoZXMs IHdpdGggdGhlIGNhcGFiaWxpdHkgb2Ygd3JpdGluZwphIHBhZ2Ugd2l0aCBlbXB0eSAoMHhGRikg ZGF0YSwgYW5kIHN0aWxsIGJlIGFibGUgdG8gd3JpdGUgYWN0dWFsIGRhdGEKdG8gaXQgbGF0ZXIg aW4gYSBzZWNvbmQgd3JpdGUuCgo+IHNwbGl0IGFjY2Vzc2VzIHRvIE9PQgo+IGZyZWUgYnl0ZXMg YW5kIGRhdGEgb24gZWFjaCBwYWdlIC0gbm93IGJvdGggb2YgdGhlbSBkb2VzIG5vdCBkZXBlbmRz IG9uCj4gZWFjaCBvdGhlci4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBBcnNlbml5IEtyYXNub3YgPEFW S3Jhc25vdkBzYmVyZGV2aWNlcy5ydT4KPiAtLS0KPiAgZHJpdmVycy9tdGQvbmFuZC9yYXcvbWVz b25fbmFuZC5jIHwgMTkyICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQo+ICAxIGZpbGUg Y2hhbmdlZCwgMTU1IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMgYi9kcml2ZXJzL210ZC9uYW5k L3Jhdy9tZXNvbl9uYW5kLmMKPiBpbmRleCAyZjRkOGM4NDE4NmIuLjg1MjZhNmI4NzcyMCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMKPiArKysgYi9kcml2 ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMKPiBAQCAtMTA4LDYgKzEwOCw5IEBACj4gIAo+ ICAjZGVmaW5lIFBFUl9JTkZPX0JZVEUJCTgKPiAgCj4gKyNkZWZpbmUgTkZDX1VTRVJfQllURVMJ CTIKPiArI2RlZmluZSBORkNfT09CX1BFUl9FQ0MobmFuZCkJKChuYW5kKS0+ZWNjLmJ5dGVzICsg TkZDX1VTRVJfQllURVMpCj4gKwo+ICBzdHJ1Y3QgbWVzb25fbmZjX25hbmRfY2hpcCB7Cj4gIAlz dHJ1Y3QgbGlzdF9oZWFkIG5vZGU7Cj4gIAlzdHJ1Y3QgbmFuZF9jaGlwIG5hbmQ7Cj4gQEAgLTEy Miw2ICsxMjUsNyBAQCBzdHJ1Y3QgbWVzb25fbmZjX25hbmRfY2hpcCB7Cj4gIAl1OCAqZGF0YV9i dWY7Cj4gIAlfX2xlNjQgKmluZm9fYnVmOwo+ICAJdTMyIG5zZWxzOwo+ICsJdTggKm9vYl9idWY7 Cj4gIAl1OCBzZWxzW107Cj4gIH07Cj4gIAo+IEBAIC0zMzgsNyArMzQyLDcgQEAgc3RhdGljIHU4 ICptZXNvbl9uZmNfb29iX3B0cihzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kLCBpbnQgaSkKPiAgCXN0 cnVjdCBtZXNvbl9uZmNfbmFuZF9jaGlwICptZXNvbl9jaGlwID0gdG9fbWVzb25fbmFuZChuYW5k KTsKPiAgCWludCBsZW47Cj4gIAo+IC0JbGVuID0gbmFuZC0+ZWNjLnNpemUgKiAoaSArIDEpICsg KG5hbmQtPmVjYy5ieXRlcyArIDIpICogaTsKPiArCWxlbiA9IG5hbmQtPmVjYy5zaXplICogKGkg KyAxKSArIE5GQ19PT0JfUEVSX0VDQyhuYW5kKSAqIGk7CgpUaGlzLi4uCgo+ICAKPiAgCXJldHVy biBtZXNvbl9jaGlwLT5kYXRhX2J1ZiArIGxlbjsKPiAgfQo+IEBAIC0zNDksNyArMzUzLDcgQEAg c3RhdGljIHU4ICptZXNvbl9uZmNfZGF0YV9wdHIoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCwgaW50 IGkpCj4gIAlpbnQgbGVuLCB0ZW1wOwo+ICAKPiAgCXRlbXAgPSBuYW5kLT5lY2Muc2l6ZSArIG5h bmQtPmVjYy5ieXRlczsKPiAtCWxlbiA9ICh0ZW1wICsgMikgKiBpOwo+ICsJbGVuID0gKHRlbXAg KyBORkNfVVNFUl9CWVRFUykgKiBpOwoKLi4uIGFuZCB0aGlzIChzYW1lIGJlbG93KQoKYXJlIHB1 cmVseSBjb3NtZXRpYywgc2hvdWxkIGJlIGluIGEgcGF0Y2ggYXNpZGUuCgo+ICAKPiAgCXJldHVy biBtZXNvbl9jaGlwLT5kYXRhX2J1ZiArIGxlbjsKPiAgfQo+IEBAIC0zNTcsMjkgKzM2MSw0NyBA QCBzdGF0aWMgdTggKm1lc29uX25mY19kYXRhX3B0cihzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kLCBp bnQgaSkKPiAgc3RhdGljIHZvaWQgbWVzb25fbmZjX2dldF9kYXRhX29vYihzdHJ1Y3QgbmFuZF9j aGlwICpuYW5kLAo+ICAJCQkJICAgdTggKmJ1ZiwgdTggKm9vYmJ1ZikKPiAgewo+ICsJc3RydWN0 IG1lc29uX25mY19uYW5kX2NoaXAgKm1lc29uX2NoaXAgPSB0b19tZXNvbl9uYW5kKG5hbmQpOwo+ ICsJc3RydWN0IG10ZF9pbmZvICptdGQgPSBuYW5kX3RvX210ZChuYW5kKTsKPiAgCWludCBpLCBv b2JfbGVuID0gMDsKPiAgCXU4ICpkc3JjLCAqb3NyYzsKPiArCXU4ICpvb2J0YWlsOwo+ICAKPiAt CW9vYl9sZW4gPSBuYW5kLT5lY2MuYnl0ZXMgKyAyOwo+ICsJb29iX2xlbiA9IE5GQ19PT0JfUEVS X0VDQyhuYW5kKTsKPiAgCWZvciAoaSA9IDA7IGkgPCBuYW5kLT5lY2Muc3RlcHM7IGkrKykgewo+ ICAJCWlmIChidWYpIHsKPiAgCQkJZHNyYyA9IG1lc29uX25mY19kYXRhX3B0cihuYW5kLCBpKTsK PiAgCQkJbWVtY3B5KGJ1ZiwgZHNyYywgbmFuZC0+ZWNjLnNpemUpOwo+ICAJCQlidWYgKz0gbmFu ZC0+ZWNjLnNpemU7Cj4gIAkJfQo+IC0JCW9zcmMgPSBtZXNvbl9uZmNfb29iX3B0cihuYW5kLCBp KTsKPiAtCQltZW1jcHkob29iYnVmLCBvc3JjLCBvb2JfbGVuKTsKPiAtCQlvb2JidWYgKz0gb29i X2xlbjsKPiArCj4gKwkJaWYgKG9vYmJ1Zikgewo+ICsJCQlvc3JjID0gbWVzb25fbmZjX29vYl9w dHIobmFuZCwgaSk7Cj4gKwkJCW1lbWNweShvb2JidWYsIG9zcmMsIG9vYl9sZW4pOwo+ICsJCQlv b2JidWYgKz0gb29iX2xlbjsKPiArCQl9Cj4gIAl9Cj4gKwo+ICsJaWYgKCFvb2JidWYpCj4gKwkJ cmV0dXJuOwoKVGhlIHdob2xlICJpZiAob29iYnVmKSIgbG9naWMgaXMgbmljZSB0byBoYXZlLCBi dXQgc2hvdWxkIGFzIHdlbGwgYmUgaW4KYSBkZWRpY2F0ZWQgcGF0Y2guCgo+ICsKPiArCW9vYnRh aWwgPSBtZXNvbl9jaGlwLT5kYXRhX2J1ZiArIG5hbmQtPmVjYy5zdGVwcyAqCj4gKwkJICAobmFu ZC0+ZWNjLnNpemUgKyBvb2JfbGVuKTsKPiArCj4gKwkvKiAnb29iYnVmJyBpZiBhbHJlYWR5IHNo aWZ0ZWQgdG8gdGhlIHN0YXJ0IG9mIHVudXNlZCBhcmVhLiAqLwoKCQkgICAgaXM/CnMvdW51c2Vk L3VzZXIvPyBJJ20gbm90IHN1cmUgSSBnZXQgdGhlIGNvbW1lbnQuCgo+ICsJbWVtY3B5KG9vYmJ1 Ziwgb29idGFpbCwgbXRkLT5vb2JzaXplIC0gbmFuZC0+ZWNjLnN0ZXBzICogb29iX2xlbik7Cj4g IH0KPiAgCj4gIHN0YXRpYyB2b2lkIG1lc29uX25mY19zZXRfZGF0YV9vb2Ioc3RydWN0IG5hbmRf Y2hpcCAqbmFuZCwKPiAgCQkJCSAgIGNvbnN0IHU4ICpidWYsIHU4ICpvb2JidWYpCj4gIHsKPiAr CXN0cnVjdCBtZXNvbl9uZmNfbmFuZF9jaGlwICptZXNvbl9jaGlwID0gdG9fbWVzb25fbmFuZChu YW5kKTsKPiArCXN0cnVjdCBtdGRfaW5mbyAqbXRkID0gbmFuZF90b19tdGQobmFuZCk7Cj4gIAlp bnQgaSwgb29iX2xlbiA9IDA7Cj4gIAl1OCAqZHNyYywgKm9zcmM7Cj4gKwl1OCAqb29idGFpbDsK PiAgCj4gLQlvb2JfbGVuID0gbmFuZC0+ZWNjLmJ5dGVzICsgMjsKPiArCW9vYl9sZW4gPSBORkNf T09CX1BFUl9FQ0MobmFuZCk7Cj4gIAlmb3IgKGkgPSAwOyBpIDwgbmFuZC0+ZWNjLnN0ZXBzOyBp KyspIHsKPiAgCQlpZiAoYnVmKSB7Cj4gIAkJCWRzcmMgPSBtZXNvbl9uZmNfZGF0YV9wdHIobmFu ZCwgaSk7Cj4gQEAgLTM5MCw2ICs0MTIsMTIgQEAgc3RhdGljIHZvaWQgbWVzb25fbmZjX3NldF9k YXRhX29vYihzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kLAo+ICAJCW1lbWNweShvc3JjLCBvb2JidWYs IG9vYl9sZW4pOwo+ICAJCW9vYmJ1ZiArPSBvb2JfbGVuOwo+ICAJfQo+ICsKPiArCW9vYnRhaWwg PSBtZXNvbl9jaGlwLT5kYXRhX2J1ZiArIG5hbmQtPmVjYy5zdGVwcyAqCj4gKwkJICAobmFuZC0+ ZWNjLnNpemUgKyBvb2JfbGVuKTsKPiArCj4gKwkvKiAnb29iYnVmJyBpZiBhbHJlYWR5IHNoaWZ0 ZWQgdG8gdGhlIHN0YXJ0IG9mIHVudXNlZCBhcmVhLiAqLwo+ICsJbWVtY3B5KG9vYnRhaWwsIG9v YmJ1ZiwgbXRkLT5vb2JzaXplIC0gbmFuZC0+ZWNjLnN0ZXBzICogb29iX2xlbik7Cj4gIH0KPiAg Cj4gIHN0YXRpYyBpbnQgbWVzb25fbmZjX3F1ZXVlX3JiKHN0cnVjdCBtZXNvbl9uZmMgKm5mYywg aW50IHRpbWVvdXRfbXMsIGludCBjbWRfcmVhZDApCj4gQEAgLTQzNiwyNSArNDY0LDEyIEBAIHN0 YXRpYyB2b2lkIG1lc29uX25mY19zZXRfdXNlcl9ieXRlKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQs IHU4ICpvb2JfYnVmKQo+ICB7Cj4gIAlzdHJ1Y3QgbWVzb25fbmZjX25hbmRfY2hpcCAqbWVzb25f Y2hpcCA9IHRvX21lc29uX25hbmQobmFuZCk7Cj4gIAlfX2xlNjQgKmluZm87Cj4gLQlpbnQgaSwg Y291bnQ7Cj4gLQo+IC0JZm9yIChpID0gMCwgY291bnQgPSAwOyBpIDwgbmFuZC0+ZWNjLnN0ZXBz OyBpKyssIGNvdW50ICs9IDIpIHsKPiAtCQlpbmZvID0gJm1lc29uX2NoaXAtPmluZm9fYnVmW2ld Owo+IC0JCSppbmZvIHw9IG9vYl9idWZbY291bnRdOwo+IC0JCSppbmZvIHw9IG9vYl9idWZbY291 bnQgKyAxXSA8PCA4Owo+IC0JfQo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBtZXNvbl9uZmNfZ2V0 X3VzZXJfYnl0ZShzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kLCB1OCAqb29iX2J1ZikKPiAtewo+IC0J c3RydWN0IG1lc29uX25mY19uYW5kX2NoaXAgKm1lc29uX2NoaXAgPSB0b19tZXNvbl9uYW5kKG5h bmQpOwo+IC0JX19sZTY0ICppbmZvOwo+IC0JaW50IGksIGNvdW50Owo+ICsJaW50IGk7Cj4gIAo+ IC0JZm9yIChpID0gMCwgY291bnQgPSAwOyBpIDwgbmFuZC0+ZWNjLnN0ZXBzOyBpKyssIGNvdW50 ICs9IDIpIHsKPiArCWZvciAoaSA9IDA7IGkgPCBuYW5kLT5lY2Muc3RlcHM7IGkrKykgewo+ICAJ CWluZm8gPSAmbWVzb25fY2hpcC0+aW5mb19idWZbaV07Cj4gLQkJb29iX2J1Zltjb3VudF0gPSAq aW5mbzsKPiAtCQlvb2JfYnVmW2NvdW50ICsgMV0gPSAqaW5mbyA+PiA4Owo+ICsJCS8qIEFsd2F5 cyBpZ25vcmUgdXNlciBieXRlcyBwcm9ncmFtbWluZy4gKi8KCldoeT8KCkFsc28sIG1heWJlIEkg c2hvdWxkIG1lbnRpb24gdGhlIGhlbHBlcnM6Cm10ZF9vb2JsYXlvdXRfZ2V0X2VjY2J5dGVzIGFu ZCBjbwpUaGV5IGFyZSB2ZXJ5IHVzZWZ1bCB0byBkZWFsIHdpdGggT09CIGJ5dGVzLiBFdmVyeXRo aW5nIHNlZW1zIGV4dHJlbWVseQpoYXJkY29kZWQgaW4gdGhpcyBkcml2ZXIsIHdoaWxlIHRoZSB1 c2VyIGNhbiB0dW5lIHJlYWQvd3JpdGUgT09CCm9wZXJhdGlvbnMuCgo+ICsJCSppbmZvIHw9IDB4 ZmZmZjsKPiAgCX0KPiAgfQo+ICAKPiBAQCAtNjk4LDE4ICs3MTMsOTIgQEAgc3RhdGljIGludCBt ZXNvbl9uZmNfd3JpdGVfcGFnZV9yYXcoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCwgY29uc3QgdTgg KmJ1ZiwKPiAgCXJldHVybiBtZXNvbl9uZmNfd3JpdGVfcGFnZV9zdWIobmFuZCwgcGFnZSwgMSk7 Cj4gIH0KPiAgCj4gK3N0YXRpYyB1MzIgbWVzb25fbmZjX2dldF9vb2JfYnl0ZXMoc3RydWN0IG5h bmRfY2hpcCAqbmFuZCkKPiArewo+ICsJc3RydWN0IG10ZF9pbmZvICptdGQgPSBuYW5kX3RvX210 ZChuYW5kKTsKPiArCj4gKwlyZXR1cm4gbXRkLT5vb2JzaXplIC0gbmFuZC0+ZWNjLnN0ZXBzICog TkZDX09PQl9QRVJfRUNDKG5hbmQpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IF9fbWVzb25fbmZj X3dyaXRlX29vYihzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kLCBpbnQgcGFnZSwgdTggKm9vYl9idWYp Cj4gK3sKPiArCXN0cnVjdCBtZXNvbl9uZmNfbmFuZF9jaGlwICptZXNvbl9jaGlwID0gdG9fbWVz b25fbmFuZChuYW5kKTsKPiArCXN0cnVjdCBtdGRfaW5mbyAqbXRkID0gbmFuZF90b19tdGQobmFu ZCk7Cj4gKwl1MzIgcGFnZV9zaXplID0gbXRkLT53cml0ZXNpemUgKyBtdGQtPm9vYnNpemU7Cj4g Kwl1MzIgb29iX2J5dGVzID0gbWVzb25fbmZjX2dldF9vb2JfYnl0ZXMobmFuZCk7Cj4gKwlpbnQg cmV0Owo+ICsKPiArCWlmICghb29iX2J5dGVzKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCXJldCA9 IG5hbmRfcHJvZ19wYWdlX2JlZ2luX29wKG5hbmQsIHBhZ2UsIDAsIE5VTEwsIDApOwo+ICsJaWYg KHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCW1lbWNweShtZXNvbl9jaGlwLT5vb2JfYnVm LCBvb2JfYnVmICsgKG10ZC0+b29ic2l6ZSAtIG9vYl9ieXRlcyksCj4gKwkgICAgICAgb29iX2J5 dGVzKTsKPiArCj4gKwlyZXQgPSBuYW5kX2NoYW5nZV93cml0ZV9jb2x1bW5fb3AobmFuZCwgcGFn ZV9zaXplIC0gb29iX2J5dGVzLAo+ICsJCQkJCSAgbWVzb25fY2hpcC0+b29iX2J1ZiwKPiArCQkJ CQkgIG9vYl9ieXRlcywgZmFsc2UpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsK PiArCXJldHVybiBuYW5kX3Byb2dfcGFnZV9lbmRfb3AobmFuZCk7Cj4gK30KPiArCj4gK3N0YXRp YyBpbnQgX19tZXNvbl9uZmNfcmVhZF9vb2Ioc3RydWN0IG5hbmRfY2hpcCAqbmFuZCwgaW50IHBh Z2UsCj4gKwkJCQl1OCAqb29iX2J1ZikKPiArewo+ICsJc3RydWN0IG1lc29uX25mY19uYW5kX2No aXAgKm1lc29uX2NoaXAgPSB0b19tZXNvbl9uYW5kKG5hbmQpOwo+ICsJc3RydWN0IG10ZF9pbmZv ICptdGQgPSBuYW5kX3RvX210ZChuYW5kKTsKPiArCXUzMiBvb2JfYnl0ZXM7Cj4gKwl1MzIgcGFn ZV9zaXplOwo+ICsJaW50IHJldDsKPiArCj4gKwlvb2JfYnl0ZXMgPSBtZXNvbl9uZmNfZ2V0X29v Yl9ieXRlcyhuYW5kKTsKPiArCj4gKwlpZiAoIW9vYl9ieXRlcykKPiArCQlyZXR1cm4gMDsKPiAr Cj4gKwlyZXQgPSBuYW5kX3JlYWRfcGFnZV9vcChuYW5kLCBwYWdlLCAwLCBOVUxMLCAwKTsKPiAr CWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlwYWdlX3NpemUgPSBtdGQtPndyaXRl c2l6ZSArIG10ZC0+b29ic2l6ZTsKPiArCj4gKwlyZXQgPSBuYW5kX2NoYW5nZV9yZWFkX2NvbHVt bl9vcChuYW5kLCBwYWdlX3NpemUgLSBvb2JfYnl0ZXMsCj4gKwkJCQkJIG1lc29uX2NoaXAtPm9v Yl9idWYsCj4gKwkJCQkJIG9vYl9ieXRlcywgZmFsc2UpOwo+ICsKPiArCWlmICghcmV0KQo+ICsJ CW1lbWNweShvb2JfYnVmICsgKG10ZC0+b29ic2l6ZSAtIG9vYl9ieXRlcyksCj4gKwkJICAgICAg IG1lc29uX2NoaXAtPm9vYl9idWYsCj4gKwkJICAgICAgIG9vYl9ieXRlcyk7Cj4gKwo+ICsJcmV0 dXJuIHJldDsKPiArfQo+ICsKPiAgc3RhdGljIGludCBtZXNvbl9uZmNfd3JpdGVfcGFnZV9od2Vj YyhzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kLAo+ICAJCQkJICAgICAgY29uc3QgdTggKmJ1ZiwgaW50 IG9vYl9yZXF1aXJlZCwgaW50IHBhZ2UpCj4gIHsKPiAgCXN0cnVjdCBtdGRfaW5mbyAqbXRkID0g bmFuZF90b19tdGQobmFuZCk7Cj4gIAlzdHJ1Y3QgbWVzb25fbmZjX25hbmRfY2hpcCAqbWVzb25f Y2hpcCA9IHRvX21lc29uX25hbmQobmFuZCk7Cj4gIAl1OCAqb29iX2J1ZiA9IG5hbmQtPm9vYl9w b2k7Cj4gKwlpbnQgcmV0Owo+ICAKPiAgCW1lbWNweShtZXNvbl9jaGlwLT5kYXRhX2J1ZiwgYnVm LCBtdGQtPndyaXRlc2l6ZSk7Cj4gIAltZW1zZXQobWVzb25fY2hpcC0+aW5mb19idWYsIDAsIG5h bmQtPmVjYy5zdGVwcyAqIFBFUl9JTkZPX0JZVEUpOwo+ICAJbWVzb25fbmZjX3NldF91c2VyX2J5 dGUobmFuZCwgb29iX2J1Zik7Cj4gIAo+IC0JcmV0dXJuIG1lc29uX25mY193cml0ZV9wYWdlX3N1 YihuYW5kLCBwYWdlLCAwKTsKPiArCXJldCA9IG1lc29uX25mY193cml0ZV9wYWdlX3N1YihuYW5k LCBwYWdlLCAwKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlpZiAob29i X3JlcXVpcmVkKQo+ICsJCXJldCA9IF9fbWVzb25fbmZjX3dyaXRlX29vYihuYW5kLCBwYWdlLCBv b2JfYnVmKTsKCllvdSBzaG91bGQgcHJvdmlkZSBhbGwgdGhlIGRhdGEgaW5jbHVkaW5nIE9PQiBi eXRlcyBpbiBhIHNpbmdsZSB3cml0ZQpjYWxsLCBvdGhlcndpc2UgeW91IHBlcmZvcm0gdHdvIHdy aXRlcyBvbiB0aGUgc2FtZSBwYWdlLCB0aGF0J3Mgbm90CndoYXQgdGhpcyBoZWxwZXIgaXMgZXhw ZWN0ZWQgdG8gZG8uCgo+ICsKPiArCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lk IG1lc29uX25mY19jaGVja19lY2NfcGFnZXNfdmFsaWQoc3RydWN0IG1lc29uX25mYyAqbmZjLAo+ IEBAIC03ODMsNyArODcyLDcgQEAgc3RhdGljIGludCBtZXNvbl9uZmNfcmVhZF9wYWdlX3Jhdyhz dHJ1Y3QgbmFuZF9jaGlwICpuYW5kLCB1OCAqYnVmLAo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4g cmV0Owo+ICAKPiAtCW1lc29uX25mY19nZXRfZGF0YV9vb2IobmFuZCwgYnVmLCBvb2JfYnVmKTsK PiArCW1lc29uX25mY19nZXRfZGF0YV9vb2IobmFuZCwgYnVmLCBvb2JfcmVxdWlyZWQgPyBvb2Jf YnVmIDogTlVMTCk7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBAQCAtODAzLDEyICs4OTIsMTIg QEAgc3RhdGljIGludCBtZXNvbl9uZmNfcmVhZF9wYWdlX2h3ZWNjKHN0cnVjdCBuYW5kX2NoaXAg Km5hbmQsIHU4ICpidWYsCj4gIAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+IC0JbWVz b25fbmZjX2dldF91c2VyX2J5dGUobmFuZCwgb29iX2J1Zik7Cj4gIAlyZXQgPSBtZXNvbl9uZmNf ZWNjX2NvcnJlY3QobmFuZCwgJmJpdGZsaXBzLCAmY29ycmVjdF9iaXRtYXApOwo+ICAJaWYgKHJl dCA9PSBFQ0NfQ0hFQ0tfUkVUVVJOX0ZGKSB7Cj4gIAkJaWYgKGJ1ZikKPiAgCQkJbWVtc2V0KGJ1 ZiwgMHhmZiwgbXRkLT53cml0ZXNpemUpOwo+ICAJCW1lbXNldChvb2JfYnVmLCAweGZmLCBtdGQt Pm9vYnNpemUpOwo+ICsJCXJldHVybiBiaXRmbGlwczsKClRoYXQgaXMgc29tZXRoaW5nIGVsc2Ug PT4gb3RoZXIgZml4ID0+IG90aGVyIHBhdGNoPwoKPiAgCX0gZWxzZSBpZiAocmV0IDwgMCkgewo+ ICAJCWlmICgobmFuZC0+b3B0aW9ucyAmIE5BTkRfTkVFRF9TQ1JBTUJMSU5HKSB8fCAhYnVmKSB7 Cj4gIAkJCW10ZC0+ZWNjX3N0YXRzLmZhaWxlZCsrOwo+IEBAIC04MjAsMTIgKzkwOSwxNCBAQCBz dGF0aWMgaW50IG1lc29uX25mY19yZWFkX3BhZ2VfaHdlY2Moc3RydWN0IG5hbmRfY2hpcCAqbmFu ZCwgdTggKmJ1ZiwKPiAgCj4gIAkJZm9yIChpID0gMDsgaSA8IG5hbmQtPmVjYy5zdGVwcyA7IGkr Kykgewo+ICAJCQl1OCAqZGF0YSA9IGJ1ZiArIGkgKiBlY2MtPnNpemU7Cj4gLQkJCXU4ICpvb2Ig PSBuYW5kLT5vb2JfcG9pICsgaSAqIChlY2MtPmJ5dGVzICsgMik7Cj4gKwkJCXU4ICpvb2IgPSBu YW5kLT5vb2JfcG9pICsgaSAqIE5GQ19PT0JfUEVSX0VDQyhuYW5kKTsKPiAgCj4gIAkJCWlmIChj b3JyZWN0X2JpdG1hcCAmIEJJVF9VTEwoaSkpCj4gIAkJCQljb250aW51ZTsKPiArCj4gIAkJCXJl dCA9IG5hbmRfY2hlY2tfZXJhc2VkX2VjY19jaHVuayhkYXRhLAllY2MtPnNpemUsCj4gLQkJCQkJ CQkgIG9vYiwgZWNjLT5ieXRlcyArIDIsCj4gKwkJCQkJCQkgIG9vYiwKPiArCQkJCQkJCSAgTkZD X09PQl9QRVJfRUNDKG5hbmQpLAo+ICAJCQkJCQkJICBOVUxMLCAwLAo+ICAJCQkJCQkJICBlY2Mt PnN0cmVuZ3RoKTsKPiAgCQkJaWYgKHJldCA8IDApIHsKPiBAQCAtODM5LDE3ICs5MzAsMzAgQEAg c3RhdGljIGludCBtZXNvbl9uZmNfcmVhZF9wYWdlX2h3ZWNjKHN0cnVjdCBuYW5kX2NoaXAgKm5h bmQsIHU4ICpidWYsCj4gIAkJbWVtY3B5KGJ1ZiwgbWVzb25fY2hpcC0+ZGF0YV9idWYsIG10ZC0+ d3JpdGVzaXplKTsKPiAgCX0KPiAgCj4gKwlpZiAob29iX3JlcXVpcmVkKQo+ICsJCV9fbWVzb25f bmZjX3JlYWRfb29iKG5hbmQsIHBhZ2UsIG9vYl9idWYpOwoKSW4gdGhlIHN0YW5kYWxvbmUgInJl YWRfb29iIiBob29rLCB5b3UgaGF2ZSB0byBzZW5kIGEgUkVBRDAgY29tbWFuZCwKYnV0IG5vdCB3 aGVuIHlvdSBhcmUgaW4gdGhlIHJlYWRfcGFnZSBob29rLiBJdCBpcyBhIGJpZyB3YXN0ZSBvZiB0 aW1lLgoKPiArCj4gIAlyZXR1cm4gYml0ZmxpcHM7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQgbWVz b25fbmZjX3JlYWRfb29iX3JhdyhzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kLCBpbnQgcGFnZSkKPiAg ewo+IC0JcmV0dXJuIG1lc29uX25mY19yZWFkX3BhZ2VfcmF3KG5hbmQsIE5VTEwsIDEsIHBhZ2Up Owo+ICsJcmV0dXJuIF9fbWVzb25fbmZjX3JlYWRfb29iKG5hbmQsIHBhZ2UsIG5hbmQtPm9vYl9w b2kpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IG1lc29uX25mY19yZWFkX29vYihzdHJ1Y3QgbmFu ZF9jaGlwICpuYW5kLCBpbnQgcGFnZSkKPiAgewo+IC0JcmV0dXJuIG1lc29uX25mY19yZWFkX3Bh Z2VfaHdlY2MobmFuZCwgTlVMTCwgMSwgcGFnZSk7Cj4gKwlyZXR1cm4gX19tZXNvbl9uZmNfcmVh ZF9vb2IobmFuZCwgcGFnZSwgbmFuZC0+b29iX3BvaSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQg bWVzb25fbmZjX3dyaXRlX29vYl9yYXcoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCwgaW50IHBhZ2Up Cj4gK3sKPiArCXJldHVybiBfX21lc29uX25mY193cml0ZV9vb2IobmFuZCwgcGFnZSwgbmFuZC0+ b29iX3BvaSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbWVzb25fbmZjX3dyaXRlX29vYihzdHJ1 Y3QgbmFuZF9jaGlwICpuYW5kLCBpbnQgcGFnZSkKPiArewo+ICsJcmV0dXJuIF9fbWVzb25fbmZj X3dyaXRlX29vYihuYW5kLCBwYWdlLCBuYW5kLT5vb2JfcG9pKTsKCkRvIHdlIHJlYWxseSBuZWVk IHRoZXNlIGluZGlyZWN0aW9ucz8KCj4gIH0KPiAgCj4gIHN0YXRpYyBib29sIG1lc29uX25mY19p c19idWZmZXJfZG1hX3NhZmUoY29uc3Qgdm9pZCAqYnVmZmVyKQo+IEBAIC05ODIsNyArMTA4Niw3 IEBAIHN0YXRpYyBpbnQgbWVzb25fb29ibGF5b3V0X2VjYyhzdHJ1Y3QgbXRkX2luZm8gKm10ZCwg aW50IHNlY3Rpb24sCj4gIAlpZiAoc2VjdGlvbiA+PSBuYW5kLT5lY2Muc3RlcHMpCj4gIAkJcmV0 dXJuIC1FUkFOR0U7Cj4gIAo+IC0Jb29icmVnaW9uLT5vZmZzZXQgPSAgMiArIChzZWN0aW9uICog KDIgKyBuYW5kLT5lY2MuYnl0ZXMpKTsKPiArCW9vYnJlZ2lvbi0+b2Zmc2V0ID0gTkZDX1VTRVJf QllURVMgKyBzZWN0aW9uICogTkZDX09PQl9QRVJfRUNDKG5hbmQpOwoKVGhlICgpIGFyZSBzdGls bCBuZWVkZWQgYXJvdW5kIHRoZSAnKicKCj4gIAlvb2JyZWdpb24tPmxlbmd0aCA9IG5hbmQtPmVj Yy5ieXRlczsKPiAgCj4gIAlyZXR1cm4gMDsKPiBAQCAtOTkyLDEyICsxMDk2LDE2IEBAIHN0YXRp YyBpbnQgbWVzb25fb29ibGF5b3V0X2ZyZWUoc3RydWN0IG10ZF9pbmZvICptdGQsIGludCBzZWN0 aW9uLAo+ICAJCQkJc3RydWN0IG10ZF9vb2JfcmVnaW9uICpvb2JyZWdpb24pCj4gIHsKPiAgCXN0 cnVjdCBuYW5kX2NoaXAgKm5hbmQgPSBtdGRfdG9fbmFuZChtdGQpOwo+ICsJdTMyIG9vYl9ieXRl cyA9IG1lc29uX25mY19nZXRfb29iX2J5dGVzKG5hbmQpOwo+ICAKPiAgCWlmIChzZWN0aW9uID49 IG5hbmQtPmVjYy5zdGVwcykKPiAgCQlyZXR1cm4gLUVSQU5HRTsKPiAgCj4gLQlvb2JyZWdpb24t Pm9mZnNldCA9IHNlY3Rpb24gKiAoMiArIG5hbmQtPmVjYy5ieXRlcyk7Cj4gLQlvb2JyZWdpb24t Pmxlbmd0aCA9IDI7Cj4gKwkvKiBTcGxpdCByZXN0IG9mIE9PQiBhcmVhIChub3QgY292ZXJlZCBi eSBFQ0MgZW5naW5lKSBwZXIgZWFjaAo+ICsJICogRUNDIHNlY3Rpb24uIFRoaXMgd2lsbCBiZSBP T0IgZGF0YSBhdmFpbGFibGUgdG8gdXNlci4KPiArCSAqLwo+ICsJb29icmVnaW9uLT5vZmZzZXQg PSAoc2VjdGlvbiArIG5hbmQtPmVjYy5zdGVwcykgKiBORkNfT09CX1BFUl9FQ0MobmFuZCk7Cj4g Kwlvb2JyZWdpb24tPmxlbmd0aCA9IG9vYl9ieXRlcyAvIG5hbmQtPmVjYy5zdGVwczsKPiAgCj4g IAlyZXR1cm4gMDsKPiAgfQo+IEBAIC0xMTg0LDYgKzEyOTIsOSBAQCBzdGF0aWMgaW50IG1lc29u X25hbmRfYmNoX21vZGUoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCkKPiAgCj4gIHN0YXRpYyB2b2lk IG1lc29uX25hbmRfZGV0YWNoX2NoaXAoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCkKPiAgewo+ICsJ c3RydWN0IG1lc29uX25mY19uYW5kX2NoaXAgKm1lc29uX2NoaXAgPSB0b19tZXNvbl9uYW5kKG5h bmQpOwo+ICsKPiArCWtmcmVlKG1lc29uX2NoaXAtPm9vYl9idWYpOwo+ICAJbWVzb25fbmZjX2Zy ZWVfYnVmZmVyKG5hbmQpOwo+ICB9Cj4gIAo+IEBAIC0xMjI1LDkgKzEzMzYsOSBAQCBzdGF0aWMg aW50IG1lc29uX25hbmRfYXR0YWNoX2NoaXAoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCkKPiAgCW5h bmQtPmVjYy5lbmdpbmVfdHlwZSA9IE5BTkRfRUNDX0VOR0lORV9UWVBFX09OX0hPU1Q7Cj4gIAlu YW5kLT5lY2Mud3JpdGVfcGFnZV9yYXcgPSBtZXNvbl9uZmNfd3JpdGVfcGFnZV9yYXc7Cj4gIAlu YW5kLT5lY2Mud3JpdGVfcGFnZSA9IG1lc29uX25mY193cml0ZV9wYWdlX2h3ZWNjOwo+IC0JbmFu ZC0+ZWNjLndyaXRlX29vYl9yYXcgPSBuYW5kX3dyaXRlX29vYl9zdGQ7Cj4gLQluYW5kLT5lY2Mu d3JpdGVfb29iID0gbmFuZF93cml0ZV9vb2Jfc3RkOwo+ICAKPiArCW5hbmQtPmVjYy53cml0ZV9v b2JfcmF3ID0gbWVzb25fbmZjX3dyaXRlX29vYl9yYXc7Cj4gKwluYW5kLT5lY2Mud3JpdGVfb29i ID0gbWVzb25fbmZjX3dyaXRlX29vYjsKCkFjdHVhbGx5IGlmIHlvdSBkZWZpbmUgdGhlIHJpZ2h0 IE9PQiBsYXlvdXRzLCBhcmUgdGhlc2UgcmVhbGx5IG5lZWRlZAo/PyBJIHdvdWxkIGV4cGVjdCB0 aGUgcmlnaHQgYnl0ZXMgdG8gYmUgcGlja2VkIHVwIGJ5IHRoZSBkZWZhdWx0CmltcGxlbWVudGF0 aW9uLiBJIHNlZSBub3RoaW5nIHNwZWNpZmljIGluIHlvdXIgY3VycmVudCBpbXBsZW1lbnRhdGlv bj8KCj4gIAluYW5kLT5lY2MucmVhZF9wYWdlX3JhdyA9IG1lc29uX25mY19yZWFkX3BhZ2VfcmF3 Owo+ICAJbmFuZC0+ZWNjLnJlYWRfcGFnZSA9IG1lc29uX25mY19yZWFkX3BhZ2VfaHdlY2M7Cj4g IAluYW5kLT5lY2MucmVhZF9vb2JfcmF3ID0gbWVzb25fbmZjX3JlYWRfb29iX3JhdzsKPiBAQCAt MTIzNyw5ICsxMzQ4LDE2IEBAIHN0YXRpYyBpbnQgbWVzb25fbmFuZF9hdHRhY2hfY2hpcChzdHJ1 Y3QgbmFuZF9jaGlwICpuYW5kKQo+ICAJCWRldl9lcnIobmZjLT5kZXYsICIxNmJpdHMgYnVzIHdp ZHRoIG5vdCBzdXBwb3J0ZWQiKTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiArCj4gKwlt ZXNvbl9jaGlwLT5vb2JfYnVmID0ga21hbGxvYyhuYW5kLT5lY2MuYnl0ZXMsIEdGUF9LRVJORUwp OwoKZGV2bV9rbWFsbG9jPwoKPiArCWlmICghbWVzb25fY2hpcC0+b29iX2J1ZikKPiArCQlyZXR1 cm4gLUVOT01FTTsKPiArCj4gIAlyZXQgPSBtZXNvbl9jaGlwX2J1ZmZlcl9pbml0KG5hbmQpOwo+ IC0JaWYgKHJldCkKPiArCWlmIChyZXQpIHsKPiArCQlrZnJlZShtZXNvbl9jaGlwLT5vb2JfYnVm KTsKPiAgCQlyZXR1cm4gLUVOT01FTTsKPiArCX0KPiAgCj4gIAlyZXR1cm4gcmV0Owo+ICB9CgoK VGhhbmtzLApNaXF1w6hsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpsaW51eC1hbWxvZ2ljIG1haWxpbmcgbGlzdApsaW51eC1hbWxvZ2ljQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1hbWxvZ2ljCg==