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 D6478C433F5 for ; Tue, 23 Nov 2021 12:05:17 +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:References:In-Reply-To:From:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=3VQy+WiqSEEfbcL0QJXvyvkRUaKlxoYFTH9YY+S+neg=; b=N0H5j3uwTqAAF0 9ZvMiVlcS9e6NrAEmDvj6qegz5SrlsNvuscXdNbZIbdJmLtUqx0h8rfCoMDckUBDF5m1ynVKuMlNt KZTPI43c0QNy9EO4vBvct1X2A3mMgBI+ZIBmcDX45uXOCc5fzOWd1y9fNum/QqPevVe3kDj/2602V ZdhNhpo46qC/9nYkA4oTcmg3r2DA4T8bngHIvoOKN8xg3QLPXtVuEfGZ2aYlddg01iQpGQR/PuC9/ fFLM5Bsootm9NJbGSuJvTDUs/mu6Z+eLZPEHbIWFxO7w4iQd7yXCTUHZ3aLl4TTcaq+/tsHEmuDJ1 lfF/JKruGnWw5uhYDY/w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mpUWo-0020CA-Eb; Tue, 23 Nov 2021 12:04:02 +0000 Received: from mailout1.w1.samsung.com ([210.118.77.11]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mpUWi-0020AT-Sl for linux-mtd@lists.infradead.org; Tue, 23 Nov 2021 12:04:00 +0000 Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20211123120353euoutp01b2737911ffa1eda4b271d012d20dad3d~6K087nD0-2129421294euoutp01v for ; Tue, 23 Nov 2021 12:03:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20211123120353euoutp01b2737911ffa1eda4b271d012d20dad3d~6K087nD0-2129421294euoutp01v DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1637669033; bh=FS7Slezhj1R8TEUsdbg0azhal0PFMkqE6G9eQc1jI4k=; h=Date:Subject:To:Cc:From:In-Reply-To:References:From; b=g1n/C41azKpHo48lUAjgsGZRR5N7L5OVo9o1BgDvoosdNtoot4uGnHIk/zB2LKX3y VaWVyyVtju6o8PIR4VdVQFF7zpX3oKZtDGsW3QJriTfW9NxkCtZPRRzS2/bNRtxxHr 8LU2yDxmMOdlW2Qe9cnagadnsk6GYhqpJDgmG7Cg= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20211123120353eucas1p10a8f9f95c59a654067dd0e1786ac98e4~6K08sR6TL0659206592eucas1p19; Tue, 23 Nov 2021 12:03:53 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 3A.DA.09887.9A8DC916; Tue, 23 Nov 2021 12:03:53 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20211123120353eucas1p2fb2561b7cfddd8d6e7decaef8b504f4c~6K08MfZDn1866518665eucas1p2n; Tue, 23 Nov 2021 12:03:53 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20211123120353eusmtrp1020f1964b2297cf03c206ff0bd38de42~6K08Lv2302784527845eusmtrp1K; Tue, 23 Nov 2021 12:03:53 +0000 (GMT) X-AuditID: cbfec7f4-45bff7000000269f-f9-619cd8a9afe1 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id C1.5A.09404.8A8DC916; Tue, 23 Nov 2021 12:03:52 +0000 (GMT) Received: from [106.210.134.192] (unknown [106.210.134.192]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20211123120352eusmtip285bc8509fd0abb8c167e09c3f8d67776~6K07qNeJ02501925019eusmtip2-; Tue, 23 Nov 2021 12:03:52 +0000 (GMT) Message-ID: <21092c0f-e11b-ac16-ab96-2a0556c0e30a@samsung.com> Date: Tue, 23 Nov 2021 13:03:52 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.1 Subject: Re: [PATCH v5 3/4] mtd: core: protect access to MTD devices while in suspend Content-Language: en-US To: Sean Nyekjaer , Boris Brezillon Cc: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Boris Brezillon , linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org From: Marek Szyprowski In-Reply-To: <20211102110204.3334609-4-sean@geanix.com> X-Brightmail-Tracker: H4sIAAAAAAAAA01Se1BMcRj123t37y02txX7lTzaoQhJMXZkmho7XIOhMSMT0ZWrGrXWbuXZ iBLWGimj2opi84jKlEiMsmjV1ubZLKMxPbx2rGp2x0xeafd69N/5znfOnPP95kdioiq+F5kg T2aVciZRInDFbzYNts+5Yi5iAtuzvaVXM/OQ1NjawpM+ry8SSO8cukhIHxy5x5fm3v6MpH0t FoF0qK2fCCPps9f20XWdOkRrTFaCri4/JqBrdAfoV2d30gbzLR5tq568hoxyXbyVTUxIZZVz Q2Nc4zO65Ipn+Wh3kbUFT0f2PWrkQgI1H/Ql+UiNXEkRdRlBve6NgBvsCPqGDJhDJaJsCD4Z Q/46Gk0FGCe6hOCu5hTBiQYQ1HUscGAhFQq2niwnj1PT4UzXdx7Hu0NzQS/uwOOpLWA8nOMM GEdFwsWOR06MUWJ43XvOqfeg1sGHwjaeIwyj3iFItzXxHQsBNQ/UVrXAgV2ohVBj7Rdw5imQ UVvobAeUnYTKhiHE1ZZB44feP3gcWAw3CA57gzFXg3OGDARdpgqCGzQInh/K/+MIgTemb8MR 5HDETKiqn8vR4dBXV8V30EC5gdnqzpVwg5ybeRhHC+FolohT+4LWUPkv9v6TZ1g2kmhHvIt2 xP3aEedo/+eWILwcidkUVVIcqwqSs7sCVEySKkUeFxC7I6kaDf8p4y+DvQ5dsgwE6BGPRHoE JCbxEHboChmRcCuzZy+r3LFZmZLIqvRoIolLxEKPH+mMiIpjktntLKtglX+3PNLFK513MrbM 96mXQlgeUtL5rmYgfHutp2STLNg8GDJGX0hborTfWpfmqlcX86N7y7J8FTNW4gkR9NsjqbVh CrXOM+zlmElKezP+MXBJflz9rFWLV2Cymk27iS+zIuIDJvgUh2t/nc4+9ji69OSAT8zlqcTY 9qDSno0m29IDy+ykXhz90112PHPG6FRPN9TtHfgwuKEt7e36u2nY7NAo5mtBcinv4MxuU8f1 q4/5Gv+s/bEepxAz2Lrt5fsNqeb+E5l52QdNi6Y1+aV1+6UVR55XRtSOTqbKKvybj/uOujC/ 831m8MqxT6ewFvApf/Fo3+egB/zlnpE5skQD0SOWxfhVrdV3J0hwVTwzzx9Tqpjfkrlg8MID AAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrEIsWRmVeSWpSXmKPExsVy+t/xe7orbsxJNJi1zdJidct0RovTZ04x WVzeNYfNYnfTMnaLw+37WC0m73zDaPH+1Cs2i/9nP7A7cHjMW1PtsePuEkaPnnNv2T02repk 89i8pN7j5rxCj+M3tjN5fN4kF8ARpWdTlF9akqqQkV9cYqsUbWhhpGdoaaFnZGKpZ2hsHmtl ZKqkb2eTkpqTWZZapG+XoJfR/DCv4NIMxoo5b0+xNDB+qexi5OSQEDCROHBuJnMXIxeHkMBS RokT256yQCRkJE5Oa2CFsIUl/lzrYoMoes8o8ev6SUaQBK+AncTnx23sIDaLgKrEtIe/mSDi ghInZz4BGyQqkCTR/30XM4gtLBAucXMXRA2zgLjErSfzwWwRgTCJef0gc7iA4k8ZJbZPvwy2 QEggWeLivfdsIDabgKFE19suMJtTwFxi89sPbBCDzCS6tnYxQtjyEs1bZzNPYBSaheSOWUj2 zULSMgtJywJGllWMIqmlxbnpucVGesWJucWleel6yfm5mxiBkbnt2M8tOxhXvvqod4iRiYPx EKMEB7OSCO+1JbMThXhTEiurUovy44tKc1KLDzGaAgNjIrOUaHI+MDXklcQbmhmYGpqYWRqY WpoZK4nzehZ0JAoJpCeWpGanphakFsH0MXFwSjUwbe0KD16x8DGTp24bi83VZf85JKYZLXw/ oTDvt3LxnSaLYNPkPIGJlSvSz0wRdPf96ZZxPOzD4rUXfrxK3/uoj1HvpuUrOd9Pyw37zPjm pDdGrJ0jOD/whzVbw9anR33trplGrfv0VZQ/Zr3RLu2KDdI+SZZXG7YvPda93/zx3BYB/WDD li0XVvk6aolHNb15/unlpoCZ38+4yITOit9y6X8Oy4m8k5NqrEtW/TqqFCjSz7q+bGLYhOqC VQELuo7whgQdnlHMMHPbbN9FmwKzGQ4cDCmOeGi5/OumHzdVNcX/x51+reC1heOn5IWCza9u Te4JVI757FL462tLaDBfnIv7zgN904rsvHWP3ou3VGIpzkg01GIuKk4EAKEhfG1VAwAA X-CMS-MailID: 20211123120353eucas1p2fb2561b7cfddd8d6e7decaef8b504f4c X-Msg-Generator: CA X-RootMTR: 20211123120353eucas1p2fb2561b7cfddd8d6e7decaef8b504f4c X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20211123120353eucas1p2fb2561b7cfddd8d6e7decaef8b504f4c References: <20211102110204.3334609-1-sean@geanix.com> <20211102110204.3334609-4-sean@geanix.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211123_040357_415157_760EB9E3 X-CRM114-Status: GOOD ( 23.34 ) 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 SGksCgpPbiAwMi4xMS4yMDIxIDEyOjAyLCBTZWFuIE55ZWtqYWVyIHdyb3RlOgo+IFByZXZlbnQg TVREIGFjY2VzcyB3aGlsZSBpbiBhIHN1c3BlbmRlZCBzdGF0ZS4gQWxzbwo+IHByZXZlbnQgc3Vz cGVuZGluZyBhIGRldmljZSB3aGljaCBpcyBzdGlsbCBjdXJyZW50bHkgaW4gdXNlLgo+Cj4gQ29t bWl0IDAxM2U2MjkyYWFmNSAoIm10ZDogcmF3bmFuZDogU2ltcGxpZnkgdGhlIGxvY2tpbmciKSBh bGxvd3MgdGhlCj4gcmF3bmFuZCBsYXllciB0byByZXR1cm4gZXJyb3JzIHJhdGhlciB0aGFuIHdh aXRpbmcgaW4gYSBibG9ja2luZyB3YWl0Lgo+Cj4gVGVzdGVkIG9uIGEgaU1YNlVMTC4KPgo+IFN1 Z2dlc3RlZC1ieTogQm9yaXMgQnJlemlsbG9uIDxib3Jpcy5icmV6aWxsb25AY29sbGFib3JhLmNv bT4KPiBTaWduZWQtb2ZmLWJ5OiBTZWFuIE55ZWtqYWVyIDxzZWFuQGdlYW5peC5jb20+CgpUaGlz IHBhdGNoIGxhbmRlZCByZWNlbnRseSBpbiBsaW51eC1uZXh0IGFzIGNvbW1pdCA5ZDZhYmQ0ODll NzAgKCJtdGQ6IApjb3JlOiBwcm90ZWN0IGFjY2VzcyB0byBNVEQgZGV2aWNlcyB3aGlsZSBpbiBz dXNwZW5kIikuIEkgZm91bmQgdGhhdCBpdCAKdHJpZ2dlcnMgdGhlIGZvbGxvd2luZyB3YXJuaW5n IG9uIG15IHRlc3Qgc3lzdGVtczoKCklORk86IHRyeWluZyB0byByZWdpc3RlciBub24tc3RhdGlj IGtleS4KVGhlIGNvZGUgaXMgZmluZSBidXQgbmVlZHMgbG9ja2RlcCBhbm5vdGF0aW9uLCBvciBt YXliZQp5b3UgZGlkbid0IGluaXRpYWxpemUgdGhpcyBvYmplY3QgYmVmb3JlIHVzZT8KdHVybmlu ZyBvZmYgdGhlIGxvY2tpbmcgY29ycmVjdG5lc3MgdmFsaWRhdG9yLgpDUFU6IDEgUElEOiAxNjA2 IENvbW06IHJlYm9vdCBOb3QgdGFpbnRlZCA1LjE2LjAtcmMxKyAjNDE2NQpIYXJkd2FyZSBuYW1l OiBsaW51eCxkdW1teS12aXJ0IChEVCkKQ2FsbCB0cmFjZToKIMKgZHVtcF9iYWNrdHJhY2UrMHgw LzB4MWFjCiDCoHNob3dfc3RhY2srMHgxOC8weDI0CiDCoGR1bXBfc3RhY2tfbHZsKzB4OGMvMHhi OAogwqBkdW1wX3N0YWNrKzB4MTgvMHgzNAogwqByZWdpc3Rlcl9sb2NrX2NsYXNzKzB4NGEwLzB4 NGNjCiDCoF9fbG9ja19hY3F1aXJlKzB4NzgvMHgyMGNjCiDCoGxvY2tfYWNxdWlyZS5wYXJ0LjAr MHhlMC8weDIzMAogwqBsb2NrX2FjcXVpcmUrMHg2OC8weDg0CiDCoGRvd25fd3JpdGUrMHg2NC8w eGUwCiDCoHBoeXNtYXBfZmxhc2hfc2h1dGRvd24rMHg2MC8weDE0MAogwqBwbGF0Zm9ybV9zaHV0 ZG93bisweDI4LzB4NDAKIMKgZGV2aWNlX3NodXRkb3duKzB4MTYwLzB4MzQwCiDCoF9fZG9fc3lz X3JlYm9vdCsweDFmOC8weDJhMAogwqBfX2FybTY0X3N5c19yZWJvb3QrMHgyOC8weDM0CiDCoGlu dm9rZV9zeXNjYWxsKzB4NDgvMHgxMTQKIMKgZWwwX3N2Y19jb21tb24uY29uc3Rwcm9wLjArMHg2 MC8weDExYwogwqBkb19lbDBfc3ZjX2NvbXBhdCsweDFjLzB4NTAKIMKgZWwwX3N2Y19jb21wYXQr MHg0Yy8weDEwMAogwqBlbDB0XzMyX3N5bmNfaGFuZGxlcisweDkwLzB4MTQwCiDCoGVsMHRfMzJf c3luYysweDFhNC8weDFhOApGbGFzaCBkZXZpY2UgcmVmdXNlZCBzdXNwZW5kIGR1ZSB0byBhY3Rp dmUgb3BlcmF0aW9uIChzdGF0ZSAyMCkKLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0t LS0tCkRFQlVHX1JXU0VNU19XQVJOX09OKHNlbS0+bWFnaWMgIT0gc2VtKTogY291bnQgPSAweDEs IG1hZ2ljID0gMHgwLCBvd25lciAKPSAweGZmZmY1ODhiNDU0N2M3NDAsIGN1cnIgMHhmZmZmNTg4 YjQ1NDdjNzQwLCBsaXN0IG5vdCBlbXB0eQpXQVJOSU5HOiBDUFU6IDEgUElEOiAxNjA2IGF0IGtl cm5lbC9sb2NraW5nL3J3c2VtLmM6MTMyMiAKdXBfd3JpdGUrMHgxNDQvMHgxYTAKTW9kdWxlcyBs aW5rZWQgaW46IGJsdWV0b290aCBlY2RoX2dlbmVyaWMgZWNjIHJma2lsbCBpcHY2CkNQVTogMSBQ SUQ6IDE2MDYgQ29tbTogcmVib290IE5vdCB0YWludGVkIDUuMTYuMC1yYzErICM0MTY1CkhhcmR3 YXJlIG5hbWU6IGxpbnV4LGR1bW15LXZpcnQgKERUKQpwc3RhdGU6IDYwMDAwMDA1IChuWkN2IGRh aWYgLVBBTiAtVUFPIC1UQ08gLURJVCAtU1NCUyBCVFlQRT0tLSkKcGMgOiB1cF93cml0ZSsweDE0 NC8weDFhMApsciA6IHVwX3dyaXRlKzB4MTQ0LzB4MWEwCnNwIDogZmZmZjgwMDAxMDllYmJkMAp4 Mjk6IGZmZmY4MDAwMTA5ZWJiZDAgeDI4OiBmZmZmNTg4YjQ1NDdjNzQwIHgyNzogMDAwMDAwMDAw MDAwMDAwMAp4MjY6IGZmZmZjZTAyMzhkNTY0NzAgeDI1OiAwMDAwMDAwMDAwMDAwMDA4IHgyNDog ZmZmZmNlMDIzOWJiYTAzMAp4MjM6IGZmZmY1ODhiNDUxOTM4YjAgeDIyOiAwMDAwMDAwMDAwMDAw MDAwIHgyMTogZmZmZjU4OGI0NDA0NmM4MAp4MjA6IGZmZmZjZTAyMzk3YTIwMDAgeDE5OiBmZmZm NTg4YjQ1MTkzOGIwIHgxODogMDAwMDAwMDAwMDAwMDAzMAp4MTc6IDAwMDAwMDAwMDAwMDAwMDAg eDE2OiAwMDAwMDAwMDAwMDAwMDAwIHgxNTogZmZmZmZmZmZmZmZmZmZmZgp4MTQ6IDAwMDAwMDAw MDAwMDAwMDUgeDEzOiBmZmZmY2UwMjM5N2M1MTk4IHgxMjogMDAwMDAwMDAwMDAwMDM5MAp4MTE6 IDAwMDAwMDAwMDAwMDAxMzAgeDEwOiBmZmZmY2UwMjM5ODFkMTk4IHg5IDogMDAwMDAwMDBmZmZm ZjAwMAp4OCA6IGZmZmZjZTAyMzk3YzUxOTggeDcgOiBmZmZmY2UwMjM5ODFkMTk4IHg2IDogMDAw MDAwMDAwMDAwMDAwMAp4NSA6IDAwMDAwMDAwMDAwMGJmZjQgeDQgOiAwMDAwMDAwMDAwMDAwMDAw IHgzIDogMDAwMDAwMDAwMDAwMDAwMAp4MiA6IDAwMDAwMDAwMDAwMDAwMDAgeDEgOiAwMDAwMDAw MDAwMDAwMDAwIHgwIDogZmZmZjU4OGI0NTQ3Yzc0MApDYWxsIHRyYWNlOgogwqB1cF93cml0ZSsw eDE0NC8weDFhMAogwqBwaHlzbWFwX2ZsYXNoX3NodXRkb3duKzB4MTNjLzB4MTQwCiDCoHBsYXRm b3JtX3NodXRkb3duKzB4MjgvMHg0MAogwqBkZXZpY2Vfc2h1dGRvd24rMHgxNjAvMHgzNDAKIMKg X19kb19zeXNfcmVib290KzB4MWY4LzB4MmEwCiDCoF9fYXJtNjRfc3lzX3JlYm9vdCsweDI4LzB4 MzQKIMKgaW52b2tlX3N5c2NhbGwrMHg0OC8weDExNAogwqBlbDBfc3ZjX2NvbW1vbi5jb25zdHBy b3AuMCsweDYwLzB4MTFjCiDCoGRvX2VsMF9zdmNfY29tcGF0KzB4MWMvMHg1MAogwqBlbDBfc3Zj X2NvbXBhdCsweDRjLzB4MTAwCiDCoGVsMHRfMzJfc3luY19oYW5kbGVyKzB4OTAvMHgxNDAKIMKg ZWwwdF8zMl9zeW5jKzB4MWE0LzB4MWE4CmlycSBldmVudCBzdGFtcDogMjU0MQpoYXJkaXJxcyBs YXN0wqAgZW5hYmxlZCBhdCAoMjU0MSk6IFs8ZmZmZmNlMDIzODJkOTRjOD5dIApfcmF3X3NwaW5f dW5sb2NrX2lycSsweDQ0LzB4OTAKaGFyZGlycXMgbGFzdCBkaXNhYmxlZCBhdCAoMjU0MCk6IFs8 ZmZmZmNlMDIzODJkOThjYz5dIApfcmF3X3NwaW5fbG9ja19pcnErMHhhYy8weGIwCnNvZnRpcnFz IGxhc3TCoCBlbmFibGVkIGF0ICgyMjc4KTogWzxmZmZmY2UwMjM3MjEwNDcwPl0gX3N0ZXh0KzB4 NDcwLzB4NWU4CnNvZnRpcnFzIGxhc3QgZGlzYWJsZWQgYXQgKDIyNzMpOiBbPGZmZmZjZTAyMzcy OWQ5MDQ+XSAKX19pcnFfZXhpdF9yY3UrMHgxODAvMHgxYWMKLS0tWyBlbmQgdHJhY2UgZDA2MTYw YTE5M2I2NjhjMiBdLS0tCkZsYXNoIGRldmljZSByZWZ1c2VkIHN1c3BlbmQgZHVlIHRvIGFjdGl2 ZSBvcGVyYXRpb24gKHN0YXRlIDIwKQoKClJldmVydGluZyAkc3ViamVjdCBwYXRjaCBvbiB0b3Ag b2YgbGludXgtbmV4dCBoaWRlcyB0aGUgd2FybmluZy4gVGhlIAphYm92ZSBsb2cgaGFzIGJlZW4g Z2F0aGVyZWQgb24gUUVNVS9hcm02NCAndmlydCcgbWFjaGluZSwgZHVyaW5nIHRoZSAKcmVib290 IG9wZXJhdGlvbi4gSWYgeW91IG5lZWQgbW9yZSBpbmZvcm1hdGlvbiBob3cgdG8gcmVwcm9kdWNl IGl0LCBsZXQgCm1lIGtub3cuCgoKPiAtLS0KPiAgIGRyaXZlcnMvbXRkL210ZGNvcmUuYyAgIHwg MTE1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiAgIGluY2x1ZGUv bGludXgvbXRkL210ZC5oIHwgIDgxICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiAgIDIg ZmlsZXMgY2hhbmdlZCwgMTY5IGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQo+Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbXRkL210ZGNvcmUuYyBiL2RyaXZlcnMvbXRkL210ZGNvcmUuYwo+ IGluZGV4IDE1MzIyOTE5ODk0Ny4uZjAyYjYwMmIzZmE5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv bXRkL210ZGNvcmUuYwo+ICsrKyBiL2RyaXZlcnMvbXRkL210ZGNvcmUuYwo+IEBAIC03NzcsNiAr Nzc3LDggQEAgc3RhdGljIHZvaWQgbXRkX3NldF9kZXZfZGVmYXVsdHMoc3RydWN0IG10ZF9pbmZv ICptdGQpCj4gICAJSU5JVF9MSVNUX0hFQUQoJm10ZC0+cGFydGl0aW9ucyk7Cj4gICAJbXV0ZXhf aW5pdCgmbXRkLT5tYXN0ZXIucGFydGl0aW9uc19sb2NrKTsKPiAgIAltdXRleF9pbml0KCZtdGQt Pm1hc3Rlci5jaHJkZXZfbG9jayk7Cj4gKwlpbml0X3dhaXRxdWV1ZV9oZWFkKCZtdGQtPm1hc3Rl ci5yZXN1bWVfd3EpOwo+ICsJaW5pdF9yd3NlbSgmbXRkLT5tYXN0ZXIuc3VzcGVuZF9sb2NrKTsK PiAgIH0KPiAgIAo+ICAgc3RhdGljIHNzaXplX3QgbXRkX290cF9zaXplKHN0cnVjdCBtdGRfaW5m byAqbXRkLCBib29sIGlzX3VzZXIpCj4gQEAgLTEyNjcsNyArMTI2OSw5IEBAIGludCBtdGRfZXJh c2Uoc3RydWN0IG10ZF9pbmZvICptdGQsIHN0cnVjdCBlcmFzZV9pbmZvICppbnN0cikKPiAgIAo+ ICAgCWFkamluc3RyLmFkZHIgKz0gbXN0X29mczsKPiAgIAo+ICsJbXRkX3N0YXJ0X2FjY2Vzcyht YXN0ZXIpOwo+ICAgCXJldCA9IG1hc3Rlci0+X2VyYXNlKG1hc3RlciwgJmFkamluc3RyKTsKPiAr CW10ZF9lbmRfYWNjZXNzKG1hc3Rlcik7Cj4gICAKPiAgIAlpZiAoYWRqaW5zdHIuZmFpbF9hZGRy ICE9IE1URF9GQUlMX0FERFJfVU5LTk9XTikgewo+ICAgCQlpbnN0ci0+ZmFpbF9hZGRyID0gYWRq aW5zdHIuZmFpbF9hZGRyIC0gbXN0X29mczsKPiBAQCAtMTI4OSw2ICsxMjkzLDcgQEAgaW50IG10 ZF9wb2ludChzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IGZyb20sIHNpemVfdCBsZW4sIHNp emVfdCAqcmV0bGVuLAo+ICAgCSAgICAgIHZvaWQgKip2aXJ0LCByZXNvdXJjZV9zaXplX3QgKnBo eXMpCj4gICB7Cj4gICAJc3RydWN0IG10ZF9pbmZvICptYXN0ZXIgPSBtdGRfZ2V0X21hc3Rlciht dGQpOwo+ICsJaW50IHJldDsKPiAgIAo+ICAgCSpyZXRsZW4gPSAwOwo+ICAgCSp2aXJ0ID0gTlVM TDsKPiBAQCAtMTMwMSw4ICsxMzA2LDEyIEBAIGludCBtdGRfcG9pbnQoc3RydWN0IG10ZF9pbmZv ICptdGQsIGxvZmZfdCBmcm9tLCBzaXplX3QgbGVuLCBzaXplX3QgKnJldGxlbiwKPiAgIAlpZiAo IWxlbikKPiAgIAkJcmV0dXJuIDA7Cj4gICAKPiArCW10ZF9zdGFydF9hY2Nlc3MobWFzdGVyKTsK PiAgIAlmcm9tID0gbXRkX2dldF9tYXN0ZXJfb2ZzKG10ZCwgZnJvbSk7Cj4gLQlyZXR1cm4gbWFz dGVyLT5fcG9pbnQobWFzdGVyLCBmcm9tLCBsZW4sIHJldGxlbiwgdmlydCwgcGh5cyk7Cj4gKwly ZXQgPSBtYXN0ZXItPl9wb2ludChtYXN0ZXIsIGZyb20sIGxlbiwgcmV0bGVuLCB2aXJ0LCBwaHlz KTsKPiArCW10ZF9lbmRfYWNjZXNzKG1hc3Rlcik7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiAgIH0K PiAgIEVYUE9SVF9TWU1CT0xfR1BMKG10ZF9wb2ludCk7Cj4gICAKPiBAQCAtMTMxMCw2ICsxMzE5 LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwobXRkX3BvaW50KTsKPiAgIGludCBtdGRfdW5wb2ludChz dHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IGZyb20sIHNpemVfdCBsZW4pCj4gICB7Cj4gICAJ c3RydWN0IG10ZF9pbmZvICptYXN0ZXIgPSBtdGRfZ2V0X21hc3RlcihtdGQpOwo+ICsJaW50IHJl dDsKPiAgIAo+ICAgCWlmICghbWFzdGVyLT5fdW5wb2ludCkKPiAgIAkJcmV0dXJuIC1FT1BOT1RT VVBQOwo+IEBAIC0xMzE3LDcgKzEzMjcsMTIgQEAgaW50IG10ZF91bnBvaW50KHN0cnVjdCBtdGRf aW5mbyAqbXRkLCBsb2ZmX3QgZnJvbSwgc2l6ZV90IGxlbikKPiAgIAkJcmV0dXJuIC1FSU5WQUw7 Cj4gICAJaWYgKCFsZW4pCj4gICAJCXJldHVybiAwOwo+IC0JcmV0dXJuIG1hc3Rlci0+X3VucG9p bnQobWFzdGVyLCBtdGRfZ2V0X21hc3Rlcl9vZnMobXRkLCBmcm9tKSwgbGVuKTsKPiArCj4gKwlt dGRfc3RhcnRfYWNjZXNzKG1hc3Rlcik7Cj4gKwlyZXQgPSAgbWFzdGVyLT5fdW5wb2ludChtYXN0 ZXIsIG10ZF9nZXRfbWFzdGVyX29mcyhtdGQsIGZyb20pLCBsZW4pOwo+ICsJbXRkX2VuZF9hY2Nl c3MobWFzdGVyKTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICAgfQo+ICAgRVhQT1JUX1NZTUJPTF9H UEwobXRkX3VucG9pbnQpOwo+ICAgCj4gQEAgLTEzNzIsNiArMTM4Nyw3IEBAIGludCBtdGRfcmVh ZChzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IGZyb20sIHNpemVfdCBsZW4sIHNpemVfdCAq cmV0bGVuLAo+ICAgCX07Cj4gICAJaW50IHJldDsKPiAgIAo+ICsJLyogbXRkX3JlYWRfb29iX3N0 ZCBoYW5kbGVzIG10ZCBhY2Nlc3MgcHJvdGVjdGlvbiAqLwo+ICAgCXJldCA9IG10ZF9yZWFkX29v YihtdGQsIGZyb20sICZvcHMpOwo+ICAgCSpyZXRsZW4gPSBvcHMucmV0bGVuOwo+ICAgCj4gQEAg LTEzODgsNiArMTQwNCw3IEBAIGludCBtdGRfd3JpdGUoc3RydWN0IG10ZF9pbmZvICptdGQsIGxv ZmZfdCB0bywgc2l6ZV90IGxlbiwgc2l6ZV90ICpyZXRsZW4sCj4gICAJfTsKPiAgIAlpbnQgcmV0 Owo+ICAgCj4gKwkvKiBtdGRfd3JpdGVfb29iX3N0ZCBoYW5kbGVzIG10ZCBhY2Nlc3MgcHJvdGVj dGlvbiAqLwo+ICAgCXJldCA9IG10ZF93cml0ZV9vb2IobXRkLCB0bywgJm9wcyk7Cj4gICAJKnJl dGxlbiA9IG9wcy5yZXRsZW47Cj4gICAKPiBAQCAtMTQ2NCwxMSArMTQ4MSwxMyBAQCBzdGF0aWMg aW50IG10ZF9yZWFkX29vYl9zdGQoc3RydWN0IG10ZF9pbmZvICptdGQsIGxvZmZfdCBmcm9tLAo+ ICAgCWludCByZXQ7Cj4gICAKPiAgIAlmcm9tID0gbXRkX2dldF9tYXN0ZXJfb2ZzKG10ZCwgZnJv bSk7Cj4gKwltdGRfc3RhcnRfYWNjZXNzKG1hc3Rlcik7Cj4gICAJaWYgKG1hc3Rlci0+X3JlYWRf b29iKQo+ICAgCQlyZXQgPSBtYXN0ZXItPl9yZWFkX29vYihtYXN0ZXIsIGZyb20sIG9wcyk7Cj4g ICAJZWxzZQo+ICAgCQlyZXQgPSBtYXN0ZXItPl9yZWFkKG1hc3RlciwgZnJvbSwgb3BzLT5sZW4s ICZvcHMtPnJldGxlbiwKPiAgIAkJCQkgICAgb3BzLT5kYXRidWYpOwo+ICsJbXRkX2VuZF9hY2Nl c3MobWFzdGVyKTsKPiAgIAo+ICAgCXJldHVybiByZXQ7Cj4gICB9Cj4gQEAgLTE0ODAsMTEgKzE0 OTksMTMgQEAgc3RhdGljIGludCBtdGRfd3JpdGVfb29iX3N0ZChzdHJ1Y3QgbXRkX2luZm8gKm10 ZCwgbG9mZl90IHRvLAo+ICAgCWludCByZXQ7Cj4gICAKPiAgIAl0byA9IG10ZF9nZXRfbWFzdGVy X29mcyhtdGQsIHRvKTsKPiArCW10ZF9zdGFydF9hY2Nlc3MobWFzdGVyKTsKPiAgIAlpZiAobWFz dGVyLT5fd3JpdGVfb29iKQo+ICAgCQlyZXQgPSBtYXN0ZXItPl93cml0ZV9vb2IobWFzdGVyLCB0 bywgb3BzKTsKPiAgIAllbHNlCj4gICAJCXJldCA9IG1hc3Rlci0+X3dyaXRlKG1hc3RlciwgdG8s IG9wcy0+bGVuLCAmb3BzLT5yZXRsZW4sCj4gICAJCQkJICAgICBvcHMtPmRhdGJ1Zik7Cj4gKwlt dGRfZW5kX2FjY2VzcyhtYXN0ZXIpOwo+ICAgCj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPiBAQCAt MTk5MiwxMiArMjAxMywxOCBAQCBpbnQgbXRkX2dldF9mYWN0X3Byb3RfaW5mbyhzdHJ1Y3QgbXRk X2luZm8gKm10ZCwgc2l6ZV90IGxlbiwgc2l6ZV90ICpyZXRsZW4sCj4gICAJCQkgICBzdHJ1Y3Qg b3RwX2luZm8gKmJ1ZikKPiAgIHsKPiAgIAlzdHJ1Y3QgbXRkX2luZm8gKm1hc3RlciA9IG10ZF9n ZXRfbWFzdGVyKG10ZCk7Cj4gKwlpbnQgcmV0Owo+ICAgCj4gICAJaWYgKCFtYXN0ZXItPl9nZXRf ZmFjdF9wcm90X2luZm8pCj4gICAJCXJldHVybiAtRU9QTk9UU1VQUDsKPiAgIAlpZiAoIWxlbikK PiAgIAkJcmV0dXJuIDA7Cj4gLQlyZXR1cm4gbWFzdGVyLT5fZ2V0X2ZhY3RfcHJvdF9pbmZvKG1h c3RlciwgbGVuLCByZXRsZW4sIGJ1Zik7Cj4gKwo+ICsJbXRkX3N0YXJ0X2FjY2VzcyhtYXN0ZXIp Owo+ICsJcmV0ID0gbWFzdGVyLT5fZ2V0X2ZhY3RfcHJvdF9pbmZvKG1hc3RlciwgbGVuLCByZXRs ZW4sIGJ1Zik7Cj4gKwltdGRfZW5kX2FjY2VzcyhtYXN0ZXIpOwo+ICsKPiArCXJldHVybiByZXQ7 Cj4gICB9Cj4gICBFWFBPUlRfU1lNQk9MX0dQTChtdGRfZ2V0X2ZhY3RfcHJvdF9pbmZvKTsKPiAg IAo+IEBAIC0yMDA1LDEzICsyMDMyLDE5IEBAIGludCBtdGRfcmVhZF9mYWN0X3Byb3RfcmVnKHN0 cnVjdCBtdGRfaW5mbyAqbXRkLCBsb2ZmX3QgZnJvbSwgc2l6ZV90IGxlbiwKPiAgIAkJCSAgIHNp emVfdCAqcmV0bGVuLCB1X2NoYXIgKmJ1ZikKPiAgIHsKPiAgIAlzdHJ1Y3QgbXRkX2luZm8gKm1h c3RlciA9IG10ZF9nZXRfbWFzdGVyKG10ZCk7Cj4gKwlpbnQgcmV0Owo+ICAgCj4gICAJKnJldGxl biA9IDA7Cj4gICAJaWYgKCFtYXN0ZXItPl9yZWFkX2ZhY3RfcHJvdF9yZWcpCj4gICAJCXJldHVy biAtRU9QTk9UU1VQUDsKPiAgIAlpZiAoIWxlbikKPiAgIAkJcmV0dXJuIDA7Cj4gLQlyZXR1cm4g bWFzdGVyLT5fcmVhZF9mYWN0X3Byb3RfcmVnKG1hc3RlciwgZnJvbSwgbGVuLCByZXRsZW4sIGJ1 Zik7Cj4gKwo+ICsJbXRkX3N0YXJ0X2FjY2VzcyhtYXN0ZXIpOwo+ICsJcmV0ID0gbWFzdGVyLT5f cmVhZF9mYWN0X3Byb3RfcmVnKG1hc3RlciwgZnJvbSwgbGVuLCByZXRsZW4sIGJ1Zik7Cj4gKwlt dGRfZW5kX2FjY2VzcyhtYXN0ZXIpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gICB9Cj4gICBFWFBP UlRfU1lNQk9MX0dQTChtdGRfcmVhZF9mYWN0X3Byb3RfcmVnKTsKPiAgIAo+IEBAIC0yMDE5LDEy ICsyMDUyLDE4IEBAIGludCBtdGRfZ2V0X3VzZXJfcHJvdF9pbmZvKHN0cnVjdCBtdGRfaW5mbyAq bXRkLCBzaXplX3QgbGVuLCBzaXplX3QgKnJldGxlbiwKPiAgIAkJCSAgIHN0cnVjdCBvdHBfaW5m byAqYnVmKQo+ICAgewo+ICAgCXN0cnVjdCBtdGRfaW5mbyAqbWFzdGVyID0gbXRkX2dldF9tYXN0 ZXIobXRkKTsKPiArCWludCByZXQ7Cj4gICAKPiAgIAlpZiAoIW1hc3Rlci0+X2dldF91c2VyX3By b3RfaW5mbykKPiAgIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwo+ICAgCWlmICghbGVuKQo+ICAgCQly ZXR1cm4gMDsKPiAtCXJldHVybiBtYXN0ZXItPl9nZXRfdXNlcl9wcm90X2luZm8obWFzdGVyLCBs ZW4sIHJldGxlbiwgYnVmKTsKPiArCj4gKwltdGRfc3RhcnRfYWNjZXNzKG1hc3Rlcik7Cj4gKwly ZXQgPSAgbWFzdGVyLT5fZ2V0X3VzZXJfcHJvdF9pbmZvKG1hc3RlciwgbGVuLCByZXRsZW4sIGJ1 Zik7Cj4gKwltdGRfZW5kX2FjY2VzcyhtYXN0ZXIpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gICB9 Cj4gICBFWFBPUlRfU1lNQk9MX0dQTChtdGRfZ2V0X3VzZXJfcHJvdF9pbmZvKTsKPiAgIAo+IEBA IC0yMDMyLDEzICsyMDcxLDE5IEBAIGludCBtdGRfcmVhZF91c2VyX3Byb3RfcmVnKHN0cnVjdCBt dGRfaW5mbyAqbXRkLCBsb2ZmX3QgZnJvbSwgc2l6ZV90IGxlbiwKPiAgIAkJCSAgIHNpemVfdCAq cmV0bGVuLCB1X2NoYXIgKmJ1ZikKPiAgIHsKPiAgIAlzdHJ1Y3QgbXRkX2luZm8gKm1hc3RlciA9 IG10ZF9nZXRfbWFzdGVyKG10ZCk7Cj4gKwlpbnQgcmV0Owo+ICAgCj4gICAJKnJldGxlbiA9IDA7 Cj4gICAJaWYgKCFtYXN0ZXItPl9yZWFkX3VzZXJfcHJvdF9yZWcpCj4gICAJCXJldHVybiAtRU9Q Tk9UU1VQUDsKPiAgIAlpZiAoIWxlbikKPiAgIAkJcmV0dXJuIDA7Cj4gLQlyZXR1cm4gbWFzdGVy LT5fcmVhZF91c2VyX3Byb3RfcmVnKG1hc3RlciwgZnJvbSwgbGVuLCByZXRsZW4sIGJ1Zik7Cj4g Kwo+ICsJbXRkX3N0YXJ0X2FjY2VzcyhtYXN0ZXIpOwo+ICsJcmV0ID0gbWFzdGVyLT5fcmVhZF91 c2VyX3Byb3RfcmVnKG1hc3RlciwgZnJvbSwgbGVuLCByZXRsZW4sIGJ1Zik7Cj4gKwltdGRfZW5k X2FjY2VzcyhtYXN0ZXIpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gICB9Cj4gICBFWFBPUlRfU1lN Qk9MX0dQTChtdGRfcmVhZF91c2VyX3Byb3RfcmVnKTsKPiAgIAo+IEBAIC0yMDUzLDcgKzIwOTgs MTEgQEAgaW50IG10ZF93cml0ZV91c2VyX3Byb3RfcmVnKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBs b2ZmX3QgdG8sIHNpemVfdCBsZW4sCj4gICAJCXJldHVybiAtRU9QTk9UU1VQUDsKPiAgIAlpZiAo IWxlbikKPiAgIAkJcmV0dXJuIDA7Cj4gKwo+ICsJbXRkX3N0YXJ0X2FjY2VzcyhtYXN0ZXIpOwo+ ICAgCXJldCA9IG1hc3Rlci0+X3dyaXRlX3VzZXJfcHJvdF9yZWcobWFzdGVyLCB0bywgbGVuLCBy ZXRsZW4sIGJ1Zik7Cj4gKwltdGRfZW5kX2FjY2VzcyhtYXN0ZXIpOwo+ICsKPiAgIAlpZiAocmV0 KQo+ICAgCQlyZXR1cm4gcmV0Owo+ICAgCj4gQEAgLTIwNjgsMjQgKzIxMTcsMzYgQEAgRVhQT1JU X1NZTUJPTF9HUEwobXRkX3dyaXRlX3VzZXJfcHJvdF9yZWcpOwo+ICAgaW50IG10ZF9sb2NrX3Vz ZXJfcHJvdF9yZWcoc3RydWN0IG10ZF9pbmZvICptdGQsIGxvZmZfdCBmcm9tLCBzaXplX3QgbGVu KQo+ICAgewo+ICAgCXN0cnVjdCBtdGRfaW5mbyAqbWFzdGVyID0gbXRkX2dldF9tYXN0ZXIobXRk KTsKPiArCWludCByZXQ7Cj4gICAKPiAgIAlpZiAoIW1hc3Rlci0+X2xvY2tfdXNlcl9wcm90X3Jl ZykKPiAgIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwo+ICAgCWlmICghbGVuKQo+ICAgCQlyZXR1cm4g MDsKPiAtCXJldHVybiBtYXN0ZXItPl9sb2NrX3VzZXJfcHJvdF9yZWcobWFzdGVyLCBmcm9tLCBs ZW4pOwo+ICsKPiArCW10ZF9zdGFydF9hY2Nlc3MobWFzdGVyKTsKPiArCXJldCA9IG1hc3Rlci0+ X2xvY2tfdXNlcl9wcm90X3JlZyhtYXN0ZXIsIGZyb20sIGxlbik7Cj4gKwltdGRfZW5kX2FjY2Vz cyhtYXN0ZXIpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gICB9Cj4gICBFWFBPUlRfU1lNQk9MX0dQ TChtdGRfbG9ja191c2VyX3Byb3RfcmVnKTsKPiAgIAo+ICAgaW50IG10ZF9lcmFzZV91c2VyX3By b3RfcmVnKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBsb2ZmX3QgZnJvbSwgc2l6ZV90IGxlbikKPiAg IHsKPiAgIAlzdHJ1Y3QgbXRkX2luZm8gKm1hc3RlciA9IG10ZF9nZXRfbWFzdGVyKG10ZCk7Cj4g KwlpbnQgcmV0Owo+ICAgCj4gICAJaWYgKCFtYXN0ZXItPl9lcmFzZV91c2VyX3Byb3RfcmVnKQo+ ICAgCQlyZXR1cm4gLUVPUE5PVFNVUFA7Cj4gICAJaWYgKCFsZW4pCj4gICAJCXJldHVybiAwOwo+ IC0JcmV0dXJuIG1hc3Rlci0+X2VyYXNlX3VzZXJfcHJvdF9yZWcobWFzdGVyLCBmcm9tLCBsZW4p Owo+ICsKPiArCW10ZF9zdGFydF9hY2Nlc3MobWFzdGVyKTsKPiArCXJldCA9IG1hc3Rlci0+X2Vy YXNlX3VzZXJfcHJvdF9yZWcobWFzdGVyLCBmcm9tLCBsZW4pOwo+ICsJbXRkX2VuZF9hY2Nlc3Mo bWFzdGVyKTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICAgfQo+ICAgRVhQT1JUX1NZTUJPTF9HUEwo bXRkX2VyYXNlX3VzZXJfcHJvdF9yZWcpOwo+ICAgCj4gQEAgLTIwOTMsNiArMjE1NCw3IEBAIEVY UE9SVF9TWU1CT0xfR1BMKG10ZF9lcmFzZV91c2VyX3Byb3RfcmVnKTsKPiAgIGludCBtdGRfbG9j ayhzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IG9mcywgdWludDY0X3QgbGVuKQo+ICAgewo+ ICAgCXN0cnVjdCBtdGRfaW5mbyAqbWFzdGVyID0gbXRkX2dldF9tYXN0ZXIobXRkKTsKPiArCWlu dCByZXQ7Cj4gICAKPiAgIAlpZiAoIW1hc3Rlci0+X2xvY2spCj4gICAJCXJldHVybiAtRU9QTk9U U1VQUDsKPiBAQCAtMjEwNiwxMyArMjE2OCwxOCBAQCBpbnQgbXRkX2xvY2soc3RydWN0IG10ZF9p bmZvICptdGQsIGxvZmZfdCBvZnMsIHVpbnQ2NF90IGxlbikKPiAgIAkJbGVuID0gKHU2NCltdGRf ZGl2X2J5X2ViKGxlbiwgbXRkKSAqIG1hc3Rlci0+ZXJhc2VzaXplOwo+ICAgCX0KPiAgIAo+IC0J cmV0dXJuIG1hc3Rlci0+X2xvY2sobWFzdGVyLCBtdGRfZ2V0X21hc3Rlcl9vZnMobXRkLCBvZnMp LCBsZW4pOwo+ICsJbXRkX3N0YXJ0X2FjY2VzcyhtYXN0ZXIpOwo+ICsJcmV0ID0gbWFzdGVyLT5f bG9jayhtYXN0ZXIsIG10ZF9nZXRfbWFzdGVyX29mcyhtdGQsIG9mcyksIGxlbik7Cj4gKwltdGRf ZW5kX2FjY2VzcyhtYXN0ZXIpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gICB9Cj4gICBFWFBPUlRf U1lNQk9MX0dQTChtdGRfbG9jayk7Cj4gICAKPiAgIGludCBtdGRfdW5sb2NrKHN0cnVjdCBtdGRf aW5mbyAqbXRkLCBsb2ZmX3Qgb2ZzLCB1aW50NjRfdCBsZW4pCj4gICB7Cj4gICAJc3RydWN0IG10 ZF9pbmZvICptYXN0ZXIgPSBtdGRfZ2V0X21hc3RlcihtdGQpOwo+ICsJaW50IHJldDsKPiAgIAo+ ICAgCWlmICghbWFzdGVyLT5fdW5sb2NrKQo+ICAgCQlyZXR1cm4gLUVPUE5PVFNVUFA7Cj4gQEAg LTIxMjYsMTMgKzIxOTMsMTggQEAgaW50IG10ZF91bmxvY2soc3RydWN0IG10ZF9pbmZvICptdGQs IGxvZmZfdCBvZnMsIHVpbnQ2NF90IGxlbikKPiAgIAkJbGVuID0gKHU2NCltdGRfZGl2X2J5X2Vi KGxlbiwgbXRkKSAqIG1hc3Rlci0+ZXJhc2VzaXplOwo+ICAgCX0KPiAgIAo+IC0JcmV0dXJuIG1h c3Rlci0+X3VubG9jayhtYXN0ZXIsIG10ZF9nZXRfbWFzdGVyX29mcyhtdGQsIG9mcyksIGxlbik7 Cj4gKwltdGRfc3RhcnRfYWNjZXNzKG1hc3Rlcik7Cj4gKwlyZXQgPSBtYXN0ZXItPl91bmxvY2so bWFzdGVyLCBtdGRfZ2V0X21hc3Rlcl9vZnMobXRkLCBvZnMpLCBsZW4pOwo+ICsJbXRkX2VuZF9h Y2Nlc3MobWFzdGVyKTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICAgfQo+ICAgRVhQT1JUX1NZTUJP TF9HUEwobXRkX3VubG9jayk7Cj4gICAKPiAgIGludCBtdGRfaXNfbG9ja2VkKHN0cnVjdCBtdGRf aW5mbyAqbXRkLCBsb2ZmX3Qgb2ZzLCB1aW50NjRfdCBsZW4pCj4gICB7Cj4gICAJc3RydWN0IG10 ZF9pbmZvICptYXN0ZXIgPSBtdGRfZ2V0X21hc3RlcihtdGQpOwo+ICsJaW50IHJldDsKPiAgIAo+ ICAgCWlmICghbWFzdGVyLT5faXNfbG9ja2VkKQo+ICAgCQlyZXR1cm4gLUVPUE5PVFNVUFA7Cj4g QEAgLTIxNDYsMTMgKzIyMTgsMTggQEAgaW50IG10ZF9pc19sb2NrZWQoc3RydWN0IG10ZF9pbmZv ICptdGQsIGxvZmZfdCBvZnMsIHVpbnQ2NF90IGxlbikKPiAgIAkJbGVuID0gKHU2NCltdGRfZGl2 X2J5X2ViKGxlbiwgbXRkKSAqIG1hc3Rlci0+ZXJhc2VzaXplOwo+ICAgCX0KPiAgIAo+IC0JcmV0 dXJuIG1hc3Rlci0+X2lzX2xvY2tlZChtYXN0ZXIsIG10ZF9nZXRfbWFzdGVyX29mcyhtdGQsIG9m cyksIGxlbik7Cj4gKwltdGRfc3RhcnRfYWNjZXNzKG1hc3Rlcik7Cj4gKwlyZXQgPSBtYXN0ZXIt Pl9pc19sb2NrZWQobWFzdGVyLCBtdGRfZ2V0X21hc3Rlcl9vZnMobXRkLCBvZnMpLCBsZW4pOwo+ ICsJbXRkX2VuZF9hY2Nlc3MobWFzdGVyKTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICAgfQo+ICAg RVhQT1JUX1NZTUJPTF9HUEwobXRkX2lzX2xvY2tlZCk7Cj4gICAKPiAgIGludCBtdGRfYmxvY2tf aXNyZXNlcnZlZChzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IG9mcykKPiAgIHsKPiAgIAlz dHJ1Y3QgbXRkX2luZm8gKm1hc3RlciA9IG10ZF9nZXRfbWFzdGVyKG10ZCk7Cj4gKwlpbnQgcmV0 Owo+ICAgCj4gICAJaWYgKG9mcyA8IDAgfHwgb2ZzID49IG10ZC0+c2l6ZSkKPiAgIAkJcmV0dXJu IC1FSU5WQUw7Cj4gQEAgLTIxNjIsMTMgKzIyMzksMTggQEAgaW50IG10ZF9ibG9ja19pc3Jlc2Vy dmVkKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBsb2ZmX3Qgb2ZzKQo+ICAgCWlmIChtdGQtPmZsYWdz ICYgTVREX1NMQ19PTl9NTENfRU1VTEFUSU9OKQo+ICAgCQlvZnMgPSAobG9mZl90KW10ZF9kaXZf YnlfZWIob2ZzLCBtdGQpICogbWFzdGVyLT5lcmFzZXNpemU7Cj4gICAKPiAtCXJldHVybiBtYXN0 ZXItPl9ibG9ja19pc3Jlc2VydmVkKG1hc3RlciwgbXRkX2dldF9tYXN0ZXJfb2ZzKG10ZCwgb2Zz KSk7Cj4gKwltdGRfc3RhcnRfYWNjZXNzKG1hc3Rlcik7Cj4gKwlyZXQgPSBtYXN0ZXItPl9ibG9j a19pc3Jlc2VydmVkKG1hc3RlciwgbXRkX2dldF9tYXN0ZXJfb2ZzKG10ZCwgb2ZzKSk7Cj4gKwlt dGRfZW5kX2FjY2VzcyhtYXN0ZXIpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gICB9Cj4gICBFWFBP UlRfU1lNQk9MX0dQTChtdGRfYmxvY2tfaXNyZXNlcnZlZCk7Cj4gICAKPiAgIGludCBtdGRfYmxv Y2tfaXNiYWQoc3RydWN0IG10ZF9pbmZvICptdGQsIGxvZmZfdCBvZnMpCj4gICB7Cj4gICAJc3Ry dWN0IG10ZF9pbmZvICptYXN0ZXIgPSBtdGRfZ2V0X21hc3RlcihtdGQpOwo+ICsJaW50IHJldDsK PiAgIAo+ICAgCWlmIChvZnMgPCAwIHx8IG9mcyA+PSBtdGQtPnNpemUpCj4gICAJCXJldHVybiAt RUlOVkFMOwo+IEBAIC0yMTc4LDcgKzIyNjAsMTEgQEAgaW50IG10ZF9ibG9ja19pc2JhZChzdHJ1 Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IG9mcykKPiAgIAlpZiAobXRkLT5mbGFncyAmIE1URF9T TENfT05fTUxDX0VNVUxBVElPTikKPiAgIAkJb2ZzID0gKGxvZmZfdCltdGRfZGl2X2J5X2ViKG9m cywgbXRkKSAqIG1hc3Rlci0+ZXJhc2VzaXplOwo+ICAgCj4gLQlyZXR1cm4gbWFzdGVyLT5fYmxv Y2tfaXNiYWQobWFzdGVyLCBtdGRfZ2V0X21hc3Rlcl9vZnMobXRkLCBvZnMpKTsKPiArCW10ZF9z dGFydF9hY2Nlc3MobWFzdGVyKTsKPiArCXJldCA9IG1hc3Rlci0+X2Jsb2NrX2lzYmFkKG1hc3Rl ciwgbXRkX2dldF9tYXN0ZXJfb2ZzKG10ZCwgb2ZzKSk7Cj4gKwltdGRfZW5kX2FjY2VzcyhtYXN0 ZXIpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gICB9Cj4gICBFWFBPUlRfU1lNQk9MX0dQTChtdGRf YmxvY2tfaXNiYWQpOwo+ICAgCj4gQEAgLTIxOTcsNyArMjI4MywxMCBAQCBpbnQgbXRkX2Jsb2Nr X21hcmtiYWQoc3RydWN0IG10ZF9pbmZvICptdGQsIGxvZmZfdCBvZnMpCj4gICAJaWYgKG10ZC0+ ZmxhZ3MgJiBNVERfU0xDX09OX01MQ19FTVVMQVRJT04pCj4gICAJCW9mcyA9IChsb2ZmX3QpbXRk X2Rpdl9ieV9lYihvZnMsIG10ZCkgKiBtYXN0ZXItPmVyYXNlc2l6ZTsKPiAgIAo+ICsJbXRkX3N0 YXJ0X2FjY2VzcyhtYXN0ZXIpOwo+ICAgCXJldCA9IG1hc3Rlci0+X2Jsb2NrX21hcmtiYWQobWFz dGVyLCBtdGRfZ2V0X21hc3Rlcl9vZnMobXRkLCBvZnMpKTsKPiArCW10ZF9lbmRfYWNjZXNzKG1h c3Rlcik7Cj4gKwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4gICAKPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9tdGQvbXRkLmggYi9pbmNsdWRlL2xpbnV4L210ZC9tdGQuaAo+ IGluZGV4IDg4MjI3MDQ0ZmM4Ni4uYjA3NDEwNmUyZDhlIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUv bGludXgvbXRkL210ZC5oCj4gKysrIGIvaW5jbHVkZS9saW51eC9tdGQvbXRkLmgKPiBAQCAtMjMx LDYgKzIzMSw4IEBAIHN0cnVjdCBtdGRfbWFzdGVyIHsKPiAgIAlzdHJ1Y3QgbXV0ZXggcGFydGl0 aW9uc19sb2NrOwo+ICAgCXN0cnVjdCBtdXRleCBjaHJkZXZfbG9jazsKPiAgIAl1bnNpZ25lZCBp bnQgc3VzcGVuZGVkIDogMTsKPiArCXdhaXRfcXVldWVfaGVhZF90IHJlc3VtZV93cTsKPiArCXN0 cnVjdCByd19zZW1hcGhvcmUgc3VzcGVuZF9sb2NrOwo+ICAgfTsKPiAgIAo+ICAgc3RydWN0IG10 ZF9pbmZvIHsKPiBAQCAtNDc2LDEwICs0NzgsNDcgQEAgc3RhdGljIGlubGluZSB1MzIgbXRkX29v YmF2YWlsKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBzdHJ1Y3QgbXRkX29vYl9vcHMgKm9wcykKPiAg IAlyZXR1cm4gb3BzLT5tb2RlID09IE1URF9PUFNfQVVUT19PT0IgPyBtdGQtPm9vYmF2YWlsIDog bXRkLT5vb2JzaXplOwo+ICAgfQo+ICAgCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBtdGRfc3RhcnRf YWNjZXNzKHN0cnVjdCBtdGRfaW5mbyAqbWFzdGVyKQo+ICt7Cj4gKwlXQVJOX09OX09OQ0UobWFz dGVyICE9IG10ZF9nZXRfbWFzdGVyKG1hc3RlcikpOwo+ICsKPiArCS8qCj4gKwkgKiBEb24ndCB0 YWtlIHRoZSBzdXNwZW5kX2xvY2sgb24gZGV2aWNlcyB0aGF0IGRvbid0Cj4gKwkgKiBpbXBsZW1l bnQgdGhlIHN1c3BlbmQgaG9vay4gT3RoZXJ3aXNlLCBsb2NrZGVwIHdpbGwKPiArCSAqIGNvbXBs YWluIGFib3V0IG5lc3RlZCBsb2NrcyB3aGVuIHRyeWluZyB0byBzdXNwZW5kIE1URAo+ICsJICog cGFydGl0aW9ucyBvciBNVEQgZGV2aWNlcyBjcmVhdGVkIGJ5IGdsdWViaSB3aGljaCBhcmUKPiAr CSAqIGJhY2tlZCBieSByZWFsIGRldmljZXMuCj4gKwkgKi8KPiArCWlmICghbWFzdGVyLT5fc3Vz cGVuZCkKPiArCQlyZXR1cm47Cj4gKwo+ICsJLyoKPiArCSAqIFdhaXQgdW50aWwgdGhlIGRldmlj ZSBpcyByZXN1bWVkLiBTaG91bGQgd2UgaGF2ZSBhCj4gKwkgKiBub24tYmxvY2tpbmcgbW9kZSBo ZXJlPwo+ICsJICovCj4gKwl3aGlsZSAoMSkgewo+ICsJCWRvd25fcmVhZCgmbWFzdGVyLT5tYXN0 ZXIuc3VzcGVuZF9sb2NrKTsKPiArCQlpZiAoIW1hc3Rlci0+bWFzdGVyLnN1c3BlbmRlZCkKPiAr CQkJcmV0dXJuOwo+ICsKPiArCQl1cF9yZWFkKCZtYXN0ZXItPm1hc3Rlci5zdXNwZW5kX2xvY2sp Owo+ICsJCXdhaXRfZXZlbnQobWFzdGVyLT5tYXN0ZXIucmVzdW1lX3dxLCAhbWFzdGVyLT5tYXN0 ZXIuc3VzcGVuZGVkKTsKPiArCX0KPiArfQo+ICsKPiArc3RhdGljIGlubGluZSB2b2lkIG10ZF9l bmRfYWNjZXNzKHN0cnVjdCBtdGRfaW5mbyAqbWFzdGVyKQo+ICt7Cj4gKwlpZiAoIW1hc3Rlci0+ X3N1c3BlbmQpCj4gKwkJcmV0dXJuOwo+ICsKPiArCXVwX3JlYWQoJm1hc3Rlci0+bWFzdGVyLnN1 c3BlbmRfbG9jayk7Cj4gK30KPiArCj4gICBzdGF0aWMgaW5saW5lIGludCBtdGRfbWF4X2JhZF9i bG9ja3Moc3RydWN0IG10ZF9pbmZvICptdGQsCj4gICAJCQkJICAgICBsb2ZmX3Qgb2ZzLCBzaXpl X3QgbGVuKQo+ICAgewo+ICAgCXN0cnVjdCBtdGRfaW5mbyAqbWFzdGVyID0gbXRkX2dldF9tYXN0 ZXIobXRkKTsKPiArCWludCByZXQ7Cj4gICAKPiAgIAlpZiAoIW1hc3Rlci0+X21heF9iYWRfYmxv Y2tzKQo+ICAgCQlyZXR1cm4gLUVOT1RTVVBQOwo+IEBAIC00ODcsOCArNTI2LDEyIEBAIHN0YXRp YyBpbmxpbmUgaW50IG10ZF9tYXhfYmFkX2Jsb2NrcyhzdHJ1Y3QgbXRkX2luZm8gKm10ZCwKPiAg IAlpZiAobXRkLT5zaXplIDwgKGxlbiArIG9mcykgfHwgb2ZzIDwgMCkKPiAgIAkJcmV0dXJuIC1F SU5WQUw7Cj4gICAKPiAtCXJldHVybiBtYXN0ZXItPl9tYXhfYmFkX2Jsb2NrcyhtYXN0ZXIsIG10 ZF9nZXRfbWFzdGVyX29mcyhtdGQsIG9mcyksCj4gLQkJCQkgICAgICAgbGVuKTsKPiArCW10ZF9z dGFydF9hY2Nlc3MobWFzdGVyKTsKPiArCXJldCA9IG1hc3Rlci0+X21heF9iYWRfYmxvY2tzKG1h c3RlciwgbXRkX2dldF9tYXN0ZXJfb2ZzKG10ZCwgb2ZzKSwKPiArCQkJCSAgICAgIGxlbik7Cj4g KwltdGRfZW5kX2FjY2VzcyhtYXN0ZXIpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gICB9Cj4gICAK PiAgIGludCBtdGRfd3VuaXRfdG9fcGFpcmluZ19pbmZvKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBp bnQgd3VuaXQsCj4gQEAgLTU0NiwzMCArNTg5LDQwIEBAIGludCBtdGRfYmxvY2tfbWFya2JhZChz dHJ1Y3QgbXRkX2luZm8gKm10ZCwgbG9mZl90IG9mcyk7Cj4gICBzdGF0aWMgaW5saW5lIGludCBt dGRfc3VzcGVuZChzdHJ1Y3QgbXRkX2luZm8gKm10ZCkKPiAgIHsKPiAgIAlzdHJ1Y3QgbXRkX2lu Zm8gKm1hc3RlciA9IG10ZF9nZXRfbWFzdGVyKG10ZCk7Cj4gLQlpbnQgcmV0Owo+IC0KPiAtCWlm IChtYXN0ZXItPm1hc3Rlci5zdXNwZW5kZWQpCj4gLQkJcmV0dXJuIDA7Cj4gKwlpbnQgcmV0ID0g MDsKPiAgIAo+IC0JcmV0ID0gbWFzdGVyLT5fc3VzcGVuZCA/IG1hc3Rlci0+X3N1c3BlbmQobWFz dGVyKSA6IDA7Cj4gLQlpZiAocmV0KQo+ICsJaWYgKCFtYXN0ZXItPl9zdXNwZW5kKQo+ICAgCQly ZXR1cm4gcmV0Owo+ICAgCj4gLQltYXN0ZXItPm1hc3Rlci5zdXNwZW5kZWQgPSAxOwo+IC0JcmV0 dXJuIDA7Cj4gKwlkb3duX3dyaXRlKCZtYXN0ZXItPm1hc3Rlci5zdXNwZW5kX2xvY2spOwo+ICsJ aWYgKCFtYXN0ZXItPm1hc3Rlci5zdXNwZW5kZWQpIHsKPiArCQlyZXQgPSBtYXN0ZXItPl9zdXNw ZW5kKG1hc3Rlcik7Cj4gKwkJaWYgKCFyZXQpCj4gKwkJCW1hc3Rlci0+bWFzdGVyLnN1c3BlbmRl ZCA9IDE7Cj4gKwl9Cj4gKwl1cF93cml0ZSgmbWFzdGVyLT5tYXN0ZXIuc3VzcGVuZF9sb2NrKTsK PiArCj4gKwlyZXR1cm4gcmV0Owo+ICAgfQo+ICAgCj4gICBzdGF0aWMgaW5saW5lIHZvaWQgbXRk X3Jlc3VtZShzdHJ1Y3QgbXRkX2luZm8gKm10ZCkKPiAgIHsKPiAgIAlzdHJ1Y3QgbXRkX2luZm8g Km1hc3RlciA9IG10ZF9nZXRfbWFzdGVyKG10ZCk7Cj4gICAKPiAtCWlmICghbWFzdGVyLT5tYXN0 ZXIuc3VzcGVuZGVkKQo+ICsJaWYgKCFtYXN0ZXItPl9zdXNwZW5kKQo+ICAgCQlyZXR1cm47Cj4g ICAKPiAtCWlmIChtYXN0ZXItPl9yZXN1bWUpCj4gLQkJbWFzdGVyLT5fcmVzdW1lKG1hc3Rlcik7 Cj4gKwlkb3duX3dyaXRlKCZtYXN0ZXItPm1hc3Rlci5zdXNwZW5kX2xvY2spOwo+ICsJaWYgKG1h c3Rlci0+bWFzdGVyLnN1c3BlbmRlZCkgewo+ICsJCWlmIChtYXN0ZXItPl9yZXN1bWUpCj4gKwkJ CW1hc3Rlci0+X3Jlc3VtZShtYXN0ZXIpOwo+ICsKPiArCQltYXN0ZXItPm1hc3Rlci5zdXNwZW5k ZWQgPSAwOwo+ICAgCj4gLQltYXN0ZXItPm1hc3Rlci5zdXNwZW5kZWQgPSAwOwo+ICsJCS8qIFRo ZSBNVEQgZGV2IGhhcyBiZWVuIHJlc3VtZWQsIHdha2UgdXAgYWxsIHdhaXRlcnMuICovCj4gKwkJ d2FrZV91cF9hbGwoJm1hc3Rlci0+bWFzdGVyLnJlc3VtZV93cSk7Cj4gKwl9Cj4gKwl1cF93cml0 ZSgmbWFzdGVyLT5tYXN0ZXIuc3VzcGVuZF9sb2NrKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIGlu bGluZSB1aW50MzJfdCBtdGRfZGl2X2J5X2ViKHVpbnQ2NF90IHN6LCBzdHJ1Y3QgbXRkX2luZm8g Km10ZCkKCkJlc3QgcmVnYXJkcwotLSAKTWFyZWsgU3p5cHJvd3NraSwgUGhEClNhbXN1bmcgUiZE IEluc3RpdHV0ZSBQb2xhbmQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KTGludXggTVREIGRpc2N1c3Npb24gbWFpbGluZyBsaXN0Cmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbXRkLwo=