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 9CAA2C7EE26 for ; Mon, 22 May 2023 13:35:51 +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=c7IH6EB+kWcCkWaGHpjKWKw0/vlpKrhJqjybA/YTUUU=; b=ysNgYxzXUJlY/6 iyWMLxtqnJziywFkLSQ7thXLjBqKkHOnOGlHfHgBFFOD+XptUshW6+PjhUZbWvh0EO4UjlWKURN7L 3zGUjfXNao6nq2Pdl9RSD5K1yuwarx1ERRMuRHPiv6C81WUj9liS7URnDQ5FjBs/dHWMOFzFz9vgQ 9j1ciqwJ4N1fh63esfvuiMQ1K0B/dCcDVRgsgThmPh8imhlYnwaHhdoJwVsmrwd+1LnjHdcARdpUP /XoAbLLHBZaBXqBa14zmE5lu4SdEeBfpBn85Koa0xOrEtEXtmHe3s6cro+Dw3YTWjdMG4khOvNkFN xpqd7d6Ig8CXmu/vm+1A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q15hF-006gYF-0u; Mon, 22 May 2023 13:35:33 +0000 Received: from relay3-d.mail.gandi.net ([2001:4b98:dc4:8::223]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q15hB-006gVd-0C for linux-mtd@lists.infradead.org; Mon, 22 May 2023 13:35:31 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id B8AD76000E; Mon, 22 May 2023 13:35:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1684762521; 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=93QLYjBLzRenUZLy6HJ6kcMyZj1oFduVWd88cWEjx6k=; b=NAU+J4uoHF8i5jfYVq37IeXdmTrXNht4KZmDADuD+nGtm2X9dhj0tD/q2KSSGP7JCbQ0Vl dMbHUiBdsf3rRrqx4Ltkrq5PHfq+Sgv7ckl0ssKaEDqaqZrtmta+0PobyW5who27fZk3ui 8jZcr6d98h7DiaZujxUsh34W584F+CKk1HbQhTUcYJxq/oRDVYr7FjNoqAsUnWXGHnXXhb 8lezkmU+P/Tyrpu0Wthd6eD1LU1i8Rxh4cvqG6eLl7pfLtcge7px/ajvw/EVQDY4/S1KoD xoIJabGKpk4kGWV3KxSa/biM6oGHg+Cfk42NSgpQg3mr/lB3VkgUnDnNphaTjw== Date: Mon, 22 May 2023 15:35:19 +0200 From: Miquel Raynal To: Md Sadre Alam Cc: mani@kernel.org, richard@nod.at, vigneshr@ti.com, linux-mtd@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, quic_srichara@quicinc.com Subject: Re: [PATCH v2 1/5] mtd: rawnand: qcom: Implement exec_op() Message-ID: <20230522153519.6b574789@xps-13> In-Reply-To: <20230511133017.6307-2-quic_mdalam@quicinc.com> References: <20230511133017.6307-1-quic_mdalam@quicinc.com> <20230511133017.6307-2-quic_mdalam@quicinc.com> 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_063529_406561_4E877E91 X-CRM114-Status: GOOD ( 28.59 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org SGVsbG8sCgpxdWljX21kYWxhbUBxdWljaW5jLmNvbSB3cm90ZSBvbiBUaHUsIDExIE1heSAyMDIz IDE5OjAwOjEzICswNTMwOgoKPiBJbXBsZW1lbnQgZXhlY19vcCgpIHNvIHdlIGNhbiBsYXRlciBn ZXQgcmlkIG9mIHRoZSBsZWdhY3kgaW50ZXJmYWNlCj4gaW1wbGVtZW50YXRpb24uCj4gCj4gQ28t ZGV2ZWxvcGVkLWJ5OiBTcmljaGFyYW4gUmFtYWJhZGhyYW4gPHF1aWNfc3JpY2hhcmFAcXVpY2lu Yy5jb20+Cj4gU2lnbmVkLW9mZi1ieTogU3JpY2hhcmFuIFJhbWFiYWRocmFuIDxxdWljX3NyaWNo YXJhQHF1aWNpbmMuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1kIFNhZHJlIEFsYW0gPHF1aWNfbWRh bGFtQHF1aWNpbmMuY29tPgo+IC0tLQo+IENoYW5nZSBpbiBbdjJdCj4gCj4gKiBNaXNzZWQgdG8g cG9zdCBDb3Zlci1sZXR0ZXIsIHNvIHBvc3RpbmcgdjIgcGF0Y2ggd2l0aCBjb3Zlci1sZXR0ZXIK PiAgCj4gIGRyaXZlcnMvbXRkL25hbmQvcmF3L3Fjb21fbmFuZGMuYyB8IDIxNCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0KPiAgMSBmaWxlIGNoYW5nZWQsIDIxMyBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L3Fj b21fbmFuZGMuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L3Fjb21fbmFuZGMuYwo+IGluZGV4IDcy ZDYxNjhkOGExYi4uZGFlNDYwZTJhYTBiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbXRkL25hbmQv cmF3L3Fjb21fbmFuZGMuYwo+ICsrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L3Fjb21fbmFuZGMu Ywo+IEBAIC0xNTcsNiArMTU3LDcgQEAKPiAgI2RlZmluZQlPUF9QQUdFX1BST0dSQU1fV0lUSF9F Q0MJMHg3Cj4gICNkZWZpbmUJT1BfUFJPR1JBTV9QQUdFX1NQQVJFCQkweDkKPiAgI2RlZmluZQlP UF9CTE9DS19FUkFTRQkJCTB4YQo+ICsjZGVmaW5lCU9QX0NIRUNLX1NUQVRVUwkJCTB4Ywo+ICAj ZGVmaW5lCU9QX0ZFVENIX0lECQkJMHhiCj4gICNkZWZpbmUJT1BfUkVTRVRfREVWSUNFCQkJMHhk Cj4gIAo+IEBAIC0yMzUsNiArMjM2LDcgQEAgbmFuZGNfc2V0X3JlZyhjaGlwLCByZWcsCQkJXAo+ ICAgKi8KPiAgI2RlZmluZSBOQU5EX0VSQVNFRF9DV19TRVQJCUJJVCg0KQo+ICAKPiArI2RlZmlu ZSBNQVhfQUREUkVTU19DWUNMRQkJNQo+ICAvKgo+ICAgKiBUaGlzIGRhdGEgdHlwZSBjb3JyZXNw b25kcyB0byB0aGUgQkFNIHRyYW5zYWN0aW9uIHdoaWNoIHdpbGwgYmUgdXNlZCBmb3IgYWxsCj4g ICAqIE5BTkQgdHJhbnNmZXJzLgo+IEBAIC00NDcsNiArNDQ5LDI5IEBAIHN0cnVjdCBxY29tX25h bmRfYm9vdF9wYXJ0aXRpb24gewo+ICAJdTMyIHBhZ2Vfc2l6ZTsKPiAgfTsKPiAgCj4gKy8qCj4g KyAqIFFjb20gb3AgZm9yIGVhY2ggZXhlY19vcCB0cmFuc2Zlcgo+ICsgKgo+ICsgKiBAZGF0YV9p bnN0cjoJCQlkYXRhIGluc3RydWN0aW9uIHBvaW50ZXIKPiArICogQGRhdGFfaW5zdHJfaWR4OgkJ ZGF0YSBpbnN0cnVjdGlvbiBpbmRleAo+ICsgKiBAcmR5X3RpbWVvdXRfbXM6CQl3YWl0IHJlYWR5 IHRpbWVvdXQgaW4gbXMKPiArICogQHJkeV9kZWxheV9uczoJCUFkZGl0aW9uYWwgZGVsYXkgaW4g bnMKPiArICogQGFkZHIxX3JlZzoJCQlBZGRyZXNzMSByZWdpc3RlciB2YWx1ZQo+ICsgKiBAYWRk cjJfcmVnOgkJCUFkZHJlc3MyIHJlZ2lzdGVyIHZhbHVlCj4gKyAqIEBjbWRfcmVnOgkJCUNNRCBy ZWdpc3RlciB2YWx1ZQo+ICsgKiBAZmxhZzoJCQlmbGFnIGZvciBtaXNjIGluc3RydWN0aW9uCj4g KyAqLwo+ICtzdHJ1Y3QgcWNvbV9vcCB7Cj4gKwljb25zdCBzdHJ1Y3QgbmFuZF9vcF9pbnN0ciAq ZGF0YV9pbnN0cjsKPiArCXVuc2lnbmVkIGludCBkYXRhX2luc3RyX2lkeDsKPiArCXVuc2lnbmVk IGludCByZHlfdGltZW91dF9tczsKPiArCXVuc2lnbmVkIGludCByZHlfZGVsYXlfbnM7Cj4gKwl1 MzIgYWRkcjFfcmVnOwo+ICsJdTMyIGFkZHIyX3JlZzsKPiArCXUzMiBjbWRfcmVnOwo+ICsJdTgg ZmxhZzsKPiArfTsKPiArCj4gIC8qCj4gICAqIE5BTkQgY2hpcCBzdHJ1Y3R1cmUKPiAgICoKPiBA QCAtMTUxNyw3ICsxNTQyLDggQEAgc3RhdGljIHZvaWQgcHJlX2NvbW1hbmQoc3RydWN0IHFjb21f bmFuZF9ob3N0ICpob3N0LCBpbnQgY29tbWFuZCkKPiAgCWNsZWFyX3JlYWRfcmVncyhuYW5kYyk7 Cj4gIAo+ICAJaWYgKGNvbW1hbmQgPT0gTkFORF9DTURfUkVTRVQgfHwgY29tbWFuZCA9PSBOQU5E X0NNRF9SRUFESUQgfHwKPiAtCSAgICBjb21tYW5kID09IE5BTkRfQ01EX1BBUkFNIHx8IGNvbW1h bmQgPT0gTkFORF9DTURfRVJBU0UxKQo+ICsJICAgIGNvbW1hbmQgPT0gTkFORF9DTURfUEFSQU0g fHwgY29tbWFuZCA9PSBOQU5EX0NNRF9FUkFTRTEgfHwKPiArCSAgICBjb21tYW5kID09IE5BTkRf Q01EX1NUQVRVUykKCkkgZG9uJ3QgbGlrZSB0aGlzIG11Y2gsIGlzIHRoZXJlIGFub3RoZXIgd2F5 IHRvIGRlcml2ZSB3aGV0aGVyCmNsZWFyX2JhbV90cmFuc2FjdGlvbigpIGlzIG5lZWRlZD8gV2hh dCBpcyB0aGUgcmF0aW9uYWxlIGJlaGluZCBpdD8KCj4gIAkJY2xlYXJfYmFtX3RyYW5zYWN0aW9u KG5hbmRjKTsKPiAgfQo+ICAKPiBAQCAtMjg2Nyw4ICsyODkzLDE5NCBAQCBzdGF0aWMgaW50IHFj b21fbmFuZF9hdHRhY2hfY2hpcChzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwKQo+ICAJcmV0dXJuIDA7 Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbnQgcWNvbV9vcF9jbWRfbWFwcGluZyhzdHJ1Y3QgcWNvbV9u YW5kX2NvbnRyb2xsZXIgKm5hbmRjLCB1OCBjbWQsCj4gKwkJCSAgICAgICBzdHJ1Y3QgcWNvbV9v cCAqcV9vcCkKPiArewo+ICsJaW50IHJldCA9IDA7Cj4gKwo+ICsJc3dpdGNoIChjbWQpIHsKPiAr CWNhc2UgTkFORF9DTURfUkVTRVQ6Cj4gKwkJcmV0ID0gT1BfUkVTRVRfREVWSUNFOwo+ICsJCWJy ZWFrOwo+ICsJY2FzZSBOQU5EX0NNRF9SRUFESUQ6Cj4gKwkJcmV0ID0gT1BfRkVUQ0hfSUQ7Cj4g KwkJYnJlYWs7Cj4gKwljYXNlIE5BTkRfQ01EX1BBUkFNOgo+ICsJCWlmIChuYW5kYy0+cHJvcHMt PnFwaWNfdjIpCj4gKwkJCXJldCA9IE9QX1BBR0VfUkVBRF9PTkZJX1JFQUQ7Cj4gKwkJZWxzZQo+ ICsJCQlyZXQgPSBPUF9QQUdFX1JFQUQ7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIE5BTkRfQ01EX0VS QVNFMToKPiArCWNhc2UgTkFORF9DTURfRVJBU0UyOgo+ICsJCXJldCA9IE9QX0JMT0NLX0VSQVNF Owo+ICsJCWJyZWFrOwo+ICsJY2FzZSBOQU5EX0NNRF9TVEFUVVM6Cj4gKwkJcmV0ID0gT1BfQ0hF Q0tfU1RBVFVTOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBOQU5EX0NNRF9QQUdFUFJPRzoKPiArCQly ZXQgPSBPUF9QUk9HUkFNX1BBR0U7Cj4gKwkJYnJlYWs7Cj4gKwlkZWZhdWx0OgoKVGhpcyBzaG91 bGQgZXJyb3Igb3V0IGFuZCB0aGUgZXJyb3IgYmUgY2F0Y2ggaW4gdGhlIGNoZWNrX29ubHkgcGF0 aC4KCj4gKwkJYnJlYWs7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArLyog TkFORCBmcmFtZXdvcmsgLT5leGVjX29wKCkgaG9va3MgYW5kIHJlbGF0ZWQgaGVscGVycyAqLwo+ ICtzdGF0aWMgdm9pZCBxY29tX3BhcnNlX2luc3RydWN0aW9ucyhzdHJ1Y3QgbmFuZF9jaGlwICpj aGlwLAo+ICsJCQkJICAgIGNvbnN0IHN0cnVjdCBuYW5kX3N1Ym9wICpzdWJvcCwKPiArCQkJCQlz dHJ1Y3QgcWNvbV9vcCAqcV9vcCkKPiArewo+ICsJc3RydWN0IHFjb21fbmFuZF9jb250cm9sbGVy ICpuYW5kYyA9IGdldF9xY29tX25hbmRfY29udHJvbGxlcihjaGlwKTsKPiArCWNvbnN0IHN0cnVj dCBuYW5kX29wX2luc3RyICppbnN0ciA9IE5VTEw7Cj4gKwl1bnNpZ25lZCBpbnQgb3BfaWQ7Cj4g KwlpbnQgaTsKPiArCj4gKwltZW1zZXQocV9vcCwgMCwgc2l6ZW9mKCpxX29wKSk7Cj4gKwo+ICsJ Zm9yIChvcF9pZCA9IDA7IG9wX2lkIDwgc3Vib3AtPm5pbnN0cnM7IG9wX2lkKyspIHsKPiArCQl1 bnNpZ25lZCBpbnQgb2Zmc2V0LCBuYWRkcnM7Cj4gKwkJY29uc3QgdTggKmFkZHJzOwo+ICsKPiAr CQlpbnN0ciA9ICZzdWJvcC0+aW5zdHJzW29wX2lkXTsKPiArCj4gKwkJc3dpdGNoIChpbnN0ci0+ dHlwZSkgewo+ICsJCWNhc2UgTkFORF9PUF9DTURfSU5TVFI6Cj4gKwkJCXFfb3AtPmNtZF9yZWcg PSBxY29tX29wX2NtZF9tYXBwaW5nKG5hbmRjLCBpbnN0ci0+Y3R4LmNtZC5vcGNvZGUsIHFfb3Ap Owo+ICsJCQlxX29wLT5yZHlfZGVsYXlfbnMgPSBpbnN0ci0+ZGVsYXlfbnM7Cj4gKwkJCWJyZWFr Owo+ICsKPiArCQljYXNlIE5BTkRfT1BfQUREUl9JTlNUUjoKPiArCQkJb2Zmc2V0ID0gbmFuZF9z dWJvcF9nZXRfYWRkcl9zdGFydF9vZmYoc3Vib3AsIG9wX2lkKTsKPiArCQkJbmFkZHJzID0gbmFu ZF9zdWJvcF9nZXRfbnVtX2FkZHJfY3ljKHN1Ym9wLCBvcF9pZCk7Cj4gKwkJCWFkZHJzID0gJmlu c3RyLT5jdHguYWRkci5hZGRyc1tvZmZzZXRdOwo+ICsJCQlmb3IgKGkgPSAwOyBpIDwgbWluKDVV LCBuYWRkcnMpOyBpKyspIHsKCklzIHRoaXMgbWluKCkgdXNlZnVsPyBZb3UgYWxyZWFkeSBsaW1p dCB0aGUgbnVtYmVyIG9mIGN5Y2xlcyB0byA1LApvdGhlcndpc2UgdGhlIHBhdHRlcm4gd29uJ3Qg bWF0Y2gsIHJpZ2h0PwoKPiArCQkJCWlmIChpIDwgNCkKPiArCQkJCQlxX29wLT5hZGRyMV9yZWcg fD0gKHUzMilhZGRyc1tpXSA8PCBpICogODsKPiArCQkJCWVsc2UKPiArCQkJCQlxX29wLT5hZGRy Ml9yZWcgfD0gYWRkcnNbaV07Cj4gKwkJCX0KPiArCQkJcV9vcC0+cmR5X2RlbGF5X25zID0gaW5z dHItPmRlbGF5X25zOwo+ICsJCQlicmVhazsKPiArCj4gKwkJY2FzZSBOQU5EX09QX0RBVEFfSU5f SU5TVFI6Cj4gKwkJCXFfb3AtPmRhdGFfaW5zdHIgPSBpbnN0cjsKPiArCQkJcV9vcC0+ZGF0YV9p bnN0cl9pZHggPSBvcF9pZDsKPiArCQkJcV9vcC0+cmR5X2RlbGF5X25zID0gaW5zdHItPmRlbGF5 X25zOwo+ICsJCQlmYWxsdGhyb3VnaDsKPiArCQljYXNlIE5BTkRfT1BfREFUQV9PVVRfSU5TVFI6 Cj4gKwkJCXFfb3AtPnJkeV9kZWxheV9ucyA9IGluc3RyLT5kZWxheV9uczsKPiArCQkJYnJlYWs7 Cj4gKwo+ICsJCWNhc2UgTkFORF9PUF9XQUlUUkRZX0lOU1RSOgo+ICsJCQlxX29wLT5yZHlfdGlt ZW91dF9tcyA9IGluc3RyLT5jdHgud2FpdHJkeS50aW1lb3V0X21zOwo+ICsJCQlxX29wLT5yZHlf ZGVsYXlfbnMgPSBpbnN0ci0+ZGVsYXlfbnM7Cj4gKwkJCWJyZWFrOwo+ICsJCX0KPiArCX0KPiAr fQo+ICsKPiArc3RhdGljIGludCBxY29tX3JlYWRfc3RhdHVzX2V4ZWMoc3RydWN0IG5hbmRfY2hp cCAqY2hpcCwKPiArCQkJCSBjb25zdCBzdHJ1Y3QgbmFuZF9zdWJvcCAqc3Vib3ApCj4gK3sKPiAr CXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHFjb21fZXJhc2VfY21kX3R5cGVfZXhl YyhzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCBjb25zdCBzdHJ1Y3QgbmFuZF9zdWJvcCAqc3Vib3Ap Cj4gK3sKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHFjb21fcGFyYW1fcGFn ZV90eXBlX2V4ZWMoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwgIGNvbnN0IHN0cnVjdCBuYW5kX3N1 Ym9wICpzdWJvcCkKPiArewo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgcWNv bV9yZWFkX2lkX3R5cGVfZXhlYyhzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCBjb25zdCBzdHJ1Y3Qg bmFuZF9zdWJvcCAqc3Vib3ApCj4gK3sKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMg aW50IHFjb21fbWlzY19jbWRfdHlwZV9leGVjKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsIGNvbnN0 IHN0cnVjdCBuYW5kX3N1Ym9wICpzdWJvcCkKPiArewo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4g K3N0YXRpYyBpbnQgcWNvbV9kYXRhX3JlYWRfdHlwZV9leGVjKHN0cnVjdCBuYW5kX2NoaXAgKmNo aXAsIGNvbnN0IHN0cnVjdCBuYW5kX3N1Ym9wICpzdWJvcCkKPiArewo+ICsJLyogY3VycmVudGx5 IHJlYWRfZXhlY19vcCgpIHJldHVybiAwICwgYW5kIGFsbCB0aGUgcmVhZCBvcGVyYXRpb24gaGFu ZGxlIGluCj4gKwkgKiBhY3R1YWwgQVBJIGl0c2VsZgo+ICsJICovCj4gKwlyZXR1cm4gMDsKClBs ZWFzZSBtYWtlIGFsbCBleGVjX29wIGFkZGl0aW9ucyBpbiB0aGUgc2FtZSBwYXRjaCwgdW5sZXNz IHlvdSdyZQp0cnVseSBhZGRpbmcgYSBmZWF0dXJlLCBpbiB0aGlzIGNhc2UgaXQgY2FuIGJlIHNw bGl0LCBidXQgbm8gcGF0dGVybgpzaG91bGQgbWF0Y2ggd2hhdCdzIHVuc3VwcG9ydGVkIGJ5IC0+ ZXhlY19vcCgpLiBUaGlzIHdheSB3ZSBhdm9pZCB0aGVzZQp2ZXJ5IHN0cmFuZ2UgKGFuZCB3cm9u ZykgZW1wdHkgZnVuY3Rpb25zKS4KCj4gK30KPiArCj4gK3N0YXRpYyBpbnQgcWNvbV9kYXRhX3dy aXRlX3R5cGVfZXhlYyhzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCBjb25zdCBzdHJ1Y3QgbmFuZF9z dWJvcCAqc3Vib3ApCj4gK3sKPiArCS8qIGN1cnJlbnRseSB3cml0ZV9leGVjX29wKCkgcmV0dXJu IDAsIGFuZCBhbGwgdGhlIHdyaXRlIG9wZXJhdGlvbiBoYW5kbGUgaW4KPiArCSAqIGFjdHVhbCBB UEkgaXRzZWxmCj4gKwkgKi8KPiArCXN0cnVjdCBxY29tX29wIHFfb3A7Cj4gKwo+ICsJcWNvbV9w YXJzZV9pbnN0cnVjdGlvbnMoY2hpcCwgc3Vib3AsICZxX29wKTsKPiArCj4gKwlyZXR1cm4gMDsK PiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBuYW5kX29wX3BhcnNlciBxY29tX29wX3Bh cnNlciA9IE5BTkRfT1BfUEFSU0VSKAo+ICsJCU5BTkRfT1BfUEFSU0VSX1BBVFRFUk4oCj4gKwkJ CXFjb21fbWlzY19jbWRfdHlwZV9leGVjLAo+ICsJCQlOQU5EX09QX1BBUlNFUl9QQVRfQ01EX0VM RU0oZmFsc2UpLAo+ICsJCQlOQU5EX09QX1BBUlNFUl9QQVRfV0FJVFJEWV9FTEVNKGZhbHNlKSks Cj4gKwkJTkFORF9PUF9QQVJTRVJfUEFUVEVSTigKPiArCQkJcWNvbV9yZWFkX2lkX3R5cGVfZXhl YywKPiArCQkJTkFORF9PUF9QQVJTRVJfUEFUX0NNRF9FTEVNKGZhbHNlKSwKPiArCQkJTkFORF9P UF9QQVJTRVJfUEFUX0FERFJfRUxFTShmYWxzZSwgTUFYX0FERFJFU1NfQ1lDTEUpLAo+ICsJCQlO QU5EX09QX1BBUlNFUl9QQVRfREFUQV9JTl9FTEVNKGZhbHNlLCA4KSksCj4gKwkJTkFORF9PUF9Q QVJTRVJfUEFUVEVSTigKPiArCQkJcWNvbV9wYXJhbV9wYWdlX3R5cGVfZXhlYywKPiArCQkJTkFO RF9PUF9QQVJTRVJfUEFUX0NNRF9FTEVNKGZhbHNlKSwKPiArCQkJTkFORF9PUF9QQVJTRVJfUEFU X0FERFJfRUxFTShmYWxzZSwgTUFYX0FERFJFU1NfQ1lDTEUpLAo+ICsJCQlOQU5EX09QX1BBUlNF Ul9QQVRfV0FJVFJEWV9FTEVNKHRydWUpLAo+ICsJCQlOQU5EX09QX1BBUlNFUl9QQVRfREFUQV9J Tl9FTEVNKGZhbHNlLCA1MTIpKSwKPiArCQlOQU5EX09QX1BBUlNFUl9QQVRURVJOKAo+ICsJCQlx Y29tX3JlYWRfc3RhdHVzX2V4ZWMsCj4gKwkJCU5BTkRfT1BfUEFSU0VSX1BBVF9DTURfRUxFTShm YWxzZSksCj4gKwkJCU5BTkRfT1BfUEFSU0VSX1BBVF9EQVRBX0lOX0VMRU0oZmFsc2UsIDEpKSwK PiArCQlOQU5EX09QX1BBUlNFUl9QQVRURVJOKAo+ICsJCQlxY29tX2VyYXNlX2NtZF90eXBlX2V4 ZWMsCj4gKwkJCU5BTkRfT1BfUEFSU0VSX1BBVF9DTURfRUxFTShmYWxzZSksCj4gKwkJCU5BTkRf T1BfUEFSU0VSX1BBVF9BRERSX0VMRU0oZmFsc2UsIE1BWF9BRERSRVNTX0NZQ0xFKSwKPiArCQkJ TkFORF9PUF9QQVJTRVJfUEFUX0NNRF9FTEVNKGZhbHNlKSwKPiArCQkJTkFORF9PUF9QQVJTRVJf UEFUX1dBSVRSRFlfRUxFTShmYWxzZSkpLAo+ICsJCU5BTkRfT1BfUEFSU0VSX1BBVFRFUk4oCj4g KwkJCXFjb21fZGF0YV9yZWFkX3R5cGVfZXhlYywKPiArCQkJTkFORF9PUF9QQVJTRVJfUEFUX0NN RF9FTEVNKGZhbHNlKSwKPiArCQkJTkFORF9PUF9QQVJTRVJfUEFUX0FERFJfRUxFTShmYWxzZSwg TUFYX0FERFJFU1NfQ1lDTEUpLAo+ICsJCQlOQU5EX09QX1BBUlNFUl9QQVRfQ01EX0VMRU0oZmFs c2UpLAo+ICsJCQlOQU5EX09QX1BBUlNFUl9QQVRfV0FJVFJEWV9FTEVNKHRydWUpLAo+ICsJCQlO QU5EX09QX1BBUlNFUl9QQVRfREFUQV9JTl9FTEVNKGZhbHNlLCAyMDQ4KSksCj4gKwkJTkFORF9P UF9QQVJTRVJfUEFUVEVSTigKPiArCQkJcWNvbV9kYXRhX3dyaXRlX3R5cGVfZXhlYywKPiArCQkJ TkFORF9PUF9QQVJTRVJfUEFUX0NNRF9FTEVNKHRydWUpLAo+ICsJCQlOQU5EX09QX1BBUlNFUl9Q QVRfQUREUl9FTEVNKHRydWUsIE1BWF9BRERSRVNTX0NZQ0xFKSksCj4gKwkJKTsKPiArCj4gK3N0 YXRpYyBpbnQgcWNvbV9uYW5kX2V4ZWNfb3Aoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwKPiArCQkJ ICAgICBjb25zdCBzdHJ1Y3QgbmFuZF9vcGVyYXRpb24gKm9wLAo+ICsJCQlib29sIGNoZWNrX29u bHkpCj4gK3sKPiArCWlmIChjaGVja19vbmx5KQo+ICsJCXJldHVybiAwOwoKVGhpcyBpcyB3cm9u ZywgeW91IGNhbm5vdCBibGluZGx5IHJldHVybiAwIGlmIGNoZWNrX29ubHkgaXMgdHJ1ZS4KCj4g KwlyZXR1cm4gbmFuZF9vcF9wYXJzZXJfZXhlY19vcChjaGlwLCAmcWNvbV9vcF9wYXJzZXIsCj4g KwkJCW9wLCBjaGVja19vbmx5KTsKPiArfQo+ICsKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBuYW5k X2NvbnRyb2xsZXJfb3BzIHFjb21fbmFuZGNfb3BzID0gewo+ICAJLmF0dGFjaF9jaGlwID0gcWNv bV9uYW5kX2F0dGFjaF9jaGlwLAo+ICsJLmV4ZWNfb3AgPSBxY29tX25hbmRfZXhlY19vcCwKPiAg fTsKPiAgCj4gIHN0YXRpYyB2b2lkIHFjb21fbmFuZGNfdW5hbGxvYyhzdHJ1Y3QgcWNvbV9uYW5k X2NvbnRyb2xsZXIgKm5hbmRjKQoKClRoYW5rcywKTWlxdcOobAoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4IE1URCBkaXNjdXNzaW9u IG1haWxpbmcgbGlzdApodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LW10ZC8K