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 X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EB1A1C43381 for ; Mon, 4 Mar 2019 23:15:34 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id AAC1D20823 for ; Mon, 4 Mar 2019 23:15:34 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="BaB5U/OL"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="QVwAlhqC" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AAC1D20823 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bootlin.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ZODeZkKxHMHkBIUzRjPzFhwY1fjB4ohZy5aCTkxNuMA=; b=BaB5U/OLu1e2YP hGoYzltlKEmxzLanemvxsOyCImcNfa8DuNWV7QmWAv+n11P47mPCexutsgPLFeQMlx12PU44oLEIj rxGUng99DvG82uaTUVWVuh3/780z0GsyrfS75WEY1tAjZpIeEBSiVB68NYpKTgxgVcJgFlVyelPX7 S5KMD9eLHCP2xIGYaaN2MhJ9Q3QeighrOE1pv6XVCk0gwaSJy049uLpsiSWCnOhDy2a+1PPlVOHfF /fSg9KDfY6bguIrliJYRyaua4kJKeQDhKwM/+fXYpWS1A7+WRjFFE6jocH4kQWByJez3EMFugv5uy NSGdwKAUSsszvVlQyNIQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1h0wnu-0005lr-OI; Mon, 04 Mar 2019 23:15:26 +0000 Received: from merlin.infradead.org ([2001:8b0:10b:1231::1]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h0wji-0007DE-V7; Mon, 04 Mar 2019 23:11:07 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=merlin.20170209; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=hURUpCvKHX+YofVKLus7pZnZ6sLnwAhmGNNZWxQ/2gw=; b=QVwAlhqCJiuZJ39JZYdDQ5OAK+ 6D9a1Z4SloFDGcbCvjRmCaxgLigUfylDsyGLG5EJ7kjhtVkDsU2XFODYfzOMZZxWH+ajQWszF7761 5a4vJZKFbiPEOWJwEsx2wkD5OK4C18+8tcxRtluM5WM/JD19Fb1R/MemAglnMXd+BUIeb/dF4a1lT UHOOYIGy8BCvh+Yg8pWH+N/ejqnmKM/4O6X5diy6jmiiIiazv4FIM0d4B8+tZ1hQnJtqvVZCpIuMZ /ZtFueT77VjI/UArRWk7N0z5lEmgmMeZdwj/sEzAP8QMG4Rx3G6/lxP+hXWiJ8lgzYO5PNU5b9QiJ /WhQRa8g==; Received: from relay1-d.mail.gandi.net ([217.70.183.193]) by merlin.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1h0w5x-00015N-9k; Mon, 04 Mar 2019 22:30:02 +0000 X-Originating-IP: 90.5.42.199 Received: from localhost.localdomain (atoulouse-657-1-1088-199.w90-5.abo.wanadoo.fr [90.5.42.199]) (Authenticated sender: miquel.raynal@bootlin.com) by relay1-d.mail.gandi.net (Postfix) with ESMTPSA id 6E56E24000A; Mon, 4 Mar 2019 22:29:34 +0000 (UTC) From: Miquel Raynal To: Boris Brezillon , Richard Weinberger , David Woodhouse , Brian Norris , Marek Vasut , Tudor Ambarus Subject: [PATCH v2 10/36] mtd: nand: Introduce the ECC engine abstraction Date: Mon, 4 Mar 2019 23:28:15 +0100 Message-Id: <20190304222841.13899-11-miquel.raynal@bootlin.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190304222841.13899-1-miquel.raynal@bootlin.com> References: <20190304222841.13899-1-miquel.raynal@bootlin.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190304_173001_609370_CE1FE94E X-CRM114-Status: GOOD ( 32.16 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vignesh R , Tudor Ambarus , Julien Su , Schrempf Frieder , Paul Cercueil , linux-mtd@lists.infradead.org, Thomas Petazzoni , Miquel Raynal , Mason Yang , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Q3JlYXRlIGEgZ2VuZXJpYyBFQ0MgZW5naW5lIG9iamVjdC4KCkxhdGVyIHRoZSBlY2MvZW5naW5l LmMgZmlsZSB3aWxsIHJlY2VpdmUgbW9yZSBnZW5lcmljIGNvZGUgY29taW5nIGZyb20KdGhlIHJh dyBOQU5EIHNwZWNpZmljIHBhcnQuIFRoaXMgaXMgYSBiYXNlIHRvIGluc3RhbnRpYXRlIEVDQyBl bmdpbmUKb2JqZWN0cy4KClNpZ25lZC1vZmYtYnk6IE1pcXVlbCBSYXluYWwgPG1pcXVlbC5yYXlu YWxAYm9vdGxpbi5jb20+Ci0tLQogZHJpdmVycy9tdGQvbmFuZC9LY29uZmlnICAgICAgICAgICAg ICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9tdGQvbmFuZC9NYWtlZmlsZSAgICAgICAgICAgICAg ICAgICAgfCAgIDEgKwogZHJpdmVycy9tdGQvbmFuZC9lY2MvS2NvbmZpZyAgICAgICAgICAgICAg ICAgfCAgIDYgKwogZHJpdmVycy9tdGQvbmFuZC9lY2MvTWFrZWZpbGUgICAgICAgICAgICAgICAg fCAgIDMgKwogZHJpdmVycy9tdGQvbmFuZC9lY2MvZW5naW5lLmMgICAgICAgICAgICAgICAgfCAx MzggKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9tdGQvbmFuZC9yYXcvYXRtZWwvbmFuZC1j b250cm9sbGVyLmMgfCAgIDkgKy0KIGRyaXZlcnMvbXRkL25hbmQvcmF3L2dwbWktbmFuZC9ncG1p LW5hbmQuYyAgIHwgIDEyICstCiBkcml2ZXJzL210ZC9uYW5kL3Jhdy9tYXJ2ZWxsX25hbmQuYyAg ICAgICAgICB8ICAgNyArLQogZHJpdmVycy9tdGQvbmFuZC9yYXcvbXRrX25hbmQuYyAgICAgICAg ICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfYmFzZS5jICAgICAgICAg ICAgIHwgIDE3ICstLQogZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9lc210LmMgICAgICAgICAg ICAgfCAgMTEgKy0KIGRyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfaHluaXguYyAgICAgICAgICAg IHwgIDQxICsrKy0tLQogZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9qZWRlYy5jICAgICAgICAg ICAgfCAgIDQgKy0KIGRyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfbWljcm9uLmMgICAgICAgICAg IHwgIDE0ICstCiBkcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX29uZmkuYyAgICAgICAgICAgICB8 ICAgOCArLQogZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9zYW1zdW5nLmMgICAgICAgICAgfCAg MTkgKy0tCiBkcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX3Rvc2hpYmEuYyAgICAgICAgICB8ICAx MSArLQogZHJpdmVycy9tdGQvbmFuZC9yYXcvc3VueGlfbmFuZC5jICAgICAgICAgICAgfCAgIDUg Ky0KIGRyaXZlcnMvbXRkL25hbmQvcmF3L3RlZ3JhX25hbmQuYyAgICAgICAgICAgIHwgICA5ICst CiBkcml2ZXJzL210ZC9uYW5kL3NwaS9jb3JlLmMgICAgICAgICAgICAgICAgICB8ICAgNCArLQog ZHJpdmVycy9tdGQvbmFuZC9zcGkvbWFjcm9uaXguYyAgICAgICAgICAgICAgfCAgIDYgKy0KIGRy aXZlcnMvbXRkL25hbmQvc3BpL3Rvc2hpYmEuYyAgICAgICAgICAgICAgIHwgICA2ICstCiBpbmNs dWRlL2xpbnV4L210ZC9uYW5kLmggICAgICAgICAgICAgICAgICAgICB8ICA4MiArKysrKysrKysr LQogaW5jbHVkZS9saW51eC9tdGQvc3BpbmFuZC5oICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IDI0IGZpbGVzIGNoYW5nZWQsIDMyNyBpbnNlcnRpb25zKCspLCA5MyBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL210ZC9uYW5kL2VjYy9LY29uZmlnCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9tdGQvbmFuZC9lY2MvTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL210ZC9uYW5kL2VjYy9lbmdpbmUuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRk L25hbmQvS2NvbmZpZyBiL2RyaXZlcnMvbXRkL25hbmQvS2NvbmZpZwppbmRleCBkMmVmOGI4OTU2 OGUuLjc1ZDBiZDE4YjgxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9LY29uZmlnCisr KyBiL2RyaXZlcnMvbXRkL25hbmQvS2NvbmZpZwpAQCAtNiw1ICs2LDYgQEAgY29uZmlnIE1URF9O QU5EX0NPUkUKIHNvdXJjZSAiZHJpdmVycy9tdGQvbmFuZC9vbmVuYW5kL0tjb25maWciCiBzb3Vy Y2UgImRyaXZlcnMvbXRkL25hbmQvcmF3L0tjb25maWciCiBzb3VyY2UgImRyaXZlcnMvbXRkL25h bmQvc3BpL0tjb25maWciCitzb3VyY2UgImRyaXZlcnMvbXRkL25hbmQvZWNjL0tjb25maWciCiAK IGVuZG1lbnUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvTWFrZWZpbGUgYi9kcml2ZXJz L210ZC9uYW5kL01ha2VmaWxlCmluZGV4IDdlY2Q4MGMwYTY2ZS4uOTc3MmU3ODE1MzRkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvbXRkL25hbmQv TWFrZWZpbGUKQEAgLTYsMyArNiw0IEBAIG9iai0kKENPTkZJR19NVERfTkFORF9DT1JFKSArPSBu YW5kY29yZS5vCiBvYmoteQkrPSBvbmVuYW5kLwogb2JqLXkJKz0gcmF3Lwogb2JqLXkJKz0gc3Bp Lworb2JqLXkJKz0gZWNjLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9lY2MvS2NvbmZp ZyBiL2RyaXZlcnMvbXRkL25hbmQvZWNjL0tjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi4wMTQzOWY2NmVjYmYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJz L210ZC9uYW5kL2VjYy9LY29uZmlnCkBAIC0wLDAgKzEsNiBAQAorbWVudSAiRUNDIGVuZ2luZSBz dXBwb3J0IgorCitjb25maWcgTVREX05BTkRfRUNDCisJdHJpc3RhdGUKKworZW5kbWVudQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9lY2MvTWFrZWZpbGUgYi9kcml2ZXJzL210ZC9uYW5k L2VjYy9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmM3 MzY3ZjgzNGQ4MQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvZWNjL01ha2Vm aWxlCkBAIC0wLDAgKzEsMyBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAor CitvYmotJChDT05GSUdfTVREX05BTkRfRUNDKQkJKz0gZW5naW5lLm8KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbXRkL25hbmQvZWNjL2VuZ2luZS5jIGIvZHJpdmVycy9tdGQvbmFuZC9lY2MvZW5naW5l LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40Yzc5NDNkZGYyY2MK LS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL210ZC9uYW5kL2VjYy9lbmdpbmUuYwpAQCAtMCww ICsxLDEzOCBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCisvKgorICog R2VuZXJpYyBFcnJvci1Db3JyZWN0aW5nIENvZGUgKEVDQykgZW5naW5lCisgKgorICogQ29weXJp Z2h0IChDKSAyMDE5IE1hY3Jvbml4CisgKiBBdXRob3I6CisgKiAgICAgTWlxdcOobCBSQVlOQUwg PG1pcXVlbC5yYXluYWxAYm9vdGxpbi5jb20+CisgKgorICoKKyAqIFRoaXMgZmlsZSBkZXNjcmli ZXMgdGhlIGFic3RyYWN0aW9uIG9mIGFueSBOQU5EIEVDQyBlbmdpbmUuIEl0IGhhcyBiZWVuCisg KiBkZXNpZ25lZCB0byBmaXQgbW9zdCBjYXNlcywgaW5jbHVkaW5nIHBhcmFsbGVsIE5BTkRzIGFu ZCBTUEktTkFORHMuCisgKgorICogVGhlcmUgYXJlIHRocmVlIG1haW4gc2l0dWF0aW9ucyB3aGVy ZSBpbnN0YW50aWF0aW5nIHRoaXMgRUNDIGVuZ2luZSBtYWtlcworICogc2Vuc2U6CisgKiAgIC0g ImV4dGVybmFsIjogVGhlIEVDQyBlbmdpbmUgaXMgb3V0c2lkZSB0aGUgTkFORCBwaXBlbGluZSwg dHlwaWNhbGx5IHRoaXMKKyAqICAgICAgICAgICAgICAgICBpcyBhIHNvZnR3YXJlIEVDQyBlbmdp bmUuIE9uZSBjYW4gYWxzbyBpbWFnaW5lIGEgZ2VuZXJpYworICogICAgICAgICAgICAgICAgIGhh cmR3YXJlIEVDQyBlbmdpbmUgd2hpY2ggd291bGQgYmUgYW4gSVAgaXRzZWxmLiBJbnRlcmFjdGlu ZworICogICAgICAgICAgICAgICAgIHdpdGggYSBTUEktTkFORCBkZXZpY2Ugd2l0aG91dCBvbi1k aWUgRUNDIGNvdWxkIGJlIGFjaGlldmVkCisgKiAgICAgICAgICAgICAgICAgdGhhbmtzIHRvIHRo ZSB1c2Ugb2Ygc3VjaCBleHRlcm5hbCBlbmdpbmUuCisgKiAgIC0gInBpcGVsaW5lZCI6IFRoZSBF Q0MgZW5naW5lIGlzIGluc2lkZSB0aGUgTkFORCBwaXBlbGluZSwgaWUuIG9uIHRoZQorICogICAg ICAgICAgICAgICAgICBjb250cm9sbGVyJ3Mgc2lkZS4gVGhpcyBpcyB0aGUgY2FzZSBvZiBtb3N0 IG9mIHRoZSByYXcgTkFORAorICogICAgICAgICAgICAgICAgICBjb250cm9sbGVycy4gVGhlc2Ug Y29udHJvbGxlcnMgdXN1YWxseSBlbWJlZCBhbiBoYXJkd2FyZSBFQ0MKKyAqICAgICAgICAgICAg ICAgICAgZW5naW5lIHdoaWNoIGlzIG1hbmFnZWQgdGhhbmtzIHRvIHRoZSBzYW1lIHJlZ2lzdGVy IHNldCBhcworICogICAgICAgICAgICAgICAgICB0aGUgY29udHJvbGxlcidzLgorICogICAtICJv bmRpZSI6IFRoZSBFQ0MgZW5naW5lIGlzIGluc2lkZSB0aGUgTkFORCBwaXBlbGluZSwgb24gdGhl IGNoaXAncyBzaWRlLgorICogICAgICAgICAgICAgIFNvbWUgTkFORCBjaGlwcyBjYW4gY29ycmVj dCB0aGVtc2VsdmVzIHRoZSBkYXRhLiBUaGUgb24tZGllCisgKiAgICAgICAgICAgICAgY29ycmVj dGlvbiBjYW4gYmUgZW5hYmxlZCwgZGlzYWJsZWQgYW5kIHRoZSBzdGF0dXMgb2YgdGhlCisgKiAg ICAgICAgICAgICAgY29ycmVjdGlvbiBhZnRlciBhIHJlYWQgbWF5IGJlIHJldHJpZXZlZCB3aXRo IGEgTkFORCBjb21tYW5kCisgKiAgICAgICAgICAgICAgKG1heSBiZSB2ZW5kb3Igc3BlY2lmaWMp LgorICoKKyAqIEJlc2lkZXMgdGhlIGluaXRpYWwgc2V0dXAgYW5kIGZpbmFsIGNsZWFudXBzLCB0 aGUgaW50ZXJmYWNlcyBhcmUgcmF0aGVyCisgKiBzaW1wbGU6CisgKiAgIC0gInByZXBhcmUiOiBQ cmVwYXJlIGFuIEkvTyByZXF1ZXN0LCBjaGVjayB0aGUgRUNDIGVuZ2luZSBpcyBlbmFibGVkIG9y CisgKiAgICAgICAgICAgICAgICBkaXNhYmxlZCBhcyByZXF1ZXN0ZWQgYmVmb3JlIHRoZSBJL08u IEluIGNhc2Ugb2Ygc29mdHdhcmUKKyAqICAgICAgICAgICAgICAgIGNvcnJlY3Rpb24sIHRoaXMg c3RlcCBtYXkgaW52b2x2ZSB0byBkZXJpdmUgdGhlIEVDQyBieXRlcyBhbmQKKyAqICAgICAgICAg ICAgICAgIHBsYWNlIHRoZW0gaW4gdGhlIE9PQiBhcmVhIGJlZm9yZSBhIHdyaXRlLgorICogICAt ICJmaW5pc2giOiBGaW5pc2ggYW4gSS9PIHJlcXVlc3QsIGNoZWNrIHRoZSBzdGF0dXMgb2YgdGhl IG9wZXJhdGlvbiBpZS4KKyAqICAgICAgICAgICAgICAgdGhlIGRhdGEgdmFsaWRpdHkgaW4gY2Fz ZSBvZiBhIHJlYWQgKHJlcG9ydCB0byB0aGUgdXBwZXIgbGF5ZXIKKyAqICAgICAgICAgICAgICAg YW55IGJpdGZsaXAvZXJyb3JzKS4KKyAqCisgKiBCb3RoIHByZXBhcmUvZmluaXNoIGNhbGxiYWNr cyBhcmUgc3VwcG9zZWQgdG8gZW5jbG9zZSBJL08gcmVxdWVzdCBhbmQgd2lsbAorICogYmVoYXZl IGRpZmZlcmVudGx5IGRlcGVuZGluZyBvbiB0aGUgZGVzaXJlZCBjb3JyZWN0aW9uOgorICogICAt ICJyYXciOiBDb3JyZWN0aW9uIGRpc2FibGVkCisgKiAgIC0gImVjYyI6IENvcnJlY3Rpb24gZW5h YmxlZAorICoKKyAqIFRoZSByZXF1ZXN0IGRpcmVjdGlvbiBpcyBpbXBhY3RpbmcgdGhlIGxvZ2lj IGFzIHdlbGw6CisgKiAgIC0gInJlYWQiOiBMb2FkIGRhdGEgZnJvbSB0aGUgTkFORCBjaGlwCisg KiAgIC0gIndyaXRlIjogU3RvcmUgZGF0YSBpbiB0aGUgTkFORCBjaGlwCisgKgorICogTWl4aW5n IGFsbCB0aGlzIGNvbWJpbmF0aW9ucyB0b2dldGhlciBnaXZlcyB0aGUgZm9sbG93aW5nIGJlaGF2 aW9yLgorICoKKyAqIFsiZXh0ZXJuYWwiIEVDQyBlbmdpbmVdCisgKiAgIC0gZXh0ZXJuYWwgKyBw cmVwYXJlICsgcmF3ICsgcmVhZDogZG8gbm90aGluZworICogICAtIGV4dGVybmFsICsgZmluaXNo ICArIHJhdyArIHJlYWQ6IGRvIG5vdGhpbmcKKyAqICAgLSBleHRlcm5hbCArIHByZXBhcmUgKyBy YXcgKyB3cml0ZTogZG8gbm90aGluZworICogICAtIGV4dGVybmFsICsgZmluaXNoICArIHJhdyAr IHdyaXRlOiBkbyBub3RoaW5nCisgKiAgIC0gZXh0ZXJuYWwgKyBwcmVwYXJlICsgZWNjICsgcmVh ZDogZG8gbm90aGluZworICogICAtIGV4dGVybmFsICsgZmluaXNoICArIGVjYyArIHJlYWQ6IGNh bGN1bGF0ZSBleHBlY3RlZCBFQ0MgYnl0ZXMsIGV4dHJhY3QKKyAqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFQ0MgYnl0ZXMgZnJvbSBPT0IgYnVmZmVyLCBjb3JyZWN0Cisg KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHJlcG9ydCBhbnkgYml0 ZmxpcC9lcnJvcgorICogICAtIGV4dGVybmFsICsgcHJlcGFyZSArIGVjYyArIHdyaXRlOiBjYWxj dWxhdGUgRUNDIGJ5dGVzIGFuZCBzdG9yZSB0aGVtIGF0CisgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRoZSByaWdodCBwbGFjZSBpbiB0aGUgT09CIGJ1ZmZlciBiYXNl ZAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbiB0aGUgT09CIGxh eW91dAorICogICAtIGV4dGVybmFsICsgZmluaXNoICArIGVjYyArIHdyaXRlOiBkbyBub3RoaW5n CisgKgorICogWyJwaXBlbGluZWQiIEVDQyBlbmdpbmVdCisgKiAgIC0gcGlwZWxpbmVkICsgcHJl cGFyZSArIHJhdyArIHJlYWQ6IGRpc2FibGUgdGhlIGNvbnRyb2xsZXIncyBFQ0MgZW5naW5lIGlm CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlZAorICog ICAtIHBpcGVsaW5lZCArIGZpbmlzaCAgKyByYXcgKyByZWFkOiBkbyBub3RoaW5nCisgKiAgIC0g cGlwZWxpbmVkICsgcHJlcGFyZSArIHJhdyArIHdyaXRlOiBkaXNhYmxlIHRoZSBjb250cm9sbGVy J3MgRUNDIGVuZ2luZSBpZgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYWN0aXZhdGVkCisgKiAgIC0gcGlwZWxpbmVkICsgZmluaXNoICArIHJhdyArIHdyaXRlOiBk byBub3RoaW5nCisgKiAgIC0gcGlwZWxpbmVkICsgcHJlcGFyZSArIGVjYyArIHJlYWQ6IGVuYWJs ZSB0aGUgY29udHJvbGxlcidzIEVDQyBlbmdpbmUgaWYKKyAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGVhY3RpdmF0ZWQKKyAqICAgLSBwaXBlbGluZWQgKyBmaW5pc2gg ICsgZWNjICsgcmVhZDogY2hlY2sgdGhlIHN0YXR1cywgcmVwb3J0IGFueQorICogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvci9iaXRmbGlwCisgKiAgIC0gcGlwZWxp bmVkICsgcHJlcGFyZSArIGVjYyArIHdyaXRlOiBlbmFibGUgdGhlIGNvbnRyb2xsZXIncyBFQ0Mg ZW5naW5lIGlmCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWFj dGl2YXRlZAorICogICAtIHBpcGVsaW5lZCArIGZpbmlzaCAgKyBlY2MgKyB3cml0ZTogZG8gbm90 aGluZworICoKKyAqIFsib25kaWUiIEVDQyBlbmdpbmVdCisgKiAgIC0gb25kaWUgKyBwcmVwYXJl ICsgcmF3ICsgcmVhZDogc2VuZCBjb21tYW5kcyB0byBkaXNhYmxlIHRoZSBvbi1jaGlwIEVDQwor ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZ2luZSBpZiBhY3RpdmF0ZWQK KyAqICAgLSBvbmRpZSArIGZpbmlzaCAgKyByYXcgKyByZWFkOiBkbyBub3RoaW5nCisgKiAgIC0g b25kaWUgKyBwcmVwYXJlICsgcmF3ICsgd3JpdGU6IHNlbmQgY29tbWFuZHMgdG8gZGlzYWJsZSB0 aGUgb24tY2hpcCBFQ0MKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5n aW5lIGlmIGFjdGl2YXRlZAorICogICAtIG9uZGllICsgZmluaXNoICArIHJhdyArIHdyaXRlOiBk byBub3RoaW5nCisgKiAgIC0gb25kaWUgKyBwcmVwYXJlICsgZWNjICsgcmVhZDogc2VuZCBjb21t YW5kcyB0byBlbmFibGUgdGhlIG9uLWNoaXAgRUNDCisgKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZW5naW5lIGlmIGRlYWN0aXZhdGVkCisgKiAgIC0gb25kaWUgKyBmaW5pc2gg ICsgZWNjICsgcmVhZDogc2VuZCBjb21tYW5kcyB0byBjaGVjayB0aGUgc3RhdHVzLCByZXBvcnQK KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnkgZXJyb3IvYml0ZmxpcAor ICogICAtIG9uZGllICsgcHJlcGFyZSArIGVjYyArIHdyaXRlOiBzZW5kIGNvbW1hbmRzIHRvIGVu YWJsZSB0aGUgb24tY2hpcCBFQ0MKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZW5naW5lIGlmIGRlYWN0aXZhdGVkCisgKiAgIC0gb25kaWUgKyBmaW5pc2ggICsgZWNjICsg d3JpdGU6IGRvIG5vdGhpbmcKKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5j bHVkZSA8bGludXgvbXRkL25hbmQuaD4KKworaW50IG5hbmRfZWNjX2luaXRfY3R4KHN0cnVjdCBu YW5kX2RldmljZSAqbmFuZCkKK3sKKwlpZiAoIW5hbmQtPmVjYy5lbmdpbmUtPm9wcy0+aW5pdF9j dHgpCisJCXJldHVybiAwOworCisJcmV0dXJuIG5hbmQtPmVjYy5lbmdpbmUtPm9wcy0+aW5pdF9j dHgobmFuZCk7Cit9CitFWFBPUlRfU1lNQk9MKG5hbmRfZWNjX2luaXRfY3R4KTsKKwordm9pZCBu YW5kX2VjY19jbGVhbnVwX2N0eChzdHJ1Y3QgbmFuZF9kZXZpY2UgKm5hbmQpCit7CisJaWYgKG5h bmQtPmVjYy5lbmdpbmUtPm9wcy0+Y2xlYW51cF9jdHgpCisJCW5hbmQtPmVjYy5lbmdpbmUtPm9w cy0+Y2xlYW51cF9jdHgobmFuZCk7Cit9CitFWFBPUlRfU1lNQk9MKG5hbmRfZWNjX2NsZWFudXBf Y3R4KTsKKworaW50IG5hbmRfZWNjX3ByZXBhcmVfaW9fcmVxKHN0cnVjdCBuYW5kX2RldmljZSAq bmFuZCwKKwkJCSAgICBzdHJ1Y3QgbmFuZF9wYWdlX2lvX3JlcSAqcmVxLCB2b2lkICpvb2JidWYp Cit7CisJaWYgKCFuYW5kLT5lY2MuZW5naW5lLT5vcHMtPnByZXBhcmVfaW9fcmVxKQorCQlyZXR1 cm4gMDsKKworCXJldHVybiBuYW5kLT5lY2MuZW5naW5lLT5vcHMtPnByZXBhcmVfaW9fcmVxKG5h bmQsIHJlcSwgb29iYnVmKTsKK30KK0VYUE9SVF9TWU1CT0wobmFuZF9lY2NfcHJlcGFyZV9pb19y ZXEpOworCitpbnQgbmFuZF9lY2NfZmluaXNoX2lvX3JlcShzdHJ1Y3QgbmFuZF9kZXZpY2UgKm5h bmQsCisJCQkgICBzdHJ1Y3QgbmFuZF9wYWdlX2lvX3JlcSAqcmVxLCB2b2lkICpvb2JidWYpCit7 CisJaWYgKCFuYW5kLT5lY2MuZW5naW5lLT5vcHMtPmZpbmlzaF9pb19yZXEpCisJCXJldHVybiAw OworCisJcmV0dXJuIG5hbmQtPmVjYy5lbmdpbmUtPm9wcy0+ZmluaXNoX2lvX3JlcShuYW5kLCBy ZXEsIG9vYmJ1Zik7Cit9CitFWFBPUlRfU1lNQk9MKG5hbmRfZWNjX2ZpbmlzaF9pb19yZXEpOwor CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfQVVUSE9SKCJNaXF1ZWwgUmF5bmFsIDxt aXF1ZWwucmF5bmFsQGJvb3RsaW4uY29tPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJHZW5lcmlj IEVDQyBlbmdpbmUiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L2F0bWVsL25h bmQtY29udHJvbGxlci5jIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvYXRtZWwvbmFuZC1jb250cm9s bGVyLmMKaW5kZXggOTg2N2U5MTE1Mzk5Li4zZGFjYWEzNTJhNTggMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbXRkL25hbmQvcmF3L2F0bWVsL25hbmQtY29udHJvbGxlci5jCisrKyBiL2RyaXZlcnMvbXRk L25hbmQvcmF3L2F0bWVsL25hbmQtY29udHJvbGxlci5jCkBAIC0xMDM5LDYgKzEwMzksNyBAQCBz dGF0aWMgaW50IGF0bWVsX2hzbWNfbmFuZF9wbWVjY19yZWFkX3BhZ2VfcmF3KHN0cnVjdCBuYW5k X2NoaXAgKmNoaXAsCiAKIHN0YXRpYyBpbnQgYXRtZWxfbmFuZF9wbWVjY19pbml0KHN0cnVjdCBu YW5kX2NoaXAgKmNoaXApCiB7CisJc3RydWN0IG5hbmRfZWNjX2NvbmYgKnJlcXVpcmVtZW50cyA9 ICZjaGlwLT5iYXNlLmVjYy5yZXF1aXJlbWVudHM7CiAJc3RydWN0IG10ZF9pbmZvICptdGQgPSBu YW5kX3RvX210ZChjaGlwKTsKIAlzdHJ1Y3QgYXRtZWxfbmFuZCAqbmFuZCA9IHRvX2F0bWVsX25h bmQoY2hpcCk7CiAJc3RydWN0IGF0bWVsX25hbmRfY29udHJvbGxlciAqbmM7CkBAIC0xMDY4LDE1 ICsxMDY5LDE1IEBAIHN0YXRpYyBpbnQgYXRtZWxfbmFuZF9wbWVjY19pbml0KHN0cnVjdCBuYW5k X2NoaXAgKmNoaXApCiAJCXJlcS5lY2Muc3RyZW5ndGggPSBBVE1FTF9QTUVDQ19NQVhJTUlaRV9F Q0NfU1RSRU5HVEg7CiAJZWxzZSBpZiAoY2hpcC0+ZWNjLnN0cmVuZ3RoKQogCQlyZXEuZWNjLnN0 cmVuZ3RoID0gY2hpcC0+ZWNjLnN0cmVuZ3RoOwotCWVsc2UgaWYgKGNoaXAtPmJhc2UuZWNjcmVx LnN0cmVuZ3RoKQotCQlyZXEuZWNjLnN0cmVuZ3RoID0gY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5n dGg7CisJZWxzZSBpZiAocmVxdWlyZW1lbnRzLT5zdHJlbmd0aCkKKwkJcmVxLmVjYy5zdHJlbmd0 aCA9IHJlcXVpcmVtZW50cy0+c3RyZW5ndGg7CiAJZWxzZQogCQlyZXEuZWNjLnN0cmVuZ3RoID0g QVRNRUxfUE1FQ0NfTUFYSU1JWkVfRUNDX1NUUkVOR1RIOwogCiAJaWYgKGNoaXAtPmVjYy5zaXpl KQogCQlyZXEuZWNjLnNlY3RvcnNpemUgPSBjaGlwLT5lY2Muc2l6ZTsKLQllbHNlIGlmIChjaGlw LT5iYXNlLmVjY3JlcS5zdGVwX3NpemUpCi0JCXJlcS5lY2Muc2VjdG9yc2l6ZSA9IGNoaXAtPmJh c2UuZWNjcmVxLnN0ZXBfc2l6ZTsKKwllbHNlIGlmIChyZXF1aXJlbWVudHMtPnN0ZXBfc2l6ZSkK KwkJcmVxLmVjYy5zZWN0b3JzaXplID0gcmVxdWlyZW1lbnRzLT5zdGVwX3NpemU7CiAJZWxzZQog CQlyZXEuZWNjLnNlY3RvcnNpemUgPSBBVE1FTF9QTUVDQ19TRUNUT1JfU0laRV9BVVRPOwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9ncG1pLW5hbmQvZ3BtaS1uYW5kLmMgYi9k cml2ZXJzL210ZC9uYW5kL3Jhdy9ncG1pLW5hbmQvZ3BtaS1uYW5kLmMKaW5kZXggZGJlZmI2YmFj NWM5Li4xZDBmNTU2MTI5ZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L2dwbWkt bmFuZC9ncG1pLW5hbmQuYworKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9ncG1pLW5hbmQvZ3Bt aS1uYW5kLmMKQEAgLTIwNCw4ICsyMDQsOCBAQCBzdGF0aWMgaW50IHNldF9nZW9tZXRyeV9ieV9l Y2NfaW5mbyhzdHJ1Y3QgZ3BtaV9uYW5kX2RhdGEgKnRoaXMsCiAJZGVmYXVsdDoKIAkJZGV2X2Vy cih0aGlzLT5kZXYsCiAJCQkidW5zdXBwb3J0ZWQgbmFuZCBjaGlwLiBlY2MgYml0cyA6ICVkLCBl Y2Mgc2l6ZSA6ICVkXG4iLAotCQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGgsCi0JCQljaGlw LT5iYXNlLmVjY3JlcS5zdGVwX3NpemUpOworCQkJY2hpcC0+YmFzZS5lY2MucmVxdWlyZW1lbnRz LnN0cmVuZ3RoLAorCQkJY2hpcC0+YmFzZS5lY2MucmVxdWlyZW1lbnRzLnN0ZXBfc2l6ZSk7CiAJ CXJldHVybiAtRUlOVkFMOwogCX0KIAlnZW8tPmVjY19jaHVua19zaXplID0gZWNjX3N0ZXA7CkBA IC00MTgsMTMgKzQxOCwxMyBAQCBpbnQgY29tbW9uX25mY19zZXRfZ2VvbWV0cnkoc3RydWN0IGdw bWlfbmFuZF9kYXRhICp0aGlzKQogCiAJaWYgKChvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wodGhpcy0+ ZGV2LT5vZl9ub2RlLCAiZnNsLHVzZS1taW5pbXVtLWVjYyIpKQogCQkJCXx8IGxlZ2FjeV9zZXRf Z2VvbWV0cnkodGhpcykpIHsKLQkJaWYgKCEoY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGggPiAw ICYmCi0JCSAgICAgIGNoaXAtPmJhc2UuZWNjcmVxLnN0ZXBfc2l6ZSA+IDApKQorCQlpZiAoIShj aGlwLT5iYXNlLmVjYy5yZXF1aXJlbWVudHMuc3RyZW5ndGggPiAwICYmCisJCSAgICAgIGNoaXAt PmJhc2UuZWNjLnJlcXVpcmVtZW50cy5zdGVwX3NpemUgPiAwKSkKIAkJCXJldHVybiAtRUlOVkFM OwogCiAJCXJldHVybiBzZXRfZ2VvbWV0cnlfYnlfZWNjX2luZm8odGhpcywKLQkJCQkJCWNoaXAt PmJhc2UuZWNjcmVxLnN0cmVuZ3RoLAotCQkJCQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RlcF9zaXpl KTsKKwkJCQkJCWNoaXAtPmJhc2UuZWNjLnJlcXVpcmVtZW50cy5zdHJlbmd0aCwKKwkJCQkJCWNo aXAtPmJhc2UuZWNjLnJlcXVpcmVtZW50cy5zdGVwX3NpemUpOwogCX0KIAogCXJldHVybiAwOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbWFydmVsbF9uYW5kLmMgYi9kcml2ZXJz L210ZC9uYW5kL3Jhdy9tYXJ2ZWxsX25hbmQuYwppbmRleCBkMjFlODA4YmIwNzUuLjRkMGQzYzM0 YWMxMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbWFydmVsbF9uYW5kLmMKKysr IGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvbWFydmVsbF9uYW5kLmMKQEAgLTIyNDQsMTMgKzIyNDQs MTQgQEAgc3RhdGljIGludCBtYXJ2ZWxsX25hbmRfZWNjX2luaXQoc3RydWN0IG10ZF9pbmZvICpt dGQsCiAJCQkJIHN0cnVjdCBuYW5kX2VjY19jdHJsICplY2MpCiB7CiAJc3RydWN0IG5hbmRfY2hp cCAqY2hpcCA9IG10ZF90b19uYW5kKG10ZCk7CisJc3RydWN0IG5hbmRfZWNjX2NvbmYgKnJlcXVp cmVtZW50cyA9ICZjaGlwLT5iYXNlLmVjYy5yZXF1aXJlbWVudHM7CiAJc3RydWN0IG1hcnZlbGxf bmZjICpuZmMgPSB0b19tYXJ2ZWxsX25mYyhjaGlwLT5jb250cm9sbGVyKTsKIAlpbnQgcmV0Owog CiAJaWYgKGVjYy0+bW9kZSAhPSBOQU5EX0VDQ19OT05FICYmICghZWNjLT5zaXplIHx8ICFlY2Mt PnN0cmVuZ3RoKSkgewotCQlpZiAoY2hpcC0+YmFzZS5lY2NyZXEuc3RlcF9zaXplICYmIGNoaXAt PmJhc2UuZWNjcmVxLnN0cmVuZ3RoKSB7Ci0JCQllY2MtPnNpemUgPSBjaGlwLT5iYXNlLmVjY3Jl cS5zdGVwX3NpemU7Ci0JCQllY2MtPnN0cmVuZ3RoID0gY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5n dGg7CisJCWlmIChyZXF1aXJlbWVudHMtPnN0ZXBfc2l6ZSAmJiByZXF1aXJlbWVudHMtPnN0cmVu Z3RoKSB7CisJCQllY2MtPnNpemUgPSByZXF1aXJlbWVudHMtPnN0ZXBfc2l6ZTsKKwkJCWVjYy0+ c3RyZW5ndGggPSByZXF1aXJlbWVudHMtPnN0cmVuZ3RoOwogCQl9IGVsc2UgewogCQkJZGV2X2lu Zm8obmZjLT5kZXYsCiAJCQkJICJObyBtaW5pbXVtIEVDQyBzdHJlbmd0aCwgdXNpbmcgMWIvNTEy QlxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9tdGtfbmFuZC5jIGIvZHJp dmVycy9tdGQvbmFuZC9yYXcvbXRrX25hbmQuYwppbmRleCBiZmI4OWFjYTQxNTUuLmI2NmViOTZi N2Q0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbXRrX25hbmQuYworKysgYi9k cml2ZXJzL210ZC9uYW5kL3Jhdy9tdGtfbmFuZC5jCkBAIC0xMTk3LDggKzExOTcsOCBAQCBzdGF0 aWMgaW50IG10a19uZmNfZWNjX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgbXRkX2lu Zm8gKm10ZCkKIAkvKiBpZiBvcHRpb25hbCBkdCBzZXR0aW5ncyBub3QgcHJlc2VudCAqLwogCWlm ICghbmFuZC0+ZWNjLnNpemUgfHwgIW5hbmQtPmVjYy5zdHJlbmd0aCkgewogCQkvKiB1c2UgZGF0 YXNoZWV0IHJlcXVpcmVtZW50cyAqLwotCQluYW5kLT5lY2Muc3RyZW5ndGggPSBuYW5kLT5iYXNl LmVjY3JlcS5zdHJlbmd0aDsKLQkJbmFuZC0+ZWNjLnNpemUgPSBuYW5kLT5iYXNlLmVjY3JlcS5z dGVwX3NpemU7CisJCW5hbmQtPmVjYy5zdHJlbmd0aCA9IG5hbmQtPmJhc2UuZWNjLnJlcXVpcmVt ZW50cy5zdHJlbmd0aDsKKwkJbmFuZC0+ZWNjLnNpemUgPSBuYW5kLT5iYXNlLmVjYy5yZXF1aXJl bWVudHMuc3RlcF9zaXplOwogCiAJCS8qCiAJCSAqIGFsaWduIGVjY3N0cmVuZ3RoIGFuZCBlY2Nz aXplCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX2Jhc2UuYyBiL2RyaXZl cnMvbXRkL25hbmQvcmF3L25hbmRfYmFzZS5jCmluZGV4IGY0ZTg1ZTU2YTA0MS4uYjEyY2EyOTFj N2UzIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX2Jhc2UuYworKysgYi9k cml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX2Jhc2UuYwpAQCAtNDU5Miw4ICs0NTkyLDggQEAgc3Rh dGljIGJvb2wgZmluZF9mdWxsX2lkX25hbmQoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwKIAkJCQkJ ICAgbWVtb3JnLT5wYWdlc2l6ZSAqCiAJCQkJCSAgIG1lbW9yZy0+cGFnZXNfcGVyX2VyYXNlYmxv Y2spOwogCQljaGlwLT5vcHRpb25zIHw9IHR5cGUtPm9wdGlvbnM7Ci0JCWNoaXAtPmJhc2UuZWNj cmVxLnN0cmVuZ3RoID0gTkFORF9FQ0NfU1RSRU5HVEgodHlwZSk7Ci0JCWNoaXAtPmJhc2UuZWNj cmVxLnN0ZXBfc2l6ZSA9IE5BTkRfRUNDX1NURVAodHlwZSk7CisJCWNoaXAtPmJhc2UuZWNjLnJl cXVpcmVtZW50cy5zdHJlbmd0aCA9IE5BTkRfRUNDX1NUUkVOR1RIKHR5cGUpOworCQljaGlwLT5i YXNlLmVjYy5yZXF1aXJlbWVudHMuc3RlcF9zaXplID0gTkFORF9FQ0NfU1RFUCh0eXBlKTsKIAkJ Y2hpcC0+b25maV90aW1pbmdfbW9kZV9kZWZhdWx0ID0KIAkJCQkJdHlwZS0+b25maV90aW1pbmdf bW9kZV9kZWZhdWx0OwogCkBAIC01MjY2LDggKzUyNjYsOCBAQCBuYW5kX21hdGNoX2VjY19yZXEo c3RydWN0IG5hbmRfY2hpcCAqY2hpcCwKIHsKIAlzdHJ1Y3QgbXRkX2luZm8gKm10ZCA9IG5hbmRf dG9fbXRkKGNoaXApOwogCWNvbnN0IHN0cnVjdCBuYW5kX2VjY19zdGVwX2luZm8gKnN0ZXBpbmZv OwotCWludCByZXFfc3RlcCA9IGNoaXAtPmJhc2UuZWNjcmVxLnN0ZXBfc2l6ZTsKLQlpbnQgcmVx X3N0cmVuZ3RoID0gY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGg7CisJaW50IHJlcV9zdGVwID0g Y2hpcC0+YmFzZS5lY2MucmVxdWlyZW1lbnRzLnN0ZXBfc2l6ZTsKKwlpbnQgcmVxX3N0cmVuZ3Ro ID0gY2hpcC0+YmFzZS5lY2MucmVxdWlyZW1lbnRzLnN0cmVuZ3RoOwogCWludCByZXFfY29yciwg c3RlcF9zaXplLCBzdHJlbmd0aCwgbnN0ZXBzLCBlY2NfYnl0ZXMsIGVjY19ieXRlc190b3RhbDsK IAlpbnQgYmVzdF9zdGVwLCBiZXN0X3N0cmVuZ3RoLCBiZXN0X2VjY19ieXRlczsKIAlpbnQgYmVz dF9lY2NfYnl0ZXNfdG90YWwgPSBJTlRfTUFYOwpAQCAtNTQ1OCw5ICs1NDU4LDEwIEBAIHN0YXRp YyBib29sIG5hbmRfZWNjX3N0cmVuZ3RoX2dvb2Qoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCkKIHsK IAlzdHJ1Y3QgbXRkX2luZm8gKm10ZCA9IG5hbmRfdG9fbXRkKGNoaXApOwogCXN0cnVjdCBuYW5k X2VjY19jdHJsICplY2MgPSAmY2hpcC0+ZWNjOworCXN0cnVjdCBuYW5kX2VjY19jb25mICpyZXF1 aXJlbWVudHMgPSAmY2hpcC0+YmFzZS5lY2MucmVxdWlyZW1lbnRzOwogCWludCBjb3JyLCBkc19j b3JyOwogCi0JaWYgKGVjYy0+c2l6ZSA9PSAwIHx8IGNoaXAtPmJhc2UuZWNjcmVxLnN0ZXBfc2l6 ZSA9PSAwKQorCWlmIChlY2MtPnNpemUgPT0gMCB8fCByZXF1aXJlbWVudHMtPnN0ZXBfc2l6ZSA9 PSAwKQogCQkvKiBOb3QgZW5vdWdoIGluZm9ybWF0aW9uICovCiAJCXJldHVybiB0cnVlOwogCkBA IC01NDY5LDEwICs1NDcwLDEwIEBAIHN0YXRpYyBib29sIG5hbmRfZWNjX3N0cmVuZ3RoX2dvb2Qo c3RydWN0IG5hbmRfY2hpcCAqY2hpcCkKIAkgKiB0aGUgY29ycmVjdGlvbiBkZW5zaXR5LgogCSAq LwogCWNvcnIgPSAobXRkLT53cml0ZXNpemUgKiBlY2MtPnN0cmVuZ3RoKSAvIGVjYy0+c2l6ZTsK LQlkc19jb3JyID0gKG10ZC0+d3JpdGVzaXplICogY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGgp IC8KLQkJICBjaGlwLT5iYXNlLmVjY3JlcS5zdGVwX3NpemU7CisJZHNfY29yciA9IChtdGQtPndy aXRlc2l6ZSAqIHJlcXVpcmVtZW50cy0+c3RyZW5ndGgpIC8KKwkJICByZXF1aXJlbWVudHMtPnN0 ZXBfc2l6ZTsKIAotCXJldHVybiBjb3JyID49IGRzX2NvcnIgJiYgZWNjLT5zdHJlbmd0aCA+PSBj aGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aDsKKwlyZXR1cm4gY29yciA+PSBkc19jb3JyICYmIGVj Yy0+c3RyZW5ndGggPj0gcmVxdWlyZW1lbnRzLT5zdHJlbmd0aDsKIH0KIAogc3RhdGljIGludCBy YXduYW5kX2VyYXNlKHN0cnVjdCBuYW5kX2RldmljZSAqbmFuZCwgY29uc3Qgc3RydWN0IG5hbmRf cG9zICpwb3MpCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX2VzbXQuYyBi L2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfZXNtdC5jCmluZGV4IDNkZTVlODk0ODJmNS4uYzNm Yzg1Zjc3ZmY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX2VzbXQuYwor KysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX2VzbXQuYwpAQCAtMTAsMjQgKzEwLDI1IEBA CiAKIHN0YXRpYyB2b2lkIGVzbXRfbmFuZF9kZWNvZGVfaWQoc3RydWN0IG5hbmRfY2hpcCAqY2hp cCkKIHsKKwlzdHJ1Y3QgbmFuZF9lY2NfY29uZiAqcmVxdWlyZW1lbnRzID0gJmNoaXAtPmJhc2Uu ZWNjLnJlcXVpcmVtZW50czsKIAluYW5kX2RlY29kZV9leHRfaWQoY2hpcCk7CiAKIAkvKiBFeHRy YWN0IEVDQyByZXF1aXJlbWVudHMgZnJvbSA1dGggaWQgYnl0ZS4gKi8KIAlpZiAoY2hpcC0+aWQu bGVuID49IDUgJiYgbmFuZF9pc19zbGMoY2hpcCkpIHsKLQkJY2hpcC0+YmFzZS5lY2NyZXEuc3Rl cF9zaXplID0gNTEyOworCQlyZXF1aXJlbWVudHMtPnN0ZXBfc2l6ZSA9IDUxMjsKIAkJc3dpdGNo IChjaGlwLT5pZC5kYXRhWzRdICYgMHgzKSB7CiAJCWNhc2UgMHgwOgotCQkJY2hpcC0+YmFzZS5l Y2NyZXEuc3RyZW5ndGggPSA0OworCQkJcmVxdWlyZW1lbnRzLT5zdHJlbmd0aCA9IDQ7CiAJCQli cmVhazsKIAkJY2FzZSAweDE6Ci0JCQljaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCA9IDI7CisJ CQlyZXF1aXJlbWVudHMtPnN0cmVuZ3RoID0gMjsKIAkJCWJyZWFrOwogCQljYXNlIDB4MjoKLQkJ CWNoaXAtPmJhc2UuZWNjcmVxLnN0cmVuZ3RoID0gMTsKKwkJCXJlcXVpcmVtZW50cy0+c3RyZW5n dGggPSAxOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQlXQVJOKDEsICJDb3VsZCBub3QgZ2V0 IEVDQyBpbmZvIik7Ci0JCQljaGlwLT5iYXNlLmVjY3JlcS5zdGVwX3NpemUgPSAwOworCQkJcmVx dWlyZW1lbnRzLT5zdGVwX3NpemUgPSAwOwogCQkJYnJlYWs7CiAJCX0KIAl9CmRpZmYgLS1naXQg YS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX2h5bml4LmMgYi9kcml2ZXJzL210ZC9uYW5kL3Jh dy9uYW5kX2h5bml4LmMKaW5kZXggODIxZDIyMWI4M2ViLi4zYzA1OTkxZTM0NDUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfaHluaXguYworKysgYi9kcml2ZXJzL210ZC9u YW5kL3Jhdy9uYW5kX2h5bml4LmMKQEAgLTUwNCwzNCArNTA0LDM1IEBAIHN0YXRpYyB2b2lkIGh5 bml4X25hbmRfZXh0cmFjdF9vb2JzaXplKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsCiBzdGF0aWMg dm9pZCBoeW5peF9uYW5kX2V4dHJhY3RfZWNjX3JlcXVpcmVtZW50cyhzdHJ1Y3QgbmFuZF9jaGlw ICpjaGlwLAogCQkJCQkJYm9vbCB2YWxpZF9qZWRlY2lkKQogeworCXN0cnVjdCBuYW5kX2VjY19j b25mICpyZXF1aXJlbWVudHMgPSAmY2hpcC0+YmFzZS5lY2MucmVxdWlyZW1lbnRzOwogCXU4IGVj Y19sZXZlbCA9IChjaGlwLT5pZC5kYXRhWzRdID4+IDQpICYgMHg3OwogCiAJaWYgKHZhbGlkX2pl ZGVjaWQpIHsKIAkJLyogUmVmZXJlbmNlOiBIMjdVQ0c4VDJFIGRhdGFzaGVldCAqLwotCQljaGlw LT5iYXNlLmVjY3JlcS5zdGVwX3NpemUgPSAxMDI0OworCQlyZXF1aXJlbWVudHMtPnN0ZXBfc2l6 ZSA9IDEwMjQ7CiAKIAkJc3dpdGNoIChlY2NfbGV2ZWwpIHsKIAkJY2FzZSAwOgotCQkJY2hpcC0+ YmFzZS5lY2NyZXEuc3RlcF9zaXplID0gMDsKLQkJCWNoaXAtPmJhc2UuZWNjcmVxLnN0cmVuZ3Ro ID0gMDsKKwkJCXJlcXVpcmVtZW50cy0+c3RlcF9zaXplID0gMDsKKwkJCXJlcXVpcmVtZW50cy0+ c3RyZW5ndGggPSAwOwogCQkJYnJlYWs7CiAJCWNhc2UgMToKLQkJCWNoaXAtPmJhc2UuZWNjcmVx LnN0cmVuZ3RoID0gNDsKKwkJCXJlcXVpcmVtZW50cy0+c3RyZW5ndGggPSA0OwogCQkJYnJlYWs7 CiAJCWNhc2UgMjoKLQkJCWNoaXAtPmJhc2UuZWNjcmVxLnN0cmVuZ3RoID0gMjQ7CisJCQlyZXF1 aXJlbWVudHMtPnN0cmVuZ3RoID0gMjQ7CiAJCQlicmVhazsKIAkJY2FzZSAzOgotCQkJY2hpcC0+ YmFzZS5lY2NyZXEuc3RyZW5ndGggPSAzMjsKKwkJCXJlcXVpcmVtZW50cy0+c3RyZW5ndGggPSAz MjsKIAkJCWJyZWFrOwogCQljYXNlIDQ6Ci0JCQljaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCA9 IDQwOworCQkJcmVxdWlyZW1lbnRzLT5zdHJlbmd0aCA9IDQwOwogCQkJYnJlYWs7CiAJCWNhc2Ug NToKLQkJCWNoaXAtPmJhc2UuZWNjcmVxLnN0cmVuZ3RoID0gNTA7CisJCQlyZXF1aXJlbWVudHMt PnN0cmVuZ3RoID0gNTA7CiAJCQlicmVhazsKIAkJY2FzZSA2OgotCQkJY2hpcC0+YmFzZS5lY2Ny ZXEuc3RyZW5ndGggPSA2MDsKKwkJCXJlcXVpcmVtZW50cy0+c3RyZW5ndGggPSA2MDsKIAkJCWJy ZWFrOwogCQlkZWZhdWx0OgogCQkJLyoKQEAgLTU1MiwxNCArNTUzLDE0IEBAIHN0YXRpYyB2b2lk IGh5bml4X25hbmRfZXh0cmFjdF9lY2NfcmVxdWlyZW1lbnRzKHN0cnVjdCBuYW5kX2NoaXAgKmNo aXAsCiAJCWlmIChuYW5kX3RlY2ggPCAzKSB7CiAJCQkvKiA+IDI2bm0sIHJlZmVyZW5jZTogSDI3 VUJHOFQyQSBkYXRhc2hlZXQgKi8KIAkJCWlmIChlY2NfbGV2ZWwgPCA1KSB7Ci0JCQkJY2hpcC0+ YmFzZS5lY2NyZXEuc3RlcF9zaXplID0gNTEyOwotCQkJCWNoaXAtPmJhc2UuZWNjcmVxLnN0cmVu Z3RoID0gMSA8PCBlY2NfbGV2ZWw7CisJCQkJcmVxdWlyZW1lbnRzLT5zdGVwX3NpemUgPSA1MTI7 CisJCQkJcmVxdWlyZW1lbnRzLT5zdHJlbmd0aCA9IDEgPDwgZWNjX2xldmVsOwogCQkJfSBlbHNl IGlmIChlY2NfbGV2ZWwgPCA3KSB7CiAJCQkJaWYgKGVjY19sZXZlbCA9PSA1KQotCQkJCQljaGlw LT5iYXNlLmVjY3JlcS5zdGVwX3NpemUgPSAyMDQ4OworCQkJCQlyZXF1aXJlbWVudHMtPnN0ZXBf c2l6ZSA9IDIwNDg7CiAJCQkJZWxzZQotCQkJCQljaGlwLT5iYXNlLmVjY3JlcS5zdGVwX3NpemUg PSAxMDI0OwotCQkJCWNoaXAtPmJhc2UuZWNjcmVxLnN0cmVuZ3RoID0gMjQ7CisJCQkJCXJlcXVp cmVtZW50cy0+c3RlcF9zaXplID0gMTAyNDsKKwkJCQlyZXF1aXJlbWVudHMtPnN0cmVuZ3RoID0g MjQ7CiAJCQl9IGVsc2UgewogCQkJCS8qCiAJCQkJICogV2Ugc2hvdWxkIG5ldmVyIHJlYWNoIHRo aXMgY2FzZSwgYnV0IGlmIHRoYXQKQEAgLTU3MiwxNCArNTczLDE0IEBAIHN0YXRpYyB2b2lkIGh5 bml4X25hbmRfZXh0cmFjdF9lY2NfcmVxdWlyZW1lbnRzKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAs CiAJCX0gZWxzZSB7CiAJCQkvKiA8PSAyNm5tLCByZWZlcmVuY2U6IEgyN1VCRzhUMkIgZGF0YXNo ZWV0ICovCiAJCQlpZiAoIWVjY19sZXZlbCkgewotCQkJCWNoaXAtPmJhc2UuZWNjcmVxLnN0ZXBf c2l6ZSA9IDA7Ci0JCQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGggPSAwOworCQkJCXJlcXVp cmVtZW50cy0+c3RlcF9zaXplID0gMDsKKwkJCQlyZXF1aXJlbWVudHMtPnN0cmVuZ3RoID0gMDsK IAkJCX0gZWxzZSBpZiAoZWNjX2xldmVsIDwgNSkgewotCQkJCWNoaXAtPmJhc2UuZWNjcmVxLnN0 ZXBfc2l6ZSA9IDUxMjsKLQkJCQljaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCA9IDEgPDwgKGVj Y19sZXZlbCAtIDEpOworCQkJCXJlcXVpcmVtZW50cy0+c3RlcF9zaXplID0gNTEyOworCQkJCXJl cXVpcmVtZW50cy0+c3RyZW5ndGggPSAxIDw8IChlY2NfbGV2ZWwgLSAxKTsKIAkJCX0gZWxzZSB7 Ci0JCQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RlcF9zaXplID0gMTAyNDsKLQkJCQljaGlwLT5iYXNl LmVjY3JlcS5zdHJlbmd0aCA9IDI0ICsKKwkJCQlyZXF1aXJlbWVudHMtPnN0ZXBfc2l6ZSA9IDEw MjQ7CisJCQkJcmVxdWlyZW1lbnRzLT5zdHJlbmd0aCA9IDI0ICsKIAkJCQkJCQkoOCAqIChlY2Nf bGV2ZWwgLSA1KSk7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3 L25hbmRfamVkZWMuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfamVkZWMuYwppbmRleCA5 YjU0MGU3NmY4NGYuLjQ2YWZhMjVhYmM3MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9y YXcvbmFuZF9qZWRlYy5jCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfamVkZWMuYwpA QCAtMTEwLDggKzExMCw4IEBAIGludCBuYW5kX2plZGVjX2RldGVjdChzdHJ1Y3QgbmFuZF9jaGlw ICpjaGlwKQogCWVjYyA9ICZwLT5lY2NfaW5mb1swXTsKIAogCWlmIChlY2MtPmNvZGV3b3JkX3Np emUgPj0gOSkgewotCQljaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCA9IGVjYy0+ZWNjX2JpdHM7 Ci0JCWNoaXAtPmJhc2UuZWNjcmVxLnN0ZXBfc2l6ZSA9IDEgPDwgZWNjLT5jb2Rld29yZF9zaXpl OworCQljaGlwLT5iYXNlLmVjYy5yZXF1aXJlbWVudHMuc3RyZW5ndGggPSBlY2MtPmVjY19iaXRz OworCQljaGlwLT5iYXNlLmVjYy5yZXF1aXJlbWVudHMuc3RlcF9zaXplID0gMSA8PCBlY2MtPmNv ZGV3b3JkX3NpemU7CiAJfSBlbHNlIHsKIAkJcHJfd2FybigiSW52YWxpZCBjb2Rld29yZCBzaXpl XG4iKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX21pY3Jvbi5j IGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9taWNyb24uYwppbmRleCA3YTJjZWYwMmVhY2Qu LmRkMjM1OGEwMWY1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9taWNy b24uYworKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX21pY3Jvbi5jCkBAIC0zNzksNiAr Mzc5LDcgQEAgZW51bSB7CiAgKi8KIHN0YXRpYyBpbnQgbWljcm9uX3N1cHBvcnRzX29uX2RpZV9l Y2Moc3RydWN0IG5hbmRfY2hpcCAqY2hpcCkKIHsKKwlzdHJ1Y3QgbmFuZF9lY2NfY29uZiAqcmVx dWlyZW1lbnRzID0gJmNoaXAtPmJhc2UuZWNjLnJlcXVpcmVtZW50czsKIAl1OCBpZFs1XTsKIAlp bnQgcmV0OwogCkBAIC0zOTEsNyArMzkyLDcgQEAgc3RhdGljIGludCBtaWNyb25fc3VwcG9ydHNf b25fZGllX2VjYyhzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwKQogCS8qCiAJICogV2Ugb25seSBzdXBw b3J0IG9uLWRpZSBFQ0Mgb2YgNC81MTIgb3IgOC81MTIKIAkgKi8KLQlpZiAgKGNoaXAtPmJhc2Uu ZWNjcmVxLnN0cmVuZ3RoICE9IDQgJiYgY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGggIT0gOCkK KwlpZiAgKHJlcXVpcmVtZW50cy0+c3RyZW5ndGggIT0gNCAmJiByZXF1aXJlbWVudHMtPnN0cmVu Z3RoICE9IDgpCiAJCXJldHVybiBNSUNST05fT05fRElFX1VOU1VQUE9SVEVEOwogCiAJLyogMHgy IG1lYW5zIG9uLWRpZSBFQ0MgaXMgYXZhaWxhYmxlLiAqLwpAQCAtNDI0LDcgKzQyNSw3IEBAIHN0 YXRpYyBpbnQgbWljcm9uX3N1cHBvcnRzX29uX2RpZV9lY2Moc3RydWN0IG5hbmRfY2hpcCAqY2hp cCkKIAkvKgogCSAqIFdlIG9ubHkgc3VwcG9ydCBvbi1kaWUgRUNDIG9mIDQvNTEyIG9yIDgvNTEy CiAJICovCi0JaWYgIChjaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCAhPSA0ICYmIGNoaXAtPmJh c2UuZWNjcmVxLnN0cmVuZ3RoICE9IDgpCisJaWYgIChyZXF1aXJlbWVudHMtPnN0cmVuZ3RoICE9 IDQgJiYgcmVxdWlyZW1lbnRzLT5zdHJlbmd0aCAhPSA4KQogCQlyZXR1cm4gTUlDUk9OX09OX0RJ RV9VTlNVUFBPUlRFRDsKIAogCXJldHVybiBNSUNST05fT05fRElFX1NVUFBPUlRFRDsKQEAgLTQz Miw2ICs0MzMsNyBAQCBzdGF0aWMgaW50IG1pY3Jvbl9zdXBwb3J0c19vbl9kaWVfZWNjKHN0cnVj dCBuYW5kX2NoaXAgKmNoaXApCiAKIHN0YXRpYyBpbnQgbWljcm9uX25hbmRfaW5pdChzdHJ1Y3Qg bmFuZF9jaGlwICpjaGlwKQogeworCXN0cnVjdCBuYW5kX2VjY19jb25mICpyZXF1aXJlbWVudHMg PSAmY2hpcC0+YmFzZS5lY2MucmVxdWlyZW1lbnRzOwogCXN0cnVjdCBtdGRfaW5mbyAqbXRkID0g bmFuZF90b19tdGQoY2hpcCk7CiAJc3RydWN0IG1pY3Jvbl9uYW5kICptaWNyb247CiAJaW50IG9u ZGllOwpAQCAtNDc5LDcgKzQ4MSw3IEBAIHN0YXRpYyBpbnQgbWljcm9uX25hbmRfaW5pdChzdHJ1 Y3QgbmFuZF9jaGlwICpjaGlwKQogCQkgKiBUaGF0J3Mgbm90IG5lZWRlZCBmb3IgOC1iaXQgRUND LCBiZWNhdXNlIHRoZSBzdGF0dXMgZXhwb3NlCiAJCSAqIGEgYmV0dGVyIGFwcHJveGltYXRpb24g b2YgdGhlIG51bWJlciBvZiBiaXRmbGlwcyBpbiBhIHBhZ2UuCiAJCSAqLwotCQlpZiAoY2hpcC0+ YmFzZS5lY2NyZXEuc3RyZW5ndGggPT0gNCkgeworCQlpZiAocmVxdWlyZW1lbnRzLT5zdHJlbmd0 aCA9PSA0KSB7CiAJCQltaWNyb24tPmVjYy5yYXdidWYgPSBrbWFsbG9jKG10ZC0+d3JpdGVzaXpl ICsKIAkJCQkJCSAgICAgbXRkLT5vb2JzaXplLAogCQkJCQkJICAgICBHRlBfS0VSTkVMKTsKQEAg LTQ4OSwxNiArNDkxLDE2IEBAIHN0YXRpYyBpbnQgbWljcm9uX25hbmRfaW5pdChzdHJ1Y3QgbmFu ZF9jaGlwICpjaGlwKQogCQkJfQogCQl9CiAKLQkJaWYgKGNoaXAtPmJhc2UuZWNjcmVxLnN0cmVu Z3RoID09IDQpCisJCWlmIChyZXF1aXJlbWVudHMtPnN0cmVuZ3RoID09IDQpCiAJCQltdGRfc2V0 X29vYmxheW91dChtdGQsCiAJCQkJCSAgJm1pY3Jvbl9uYW5kX29uX2RpZV80X29vYmxheW91dF9v cHMpOwogCQllbHNlCiAJCQltdGRfc2V0X29vYmxheW91dChtdGQsCiAJCQkJCSAgJm1pY3Jvbl9u YW5kX29uX2RpZV84X29vYmxheW91dF9vcHMpOwogCi0JCWNoaXAtPmVjYy5ieXRlcyA9IGNoaXAt PmJhc2UuZWNjcmVxLnN0cmVuZ3RoICogMjsKKwkJY2hpcC0+ZWNjLmJ5dGVzID0gcmVxdWlyZW1l bnRzLT5zdHJlbmd0aCAqIDI7CiAJCWNoaXAtPmVjYy5zaXplID0gNTEyOwotCQljaGlwLT5lY2Mu c3RyZW5ndGggPSBjaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aDsKKwkJY2hpcC0+ZWNjLnN0cmVu Z3RoID0gcmVxdWlyZW1lbnRzLT5zdHJlbmd0aDsKIAkJY2hpcC0+ZWNjLmFsZ28gPSBOQU5EX0VD Q19CQ0g7CiAJCWNoaXAtPmVjYy5yZWFkX3BhZ2UgPSBtaWNyb25fbmFuZF9yZWFkX3BhZ2Vfb25f ZGllX2VjYzsKIAkJY2hpcC0+ZWNjLndyaXRlX3BhZ2UgPSBtaWNyb25fbmFuZF93cml0ZV9wYWdl X29uX2RpZV9lY2M7CmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX29uZmku YyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfb25maS5jCmluZGV4IDBiODc5YmQwYTY4Yy4u OWQyMWI0N2ViZWYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX29uZmku YworKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX29uZmkuYwpAQCAtOTQsOCArOTQsOCBA QCBzdGF0aWMgaW50IG5hbmRfZmxhc2hfZGV0ZWN0X2V4dF9wYXJhbV9wYWdlKHN0cnVjdCBuYW5k X2NoaXAgKmNoaXAsCiAJCWdvdG8gZXh0X291dDsKIAl9CiAKLQljaGlwLT5iYXNlLmVjY3JlcS5z dHJlbmd0aCA9IGVjYy0+ZWNjX2JpdHM7Ci0JY2hpcC0+YmFzZS5lY2NyZXEuc3RlcF9zaXplID0g MSA8PCBlY2MtPmNvZGV3b3JkX3NpemU7CisJY2hpcC0+YmFzZS5lY2MucmVxdWlyZW1lbnRzLnN0 cmVuZ3RoID0gZWNjLT5lY2NfYml0czsKKwljaGlwLT5iYXNlLmVjYy5yZXF1aXJlbWVudHMuc3Rl cF9zaXplID0gMSA8PCBlY2MtPmNvZGV3b3JkX3NpemU7CiAJcmV0ID0gMDsKIAogZXh0X291dDoK QEAgLTI1Miw4ICsyNTIsOCBAQCBpbnQgbmFuZF9vbmZpX2RldGVjdChzdHJ1Y3QgbmFuZF9jaGlw ICpjaGlwKQogCQljaGlwLT5vcHRpb25zIHw9IE5BTkRfQlVTV0lEVEhfMTY7CiAKIAlpZiAocC0+ ZWNjX2JpdHMgIT0gMHhmZikgewotCQljaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCA9IHAtPmVj Y19iaXRzOwotCQljaGlwLT5iYXNlLmVjY3JlcS5zdGVwX3NpemUgPSA1MTI7CisJCWNoaXAtPmJh c2UuZWNjLnJlcXVpcmVtZW50cy5zdHJlbmd0aCA9IHAtPmVjY19iaXRzOworCQljaGlwLT5iYXNl LmVjYy5yZXF1aXJlbWVudHMuc3RlcF9zaXplID0gNTEyOwogCX0gZWxzZSBpZiAob25maV92ZXJz aW9uID49IDIxICYmCiAJCShsZTE2X3RvX2NwdShwLT5mZWF0dXJlcykgJiBPTkZJX0ZFQVRVUkVf RVhUX1BBUkFNX1BBR0UpKSB7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L25h bmRfc2Ftc3VuZy5jIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9zYW1zdW5nLmMKaW5kZXgg ZjdkNzA0MWI2MjEzLi40ODc0YmEzM2RiMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQv cmF3L25hbmRfc2Ftc3VuZy5jCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfc2Ftc3Vu Zy5jCkBAIC0xOSw2ICsxOSw3IEBACiAKIHN0YXRpYyB2b2lkIHNhbXN1bmdfbmFuZF9kZWNvZGVf aWQoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCkKIHsKKwlzdHJ1Y3QgbmFuZF9lY2NfY29uZiAqcmVx dWlyZW1lbnRzID0gJmNoaXAtPmJhc2UuZWNjLnJlcXVpcmVtZW50czsKIAlzdHJ1Y3QgbXRkX2lu Zm8gKm10ZCA9IG5hbmRfdG9fbXRkKGNoaXApOwogCXN0cnVjdCBuYW5kX21lbW9yeV9vcmdhbml6 YXRpb24gKm1lbW9yZzsKIApAQCAtODAsMjMgKzgxLDIzIEBAIHN0YXRpYyB2b2lkIHNhbXN1bmdf bmFuZF9kZWNvZGVfaWQoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCkKIAkJLyogRXh0cmFjdCBFQ0Mg cmVxdWlyZW1lbnRzIGZyb20gNXRoIGlkIGJ5dGUqLwogCQlleHRpZCA9IChjaGlwLT5pZC5kYXRh WzRdID4+IDQpICYgMHgwNzsKIAkJaWYgKGV4dGlkIDwgNSkgewotCQkJY2hpcC0+YmFzZS5lY2Ny ZXEuc3RlcF9zaXplID0gNTEyOwotCQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGggPSAxIDw8 IGV4dGlkOworCQkJcmVxdWlyZW1lbnRzLT5zdGVwX3NpemUgPSA1MTI7CisJCQlyZXF1aXJlbWVu dHMtPnN0cmVuZ3RoID0gMSA8PCBleHRpZDsKIAkJfSBlbHNlIHsKLQkJCWNoaXAtPmJhc2UuZWNj cmVxLnN0ZXBfc2l6ZSA9IDEwMjQ7CisJCQlyZXF1aXJlbWVudHMtPnN0ZXBfc2l6ZSA9IDEwMjQ7 CiAJCQlzd2l0Y2ggKGV4dGlkKSB7CiAJCQljYXNlIDU6Ci0JCQkJY2hpcC0+YmFzZS5lY2NyZXEu c3RyZW5ndGggPSAyNDsKKwkJCQlyZXF1aXJlbWVudHMtPnN0cmVuZ3RoID0gMjQ7CiAJCQkJYnJl YWs7CiAJCQljYXNlIDY6Ci0JCQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGggPSA0MDsKKwkJ CQlyZXF1aXJlbWVudHMtPnN0cmVuZ3RoID0gNDA7CiAJCQkJYnJlYWs7CiAJCQljYXNlIDc6Ci0J CQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGggPSA2MDsKKwkJCQlyZXF1aXJlbWVudHMtPnN0 cmVuZ3RoID0gNjA7CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCVdBUk4oMSwgIkNvdWxk IG5vdCBkZWNvZGUgRUNDIGluZm8iKTsKLQkJCQljaGlwLT5iYXNlLmVjY3JlcS5zdGVwX3NpemUg PSAwOworCQkJCXJlcXVpcmVtZW50cy0+c3RlcF9zaXplID0gMDsKIAkJCX0KIAkJfQogCX0gZWxz ZSB7CkBAIC0xMDYsOCArMTA3LDggQEAgc3RhdGljIHZvaWQgc2Ftc3VuZ19uYW5kX2RlY29kZV9p ZChzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwKQogCQkJc3dpdGNoIChjaGlwLT5pZC5kYXRhWzFdKSB7 CiAJCQkvKiBLOUY0RzA4VTBELVNbSXxDXUIwKFQwMCkgKi8KIAkJCWNhc2UgMHhEQzoKLQkJCQlj aGlwLT5iYXNlLmVjY3JlcS5zdGVwX3NpemUgPSA1MTI7Ci0JCQkJY2hpcC0+YmFzZS5lY2NyZXEu c3RyZW5ndGggPSAxOworCQkJCXJlcXVpcmVtZW50cy0+c3RlcF9zaXplID0gNTEyOworCQkJCXJl cXVpcmVtZW50cy0+c3RyZW5ndGggPSAxOwogCQkJCWJyZWFrOwogCiAJCQkvKiBLOUYxRzA4VTBF IDIxbm0gY2hpcHMgZG8gbm90IHN1cHBvcnQgc3VicGFnZSB3cml0ZSAqLwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF90b3NoaWJhLmMgYi9kcml2ZXJzL210ZC9uYW5kL3Jh dy9uYW5kX3Rvc2hpYmEuYwppbmRleCAxM2Y5NjMyZjFjYjQuLmYwMGQ5NThkNzI0ZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF90b3NoaWJhLmMKKysrIGIvZHJpdmVycy9t dGQvbmFuZC9yYXcvbmFuZF90b3NoaWJhLmMKQEAgLTEwMCw2ICsxMDAsNyBAQCBzdGF0aWMgdm9p ZCB0b3NoaWJhX25hbmRfYmVuYW5kX2luaXQoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCkKIAogc3Rh dGljIHZvaWQgdG9zaGliYV9uYW5kX2RlY29kZV9pZChzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwKQog eworCXN0cnVjdCBuYW5kX2VjY19jb25mICpyZXF1aXJlbWVudHMgPSAmY2hpcC0+YmFzZS5lY2Mu cmVxdWlyZW1lbnRzOwogCXN0cnVjdCBtdGRfaW5mbyAqbXRkID0gbmFuZF90b19tdGQoY2hpcCk7 CiAJc3RydWN0IG5hbmRfbWVtb3J5X29yZ2FuaXphdGlvbiAqbWVtb3JnOwogCkBAIC0xMzAsMjAg KzEzMSwyMCBAQCBzdGF0aWMgdm9pZCB0b3NoaWJhX25hbmRfZGVjb2RlX2lkKHN0cnVjdCBuYW5k X2NoaXAgKmNoaXApCiAJICogIC0gMjRubTogOCBiaXQgRUNDIGZvciBlYWNoIDUxMkJ5dGUgaXMg cmVxdWlyZWQuCiAJICovCiAJaWYgKGNoaXAtPmlkLmxlbiA+PSA2ICYmIG5hbmRfaXNfc2xjKGNo aXApKSB7Ci0JCWNoaXAtPmJhc2UuZWNjcmVxLnN0ZXBfc2l6ZSA9IDUxMjsKKwkJcmVxdWlyZW1l bnRzLT5zdGVwX3NpemUgPSA1MTI7CiAJCXN3aXRjaCAoY2hpcC0+aWQuZGF0YVs1XSAmIDB4Nykg ewogCQljYXNlIDB4NDoKLQkJCWNoaXAtPmJhc2UuZWNjcmVxLnN0cmVuZ3RoID0gMTsKKwkJCXJl cXVpcmVtZW50cy0+c3RyZW5ndGggPSAxOwogCQkJYnJlYWs7CiAJCWNhc2UgMHg1OgotCQkJY2hp cC0+YmFzZS5lY2NyZXEuc3RyZW5ndGggPSA0OworCQkJcmVxdWlyZW1lbnRzLT5zdHJlbmd0aCA9 IDQ7CiAJCQlicmVhazsKIAkJY2FzZSAweDY6Ci0JCQljaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0 aCA9IDg7CisJCQlyZXF1aXJlbWVudHMtPnN0cmVuZ3RoID0gODsKIAkJCWJyZWFrOwogCQlkZWZh dWx0OgogCQkJV0FSTigxLCAiQ291bGQgbm90IGdldCBFQ0MgaW5mbyIpOwotCQkJY2hpcC0+YmFz ZS5lY2NyZXEuc3RlcF9zaXplID0gMDsKKwkJCXJlcXVpcmVtZW50cy0+c3RlcF9zaXplID0gMDsK IAkJCWJyZWFrOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvc3Vu eGlfbmFuZC5jIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvc3VueGlfbmFuZC5jCmluZGV4IDY5NTk5 ODU0ZmRkNi4uNDNiMjI1NjRkYTEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9z dW54aV9uYW5kLmMKKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvc3VueGlfbmFuZC5jCkBAIC0x ODA3LDYgKzE4MDcsNyBAQCBzdGF0aWMgdm9pZCBzdW54aV9uYW5kX2VjY19jbGVhbnVwKHN0cnVj dCBuYW5kX2VjY19jdHJsICplY2MpCiAKIHN0YXRpYyBpbnQgc3VueGlfbmFuZF9hdHRhY2hfY2hp cChzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kKQogeworCXN0cnVjdCBuYW5kX2VjY19jb25mICpyZXF1 aXJlbWVudHMgPSAmbmFuZC0+YmFzZS5lY2MucmVxdWlyZW1lbnRzOwogCXN0cnVjdCBtdGRfaW5m byAqbXRkID0gbmFuZF90b19tdGQobmFuZCk7CiAJc3RydWN0IG5hbmRfZWNjX2N0cmwgKmVjYyA9 ICZuYW5kLT5lY2M7CiAJc3RydWN0IGRldmljZV9ub2RlICpucCA9IG5hbmRfZ2V0X2ZsYXNoX25v ZGUobmFuZCk7CkBAIC0xODIxLDggKzE4MjIsOCBAQCBzdGF0aWMgaW50IHN1bnhpX25hbmRfYXR0 YWNoX2NoaXAoc3RydWN0IG5hbmRfY2hpcCAqbmFuZCkKIAluYW5kLT5vcHRpb25zIHw9IE5BTkRf U1VCUEFHRV9SRUFEOwogCiAJaWYgKCFlY2MtPnNpemUpIHsKLQkJZWNjLT5zaXplID0gbmFuZC0+ YmFzZS5lY2NyZXEuc3RlcF9zaXplOwotCQllY2MtPnN0cmVuZ3RoID0gbmFuZC0+YmFzZS5lY2Ny ZXEuc3RyZW5ndGg7CisJCWVjYy0+c2l6ZSA9IHJlcXVpcmVtZW50cy0+c3RlcF9zaXplOworCQll Y2MtPnN0cmVuZ3RoID0gcmVxdWlyZW1lbnRzLT5zdHJlbmd0aDsKIAl9CiAKIAlpZiAoIWVjYy0+ c2l6ZSB8fCAhZWNjLT5zdHJlbmd0aCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3 L3RlZ3JhX25hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L3RlZ3JhX25hbmQuYwppbmRleCAz Y2M5YTRjNDE0NDMuLjMxZDU0N2Q5Njc5NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9y YXcvdGVncmFfbmFuZC5jCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L3RlZ3JhX25hbmQuYwpA QCAtODUzLDcgKzg1Myw3IEBAIHN0YXRpYyBpbnQgdGVncmFfbmFuZF9nZXRfc3RyZW5ndGgoc3Ry dWN0IG5hbmRfY2hpcCAqY2hpcCwgY29uc3QgaW50ICpzdHJlbmd0aCwKIAkJfSBlbHNlIHsKIAkJ CXN0cmVuZ3RoX3NlbCA9IHN0cmVuZ3RoW2ldOwogCi0JCQlpZiAoc3RyZW5ndGhfc2VsIDwgY2hp cC0+YmFzZS5lY2NyZXEuc3RyZW5ndGgpCisJCQlpZiAoc3RyZW5ndGhfc2VsIDwgY2hpcC0+YmFz ZS5lY2MucmVxdWlyZW1lbnRzLnN0cmVuZ3RoKQogCQkJCWNvbnRpbnVlOwogCQl9CiAKQEAgLTkw Niw2ICs5MDYsNyBAQCBzdGF0aWMgaW50IHRlZ3JhX25hbmRfc2VsZWN0X3N0cmVuZ3RoKHN0cnVj dCBuYW5kX2NoaXAgKmNoaXAsIGludCBvb2JzaXplKQogc3RhdGljIGludCB0ZWdyYV9uYW5kX2F0 dGFjaF9jaGlwKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXApCiB7CiAJc3RydWN0IHRlZ3JhX25hbmRf Y29udHJvbGxlciAqY3RybCA9IHRvX3RlZ3JhX2N0cmwoY2hpcC0+Y29udHJvbGxlcik7CisJc3Ry dWN0IG5hbmRfZWNjX2NvbmYgKnJlcXVpcmVtZW50cyA9ICZjaGlwLT5iYXNlLmVjYy5yZXF1aXJl bWVudHM7CiAJc3RydWN0IHRlZ3JhX25hbmRfY2hpcCAqbmFuZCA9IHRvX3RlZ3JhX2NoaXAoY2hp cCk7CiAJc3RydWN0IG10ZF9pbmZvICptdGQgPSBuYW5kX3RvX210ZChjaGlwKTsKIAlpbnQgYml0 c19wZXJfc3RlcDsKQEAgLTkxNyw5ICs5MTgsOSBAQCBzdGF0aWMgaW50IHRlZ3JhX25hbmRfYXR0 YWNoX2NoaXAoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCkKIAljaGlwLT5lY2MubW9kZSA9IE5BTkRf RUNDX0hXOwogCWNoaXAtPmVjYy5zaXplID0gNTEyOwogCWNoaXAtPmVjYy5zdGVwcyA9IG10ZC0+ d3JpdGVzaXplIC8gY2hpcC0+ZWNjLnNpemU7Ci0JaWYgKGNoaXAtPmJhc2UuZWNjcmVxLnN0ZXBf c2l6ZSAhPSA1MTIpIHsKKwlpZiAocmVxdWlyZW1lbnRzLT5zdGVwX3NpemUgIT0gNTEyKSB7CiAJ CWRldl9lcnIoY3RybC0+ZGV2LCAiVW5zdXBwb3J0ZWQgc3RlcCBzaXplICVkXG4iLAotCQkJY2hp cC0+YmFzZS5lY2NyZXEuc3RlcF9zaXplKTsKKwkJCXJlcXVpcmVtZW50cy0+c3RlcF9zaXplKTsK IAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCkBAIC05NTAsNyArOTUxLDcgQEAgc3RhdGljIGludCB0 ZWdyYV9uYW5kX2F0dGFjaF9jaGlwKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXApCiAJCWlmIChyZXQg PCAwKSB7CiAJCQlkZXZfZXJyKGN0cmwtPmRldiwKIAkJCQkiTm8gdmFsaWQgc3RyZW5ndGggZm91 bmQsIG1pbmltdW0gJWRcbiIsCi0JCQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGgpOworCQkJ CXJlcXVpcmVtZW50cy0+c3RyZW5ndGgpOwogCQkJcmV0dXJuIHJldDsKIAkJfQogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL210ZC9uYW5kL3NwaS9jb3JlLmMgYi9kcml2ZXJzL210ZC9uYW5kL3NwaS9j b3JlLmMKaW5kZXggOWVlMTkyNTg1ODU0Li5hYjQxYjk0MzRkODcgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbXRkL25hbmQvc3BpL2NvcmUuYworKysgYi9kcml2ZXJzL210ZC9uYW5kL3NwaS9jb3JlLmMK QEAgLTQ4MCw3ICs0ODAsNyBAQCBzdGF0aWMgaW50IHNwaW5hbmRfY2hlY2tfZWNjX3N0YXR1cyhz dHJ1Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5hbmQsIHU4IHN0YXR1cykKIAkJICogZml4ZWQsIHNv IGxldCdzIHJldHVybiB0aGUgbWF4aW11bSBwb3NzaWJsZSB2YWx1ZSBzbyB0aGF0CiAJCSAqIHdl YXItbGV2ZWxpbmcgbGF5ZXJzIG1vdmUgdGhlIGRhdGEgaW1tZWRpYXRlbHkuCiAJCSAqLwotCQly ZXR1cm4gbmFuZC0+ZWNjcmVxLnN0cmVuZ3RoOworCQlyZXR1cm4gbmFuZC0+ZWNjLmN0eC5jb25m LnN0cmVuZ3RoOwogCiAJY2FzZSBTVEFUVVNfRUNDX1VOQ09SX0VSUk9SOgogCQlyZXR1cm4gLUVC QURNU0c7CkBAIC04NjksNyArODY5LDcgQEAgaW50IHNwaW5hbmRfbWF0Y2hfYW5kX2luaXQoc3Ry dWN0IHNwaW5hbmRfZGV2aWNlICpzcGluYW5kLAogCQkJY29udGludWU7CiAKIAkJbmFuZC0+bWVt b3JnID0gdGFibGVbaV0ubWVtb3JnOwotCQluYW5kLT5lY2NyZXEgPSB0YWJsZVtpXS5lY2NyZXE7 CisJCW5hbmQtPmVjYy5yZXF1aXJlbWVudHMgPSB0YWJsZVtpXS5lY2NyZXE7CiAJCXNwaW5hbmQt PmVjY2luZm8gPSB0YWJsZVtpXS5lY2NpbmZvOwogCQlzcGluYW5kLT5mbGFncyA9IHRhYmxlW2ld LmZsYWdzOwogCQlzcGluYW5kLT5zZWxlY3RfdGFyZ2V0ID0gdGFibGVbaV0uc2VsZWN0X3Rhcmdl dDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvc3BpL21hY3Jvbml4LmMgYi9kcml2ZXJz L210ZC9uYW5kL3NwaS9tYWNyb25peC5jCmluZGV4IGM2MzAwZDlkNjNmOS4uZWY3MTMxMjk2NmEy IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL3NwaS9tYWNyb25peC5jCisrKyBiL2RyaXZl cnMvbXRkL25hbmQvc3BpL21hY3Jvbml4LmMKQEAgLTc4LDEwICs3OCwxMCBAQCBzdGF0aWMgaW50 IG14MzVsZjFnZTRhYl9lY2NfZ2V0X3N0YXR1cyhzdHJ1Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5h bmQsCiAJCSAqIGRhdGEgYXJvdW5kIGlmIGl0J3Mgbm90IG5lY2Vzc2FyeS4KIAkJICovCiAJCWlm IChteDM1bGYxZ2U0YWJfZ2V0X2VjY3NyKHNwaW5hbmQsICZlY2NzcikpCi0JCQlyZXR1cm4gbmFu ZC0+ZWNjcmVxLnN0cmVuZ3RoOworCQkJcmV0dXJuIG5hbmQtPmVjYy5jdHguY29uZi5zdHJlbmd0 aDsKIAotCQlpZiAoV0FSTl9PTihlY2NzciA+IG5hbmQtPmVjY3JlcS5zdHJlbmd0aCB8fCAhZWNj c3IpKQotCQkJcmV0dXJuIG5hbmQtPmVjY3JlcS5zdHJlbmd0aDsKKwkJaWYgKFdBUk5fT04oZWNj c3IgPiBuYW5kLT5lY2MuY3R4LmNvbmYuc3RyZW5ndGggfHwgIWVjY3NyKSkKKwkJCXJldHVybiBu YW5kLT5lY2MuY3R4LmNvbmYuc3RyZW5ndGg7CiAKIAkJcmV0dXJuIGVjY3NyOwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL210ZC9uYW5kL3NwaS90b3NoaWJhLmMgYi9kcml2ZXJzL210ZC9uYW5kL3Nw aS90b3NoaWJhLmMKaW5kZXggMDBkZGFiMDhlNmM2Li40YWMzMzZkM2EzMDQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbXRkL25hbmQvc3BpL3Rvc2hpYmEuYworKysgYi9kcml2ZXJzL210ZC9uYW5kL3Nw aS90b3NoaWJhLmMKQEAgLTc3LDEyICs3NywxMiBAQCBzdGF0aWMgaW50IHRjNThjdmcyczBoX2Vj Y19nZXRfc3RhdHVzKHN0cnVjdCBzcGluYW5kX2RldmljZSAqc3BpbmFuZCwKIAkJICogZGF0YSBh cm91bmQgaWYgaXQncyBub3QgbmVjZXNzYXJ5LgogCQkgKi8KIAkJaWYgKHNwaV9tZW1fZXhlY19v cChzcGluYW5kLT5zcGltZW0sICZvcCkpCi0JCQlyZXR1cm4gbmFuZC0+ZWNjcmVxLnN0cmVuZ3Ro OworCQkJcmV0dXJuIG5hbmQtPmVjYy5jdHguY29uZi5zdHJlbmd0aDsKIAogCQltYmYgPj49IDQ7 CiAKLQkJaWYgKFdBUk5fT04obWJmID4gbmFuZC0+ZWNjcmVxLnN0cmVuZ3RoIHx8ICFtYmYpKQot CQkJcmV0dXJuIG5hbmQtPmVjY3JlcS5zdHJlbmd0aDsKKwkJaWYgKFdBUk5fT04obWJmID4gbmFu ZC0+ZWNjLmN0eC5jb25mLnN0cmVuZ3RoIHx8ICFtYmYpKQorCQkJcmV0dXJuIG5hbmQtPmVjYy5j dHguY29uZi5zdHJlbmd0aDsKIAogCQlyZXR1cm4gbWJmOwogCmRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L210ZC9uYW5kLmggYi9pbmNsdWRlL2xpbnV4L210ZC9uYW5kLmgKaW5kZXggNzhjZjkw NTA4M2M5Li40NWNhYWE0ODkwODUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbXRkL25hbmQu aAorKysgYi9pbmNsdWRlL2xpbnV4L210ZC9uYW5kLmgKQEAgLTEyNCwxMiArMTI0LDE4IEBAIHN0 cnVjdCBuYW5kX3BhZ2VfaW9fcmVxIHsKIAogLyoqCiAgKiBzdHJ1Y3QgbmFuZF9lY2NfY29uZiAt IE5BTkQgRUNDIGNvbmZpZ3VyYXRpb24KKyAqIEBwcm92aWRlcjogRUNDIGVuZ2luZSBwcm92aWRl ciB0eXBlCisgKiBAYWxnbzogRUNDIGFsZ29yaXRobSAoaWYgcmVsZXZhbnQpCiAgKiBAc3RyZW5n dGg6IEVDQyBzdHJlbmd0aAogICogQHN0ZXBfc2l6ZTogTnVtYmVyIG9mIGJ5dGVzIHBlciBzdGVw CisgKiBAZmxhZ3M6IE1pc2MgcHJvcGVydGllcwogICovCiBzdHJ1Y3QgbmFuZF9lY2NfY29uZiB7 CisJdW5zaWduZWQgaW50IHByb3ZpZGVyOworCXVuc2lnbmVkIGludCBhbGdvOwogCXVuc2lnbmVk IGludCBzdHJlbmd0aDsKIAl1bnNpZ25lZCBpbnQgc3RlcF9zaXplOworCXVuc2lnbmVkIGludCBm bGFnczsKIH07CiAKICNkZWZpbmUgTkFORF9FQ0NSRVEoc3RyLCBzdHApIHsgLnN0cmVuZ3RoID0g KHN0ciksIC5zdGVwX3NpemUgPSAoc3RwKSB9CkBAIC0xNjQsMTEgKzE3MCw3OSBAQCBzdHJ1Y3Qg bmFuZF9vcHMgewogCWJvb2wgKCppc2JhZCkoc3RydWN0IG5hbmRfZGV2aWNlICpuYW5kLCBjb25z dCBzdHJ1Y3QgbmFuZF9wb3MgKnBvcyk7CiB9OwogCisvKioKKyAqIHN0cnVjdCBuYW5kX2VjY19j b250ZXh0IC0gQ29udGV4dCBmb3IgdGhlIEVDQyBlbmdpbmUKKyAqIEBjb25mOiBiYXNpYyBFQ0Mg ZW5naW5lIHBhcmFtZXRlcnMKKyAqIEB0b3RhbDogVG90YWwgbnVtYmVyIG9mIGJ5dGVzIHVzZWQg Zm9yIHN0b3JpbmcgRUNDIGNvZGVzLCB0aGlzIGlzIHVzZWQgYnkKKyAqICAgICAgICAgZ2VuZXJp YyBPT0IgbGF5b3V0cworICogQHByaXY6IEVDQyBlbmdpbmUgZHJpdmVyIHByaXZhdGUgZGF0YQor ICovCitzdHJ1Y3QgbmFuZF9lY2NfY29udGV4dCB7CisJc3RydWN0IG5hbmRfZWNjX2NvbmYgY29u ZjsKKwl1bnNpZ25lZCBpbnQgdG90YWw7CisJdm9pZCAqcHJpdjsKK307CisKKy8qKgorICogc3Ry dWN0IG5hbmRfZWNjX2VuZ2luZV9vcHMgLSBHZW5lcmljIEVDQyBlbmdpbmUgb3BlcmF0aW9ucwor ICogQGluaXRfY3R4OiBnaXZlbiBhIGRlc2lyZWQgdXNlciBjb25maWd1cmF0aW9uIGZvciB0aGUg cG9pbnRlZCBOQU5EIGRldmljZSwKKyAqICAgICAgICAgICAgcmVxdWVzdHMgdGhlIEVDQyBlbmdp bmUgZHJpdmVyIHRvIHNldHVwIGEgY29uZmlndXJhdGlvbiB3aXRoCisgKiAgICAgICAgICAgIHZh bHVlcyBpdCBzdXBwb3J0cy4KKyAqIEBjbGVhbnVwX2N0eDogY2xlYW4gdGhlIGNvbnRleHQgaW5p dGlhbGl6ZWQgYnkgQGluaXRfY3R4LgorICogQHByZXBhcmVfaW9fcmVxOiBpcyBjYWxsZWQgYmVm b3JlIHJlYWRpbmcvd3JpdGluZyBhIHBhZ2UgdG8gcHJlcGFyZSB0aGUgSS9PCisgKiAgICAgICAg ICAgICAgICAgIHJlcXVlc3QgdG8gYmUgcGVyZm9ybWVkIHdpdGggRUNDIGNvcnJlY3Rpb24uCisg KiBAZmluaXNoX2lvX3JlcTogaXMgY2FsbGVkIGFmdGVyIHJlYWRpbmcvd3JpdGluZyBhIHBhZ2Ug dG8gdGVybWluYXRlIHRoZSBJL08KKyAqICAgICAgICAgICAgICAgICByZXF1ZXN0IGFuZCBlbnN1 cmUgcHJvcGVyIEVDQyBjb3JyZWN0aW9uLgorICovCitzdHJ1Y3QgbmFuZF9lY2NfZW5naW5lX29w cyB7CisJaW50ICgqaW5pdF9jdHgpKHN0cnVjdCBuYW5kX2RldmljZSAqbmFuZCk7CisJdm9pZCAo KmNsZWFudXBfY3R4KShzdHJ1Y3QgbmFuZF9kZXZpY2UgKm5hbmQpOworCWludCAoKnByZXBhcmVf aW9fcmVxKShzdHJ1Y3QgbmFuZF9kZXZpY2UgKm5hbmQsCisJCQkgICAgICBzdHJ1Y3QgbmFuZF9w YWdlX2lvX3JlcSAqcmVxLAorCQkJICAgICAgdm9pZCAqb29iYnVmKTsKKwlpbnQgKCpmaW5pc2hf aW9fcmVxKShzdHJ1Y3QgbmFuZF9kZXZpY2UgKm5hbmQsCisJCQkgICAgIHN0cnVjdCBuYW5kX3Bh Z2VfaW9fcmVxICpyZXEsCisJCQkgICAgIHZvaWQgKm9vYmJ1Zik7Cit9OworCisvKioKKyAqIHN0 cnVjdCBuYW5kX2VjY19lbmdpbmUgLSBHZW5lcmljIEVDQyBlbmdpbmUgYWJzdHJhY3Rpb24gZm9y IE5BTkQgZGV2aWNlcworICogQG9wczogRUNDIGVuZ2luZSBvcGVyYXRpb25zCisgKi8KK3N0cnVj dCBuYW5kX2VjY19lbmdpbmUgeworCXN0cnVjdCBuYW5kX2VjY19lbmdpbmVfb3BzICpvcHM7Cit9 OworCitpbnQgbmFuZF9lY2NfaW5pdF9jdHgoc3RydWN0IG5hbmRfZGV2aWNlICpuYW5kKTsKK3Zv aWQgbmFuZF9lY2NfY2xlYW51cF9jdHgoc3RydWN0IG5hbmRfZGV2aWNlICpuYW5kKTsKK2ludCBu YW5kX2VjY19wcmVwYXJlX2lvX3JlcShzdHJ1Y3QgbmFuZF9kZXZpY2UgKm5hbmQsCisJCQkgICAg c3RydWN0IG5hbmRfcGFnZV9pb19yZXEgKnJlcSwgdm9pZCAqb29iYnVmKTsKK2ludCBuYW5kX2Vj Y19maW5pc2hfaW9fcmVxKHN0cnVjdCBuYW5kX2RldmljZSAqbmFuZCwKKwkJCSAgIHN0cnVjdCBu YW5kX3BhZ2VfaW9fcmVxICpyZXEsIHZvaWQgKm9vYmJ1Zik7CisKKy8qKgorICogc3RydWN0IG5h bmRfZWNjIC0gSGlnaC1sZXZlbCBFQ0Mgb2JqZWN0CisgKiBAZGVmYXVsdHM6IERlZmF1bHQgdmFs dWVzLCBkZXBlbmQgb24gdGhlIHVuZGVybHlpbmcgc3Vic3lzdGVtCisgKiBAcmVxdWlyZW1lbnRz OiBFQ0MgcmVxdWlyZW1lbnRzIGZyb20gdGhlIE5BTkQgY2hpcCBwZXJzcGVjdGl2ZQorICogQHVz ZXJfY29uZjogVXNlciBkZXNpcmVzIGluIHRlcm1zIG9mIEVDQyBwYXJhbWV0ZXJzCisgKiBAY3R4 OiBFQ0MgY29udGV4dCBmb3IgdGhlIEVDQyBlbmdpbmUsIGRlcml2ZWQgZnJvbSB0aGUgZGV2aWNl IEByZXF1aXJlbWVudHMKKyAqICAgICAgIHRoZSBAdXNlcl9jb25mIGFuZCB0aGUgQGRlZmF1bHRz CisgKiBAb25kaWVfZW5naW5lOiBPbi1kaWUgRUNDIGVuZ2luZSByZWZlcmVuY2UsIGlmIGFueQor ICogQGVuZ2luZTogRUNDIGVuZ2luZSBhY3R1YWxseSBib3VuZAorICovCitzdHJ1Y3QgbmFuZF9l Y2MgeworCXN0cnVjdCBuYW5kX2VjY19jb25mIGRlZmF1bHRzOworCXN0cnVjdCBuYW5kX2VjY19j b25mIHJlcXVpcmVtZW50czsKKwlzdHJ1Y3QgbmFuZF9lY2NfY29uZiB1c2VyX2NvbmY7CisJc3Ry dWN0IG5hbmRfZWNjX2NvbnRleHQgY3R4OworCXN0cnVjdCBuYW5kX2VjY19lbmdpbmUgKm9uZGll X2VuZ2luZTsKKwlzdHJ1Y3QgbmFuZF9lY2NfZW5naW5lICplbmdpbmU7Cit9OworCiAvKioKICAq IHN0cnVjdCBuYW5kX2RldmljZSAtIE5BTkQgZGV2aWNlCiAgKiBAbXRkOiBNVEQgaW5zdGFuY2Ug YXR0YWNoZWQgdG8gdGhlIE5BTkQgZGV2aWNlCiAgKiBAbWVtb3JnOiBtZW1vcnkgbGF5b3V0Ci0g KiBAZWNjcmVxOiBFQ0MgcmVxdWlyZW1lbnRzCiAgKiBAcm93Y29udjogcG9zaXRpb24gdG8gcm93 IGFkZHJlc3MgY29udmVydGVyCiAgKiBAYmJ0OiBiYWQgYmxvY2sgdGFibGUgaW5mbwogICogQG9w czogTkFORCBvcGVyYXRpb25zIGF0dGFjaGVkIHRvIHRoZSBOQU5EIGRldmljZQpAQCAtMTc2LDgg KzI1MCw4IEBAIHN0cnVjdCBuYW5kX29wcyB7CiAgKiBHZW5lcmljIE5BTkQgb2JqZWN0LiBTcGVj aWFsaXplZCBOQU5EIGxheWVycyAocmF3IE5BTkQsIFNQSSBOQU5ELCBPbmVOQU5EKQogICogc2hv dWxkIGRlY2xhcmUgdGhlaXIgb3duIE5BTkQgb2JqZWN0IGVtYmVkZGluZyBhIG5hbmRfZGV2aWNl IHN0cnVjdCAodGhhdCdzCiAgKiBob3cgaW5oZXJpdGFuY2UgaXMgZG9uZSkuCi0gKiBzdHJ1Y3Rf bmFuZF9kZXZpY2UtPm1lbW9yZyBhbmQgc3RydWN0X25hbmRfZGV2aWNlLT5lY2NyZXEgc2hvdWxk IGJlIGZpbGxlZAotICogYXQgZGV2aWNlIGRldGVjdGlvbiB0aW1lIHRvIHJlZmxlY3QgdGhlIE5B TkQgZGV2aWNlCisgKiBzdHJ1Y3RfbmFuZF9kZXZpY2UtPm1lbW9yZyBhbmQgc3RydWN0X25hbmRf ZGV2aWNlLT5lY2MuY3R4LmNvbmYgc2hvdWxkCisgKiBiZSBmaWxsZWQgYXQgZGV2aWNlIGRldGVj dGlvbiB0aW1lIHRvIHJlZmxlY3QgdGhlIE5BTkQgZGV2aWNlCiAgKiBjYXBhYmlsaXRpZXMvcmVx dWlyZW1lbnRzLiBPbmNlIHRoaXMgaXMgZG9uZSBuYW5kZGV2X2luaXQoKSBjYW4gYmUgY2FsbGVk LgogICogSXQgd2lsbCB0YWtlIGNhcmUgb2YgY29udmVydGluZyBOQU5EIGluZm9ybWF0aW9uIGlu dG8gTVREIG9uZXMsIHdoaWNoIG1lYW5zCiAgKiB0aGUgc3BlY2lhbGl6ZWQgTkFORCBsYXllcnMg c2hvdWxkIG5ldmVyIG1hbnVhbGx5IHR3ZWFrCkBAIC0xODYsNyArMjYwLDcgQEAgc3RydWN0IG5h bmRfb3BzIHsKIHN0cnVjdCBuYW5kX2RldmljZSB7CiAJc3RydWN0IG10ZF9pbmZvIG10ZDsKIAlz dHJ1Y3QgbmFuZF9tZW1vcnlfb3JnYW5pemF0aW9uIG1lbW9yZzsKLQlzdHJ1Y3QgbmFuZF9lY2Nf Y29uZiBlY2NyZXE7CisJc3RydWN0IG5hbmRfZWNjIGVjYzsKIAlzdHJ1Y3QgbmFuZF9yb3dfY29u dmVydGVyIHJvd2NvbnY7CiAJc3RydWN0IG5hbmRfYmJ0IGJidDsKIAljb25zdCBzdHJ1Y3QgbmFu ZF9vcHMgKm9wczsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbXRkL3NwaW5hbmQuaCBiL2lu Y2x1ZGUvbGludXgvbXRkL3NwaW5hbmQuaAppbmRleCAzMDA4ZGU1NGY5NTguLjc1YTI4ZGM3OWE5 YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tdGQvc3BpbmFuZC5oCisrKyBiL2luY2x1ZGUv bGludXgvbXRkL3NwaW5hbmQuaApAQCAtMTY4LDcgKzE2OCw3IEBAIHN0cnVjdCBzcGluYW5kX2lk IHsKICAqCSAgICBtYXRjaCwgMCBpZiB0aGUgbWFudWZhY3R1cmVyIElEIGRvZXMgbm90IG1hdGNo IGFuZCBhIG5lZ2F0aXZlCiAgKgkgICAgZXJyb3IgY29kZSBvdGhlcndpc2UuIFdoZW4gdHJ1ZSBp cyByZXR1cm5lZCwgdGhlIGNvcmUgYXNzdW1lcwogICoJICAgIHRoYXQgcHJvcGVydGllcyBvZiB0 aGUgTkFORCBjaGlwIChzcGluYW5kLT5iYXNlLm1lbW9yZyBhbmQKLSAqCSAgICBzcGluYW5kLT5i YXNlLmVjY3JlcSkgaGF2ZSBiZWVuIGZpbGxlZAorICoJICAgIHNwaW5hbmQtPmJhc2UuZWNjLmN0 eC5jb25mKSBoYXZlIGJlZW4gZmlsbGVkCiAgKiBAaW5pdDogaW5pdGlhbGl6ZSBhIFNQSSBOQU5E IGRldmljZQogICogQGNsZWFudXA6IGNsZWFudXAgYSBTUEkgTkFORCBkZXZpY2UKICAqCi0tIAoy LjE5LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwps aW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hcm0ta2VybmVsCg==