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.1 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=unavailable 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 CA95BC43381 for ; Thu, 21 Feb 2019 10:06:20 +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 92A0D21738 for ; Thu, 21 Feb 2019 10:06:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Nk0I8Nfy" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 92A0D21738 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=wocEpPLSNYmjqlcjwB/FUzBYTUypnVzz+nqjLzKXO1k=; b=Nk0I8NfyQ9oee1 5f5FvRFI4EucnEWDPxlqixUGGj3RqjepolKcyJ7pCy8RiXZWLB6qTXyqVk+YrBQdy1KKl2imnRCN/ CL7B8bnAB4jqrqzq42tK0Rrvt+bdPtH7fgn2JAV+eK50oNceHiqhOK227mD5rDR6zOxYXOi6eW78/ EJ5hwhxDCiH6qwBMpFw63BvXvrs/oMSCKJZgXbyf9d1NQ7MHX9rLF5I+xCy5vIArmzyV3s25bYmeq 7hl98+wBbOn/63jJwEvpxQITt0AdT7U7ESFBLP2bGo/u6yQrAs/eaN/E9d9xB0aX6MDBl4ZCFjhK9 bJaoxMQegtNE3T2bo+Ug==; 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 1gwlF6-0004bn-Bs; Thu, 21 Feb 2019 10:06:12 +0000 Received: from relay11.mail.gandi.net ([217.70.178.231]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gwlBb-0007Jk-I3; Thu, 21 Feb 2019 10:02:45 +0000 Received: from localhost.localdomain (aaubervilliers-681-1-81-190.w90-88.abo.wanadoo.fr [90.88.23.190]) (Authenticated sender: miquel.raynal@bootlin.com) by relay11.mail.gandi.net (Postfix) with ESMTPSA id 4CFD3100012; Thu, 21 Feb 2019 10:02:31 +0000 (UTC) From: Miquel Raynal To: Boris Brezillon , Richard Weinberger , David Woodhouse , Brian Norris , Marek Vasut , Tudor Ambarus Subject: [RFC PATCH 03/27] mtd: nand: Introduce the ECC engine abstraction Date: Thu, 21 Feb 2019 11:01:52 +0100 Message-Id: <20190221100216.25255-4-miquel.raynal@bootlin.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190221100216.25255-1-miquel.raynal@bootlin.com> References: <20190221100216.25255-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-20190221_020235_906193_BB939B1A X-CRM114-Status: GOOD ( 26.75 ) 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 , 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 ICAgfCAgIDMgKwogZHJpdmVycy9tdGQvbmFuZC9lY2MvTWFrZWZpbGUgICAgICAgICAgICAgICAg fCAgIDMgKwogZHJpdmVycy9tdGQvbmFuZC9lY2MvZW5naW5lLmMgICAgICAgICAgICAgICAgfCAx MzQgKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9tdGQvbmFuZC9yYXcvYXRtZWwvbmFuZC1j b250cm9sbGVyLmMgfCAgIDkgKy0KIGRyaXZlcnMvbXRkL25hbmQvcmF3L2dwbWktbmFuZC9ncG1p LW5hbmQuYyAgIHwgIDEyICstCiBkcml2ZXJzL210ZC9uYW5kL3Jhdy9tYXJ2ZWxsX25hbmQuYyAg ICAgICAgICB8ICAgNyArLQogZHJpdmVycy9tdGQvbmFuZC9yYXcvbXRrX25hbmQuYyAgICAgICAg ICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfYmFzZS5jICAgICAgICAg ICAgIHwgIDE3ICstLQogZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9lc210LmMgICAgICAgICAg ICAgfCAgMTEgKy0KIGRyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfaHluaXguYyAgICAgICAgICAg IHwgIDQxICsrKy0tLQogZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9qZWRlYy5jICAgICAgICAg ICAgfCAgIDQgKy0KIGRyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfbWljcm9uLmMgICAgICAgICAg IHwgIDE0ICstCiBkcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX29uZmkuYyAgICAgICAgICAgICB8 ICAgOCArLQogZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9zYW1zdW5nLmMgICAgICAgICAgfCAg MTkgKy0tCiBkcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX3Rvc2hpYmEuYyAgICAgICAgICB8ICAx MSArLQogZHJpdmVycy9tdGQvbmFuZC9yYXcvc3VueGlfbmFuZC5jICAgICAgICAgICAgfCAgIDUg Ky0KIGRyaXZlcnMvbXRkL25hbmQvcmF3L3RlZ3JhX25hbmQuYyAgICAgICAgICAgIHwgICA5ICst CiBkcml2ZXJzL210ZC9uYW5kL3NwaS9jb3JlLmMgICAgICAgICAgICAgICAgICB8ICAgOCArLQog ZHJpdmVycy9tdGQvbmFuZC9zcGkvbWFjcm9uaXguYyAgICAgICAgICAgICAgfCAgIDYgKy0KIGRy aXZlcnMvbXRkL25hbmQvc3BpL3Rvc2hpYmEuYyAgICAgICAgICAgICAgIHwgICA2ICstCiBpbmNs dWRlL2xpbnV4L210ZC9uYW5kLmggICAgICAgICAgICAgICAgICAgICB8IDExMiArKysrKysrKysr KysrKy0tCiBpbmNsdWRlL2xpbnV4L210ZC9zcGluYW5kLmggICAgICAgICAgICAgICAgICB8ICAg NCArLQogMjQgZmlsZXMgY2hhbmdlZCwgMzQ5IGluc2VydGlvbnMoKyksIDEwMCBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL210ZC9uYW5kL2VjYy9LY29uZmlnCiBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tdGQvbmFuZC9lY2MvTWFrZWZpbGUKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL210ZC9uYW5kL2VjYy9lbmdpbmUuYwoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbXRkL25hbmQvS2NvbmZpZyBiL2RyaXZlcnMvbXRkL25hbmQvS2NvbmZpZwppbmRleCBlOGQy NmE3MTU5MjIuLmJjMGMyNmZjYjE5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9LY29u ZmlnCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvS2NvbmZpZwpAQCAtMTAsNSArMTAsNiBAQCBpZiBN VERfTkFORF9DT1JFCiBzb3VyY2UgImRyaXZlcnMvbXRkL25hbmQvb25lbmFuZC9LY29uZmlnIgog c291cmNlICJkcml2ZXJzL210ZC9uYW5kL3Jhdy9LY29uZmlnIgogc291cmNlICJkcml2ZXJzL210 ZC9uYW5kL3NwaS9LY29uZmlnIgorc291cmNlICJkcml2ZXJzL210ZC9uYW5kL2VjYy9LY29uZmln IgogCiBlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9NYWtlZmlsZSBiL2RyaXZl cnMvbXRkL25hbmQvTWFrZWZpbGUKaW5kZXggN2VjZDgwYzBhNjZlLi45NzcyZTc4MTUzNGQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9tdGQvbmFu ZC9NYWtlZmlsZQpAQCAtNiwzICs2LDQgQEAgb2JqLSQoQ09ORklHX01URF9OQU5EX0NPUkUpICs9 IG5hbmRjb3JlLm8KIG9iai15CSs9IG9uZW5hbmQvCiBvYmoteQkrPSByYXcvCiBvYmoteQkrPSBz cGkvCitvYmoteQkrPSBlY2MvCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL2VjYy9LY29u ZmlnIGIvZHJpdmVycy9tdGQvbmFuZC9lY2MvS2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjY2YzM5NmRjYmZiZAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZl cnMvbXRkL25hbmQvZWNjL0tjb25maWcKQEAgLTAsMCArMSwzIEBACittZW51ICJFQ0MgZW5naW5l IHN1cHBvcnQiCisKK2VuZG1lbnUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvZWNjL01h a2VmaWxlIGIvZHJpdmVycy9tdGQvbmFuZC9lY2MvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42YTQyNTc3YmE0MjQKLS0tIC9kZXYvbnVsbAorKysgYi9k cml2ZXJzL210ZC9uYW5kL2VjYy9NYWtlZmlsZQpAQCAtMCwwICsxLDMgQEAKKyMgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKworb2JqLSQoQ09ORklHX01URF9OQU5EX0NPUkUpICs9 IGVuZ2luZS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL2VjYy9lbmdpbmUuYyBiL2Ry aXZlcnMvbXRkL25hbmQvZWNjL2VuZ2luZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uZTNkOGJiMDkyZTJhCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tdGQv bmFuZC9lY2MvZW5naW5lLmMKQEAgLTAsMCArMSwxMzQgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wCisvKgorICogR2VuZXJpYyBFcnJvci1Db3JyZWN0aW5nIENvZGUgKEVD QykgZW5naW5lCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE5IE1hY3Jvbml4CisgKiBBdXRob3I6 CisgKiAgICAgTWlxdcOobCBSQVlOQUwgPG1pcXVlbC5yYXluYWxAYm9vdGxpbi5jb20+CisgKgor ICoKKyAqIFRoaXMgZmlsZSBkZXNjcmliZXMgdGhlIGFic3RyYWN0aW9uIG9mIGFueSBOQU5EIEVD QyBlbmdpbmUuIEl0IGhhcyBiZWVuCisgKiBkZXNpZ25lZCB0byBmaXQgbW9zdCBjYXNlcywgaW5j bHVkaW5nIHBhcmFsbGVsIE5BTkRzIGFuZCBTUEktTkFORHMuCisgKgorICogVGhlcmUgYXJlIHRo cmVlIG1haW4gc2l0dWF0aW9ucyB3aGVyZSBpbnN0YW50aWF0aW5nIHRoaXMgRUNDIGVuZ2luZSBt YWtlcworICogc2Vuc2U6CisgKiAgIC0gImV4dGVybmFsIjogVGhlIEVDQyBlbmdpbmUgaXMgb3V0 c2lkZSB0aGUgTkFORCBwaXBlbGluZSwgdHlwaWNhbGx5IHRoaXMKKyAqICAgICAgICAgICAgICAg ICBpcyBhIHNvZnR3YXJlIEVDQyBlbmdpbmUuIE9uZSBjYW4gYWxzbyBpbWFnaW5lIGEgZ2VuZXJp YworICogICAgICAgICAgICAgICAgIGhhcmR3YXJlIEVDQyBlbmdpbmUgd2hpY2ggd291bGQgYmUg YW4gSVAgaXRzZWxmLiBJbnRlcmFjdGluZworICogICAgICAgICAgICAgICAgIHdpdGggYSBTUEkt TkFORCBkZXZpY2Ugd2l0aG91dCBvbi1kaWUgRUNDIGNvdWxkIGJlIGFjaGlldmVkCisgKiAgICAg ICAgICAgICAgICAgdGhhbmtzIHRvIHRoZSB1c2Ugb2Ygc3VjaCBleHRlcm5hbCBlbmdpbmUuCisg KiAgIC0gInBpcGVsaW5lZCI6IFRoZSBFQ0MgZW5naW5lIGlzIGluc2lkZSB0aGUgTkFORCBwaXBl bGluZSwgaWUuIG9uIHRoZQorICogICAgICAgICAgICAgICAgICBjb250cm9sbGVyJ3Mgc2lkZS4g VGhpcyBpcyB0aGUgY2FzZSBvZiBtb3N0IG9mIHRoZSByYXcgTkFORAorICogICAgICAgICAgICAg ICAgICBjb250cm9sbGVycy4gVGhlc2UgY29udHJvbGxlcnMgdXN1YWxseSBlbWJlZCBhbiBoYXJk d2FyZSBFQ0MKKyAqICAgICAgICAgICAgICAgICAgZW5naW5lIHdoaWNoIGlzIG1hbmFnZWQgdGhh bmtzIHRvIHRoZSBzYW1lIHJlZ2lzdGVyIHNldCBhcworICogICAgICAgICAgICAgICAgICB0aGUg Y29udHJvbGxlcidzLgorICogICAtICJvbmRpZSI6IFRoZSBFQ0MgZW5naW5lIGlzIGluc2lkZSB0 aGUgTkFORCBwaXBlbGluZSwgb24gdGhlIGNoaXAncyBzaWRlLgorICogICAgICAgICAgICAgIFNv bWUgTkFORCBjaGlwcyBjYW4gY29ycmVjdCB0aGVtc2VsdmVzIHRoZSBkYXRhLiBUaGUgb24tZGll CisgKiAgICAgICAgICAgICAgY29ycmVjdGlvbiBjYW4gYmUgZW5hYmxlZCwgZGlzYWJsZWQgYW5k IHRoZSBzdGF0dXMgb2YgdGhlCisgKiAgICAgICAgICAgICAgY29ycmVjdGlvbiBhZnRlciBhIHJl YWQgbWF5IGJlIHJldHJpZXZlZCB3aXRoIGEgTkFORCBjb21tYW5kCisgKiAgICAgICAgICAgICAg KG1heSBiZSB2ZW5kb3Igc3BlY2lmaWMpLgorICoKKyAqIEJlc2lkZXMgdGhlIGluaXRpYWwgc2V0 dXAgYW5kIGZpbmFsIGNsZWFudXBzLCB0aGUgaW50ZXJmYWNlcyBhcmUgcmF0aGVyCisgKiBzaW1w bGU6CisgKiAgIC0gInByZXBhcmUiOiBQcmVwYXJlIGFuIEkvTyByZXF1ZXN0LCBjaGVjayB0aGUg RUNDIGVuZ2luZSBpcyBlbmFibGVkIG9yCisgKiAgICAgICAgICAgICAgICBkaXNhYmxlZCBhcyBy ZXF1ZXN0ZWQgYmVmb3JlIHRoZSBJL08uIEluIGNhc2Ugb2Ygc29mdHdhcmUKKyAqICAgICAgICAg ICAgICAgIGNvcnJlY3Rpb24sIHRoaXMgc3RlcCBtYXkgaW52b2x2ZSB0byBkZXJpdmUgdGhlIEVD QyBieXRlcyBhbmQKKyAqICAgICAgICAgICAgICAgIHBsYWNlIHRoZW0gaW4gdGhlIE9PQiBhcmVh IGJlZm9yZSBhIHdyaXRlLgorICogICAtICJmaW5pc2giOiBGaW5pc2ggYW4gSS9PIHJlcXVlc3Qs IGNoZWNrIHRoZSBzdGF0dXMgb2YgdGhlIG9wZXJhdGlvbiBpZS4KKyAqICAgICAgICAgICAgICAg dGhlIGRhdGEgdmFsaWRpdHkgaW4gY2FzZSBvZiBhIHJlYWQgKHJlcG9ydCB0byB0aGUgdXBwZXIg bGF5ZXIKKyAqICAgICAgICAgICAgICAgYW55IGJpdGZsaXAvZXJyb3JzKS4KKyAqCisgKiBCb3Ro IHByZXBhcmUvZmluaXNoIGNhbGxiYWNrcyBhcmUgc3VwcG9zZWQgdG8gZW5jbG9zZSBJL08gcmVx dWVzdCBhbmQgd2lsbAorICogYmVoYXZlIGRpZmZlcmVudGx5IGRlcGVuZGluZyBvbiB0aGUgZGVz aXJlZCBjb3JyZWN0aW9uOgorICogICAtICJyYXciOiBDb3JyZWN0aW9uIGRpc2FibGVkCisgKiAg IC0gImVjYyI6IENvcnJlY3Rpb24gZW5hYmxlZAorICoKKyAqIFRoZSByZXF1ZXN0IGRpcmVjdGlv biBpcyBpbXBhY3RpbmcgdGhlIGxvZ2ljIGFzIHdlbGw6CisgKiAgIC0gInJlYWQiOiBMb2FkIGRh dGEgZnJvbSB0aGUgTkFORCBjaGlwCisgKiAgIC0gIndyaXRlIjogU3RvcmUgZGF0YSBpbiB0aGUg TkFORCBjaGlwCisgKgorICogTWl4aW5nIGFsbCB0aGlzIGNvbWJpbmF0aW9ucyB0b2dldGhlciBn aXZlcyB0aGUgZm9sbG93aW5nIGJlaGF2aW9yLgorICoKKyAqIFsiZXh0ZXJuYWwiIEVDQyBlbmdp bmVdCisgKiAgIC0gZXh0ZXJuYWwgKyBwcmVwYXJlICsgcmF3ICsgcmVhZDogZG8gbm90aGluZwor ICogICAtIGV4dGVybmFsICsgZmluaXNoICArIHJhdyArIHJlYWQ6IGRvIG5vdGhpbmcKKyAqICAg LSBleHRlcm5hbCArIHByZXBhcmUgKyByYXcgKyB3cml0ZTogZG8gbm90aGluZworICogICAtIGV4 dGVybmFsICsgZmluaXNoICArIHJhdyArIHdyaXRlOiBkbyBub3RoaW5nCisgKiAgIC0gZXh0ZXJu YWwgKyBwcmVwYXJlICsgZWNjICsgcmVhZDogZG8gbm90aGluZworICogICAtIGV4dGVybmFsICsg ZmluaXNoICArIGVjYyArIHJlYWQ6IGNhbGN1bGF0ZSBleHBlY3RlZCBFQ0MgYnl0ZXMsIGV4dHJh Y3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFQ0MgYnl0ZXMgZnJv bSBPT0IgYnVmZmVyLCBjb3JyZWN0CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYW5kIHJlcG9ydCBhbnkgYml0ZmxpcC9lcnJvcgorICogICAtIGV4dGVybmFsICsgcHJl cGFyZSArIGVjYyArIHdyaXRlOiBjYWxjdWxhdGUgRUNDIGJ5dGVzIGFuZCBzdG9yZSB0aGVtIGF0 CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSByaWdodCBwbGFj ZSBpbiB0aGUgT09CIGJ1ZmZlciBiYXNlZAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvbiB0aGUgT09CIGxheW91dAorICogICAtIGV4dGVybmFsICsgZmluaXNoICAr IGVjYyArIHdyaXRlOiBkbyBub3RoaW5nCisgKgorICogWyJwaXBlbGluZWQiIEVDQyBlbmdpbmVd CisgKiAgIC0gcGlwZWxpbmVkICsgcHJlcGFyZSArIHJhdyArIHJlYWQ6IGRpc2FibGUgdGhlIGNv bnRyb2xsZXIncyBFQ0MgZW5naW5lIGlmCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFjdGl2YXRlZAorICogICAtIHBpcGVsaW5lZCArIGZpbmlzaCAgKyByYXcgKyBy ZWFkOiBkbyBub3RoaW5nCisgKiAgIC0gcGlwZWxpbmVkICsgcHJlcGFyZSArIHJhdyArIHdyaXRl OiBkaXNhYmxlIHRoZSBjb250cm9sbGVyJ3MgRUNDIGVuZ2luZSBpZgorICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGVkCisgKiAgIC0gcGlwZWxpbmVkICsg ZmluaXNoICArIHJhdyArIHdyaXRlOiBkbyBub3RoaW5nCisgKiAgIC0gcGlwZWxpbmVkICsgcHJl cGFyZSArIGVjYyArIHJlYWQ6IGVuYWJsZSB0aGUgY29udHJvbGxlcidzIEVDQyBlbmdpbmUgaWYK KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVhY3RpdmF0ZWQKKyAq ICAgLSBwaXBlbGluZWQgKyBmaW5pc2ggICsgZWNjICsgcmVhZDogY2hlY2sgdGhlIHN0YXR1cywg cmVwb3J0IGFueQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJv ci9iaXRmbGlwCisgKiAgIC0gcGlwZWxpbmVkICsgcHJlcGFyZSArIGVjYyArIHdyaXRlOiBlbmFi bGUgdGhlIGNvbnRyb2xsZXIncyBFQ0MgZW5naW5lIGlmCisgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkZWFjdGl2YXRlZAorICogICAtIHBpcGVsaW5lZCArIGZpbmlz aCAgKyBlY2MgKyB3cml0ZTogZG8gbm90aGluZworICoKKyAqIFsib25kaWUiIEVDQyBlbmdpbmVd CisgKiAgIC0gb25kaWUgKyBwcmVwYXJlICsgcmF3ICsgcmVhZDogc2VuZCBjb21tYW5kcyB0byBk aXNhYmxlIHRoZSBvbi1jaGlwIEVDQworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVuZ2luZSBpZiBhY3RpdmF0ZWQKKyAqICAgLSBvbmRpZSArIGZpbmlzaCAgKyByYXcgKyBy ZWFkOiBkbyBub3RoaW5nCisgKiAgIC0gb25kaWUgKyBwcmVwYXJlICsgcmF3ICsgd3JpdGU6IHNl bmQgY29tbWFuZHMgdG8gZGlzYWJsZSB0aGUgb24tY2hpcCBFQ0MKKyAqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZW5naW5lIGlmIGFjdGl2YXRlZAorICogICAtIG9uZGllICsg ZmluaXNoICArIHJhdyArIHdyaXRlOiBkbyBub3RoaW5nCisgKiAgIC0gb25kaWUgKyBwcmVwYXJl ICsgZWNjICsgcmVhZDogc2VuZCBjb21tYW5kcyB0byBlbmFibGUgdGhlIG9uLWNoaXAgRUNDCisg KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5naW5lIGlmIGRlYWN0aXZhdGVk CisgKiAgIC0gb25kaWUgKyBmaW5pc2ggICsgZWNjICsgcmVhZDogc2VuZCBjb21tYW5kcyB0byBj aGVjayB0aGUgc3RhdHVzLCByZXBvcnQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhbnkgZXJyb3IvYml0ZmxpcAorICogICAtIG9uZGllICsgcHJlcGFyZSArIGVjYyArIHdy aXRlOiBzZW5kIGNvbW1hbmRzIHRvIGVuYWJsZSB0aGUgb24tY2hpcCBFQ0MKKyAqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5naW5lIGlmIGRlYWN0aXZhdGVkCisgKiAgIC0g b25kaWUgKyBmaW5pc2ggICsgZWNjICsgd3JpdGU6IGRvIG5vdGhpbmcKKyAqLworCisjaW5jbHVk ZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL25hbmQuaD4KKworaW50IG5h bmRfZWNjX2luaXRfY3R4KHN0cnVjdCBuYW5kX2RldmljZSAqbmFuZCkKK3sKKwlpZiAoIW5hbmQt PmVjYy5lbmdpbmUtPm9wcy0+aW5pdF9jdHgpCisJCXJldHVybiAwOworCisJcmV0dXJuIG5hbmQt PmVjYy5lbmdpbmUtPm9wcy0+aW5pdF9jdHgobmFuZCk7Cit9CisKK3ZvaWQgbmFuZF9lY2NfY2xl YW51cF9jdHgoc3RydWN0IG5hbmRfZGV2aWNlICpuYW5kKQoreworCWlmIChuYW5kLT5lY2MuZW5n aW5lLT5vcHMtPmNsZWFudXBfY3R4KQorCQluYW5kLT5lY2MuZW5naW5lLT5vcHMtPmNsZWFudXBf Y3R4KG5hbmQpOworfQorCitpbnQgbmFuZF9lY2NfcHJlcGFyZV9pb19yZXEoc3RydWN0IG5hbmRf ZGV2aWNlICpuYW5kLAorCQkJICAgIHN0cnVjdCBuYW5kX3BhZ2VfaW9fcmVxICpyZXEsIHZvaWQg Km9vYmJ1ZikKK3sKKwlpZiAoIW5hbmQtPmVjYy5lbmdpbmUtPm9wcy0+cHJlcGFyZV9pb19yZXEp CisJCXJldHVybiAwOworCisJcmV0dXJuIG5hbmQtPmVjYy5lbmdpbmUtPm9wcy0+cHJlcGFyZV9p b19yZXEobmFuZCwgcmVxLCBvb2JidWYpOworfQorCitpbnQgbmFuZF9lY2NfZmluaXNoX2lvX3Jl cShzdHJ1Y3QgbmFuZF9kZXZpY2UgKm5hbmQsCisJCQkgICBzdHJ1Y3QgbmFuZF9wYWdlX2lvX3Jl cSAqcmVxLCB2b2lkICpvb2JidWYpCit7CisJaWYgKCFuYW5kLT5lY2MuZW5naW5lLT5vcHMtPmZp bmlzaF9pb19yZXEpCisJCXJldHVybiAwOworCisJcmV0dXJuIG5hbmQtPmVjYy5lbmdpbmUtPm9w cy0+ZmluaXNoX2lvX3JlcShuYW5kLCByZXEsIG9vYmJ1Zik7Cit9CisKK01PRFVMRV9MSUNFTlNF KCJHUEwgdjIiKTsKK01PRFVMRV9BVVRIT1IoIk1pcXVlbCBSYXluYWwgPG1pcXVlbC5yYXluYWxA Ym9vdGxpbi5jb20+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkdlbmVyaWMgRUNDIGVuZ2luZSIp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvYXRtZWwvbmFuZC1jb250cm9sbGVy LmMgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9hdG1lbC9uYW5kLWNvbnRyb2xsZXIuYwppbmRleCA5 ODY3ZTkxMTUzOTkuLjNkYWNhYTM1MmE1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9y YXcvYXRtZWwvbmFuZC1jb250cm9sbGVyLmMKKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvYXRt ZWwvbmFuZC1jb250cm9sbGVyLmMKQEAgLTEwMzksNiArMTAzOSw3IEBAIHN0YXRpYyBpbnQgYXRt ZWxfaHNtY19uYW5kX3BtZWNjX3JlYWRfcGFnZV9yYXcoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwK IAogc3RhdGljIGludCBhdG1lbF9uYW5kX3BtZWNjX2luaXQoc3RydWN0IG5hbmRfY2hpcCAqY2hp cCkKIHsKKwlzdHJ1Y3QgbmFuZF9lY2NfY29uZiAqcmVxdWlyZW1lbnRzID0gJmNoaXAtPmJhc2Uu ZWNjLnJlcXVpcmVtZW50czsKIAlzdHJ1Y3QgbXRkX2luZm8gKm10ZCA9IG5hbmRfdG9fbXRkKGNo aXApOwogCXN0cnVjdCBhdG1lbF9uYW5kICpuYW5kID0gdG9fYXRtZWxfbmFuZChjaGlwKTsKIAlz dHJ1Y3QgYXRtZWxfbmFuZF9jb250cm9sbGVyICpuYzsKQEAgLTEwNjgsMTUgKzEwNjksMTUgQEAg c3RhdGljIGludCBhdG1lbF9uYW5kX3BtZWNjX2luaXQoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCkK IAkJcmVxLmVjYy5zdHJlbmd0aCA9IEFUTUVMX1BNRUNDX01BWElNSVpFX0VDQ19TVFJFTkdUSDsK IAllbHNlIGlmIChjaGlwLT5lY2Muc3RyZW5ndGgpCiAJCXJlcS5lY2Muc3RyZW5ndGggPSBjaGlw LT5lY2Muc3RyZW5ndGg7Ci0JZWxzZSBpZiAoY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGgpCi0J CXJlcS5lY2Muc3RyZW5ndGggPSBjaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aDsKKwllbHNlIGlm IChyZXF1aXJlbWVudHMtPnN0cmVuZ3RoKQorCQlyZXEuZWNjLnN0cmVuZ3RoID0gcmVxdWlyZW1l bnRzLT5zdHJlbmd0aDsKIAllbHNlCiAJCXJlcS5lY2Muc3RyZW5ndGggPSBBVE1FTF9QTUVDQ19N QVhJTUlaRV9FQ0NfU1RSRU5HVEg7CiAKIAlpZiAoY2hpcC0+ZWNjLnNpemUpCiAJCXJlcS5lY2Mu c2VjdG9yc2l6ZSA9IGNoaXAtPmVjYy5zaXplOwotCWVsc2UgaWYgKGNoaXAtPmJhc2UuZWNjcmVx LnN0ZXBfc2l6ZSkKLQkJcmVxLmVjYy5zZWN0b3JzaXplID0gY2hpcC0+YmFzZS5lY2NyZXEuc3Rl cF9zaXplOworCWVsc2UgaWYgKHJlcXVpcmVtZW50cy0+c3RlcF9zaXplKQorCQlyZXEuZWNjLnNl Y3RvcnNpemUgPSByZXF1aXJlbWVudHMtPnN0ZXBfc2l6ZTsKIAllbHNlCiAJCXJlcS5lY2Muc2Vj dG9yc2l6ZSA9IEFUTUVMX1BNRUNDX1NFQ1RPUl9TSVpFX0FVVE87CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbXRkL25hbmQvcmF3L2dwbWktbmFuZC9ncG1pLW5hbmQuYyBiL2RyaXZlcnMvbXRkL25h bmQvcmF3L2dwbWktbmFuZC9ncG1pLW5hbmQuYwppbmRleCBkYmVmYjZiYWM1YzkuLjFkMGY1NTYx MjlkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvZ3BtaS1uYW5kL2dwbWktbmFu ZC5jCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L2dwbWktbmFuZC9ncG1pLW5hbmQuYwpAQCAt MjA0LDggKzIwNCw4IEBAIHN0YXRpYyBpbnQgc2V0X2dlb21ldHJ5X2J5X2VjY19pbmZvKHN0cnVj dCBncG1pX25hbmRfZGF0YSAqdGhpcywKIAlkZWZhdWx0OgogCQlkZXZfZXJyKHRoaXMtPmRldiwK IAkJCSJ1bnN1cHBvcnRlZCBuYW5kIGNoaXAuIGVjYyBiaXRzIDogJWQsIGVjYyBzaXplIDogJWRc biIsCi0JCQljaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCwKLQkJCWNoaXAtPmJhc2UuZWNjcmVx LnN0ZXBfc2l6ZSk7CisJCQljaGlwLT5iYXNlLmVjYy5yZXF1aXJlbWVudHMuc3RyZW5ndGgsCisJ CQljaGlwLT5iYXNlLmVjYy5yZXF1aXJlbWVudHMuc3RlcF9zaXplKTsKIAkJcmV0dXJuIC1FSU5W QUw7CiAJfQogCWdlby0+ZWNjX2NodW5rX3NpemUgPSBlY2Nfc3RlcDsKQEAgLTQxOCwxMyArNDE4 LDEzIEBAIGludCBjb21tb25fbmZjX3NldF9nZW9tZXRyeShzdHJ1Y3QgZ3BtaV9uYW5kX2RhdGEg KnRoaXMpCiAKIAlpZiAoKG9mX3Byb3BlcnR5X3JlYWRfYm9vbCh0aGlzLT5kZXYtPm9mX25vZGUs ICJmc2wsdXNlLW1pbmltdW0tZWNjIikpCiAJCQkJfHwgbGVnYWN5X3NldF9nZW9tZXRyeSh0aGlz KSkgewotCQlpZiAoIShjaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCA+IDAgJiYKLQkJICAgICAg Y2hpcC0+YmFzZS5lY2NyZXEuc3RlcF9zaXplID4gMCkpCisJCWlmICghKGNoaXAtPmJhc2UuZWNj LnJlcXVpcmVtZW50cy5zdHJlbmd0aCA+IDAgJiYKKwkJICAgICAgY2hpcC0+YmFzZS5lY2MucmVx dWlyZW1lbnRzLnN0ZXBfc2l6ZSA+IDApKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAKIAkJcmV0dXJu IHNldF9nZW9tZXRyeV9ieV9lY2NfaW5mbyh0aGlzLAotCQkJCQkJY2hpcC0+YmFzZS5lY2NyZXEu c3RyZW5ndGgsCi0JCQkJCQljaGlwLT5iYXNlLmVjY3JlcS5zdGVwX3NpemUpOworCQkJCQkJY2hp cC0+YmFzZS5lY2MucmVxdWlyZW1lbnRzLnN0cmVuZ3RoLAorCQkJCQkJY2hpcC0+YmFzZS5lY2Mu cmVxdWlyZW1lbnRzLnN0ZXBfc2l6ZSk7CiAJfQogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9k cml2ZXJzL210ZC9uYW5kL3Jhdy9tYXJ2ZWxsX25hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3 L21hcnZlbGxfbmFuZC5jCmluZGV4IGQyMWU4MDhiYjA3NS4uNGQwZDNjMzRhYzEyIDEwMDY0NAot LS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9tYXJ2ZWxsX25hbmQuYworKysgYi9kcml2ZXJzL210 ZC9uYW5kL3Jhdy9tYXJ2ZWxsX25hbmQuYwpAQCAtMjI0NCwxMyArMjI0NCwxNCBAQCBzdGF0aWMg aW50IG1hcnZlbGxfbmFuZF9lY2NfaW5pdChzdHJ1Y3QgbXRkX2luZm8gKm10ZCwKIAkJCQkgc3Ry dWN0IG5hbmRfZWNjX2N0cmwgKmVjYykKIHsKIAlzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwID0gbXRk X3RvX25hbmQobXRkKTsKKwlzdHJ1Y3QgbmFuZF9lY2NfY29uZiAqcmVxdWlyZW1lbnRzID0gJmNo aXAtPmJhc2UuZWNjLnJlcXVpcmVtZW50czsKIAlzdHJ1Y3QgbWFydmVsbF9uZmMgKm5mYyA9IHRv X21hcnZlbGxfbmZjKGNoaXAtPmNvbnRyb2xsZXIpOwogCWludCByZXQ7CiAKIAlpZiAoZWNjLT5t b2RlICE9IE5BTkRfRUNDX05PTkUgJiYgKCFlY2MtPnNpemUgfHwgIWVjYy0+c3RyZW5ndGgpKSB7 Ci0JCWlmIChjaGlwLT5iYXNlLmVjY3JlcS5zdGVwX3NpemUgJiYgY2hpcC0+YmFzZS5lY2NyZXEu c3RyZW5ndGgpIHsKLQkJCWVjYy0+c2l6ZSA9IGNoaXAtPmJhc2UuZWNjcmVxLnN0ZXBfc2l6ZTsK LQkJCWVjYy0+c3RyZW5ndGggPSBjaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aDsKKwkJaWYgKHJl cXVpcmVtZW50cy0+c3RlcF9zaXplICYmIHJlcXVpcmVtZW50cy0+c3RyZW5ndGgpIHsKKwkJCWVj Yy0+c2l6ZSA9IHJlcXVpcmVtZW50cy0+c3RlcF9zaXplOworCQkJZWNjLT5zdHJlbmd0aCA9IHJl cXVpcmVtZW50cy0+c3RyZW5ndGg7CiAJCX0gZWxzZSB7CiAJCQlkZXZfaW5mbyhuZmMtPmRldiwK IAkJCQkgIk5vIG1pbmltdW0gRUNDIHN0cmVuZ3RoLCB1c2luZyAxYi81MTJCXG4iKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L210a19uYW5kLmMgYi9kcml2ZXJzL210ZC9uYW5k L3Jhdy9tdGtfbmFuZC5jCmluZGV4IGJmYjg5YWNhNDE1NS4uYjY2ZWI5NmI3ZDQ5IDEwMDY0NAot LS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9tdGtfbmFuZC5jCisrKyBiL2RyaXZlcnMvbXRkL25h bmQvcmF3L210a19uYW5kLmMKQEAgLTExOTcsOCArMTE5Nyw4IEBAIHN0YXRpYyBpbnQgbXRrX25m Y19lY2NfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBtdGRfaW5mbyAqbXRkKQogCS8q IGlmIG9wdGlvbmFsIGR0IHNldHRpbmdzIG5vdCBwcmVzZW50ICovCiAJaWYgKCFuYW5kLT5lY2Mu c2l6ZSB8fCAhbmFuZC0+ZWNjLnN0cmVuZ3RoKSB7CiAJCS8qIHVzZSBkYXRhc2hlZXQgcmVxdWly ZW1lbnRzICovCi0JCW5hbmQtPmVjYy5zdHJlbmd0aCA9IG5hbmQtPmJhc2UuZWNjcmVxLnN0cmVu Z3RoOwotCQluYW5kLT5lY2Muc2l6ZSA9IG5hbmQtPmJhc2UuZWNjcmVxLnN0ZXBfc2l6ZTsKKwkJ bmFuZC0+ZWNjLnN0cmVuZ3RoID0gbmFuZC0+YmFzZS5lY2MucmVxdWlyZW1lbnRzLnN0cmVuZ3Ro OworCQluYW5kLT5lY2Muc2l6ZSA9IG5hbmQtPmJhc2UuZWNjLnJlcXVpcmVtZW50cy5zdGVwX3Np emU7CiAKIAkJLyoKIAkJICogYWxpZ24gZWNjc3RyZW5ndGggYW5kIGVjY3NpemUKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfYmFzZS5jIGIvZHJpdmVycy9tdGQvbmFuZC9y YXcvbmFuZF9iYXNlLmMKaW5kZXggMTNlZmEyMDZjN2U2Li44MmFjNjIwYmJkYWMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfYmFzZS5jCisrKyBiL2RyaXZlcnMvbXRkL25h bmQvcmF3L25hbmRfYmFzZS5jCkBAIC00NTkyLDggKzQ1OTIsOCBAQCBzdGF0aWMgYm9vbCBmaW5k X2Z1bGxfaWRfbmFuZChzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLAogCQkJCQkgICBtZW1vcmctPnBh Z2VzaXplICoKIAkJCQkJICAgbWVtb3JnLT5wYWdlc19wZXJfZXJhc2VibG9jayk7CiAJCWNoaXAt Pm9wdGlvbnMgfD0gdHlwZS0+b3B0aW9uczsKLQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGgg PSBOQU5EX0VDQ19TVFJFTkdUSCh0eXBlKTsKLQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RlcF9zaXpl ID0gTkFORF9FQ0NfU1RFUCh0eXBlKTsKKwkJY2hpcC0+YmFzZS5lY2MucmVxdWlyZW1lbnRzLnN0 cmVuZ3RoID0gTkFORF9FQ0NfU1RSRU5HVEgodHlwZSk7CisJCWNoaXAtPmJhc2UuZWNjLnJlcXVp cmVtZW50cy5zdGVwX3NpemUgPSBOQU5EX0VDQ19TVEVQKHR5cGUpOwogCQljaGlwLT5vbmZpX3Rp bWluZ19tb2RlX2RlZmF1bHQgPQogCQkJCQl0eXBlLT5vbmZpX3RpbWluZ19tb2RlX2RlZmF1bHQ7 CiAKQEAgLTUyNjYsOCArNTI2Niw4IEBAIG5hbmRfbWF0Y2hfZWNjX3JlcShzdHJ1Y3QgbmFuZF9j aGlwICpjaGlwLAogewogCXN0cnVjdCBtdGRfaW5mbyAqbXRkID0gbmFuZF90b19tdGQoY2hpcCk7 CiAJY29uc3Qgc3RydWN0IG5hbmRfZWNjX3N0ZXBfaW5mbyAqc3RlcGluZm87Ci0JaW50IHJlcV9z dGVwID0gY2hpcC0+YmFzZS5lY2NyZXEuc3RlcF9zaXplOwotCWludCByZXFfc3RyZW5ndGggPSBj aGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aDsKKwlpbnQgcmVxX3N0ZXAgPSBjaGlwLT5iYXNlLmVj Yy5yZXF1aXJlbWVudHMuc3RlcF9zaXplOworCWludCByZXFfc3RyZW5ndGggPSBjaGlwLT5iYXNl LmVjYy5yZXF1aXJlbWVudHMuc3RyZW5ndGg7CiAJaW50IHJlcV9jb3JyLCBzdGVwX3NpemUsIHN0 cmVuZ3RoLCBuc3RlcHMsIGVjY19ieXRlcywgZWNjX2J5dGVzX3RvdGFsOwogCWludCBiZXN0X3N0 ZXAsIGJlc3Rfc3RyZW5ndGgsIGJlc3RfZWNjX2J5dGVzOwogCWludCBiZXN0X2VjY19ieXRlc190 b3RhbCA9IElOVF9NQVg7CkBAIC01NDU4LDkgKzU0NTgsMTAgQEAgc3RhdGljIGJvb2wgbmFuZF9l Y2Nfc3RyZW5ndGhfZ29vZChzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwKQogewogCXN0cnVjdCBtdGRf aW5mbyAqbXRkID0gbmFuZF90b19tdGQoY2hpcCk7CiAJc3RydWN0IG5hbmRfZWNjX2N0cmwgKmVj YyA9ICZjaGlwLT5lY2M7CisJc3RydWN0IG5hbmRfZWNjX2NvbmYgKnJlcXVpcmVtZW50cyA9ICZj aGlwLT5iYXNlLmVjYy5yZXF1aXJlbWVudHM7CiAJaW50IGNvcnIsIGRzX2NvcnI7CiAKLQlpZiAo ZWNjLT5zaXplID09IDAgfHwgY2hpcC0+YmFzZS5lY2NyZXEuc3RlcF9zaXplID09IDApCisJaWYg KGVjYy0+c2l6ZSA9PSAwIHx8IHJlcXVpcmVtZW50cy0+c3RlcF9zaXplID09IDApCiAJCS8qIE5v dCBlbm91Z2ggaW5mb3JtYXRpb24gKi8KIAkJcmV0dXJuIHRydWU7CiAKQEAgLTU0NjksMTAgKzU0 NzAsMTAgQEAgc3RhdGljIGJvb2wgbmFuZF9lY2Nfc3RyZW5ndGhfZ29vZChzdHJ1Y3QgbmFuZF9j aGlwICpjaGlwKQogCSAqIHRoZSBjb3JyZWN0aW9uIGRlbnNpdHkuCiAJICovCiAJY29yciA9ICht dGQtPndyaXRlc2l6ZSAqIGVjYy0+c3RyZW5ndGgpIC8gZWNjLT5zaXplOwotCWRzX2NvcnIgPSAo bXRkLT53cml0ZXNpemUgKiBjaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCkgLwotCQkgIGNoaXAt PmJhc2UuZWNjcmVxLnN0ZXBfc2l6ZTsKKwlkc19jb3JyID0gKG10ZC0+d3JpdGVzaXplICogcmVx dWlyZW1lbnRzLT5zdHJlbmd0aCkgLworCQkgIHJlcXVpcmVtZW50cy0+c3RlcF9zaXplOwogCi0J cmV0dXJuIGNvcnIgPj0gZHNfY29yciAmJiBlY2MtPnN0cmVuZ3RoID49IGNoaXAtPmJhc2UuZWNj cmVxLnN0cmVuZ3RoOworCXJldHVybiBjb3JyID49IGRzX2NvcnIgJiYgZWNjLT5zdHJlbmd0aCA+ PSByZXF1aXJlbWVudHMtPnN0cmVuZ3RoOwogfQogCiBzdGF0aWMgaW50IHJhd25hbmRfZXJhc2Uo c3RydWN0IG5hbmRfZGV2aWNlICpuYW5kLCBjb25zdCBzdHJ1Y3QgbmFuZF9wb3MgKnBvcykKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfZXNtdC5jIGIvZHJpdmVycy9tdGQv bmFuZC9yYXcvbmFuZF9lc210LmMKaW5kZXggM2RlNWU4OTQ4MmY1Li5jM2ZjODVmNzdmZjggMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfZXNtdC5jCisrKyBiL2RyaXZlcnMv bXRkL25hbmQvcmF3L25hbmRfZXNtdC5jCkBAIC0xMCwyNCArMTAsMjUgQEAKIAogc3RhdGljIHZv aWQgZXNtdF9uYW5kX2RlY29kZV9pZChzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwKQogeworCXN0cnVj dCBuYW5kX2VjY19jb25mICpyZXF1aXJlbWVudHMgPSAmY2hpcC0+YmFzZS5lY2MucmVxdWlyZW1l bnRzOwogCW5hbmRfZGVjb2RlX2V4dF9pZChjaGlwKTsKIAogCS8qIEV4dHJhY3QgRUNDIHJlcXVp cmVtZW50cyBmcm9tIDV0aCBpZCBieXRlLiAqLwogCWlmIChjaGlwLT5pZC5sZW4gPj0gNSAmJiBu YW5kX2lzX3NsYyhjaGlwKSkgewotCQljaGlwLT5iYXNlLmVjY3JlcS5zdGVwX3NpemUgPSA1MTI7 CisJCXJlcXVpcmVtZW50cy0+c3RlcF9zaXplID0gNTEyOwogCQlzd2l0Y2ggKGNoaXAtPmlkLmRh dGFbNF0gJiAweDMpIHsKIAkJY2FzZSAweDA6Ci0JCQljaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0 aCA9IDQ7CisJCQlyZXF1aXJlbWVudHMtPnN0cmVuZ3RoID0gNDsKIAkJCWJyZWFrOwogCQljYXNl IDB4MToKLQkJCWNoaXAtPmJhc2UuZWNjcmVxLnN0cmVuZ3RoID0gMjsKKwkJCXJlcXVpcmVtZW50 cy0+c3RyZW5ndGggPSAyOwogCQkJYnJlYWs7CiAJCWNhc2UgMHgyOgotCQkJY2hpcC0+YmFzZS5l Y2NyZXEuc3RyZW5ndGggPSAxOworCQkJcmVxdWlyZW1lbnRzLT5zdHJlbmd0aCA9IDE7CiAJCQli cmVhazsKIAkJZGVmYXVsdDoKIAkJCVdBUk4oMSwgIkNvdWxkIG5vdCBnZXQgRUNDIGluZm8iKTsK LQkJCWNoaXAtPmJhc2UuZWNjcmVxLnN0ZXBfc2l6ZSA9IDA7CisJCQlyZXF1aXJlbWVudHMtPnN0 ZXBfc2l6ZSA9IDA7CiAJCQlicmVhazsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRk L25hbmQvcmF3L25hbmRfaHluaXguYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfaHluaXgu YwppbmRleCA4MjFkMjIxYjgzZWIuLjNjMDU5OTFlMzQ0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9t dGQvbmFuZC9yYXcvbmFuZF9oeW5peC5jCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRf aHluaXguYwpAQCAtNTA0LDM0ICs1MDQsMzUgQEAgc3RhdGljIHZvaWQgaHluaXhfbmFuZF9leHRy YWN0X29vYnNpemUoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwKIHN0YXRpYyB2b2lkIGh5bml4X25h bmRfZXh0cmFjdF9lY2NfcmVxdWlyZW1lbnRzKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsCiAJCQkJ CQlib29sIHZhbGlkX2plZGVjaWQpCiB7CisJc3RydWN0IG5hbmRfZWNjX2NvbmYgKnJlcXVpcmVt ZW50cyA9ICZjaGlwLT5iYXNlLmVjYy5yZXF1aXJlbWVudHM7CiAJdTggZWNjX2xldmVsID0gKGNo aXAtPmlkLmRhdGFbNF0gPj4gNCkgJiAweDc7CiAKIAlpZiAodmFsaWRfamVkZWNpZCkgewogCQkv KiBSZWZlcmVuY2U6IEgyN1VDRzhUMkUgZGF0YXNoZWV0ICovCi0JCWNoaXAtPmJhc2UuZWNjcmVx LnN0ZXBfc2l6ZSA9IDEwMjQ7CisJCXJlcXVpcmVtZW50cy0+c3RlcF9zaXplID0gMTAyNDsKIAog CQlzd2l0Y2ggKGVjY19sZXZlbCkgewogCQljYXNlIDA6Ci0JCQljaGlwLT5iYXNlLmVjY3JlcS5z dGVwX3NpemUgPSAwOwotCQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGggPSAwOworCQkJcmVx dWlyZW1lbnRzLT5zdGVwX3NpemUgPSAwOworCQkJcmVxdWlyZW1lbnRzLT5zdHJlbmd0aCA9IDA7 CiAJCQlicmVhazsKIAkJY2FzZSAxOgotCQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGggPSA0 OworCQkJcmVxdWlyZW1lbnRzLT5zdHJlbmd0aCA9IDQ7CiAJCQlicmVhazsKIAkJY2FzZSAyOgot CQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGggPSAyNDsKKwkJCXJlcXVpcmVtZW50cy0+c3Ry ZW5ndGggPSAyNDsKIAkJCWJyZWFrOwogCQljYXNlIDM6Ci0JCQljaGlwLT5iYXNlLmVjY3JlcS5z dHJlbmd0aCA9IDMyOworCQkJcmVxdWlyZW1lbnRzLT5zdHJlbmd0aCA9IDMyOwogCQkJYnJlYWs7 CiAJCWNhc2UgNDoKLQkJCWNoaXAtPmJhc2UuZWNjcmVxLnN0cmVuZ3RoID0gNDA7CisJCQlyZXF1 aXJlbWVudHMtPnN0cmVuZ3RoID0gNDA7CiAJCQlicmVhazsKIAkJY2FzZSA1OgotCQkJY2hpcC0+ YmFzZS5lY2NyZXEuc3RyZW5ndGggPSA1MDsKKwkJCXJlcXVpcmVtZW50cy0+c3RyZW5ndGggPSA1 MDsKIAkJCWJyZWFrOwogCQljYXNlIDY6Ci0JCQljaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCA9 IDYwOworCQkJcmVxdWlyZW1lbnRzLT5zdHJlbmd0aCA9IDYwOwogCQkJYnJlYWs7CiAJCWRlZmF1 bHQ6CiAJCQkvKgpAQCAtNTUyLDE0ICs1NTMsMTQgQEAgc3RhdGljIHZvaWQgaHluaXhfbmFuZF9l eHRyYWN0X2VjY19yZXF1aXJlbWVudHMoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwKIAkJaWYgKG5h bmRfdGVjaCA8IDMpIHsKIAkJCS8qID4gMjZubSwgcmVmZXJlbmNlOiBIMjdVQkc4VDJBIGRhdGFz aGVldCAqLwogCQkJaWYgKGVjY19sZXZlbCA8IDUpIHsKLQkJCQljaGlwLT5iYXNlLmVjY3JlcS5z dGVwX3NpemUgPSA1MTI7Ci0JCQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGggPSAxIDw8IGVj Y19sZXZlbDsKKwkJCQlyZXF1aXJlbWVudHMtPnN0ZXBfc2l6ZSA9IDUxMjsKKwkJCQlyZXF1aXJl bWVudHMtPnN0cmVuZ3RoID0gMSA8PCBlY2NfbGV2ZWw7CiAJCQl9IGVsc2UgaWYgKGVjY19sZXZl bCA8IDcpIHsKIAkJCQlpZiAoZWNjX2xldmVsID09IDUpCi0JCQkJCWNoaXAtPmJhc2UuZWNjcmVx LnN0ZXBfc2l6ZSA9IDIwNDg7CisJCQkJCXJlcXVpcmVtZW50cy0+c3RlcF9zaXplID0gMjA0ODsK IAkJCQllbHNlCi0JCQkJCWNoaXAtPmJhc2UuZWNjcmVxLnN0ZXBfc2l6ZSA9IDEwMjQ7Ci0JCQkJ Y2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGggPSAyNDsKKwkJCQkJcmVxdWlyZW1lbnRzLT5zdGVw X3NpemUgPSAxMDI0OworCQkJCXJlcXVpcmVtZW50cy0+c3RyZW5ndGggPSAyNDsKIAkJCX0gZWxz ZSB7CiAJCQkJLyoKIAkJCQkgKiBXZSBzaG91bGQgbmV2ZXIgcmVhY2ggdGhpcyBjYXNlLCBidXQg aWYgdGhhdApAQCAtNTcyLDE0ICs1NzMsMTQgQEAgc3RhdGljIHZvaWQgaHluaXhfbmFuZF9leHRy YWN0X2VjY19yZXF1aXJlbWVudHMoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwKIAkJfSBlbHNlIHsK IAkJCS8qIDw9IDI2bm0sIHJlZmVyZW5jZTogSDI3VUJHOFQyQiBkYXRhc2hlZXQgKi8KIAkJCWlm ICghZWNjX2xldmVsKSB7Ci0JCQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RlcF9zaXplID0gMDsKLQkJ CQljaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCA9IDA7CisJCQkJcmVxdWlyZW1lbnRzLT5zdGVw X3NpemUgPSAwOworCQkJCXJlcXVpcmVtZW50cy0+c3RyZW5ndGggPSAwOwogCQkJfSBlbHNlIGlm IChlY2NfbGV2ZWwgPCA1KSB7Ci0JCQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RlcF9zaXplID0gNTEy OwotCQkJCWNoaXAtPmJhc2UuZWNjcmVxLnN0cmVuZ3RoID0gMSA8PCAoZWNjX2xldmVsIC0gMSk7 CisJCQkJcmVxdWlyZW1lbnRzLT5zdGVwX3NpemUgPSA1MTI7CisJCQkJcmVxdWlyZW1lbnRzLT5z dHJlbmd0aCA9IDEgPDwgKGVjY19sZXZlbCAtIDEpOwogCQkJfSBlbHNlIHsKLQkJCQljaGlwLT5i YXNlLmVjY3JlcS5zdGVwX3NpemUgPSAxMDI0OwotCQkJCWNoaXAtPmJhc2UuZWNjcmVxLnN0cmVu Z3RoID0gMjQgKworCQkJCXJlcXVpcmVtZW50cy0+c3RlcF9zaXplID0gMTAyNDsKKwkJCQlyZXF1 aXJlbWVudHMtPnN0cmVuZ3RoID0gMjQgKwogCQkJCQkJCSg4ICogKGVjY19sZXZlbCAtIDUpKTsK IAkJCX0KIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9qZWRlYy5j IGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9qZWRlYy5jCmluZGV4IDliNTQwZTc2Zjg0Zi4u NDZhZmEyNWFiYzcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX2plZGVj LmMKKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9qZWRlYy5jCkBAIC0xMTAsOCArMTEw LDggQEAgaW50IG5hbmRfamVkZWNfZGV0ZWN0KHN0cnVjdCBuYW5kX2NoaXAgKmNoaXApCiAJZWNj ID0gJnAtPmVjY19pbmZvWzBdOwogCiAJaWYgKGVjYy0+Y29kZXdvcmRfc2l6ZSA+PSA5KSB7Ci0J CWNoaXAtPmJhc2UuZWNjcmVxLnN0cmVuZ3RoID0gZWNjLT5lY2NfYml0czsKLQkJY2hpcC0+YmFz ZS5lY2NyZXEuc3RlcF9zaXplID0gMSA8PCBlY2MtPmNvZGV3b3JkX3NpemU7CisJCWNoaXAtPmJh c2UuZWNjLnJlcXVpcmVtZW50cy5zdHJlbmd0aCA9IGVjYy0+ZWNjX2JpdHM7CisJCWNoaXAtPmJh c2UuZWNjLnJlcXVpcmVtZW50cy5zdGVwX3NpemUgPSAxIDw8IGVjYy0+Y29kZXdvcmRfc2l6ZTsK IAl9IGVsc2UgewogCQlwcl93YXJuKCJJbnZhbGlkIGNvZGV3b3JkIHNpemVcbiIpOwogCX0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfbWljcm9uLmMgYi9kcml2ZXJzL210 ZC9uYW5kL3Jhdy9uYW5kX21pY3Jvbi5jCmluZGV4IDdhMmNlZjAyZWFjZC4uZGQyMzU4YTAxZjU0 IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX21pY3Jvbi5jCisrKyBiL2Ry aXZlcnMvbXRkL25hbmQvcmF3L25hbmRfbWljcm9uLmMKQEAgLTM3OSw2ICszNzksNyBAQCBlbnVt IHsKICAqLwogc3RhdGljIGludCBtaWNyb25fc3VwcG9ydHNfb25fZGllX2VjYyhzdHJ1Y3QgbmFu ZF9jaGlwICpjaGlwKQogeworCXN0cnVjdCBuYW5kX2VjY19jb25mICpyZXF1aXJlbWVudHMgPSAm Y2hpcC0+YmFzZS5lY2MucmVxdWlyZW1lbnRzOwogCXU4IGlkWzVdOwogCWludCByZXQ7CiAKQEAg LTM5MSw3ICszOTIsNyBAQCBzdGF0aWMgaW50IG1pY3Jvbl9zdXBwb3J0c19vbl9kaWVfZWNjKHN0 cnVjdCBuYW5kX2NoaXAgKmNoaXApCiAJLyoKIAkgKiBXZSBvbmx5IHN1cHBvcnQgb24tZGllIEVD QyBvZiA0LzUxMiBvciA4LzUxMgogCSAqLwotCWlmICAoY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5n dGggIT0gNCAmJiBjaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCAhPSA4KQorCWlmICAocmVxdWly ZW1lbnRzLT5zdHJlbmd0aCAhPSA0ICYmIHJlcXVpcmVtZW50cy0+c3RyZW5ndGggIT0gOCkKIAkJ cmV0dXJuIE1JQ1JPTl9PTl9ESUVfVU5TVVBQT1JURUQ7CiAKIAkvKiAweDIgbWVhbnMgb24tZGll IEVDQyBpcyBhdmFpbGFibGUuICovCkBAIC00MjQsNyArNDI1LDcgQEAgc3RhdGljIGludCBtaWNy b25fc3VwcG9ydHNfb25fZGllX2VjYyhzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwKQogCS8qCiAJICog V2Ugb25seSBzdXBwb3J0IG9uLWRpZSBFQ0Mgb2YgNC81MTIgb3IgOC81MTIKIAkgKi8KLQlpZiAg KGNoaXAtPmJhc2UuZWNjcmVxLnN0cmVuZ3RoICE9IDQgJiYgY2hpcC0+YmFzZS5lY2NyZXEuc3Ry ZW5ndGggIT0gOCkKKwlpZiAgKHJlcXVpcmVtZW50cy0+c3RyZW5ndGggIT0gNCAmJiByZXF1aXJl bWVudHMtPnN0cmVuZ3RoICE9IDgpCiAJCXJldHVybiBNSUNST05fT05fRElFX1VOU1VQUE9SVEVE OwogCiAJcmV0dXJuIE1JQ1JPTl9PTl9ESUVfU1VQUE9SVEVEOwpAQCAtNDMyLDYgKzQzMyw3IEBA IHN0YXRpYyBpbnQgbWljcm9uX3N1cHBvcnRzX29uX2RpZV9lY2Moc3RydWN0IG5hbmRfY2hpcCAq Y2hpcCkKIAogc3RhdGljIGludCBtaWNyb25fbmFuZF9pbml0KHN0cnVjdCBuYW5kX2NoaXAgKmNo aXApCiB7CisJc3RydWN0IG5hbmRfZWNjX2NvbmYgKnJlcXVpcmVtZW50cyA9ICZjaGlwLT5iYXNl LmVjYy5yZXF1aXJlbWVudHM7CiAJc3RydWN0IG10ZF9pbmZvICptdGQgPSBuYW5kX3RvX210ZChj aGlwKTsKIAlzdHJ1Y3QgbWljcm9uX25hbmQgKm1pY3JvbjsKIAlpbnQgb25kaWU7CkBAIC00Nzks NyArNDgxLDcgQEAgc3RhdGljIGludCBtaWNyb25fbmFuZF9pbml0KHN0cnVjdCBuYW5kX2NoaXAg KmNoaXApCiAJCSAqIFRoYXQncyBub3QgbmVlZGVkIGZvciA4LWJpdCBFQ0MsIGJlY2F1c2UgdGhl IHN0YXR1cyBleHBvc2UKIAkJICogYSBiZXR0ZXIgYXBwcm94aW1hdGlvbiBvZiB0aGUgbnVtYmVy IG9mIGJpdGZsaXBzIGluIGEgcGFnZS4KIAkJICovCi0JCWlmIChjaGlwLT5iYXNlLmVjY3JlcS5z dHJlbmd0aCA9PSA0KSB7CisJCWlmIChyZXF1aXJlbWVudHMtPnN0cmVuZ3RoID09IDQpIHsKIAkJ CW1pY3Jvbi0+ZWNjLnJhd2J1ZiA9IGttYWxsb2MobXRkLT53cml0ZXNpemUgKwogCQkJCQkJICAg ICBtdGQtPm9vYnNpemUsCiAJCQkJCQkgICAgIEdGUF9LRVJORUwpOwpAQCAtNDg5LDE2ICs0OTEs MTYgQEAgc3RhdGljIGludCBtaWNyb25fbmFuZF9pbml0KHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAp CiAJCQl9CiAJCX0KIAotCQlpZiAoY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGggPT0gNCkKKwkJ aWYgKHJlcXVpcmVtZW50cy0+c3RyZW5ndGggPT0gNCkKIAkJCW10ZF9zZXRfb29ibGF5b3V0KG10 ZCwKIAkJCQkJICAmbWljcm9uX25hbmRfb25fZGllXzRfb29ibGF5b3V0X29wcyk7CiAJCWVsc2UK IAkJCW10ZF9zZXRfb29ibGF5b3V0KG10ZCwKIAkJCQkJICAmbWljcm9uX25hbmRfb25fZGllXzhf b29ibGF5b3V0X29wcyk7CiAKLQkJY2hpcC0+ZWNjLmJ5dGVzID0gY2hpcC0+YmFzZS5lY2NyZXEu c3RyZW5ndGggKiAyOworCQljaGlwLT5lY2MuYnl0ZXMgPSByZXF1aXJlbWVudHMtPnN0cmVuZ3Ro ICogMjsKIAkJY2hpcC0+ZWNjLnNpemUgPSA1MTI7Ci0JCWNoaXAtPmVjYy5zdHJlbmd0aCA9IGNo aXAtPmJhc2UuZWNjcmVxLnN0cmVuZ3RoOworCQljaGlwLT5lY2Muc3RyZW5ndGggPSByZXF1aXJl bWVudHMtPnN0cmVuZ3RoOwogCQljaGlwLT5lY2MuYWxnbyA9IE5BTkRfRUNDX0JDSDsKIAkJY2hp cC0+ZWNjLnJlYWRfcGFnZSA9IG1pY3Jvbl9uYW5kX3JlYWRfcGFnZV9vbl9kaWVfZWNjOwogCQlj aGlwLT5lY2Mud3JpdGVfcGFnZSA9IG1pY3Jvbl9uYW5kX3dyaXRlX3BhZ2Vfb25fZGllX2VjYzsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfb25maS5jIGIvZHJpdmVycy9t dGQvbmFuZC9yYXcvbmFuZF9vbmZpLmMKaW5kZXggMGI4NzliZDBhNjhjLi45ZDIxYjQ3ZWJlZjEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfb25maS5jCisrKyBiL2RyaXZl cnMvbXRkL25hbmQvcmF3L25hbmRfb25maS5jCkBAIC05NCw4ICs5NCw4IEBAIHN0YXRpYyBpbnQg bmFuZF9mbGFzaF9kZXRlY3RfZXh0X3BhcmFtX3BhZ2Uoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwK IAkJZ290byBleHRfb3V0OwogCX0KIAotCWNoaXAtPmJhc2UuZWNjcmVxLnN0cmVuZ3RoID0gZWNj LT5lY2NfYml0czsKLQljaGlwLT5iYXNlLmVjY3JlcS5zdGVwX3NpemUgPSAxIDw8IGVjYy0+Y29k ZXdvcmRfc2l6ZTsKKwljaGlwLT5iYXNlLmVjYy5yZXF1aXJlbWVudHMuc3RyZW5ndGggPSBlY2Mt PmVjY19iaXRzOworCWNoaXAtPmJhc2UuZWNjLnJlcXVpcmVtZW50cy5zdGVwX3NpemUgPSAxIDw8 IGVjYy0+Y29kZXdvcmRfc2l6ZTsKIAlyZXQgPSAwOwogCiBleHRfb3V0OgpAQCAtMjUyLDggKzI1 Miw4IEBAIGludCBuYW5kX29uZmlfZGV0ZWN0KHN0cnVjdCBuYW5kX2NoaXAgKmNoaXApCiAJCWNo aXAtPm9wdGlvbnMgfD0gTkFORF9CVVNXSURUSF8xNjsKIAogCWlmIChwLT5lY2NfYml0cyAhPSAw eGZmKSB7Ci0JCWNoaXAtPmJhc2UuZWNjcmVxLnN0cmVuZ3RoID0gcC0+ZWNjX2JpdHM7Ci0JCWNo aXAtPmJhc2UuZWNjcmVxLnN0ZXBfc2l6ZSA9IDUxMjsKKwkJY2hpcC0+YmFzZS5lY2MucmVxdWly ZW1lbnRzLnN0cmVuZ3RoID0gcC0+ZWNjX2JpdHM7CisJCWNoaXAtPmJhc2UuZWNjLnJlcXVpcmVt ZW50cy5zdGVwX3NpemUgPSA1MTI7CiAJfSBlbHNlIGlmIChvbmZpX3ZlcnNpb24gPj0gMjEgJiYK IAkJKGxlMTZfdG9fY3B1KHAtPmZlYXR1cmVzKSAmIE9ORklfRkVBVFVSRV9FWFRfUEFSQU1fUEFH RSkpIHsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9zYW1zdW5nLmMg Yi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kX3NhbXN1bmcuYwppbmRleCBmN2Q3MDQxYjYyMTMu LjQ4NzRiYTMzZGIxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9zYW1z dW5nLmMKKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZF9zYW1zdW5nLmMKQEAgLTE5LDYg KzE5LDcgQEAKIAogc3RhdGljIHZvaWQgc2Ftc3VuZ19uYW5kX2RlY29kZV9pZChzdHJ1Y3QgbmFu ZF9jaGlwICpjaGlwKQogeworCXN0cnVjdCBuYW5kX2VjY19jb25mICpyZXF1aXJlbWVudHMgPSAm Y2hpcC0+YmFzZS5lY2MucmVxdWlyZW1lbnRzOwogCXN0cnVjdCBtdGRfaW5mbyAqbXRkID0gbmFu ZF90b19tdGQoY2hpcCk7CiAJc3RydWN0IG5hbmRfbWVtb3J5X29yZ2FuaXphdGlvbiAqbWVtb3Jn OwogCkBAIC04MCwyMyArODEsMjMgQEAgc3RhdGljIHZvaWQgc2Ftc3VuZ19uYW5kX2RlY29kZV9p ZChzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwKQogCQkvKiBFeHRyYWN0IEVDQyByZXF1aXJlbWVudHMg ZnJvbSA1dGggaWQgYnl0ZSovCiAJCWV4dGlkID0gKGNoaXAtPmlkLmRhdGFbNF0gPj4gNCkgJiAw eDA3OwogCQlpZiAoZXh0aWQgPCA1KSB7Ci0JCQljaGlwLT5iYXNlLmVjY3JlcS5zdGVwX3NpemUg PSA1MTI7Ci0JCQljaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCA9IDEgPDwgZXh0aWQ7CisJCQly ZXF1aXJlbWVudHMtPnN0ZXBfc2l6ZSA9IDUxMjsKKwkJCXJlcXVpcmVtZW50cy0+c3RyZW5ndGgg PSAxIDw8IGV4dGlkOwogCQl9IGVsc2UgewotCQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RlcF9zaXpl ID0gMTAyNDsKKwkJCXJlcXVpcmVtZW50cy0+c3RlcF9zaXplID0gMTAyNDsKIAkJCXN3aXRjaCAo ZXh0aWQpIHsKIAkJCWNhc2UgNToKLQkJCQljaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCA9IDI0 OworCQkJCXJlcXVpcmVtZW50cy0+c3RyZW5ndGggPSAyNDsKIAkJCQlicmVhazsKIAkJCWNhc2Ug NjoKLQkJCQljaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCA9IDQwOworCQkJCXJlcXVpcmVtZW50 cy0+c3RyZW5ndGggPSA0MDsKIAkJCQlicmVhazsKIAkJCWNhc2UgNzoKLQkJCQljaGlwLT5iYXNl LmVjY3JlcS5zdHJlbmd0aCA9IDYwOworCQkJCXJlcXVpcmVtZW50cy0+c3RyZW5ndGggPSA2MDsK IAkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJV0FSTigxLCAiQ291bGQgbm90IGRlY29kZSBF Q0MgaW5mbyIpOwotCQkJCWNoaXAtPmJhc2UuZWNjcmVxLnN0ZXBfc2l6ZSA9IDA7CisJCQkJcmVx dWlyZW1lbnRzLT5zdGVwX3NpemUgPSAwOwogCQkJfQogCQl9CiAJfSBlbHNlIHsKQEAgLTEwNiw4 ICsxMDcsOCBAQCBzdGF0aWMgdm9pZCBzYW1zdW5nX25hbmRfZGVjb2RlX2lkKHN0cnVjdCBuYW5k X2NoaXAgKmNoaXApCiAJCQlzd2l0Y2ggKGNoaXAtPmlkLmRhdGFbMV0pIHsKIAkJCS8qIEs5RjRH MDhVMEQtU1tJfENdQjAoVDAwKSAqLwogCQkJY2FzZSAweERDOgotCQkJCWNoaXAtPmJhc2UuZWNj cmVxLnN0ZXBfc2l6ZSA9IDUxMjsKLQkJCQljaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCA9IDE7 CisJCQkJcmVxdWlyZW1lbnRzLT5zdGVwX3NpemUgPSA1MTI7CisJCQkJcmVxdWlyZW1lbnRzLT5z dHJlbmd0aCA9IDE7CiAJCQkJYnJlYWs7CiAKIAkJCS8qIEs5RjFHMDhVMEUgMjFubSBjaGlwcyBk byBub3Qgc3VwcG9ydCBzdWJwYWdlIHdyaXRlICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9u YW5kL3Jhdy9uYW5kX3Rvc2hpYmEuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRfdG9zaGli YS5jCmluZGV4IDEzZjk2MzJmMWNiNC4uZjAwZDk1OGQ3MjRmIDEwMDY0NAotLS0gYS9kcml2ZXJz L210ZC9uYW5kL3Jhdy9uYW5kX3Rvc2hpYmEuYworKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9u YW5kX3Rvc2hpYmEuYwpAQCAtMTAwLDYgKzEwMCw3IEBAIHN0YXRpYyB2b2lkIHRvc2hpYmFfbmFu ZF9iZW5hbmRfaW5pdChzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwKQogCiBzdGF0aWMgdm9pZCB0b3No aWJhX25hbmRfZGVjb2RlX2lkKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXApCiB7CisJc3RydWN0IG5h bmRfZWNjX2NvbmYgKnJlcXVpcmVtZW50cyA9ICZjaGlwLT5iYXNlLmVjYy5yZXF1aXJlbWVudHM7 CiAJc3RydWN0IG10ZF9pbmZvICptdGQgPSBuYW5kX3RvX210ZChjaGlwKTsKIAlzdHJ1Y3QgbmFu ZF9tZW1vcnlfb3JnYW5pemF0aW9uICptZW1vcmc7CiAKQEAgLTEzMCwyMCArMTMxLDIwIEBAIHN0 YXRpYyB2b2lkIHRvc2hpYmFfbmFuZF9kZWNvZGVfaWQoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCkK IAkgKiAgLSAyNG5tOiA4IGJpdCBFQ0MgZm9yIGVhY2ggNTEyQnl0ZSBpcyByZXF1aXJlZC4KIAkg Ki8KIAlpZiAoY2hpcC0+aWQubGVuID49IDYgJiYgbmFuZF9pc19zbGMoY2hpcCkpIHsKLQkJY2hp cC0+YmFzZS5lY2NyZXEuc3RlcF9zaXplID0gNTEyOworCQlyZXF1aXJlbWVudHMtPnN0ZXBfc2l6 ZSA9IDUxMjsKIAkJc3dpdGNoIChjaGlwLT5pZC5kYXRhWzVdICYgMHg3KSB7CiAJCWNhc2UgMHg0 OgotCQkJY2hpcC0+YmFzZS5lY2NyZXEuc3RyZW5ndGggPSAxOworCQkJcmVxdWlyZW1lbnRzLT5z dHJlbmd0aCA9IDE7CiAJCQlicmVhazsKIAkJY2FzZSAweDU6Ci0JCQljaGlwLT5iYXNlLmVjY3Jl cS5zdHJlbmd0aCA9IDQ7CisJCQlyZXF1aXJlbWVudHMtPnN0cmVuZ3RoID0gNDsKIAkJCWJyZWFr OwogCQljYXNlIDB4NjoKLQkJCWNoaXAtPmJhc2UuZWNjcmVxLnN0cmVuZ3RoID0gODsKKwkJCXJl cXVpcmVtZW50cy0+c3RyZW5ndGggPSA4OwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQlXQVJO KDEsICJDb3VsZCBub3QgZ2V0IEVDQyBpbmZvIik7Ci0JCQljaGlwLT5iYXNlLmVjY3JlcS5zdGVw X3NpemUgPSAwOworCQkJcmVxdWlyZW1lbnRzLT5zdGVwX3NpemUgPSAwOwogCQkJYnJlYWs7CiAJ CX0KIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9zdW54aV9uYW5kLmMgYi9k cml2ZXJzL210ZC9uYW5kL3Jhdy9zdW54aV9uYW5kLmMKaW5kZXggNjk1OTk4NTRmZGQ2Li40M2Iy MjU2NGRhMTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L3N1bnhpX25hbmQuYwor KysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9zdW54aV9uYW5kLmMKQEAgLTE4MDcsNiArMTgwNyw3 IEBAIHN0YXRpYyB2b2lkIHN1bnhpX25hbmRfZWNjX2NsZWFudXAoc3RydWN0IG5hbmRfZWNjX2N0 cmwgKmVjYykKIAogc3RhdGljIGludCBzdW54aV9uYW5kX2F0dGFjaF9jaGlwKHN0cnVjdCBuYW5k X2NoaXAgKm5hbmQpCiB7CisJc3RydWN0IG5hbmRfZWNjX2NvbmYgKnJlcXVpcmVtZW50cyA9ICZu YW5kLT5iYXNlLmVjYy5yZXF1aXJlbWVudHM7CiAJc3RydWN0IG10ZF9pbmZvICptdGQgPSBuYW5k X3RvX210ZChuYW5kKTsKIAlzdHJ1Y3QgbmFuZF9lY2NfY3RybCAqZWNjID0gJm5hbmQtPmVjYzsK IAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0gbmFuZF9nZXRfZmxhc2hfbm9kZShuYW5kKTsKQEAg LTE4MjEsOCArMTgyMiw4IEBAIHN0YXRpYyBpbnQgc3VueGlfbmFuZF9hdHRhY2hfY2hpcChzdHJ1 Y3QgbmFuZF9jaGlwICpuYW5kKQogCW5hbmQtPm9wdGlvbnMgfD0gTkFORF9TVUJQQUdFX1JFQUQ7 CiAKIAlpZiAoIWVjYy0+c2l6ZSkgewotCQllY2MtPnNpemUgPSBuYW5kLT5iYXNlLmVjY3JlcS5z dGVwX3NpemU7Ci0JCWVjYy0+c3RyZW5ndGggPSBuYW5kLT5iYXNlLmVjY3JlcS5zdHJlbmd0aDsK KwkJZWNjLT5zaXplID0gcmVxdWlyZW1lbnRzLT5zdGVwX3NpemU7CisJCWVjYy0+c3RyZW5ndGgg PSByZXF1aXJlbWVudHMtPnN0cmVuZ3RoOwogCX0KIAogCWlmICghZWNjLT5zaXplIHx8ICFlY2Mt PnN0cmVuZ3RoKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvdGVncmFfbmFuZC5j IGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvdGVncmFfbmFuZC5jCmluZGV4IDNjYzlhNGM0MTQ0My4u MzFkNTQ3ZDk2Nzk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy90ZWdyYV9uYW5k LmMKKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvdGVncmFfbmFuZC5jCkBAIC04NTMsNyArODUz LDcgQEAgc3RhdGljIGludCB0ZWdyYV9uYW5kX2dldF9zdHJlbmd0aChzdHJ1Y3QgbmFuZF9jaGlw ICpjaGlwLCBjb25zdCBpbnQgKnN0cmVuZ3RoLAogCQl9IGVsc2UgewogCQkJc3RyZW5ndGhfc2Vs ID0gc3RyZW5ndGhbaV07CiAKLQkJCWlmIChzdHJlbmd0aF9zZWwgPCBjaGlwLT5iYXNlLmVjY3Jl cS5zdHJlbmd0aCkKKwkJCWlmIChzdHJlbmd0aF9zZWwgPCBjaGlwLT5iYXNlLmVjYy5yZXF1aXJl bWVudHMuc3RyZW5ndGgpCiAJCQkJY29udGludWU7CiAJCX0KIApAQCAtOTA2LDYgKzkwNiw3IEBA IHN0YXRpYyBpbnQgdGVncmFfbmFuZF9zZWxlY3Rfc3RyZW5ndGgoc3RydWN0IG5hbmRfY2hpcCAq Y2hpcCwgaW50IG9vYnNpemUpCiBzdGF0aWMgaW50IHRlZ3JhX25hbmRfYXR0YWNoX2NoaXAoc3Ry dWN0IG5hbmRfY2hpcCAqY2hpcCkKIHsKIAlzdHJ1Y3QgdGVncmFfbmFuZF9jb250cm9sbGVyICpj dHJsID0gdG9fdGVncmFfY3RybChjaGlwLT5jb250cm9sbGVyKTsKKwlzdHJ1Y3QgbmFuZF9lY2Nf Y29uZiAqcmVxdWlyZW1lbnRzID0gJmNoaXAtPmJhc2UuZWNjLnJlcXVpcmVtZW50czsKIAlzdHJ1 Y3QgdGVncmFfbmFuZF9jaGlwICpuYW5kID0gdG9fdGVncmFfY2hpcChjaGlwKTsKIAlzdHJ1Y3Qg bXRkX2luZm8gKm10ZCA9IG5hbmRfdG9fbXRkKGNoaXApOwogCWludCBiaXRzX3Blcl9zdGVwOwpA QCAtOTE3LDkgKzkxOCw5IEBAIHN0YXRpYyBpbnQgdGVncmFfbmFuZF9hdHRhY2hfY2hpcChzdHJ1 Y3QgbmFuZF9jaGlwICpjaGlwKQogCWNoaXAtPmVjYy5tb2RlID0gTkFORF9FQ0NfSFc7CiAJY2hp cC0+ZWNjLnNpemUgPSA1MTI7CiAJY2hpcC0+ZWNjLnN0ZXBzID0gbXRkLT53cml0ZXNpemUgLyBj aGlwLT5lY2Muc2l6ZTsKLQlpZiAoY2hpcC0+YmFzZS5lY2NyZXEuc3RlcF9zaXplICE9IDUxMikg eworCWlmIChyZXF1aXJlbWVudHMtPnN0ZXBfc2l6ZSAhPSA1MTIpIHsKIAkJZGV2X2VycihjdHJs LT5kZXYsICJVbnN1cHBvcnRlZCBzdGVwIHNpemUgJWRcbiIsCi0JCQljaGlwLT5iYXNlLmVjY3Jl cS5zdGVwX3NpemUpOworCQkJcmVxdWlyZW1lbnRzLT5zdGVwX3NpemUpOwogCQlyZXR1cm4gLUVJ TlZBTDsKIAl9CiAKQEAgLTk1MCw3ICs5NTEsNyBAQCBzdGF0aWMgaW50IHRlZ3JhX25hbmRfYXR0 YWNoX2NoaXAoc3RydWN0IG5hbmRfY2hpcCAqY2hpcCkKIAkJaWYgKHJldCA8IDApIHsKIAkJCWRl dl9lcnIoY3RybC0+ZGV2LAogCQkJCSJObyB2YWxpZCBzdHJlbmd0aCBmb3VuZCwgbWluaW11bSAl ZFxuIiwKLQkJCQljaGlwLT5iYXNlLmVjY3JlcS5zdHJlbmd0aCk7CisJCQkJcmVxdWlyZW1lbnRz LT5zdHJlbmd0aCk7CiAJCQlyZXR1cm4gcmV0OwogCQl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bXRkL25hbmQvc3BpL2NvcmUuYyBiL2RyaXZlcnMvbXRkL25hbmQvc3BpL2NvcmUuYwppbmRleCBl ZDVlMzQwZGZmNTEuLmFiNDFiOTQzNGQ4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9z cGkvY29yZS5jCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvc3BpL2NvcmUuYwpAQCAtNDgwLDcgKzQ4 MCw3IEBAIHN0YXRpYyBpbnQgc3BpbmFuZF9jaGVja19lY2Nfc3RhdHVzKHN0cnVjdCBzcGluYW5k X2RldmljZSAqc3BpbmFuZCwgdTggc3RhdHVzKQogCQkgKiBmaXhlZCwgc28gbGV0J3MgcmV0dXJu IHRoZSBtYXhpbXVtIHBvc3NpYmxlIHZhbHVlIHNvIHRoYXQKIAkJICogd2Vhci1sZXZlbGluZyBs YXllcnMgbW92ZSB0aGUgZGF0YSBpbW1lZGlhdGVseS4KIAkJICovCi0JCXJldHVybiBuYW5kLT5l Y2NyZXEuc3RyZW5ndGg7CisJCXJldHVybiBuYW5kLT5lY2MuY3R4LmNvbmYuc3RyZW5ndGg7CiAK IAljYXNlIFNUQVRVU19FQ0NfVU5DT1JfRVJST1I6CiAJCXJldHVybiAtRUJBRE1TRzsKQEAgLTU1 OCw3ICs1NTgsNyBAQCBzdGF0aWMgaW50IHNwaW5hbmRfbXRkX3JlYWQoc3RydWN0IG10ZF9pbmZv ICptdGQsIGxvZmZfdCBmcm9tLAogCiAJbXV0ZXhfbG9jaygmc3BpbmFuZC0+bG9jayk7CiAKLQlu YW5kZGV2X2lvX2Zvcl9lYWNoX3BhZ2UobmFuZCwgZnJvbSwgb3BzLCAmaXRlcikgeworCW5hbmRk ZXZfaW9fZm9yX2VhY2hfcGFnZShuYW5kLCBOQU5EX1BBR0VfUkVBRCwgZnJvbSwgb3BzLCAmaXRl cikgewogCQlyZXQgPSBzcGluYW5kX3NlbGVjdF90YXJnZXQoc3BpbmFuZCwgaXRlci5yZXEucG9z LnRhcmdldCk7CiAJCWlmIChyZXQpCiAJCQlicmVhazsKQEAgLTYwNiw3ICs2MDYsNyBAQCBzdGF0 aWMgaW50IHNwaW5hbmRfbXRkX3dyaXRlKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBsb2ZmX3QgdG8s CiAKIAltdXRleF9sb2NrKCZzcGluYW5kLT5sb2NrKTsKIAotCW5hbmRkZXZfaW9fZm9yX2VhY2hf cGFnZShuYW5kLCB0bywgb3BzLCAmaXRlcikgeworCW5hbmRkZXZfaW9fZm9yX2VhY2hfcGFnZShu YW5kLCBOQU5EX1BBR0VfV1JJVEUsIHRvLCBvcHMsICZpdGVyKSB7CiAJCXJldCA9IHNwaW5hbmRf c2VsZWN0X3RhcmdldChzcGluYW5kLCBpdGVyLnJlcS5wb3MudGFyZ2V0KTsKIAkJaWYgKHJldCkK IAkJCWJyZWFrOwpAQCAtODY5LDcgKzg2OSw3IEBAIGludCBzcGluYW5kX21hdGNoX2FuZF9pbml0 KHN0cnVjdCBzcGluYW5kX2RldmljZSAqc3BpbmFuZCwKIAkJCWNvbnRpbnVlOwogCiAJCW5hbmQt Pm1lbW9yZyA9IHRhYmxlW2ldLm1lbW9yZzsKLQkJbmFuZC0+ZWNjcmVxID0gdGFibGVbaV0uZWNj cmVxOworCQluYW5kLT5lY2MucmVxdWlyZW1lbnRzID0gdGFibGVbaV0uZWNjcmVxOwogCQlzcGlu YW5kLT5lY2NpbmZvID0gdGFibGVbaV0uZWNjaW5mbzsKIAkJc3BpbmFuZC0+ZmxhZ3MgPSB0YWJs ZVtpXS5mbGFnczsKIAkJc3BpbmFuZC0+c2VsZWN0X3RhcmdldCA9IHRhYmxlW2ldLnNlbGVjdF90 YXJnZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3NwaS9tYWNyb25peC5jIGIvZHJp dmVycy9tdGQvbmFuZC9zcGkvbWFjcm9uaXguYwppbmRleCBjNjMwMGQ5ZDYzZjkuLmVmNzEzMTI5 NjZhMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9zcGkvbWFjcm9uaXguYworKysgYi9k cml2ZXJzL210ZC9uYW5kL3NwaS9tYWNyb25peC5jCkBAIC03OCwxMCArNzgsMTAgQEAgc3RhdGlj IGludCBteDM1bGYxZ2U0YWJfZWNjX2dldF9zdGF0dXMoc3RydWN0IHNwaW5hbmRfZGV2aWNlICpz cGluYW5kLAogCQkgKiBkYXRhIGFyb3VuZCBpZiBpdCdzIG5vdCBuZWNlc3NhcnkuCiAJCSAqLwog CQlpZiAobXgzNWxmMWdlNGFiX2dldF9lY2NzcihzcGluYW5kLCAmZWNjc3IpKQotCQkJcmV0dXJu IG5hbmQtPmVjY3JlcS5zdHJlbmd0aDsKKwkJCXJldHVybiBuYW5kLT5lY2MuY3R4LmNvbmYuc3Ry ZW5ndGg7CiAKLQkJaWYgKFdBUk5fT04oZWNjc3IgPiBuYW5kLT5lY2NyZXEuc3RyZW5ndGggfHwg IWVjY3NyKSkKLQkJCXJldHVybiBuYW5kLT5lY2NyZXEuc3RyZW5ndGg7CisJCWlmIChXQVJOX09O KGVjY3NyID4gbmFuZC0+ZWNjLmN0eC5jb25mLnN0cmVuZ3RoIHx8ICFlY2NzcikpCisJCQlyZXR1 cm4gbmFuZC0+ZWNjLmN0eC5jb25mLnN0cmVuZ3RoOwogCiAJCXJldHVybiBlY2NzcjsKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9zcGkvdG9zaGliYS5jIGIvZHJpdmVycy9tdGQvbmFu ZC9zcGkvdG9zaGliYS5jCmluZGV4IDAwZGRhYjA4ZTZjNi4uNGFjMzM2ZDNhMzA0IDEwMDY0NAot LS0gYS9kcml2ZXJzL210ZC9uYW5kL3NwaS90b3NoaWJhLmMKKysrIGIvZHJpdmVycy9tdGQvbmFu ZC9zcGkvdG9zaGliYS5jCkBAIC03NywxMiArNzcsMTIgQEAgc3RhdGljIGludCB0YzU4Y3ZnMnMw aF9lY2NfZ2V0X3N0YXR1cyhzdHJ1Y3Qgc3BpbmFuZF9kZXZpY2UgKnNwaW5hbmQsCiAJCSAqIGRh dGEgYXJvdW5kIGlmIGl0J3Mgbm90IG5lY2Vzc2FyeS4KIAkJICovCiAJCWlmIChzcGlfbWVtX2V4 ZWNfb3Aoc3BpbmFuZC0+c3BpbWVtLCAmb3ApKQotCQkJcmV0dXJuIG5hbmQtPmVjY3JlcS5zdHJl bmd0aDsKKwkJCXJldHVybiBuYW5kLT5lY2MuY3R4LmNvbmYuc3RyZW5ndGg7CiAKIAkJbWJmID4+ PSA0OwogCi0JCWlmIChXQVJOX09OKG1iZiA+IG5hbmQtPmVjY3JlcS5zdHJlbmd0aCB8fCAhbWJm KSkKLQkJCXJldHVybiBuYW5kLT5lY2NyZXEuc3RyZW5ndGg7CisJCWlmIChXQVJOX09OKG1iZiA+ IG5hbmQtPmVjYy5jdHguY29uZi5zdHJlbmd0aCB8fCAhbWJmKSkKKwkJCXJldHVybiBuYW5kLT5l Y2MuY3R4LmNvbmYuc3RyZW5ndGg7CiAKIAkJcmV0dXJuIG1iZjsKIApkaWZmIC0tZ2l0IGEvaW5j bHVkZS9saW51eC9tdGQvbmFuZC5oIGIvaW5jbHVkZS9saW51eC9tdGQvbmFuZC5oCmluZGV4IDMw ZjBmYjAyYWJlMi4uOWUzYjAxOGQwYjgzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L210ZC9u YW5kLmgKKysrIGIvaW5jbHVkZS9saW51eC9tdGQvbmFuZC5oCkBAIC04Miw4ICs4MiwxNCBAQCBz dHJ1Y3QgbmFuZF9wb3MgewogCXVuc2lnbmVkIGludCBwYWdlOwogfTsKIAorZW51bSBuYW5kX3Bh Z2VfaW9fcmVxX3R5cGUgeworCU5BTkRfUEFHRV9SRUFEID0gMCwKKwlOQU5EX1BBR0VfV1JJVEUs Cit9OworCiAvKioKICAqIHN0cnVjdCBuYW5kX3BhZ2VfaW9fcmVxIC0gTkFORCBJL08gcmVxdWVz dCBvYmplY3QKKyAqIEB0eXBlOiB0aGUgdHlwZSBvZiBwYWdlIEkvTzogcmVhZCBvciB3cml0ZQog ICogQHBvczogdGhlIHBvc2l0aW9uIHRoaXMgSS9PIHJlcXVlc3QgaXMgdGFyZ2V0aW5nCiAgKiBA ZGF0YW9mZnM6IHRoZSBvZmZzZXQgd2l0aGluIHRoZSBwYWdlCiAgKiBAZGF0YWxlbjogbnVtYmVy IG9mIGRhdGEgYnl0ZXMgdG8gcmVhZCBmcm9tL3dyaXRlIHRvIHRoaXMgcGFnZQpAQCAtOTksNiAr MTA1LDcgQEAgc3RydWN0IG5hbmRfcG9zIHsKICAqIHNwZWNpZmljIGNvbW1hbmRzL29wZXJhdGlv bnMuCiAgKi8KIHN0cnVjdCBuYW5kX3BhZ2VfaW9fcmVxIHsKKwllbnVtIG5hbmRfcGFnZV9pb19y ZXFfdHlwZSB0eXBlOwogCXN0cnVjdCBuYW5kX3BvcyBwb3M7CiAJdW5zaWduZWQgaW50IGRhdGFv ZmZzOwogCXVuc2lnbmVkIGludCBkYXRhbGVuOwpAQCAtMTE2LDEzICsxMjMsMzUgQEAgc3RydWN0 IG5hbmRfcGFnZV9pb19yZXEgewogfTsKIAogLyoqCi0gKiBzdHJ1Y3QgbmFuZF9lY2NfcmVxIC0g TkFORCBFQ0MgcmVxdWlyZW1lbnRzCisgKiBzdHJ1Y3QgbmFuZF9lY2NfY29uZiAtIE5BTkQgRUND IGNvbmZpZ3VyYXRpb24KKyAqIEBzdHJlbmd0aDogRUNDIHN0cmVuZ3RoCisgKiBAc3RlcF9zaXpl OiBOdW1iZXIgb2YgYnl0ZXMgcGVyIHN0ZXAKKyAqIEB0b3RhbDogVG90YWwgbnVtYmVyIG9mIGJ5 dGVzIHVzZWQgZm9yIHN0b3JpbmcgRUNDIGNvZGVzLCB0aGlzIGlzIHVzZWQgYnkKKyAqICAgICAg ICAgZ2VuZXJpYyBPT0IgbGF5b3V0cworICovCitzdHJ1Y3QgbmFuZF9lY2NfY29uZiB7CisJdW5z aWduZWQgaW50IHN0cmVuZ3RoOworCXVuc2lnbmVkIGludCBzdGVwX3NpemU7CisJdW5zaWduZWQg aW50IHRvdGFsOworfTsKKworLyoqCisgKiBzdHJ1Y3QgbmFuZF9lY2NfdXNlcl9jb25mIC0gVXNl ciBkZXNpcmVkIEVDQyBjb25maWd1cmF0aW9uCisgKiBAbW9kZTogRUNDIG1vZGUKKyAqIEBhbGdv OiBFQ0MgYWxnb3JpdGhtCiAgKiBAc3RyZW5ndGg6IEVDQyBzdHJlbmd0aAogICogQHN0ZXBfc2l6 ZTogRUNDIHN0ZXAvYmxvY2sgc2l6ZQorICogQG1heGltaXplOiBFQ0MgcGFyYW1ldGVycyBtdXN0 IGJlIG1heGltaXplZCBkZXBlbmRpbmcgb24gdGhlIGRldmljZQorICogICAgICAgICAgICBjYXBh YmlsaXRpZXMKKyAqIEBmbGFnczogVXNlciBmbGFncwogICovCi1zdHJ1Y3QgbmFuZF9lY2NfcmVx IHsKK3N0cnVjdCBuYW5kX2VjY191c2VyX2NvbmYgeworCWludCBtb2RlOworCXVuc2lnbmVkIGlu dCBhbGdvOwogCXVuc2lnbmVkIGludCBzdHJlbmd0aDsKIAl1bnNpZ25lZCBpbnQgc3RlcF9zaXpl OworCXVuc2lnbmVkIGludCBtYXhpbWl6ZTsKKwl1bnNpZ25lZCBpbnQgZmxhZ3M7CiB9OwogCiAj ZGVmaW5lIE5BTkRfRUNDUkVRKHN0ciwgc3RwKSB7IC5zdHJlbmd0aCA9IChzdHIpLCAuc3RlcF9z aXplID0gKHN0cCkgfQpAQCAtMTU3LDExICsxODYsNzYgQEAgc3RydWN0IG5hbmRfb3BzIHsKIAli b29sICgqaXNiYWQpKHN0cnVjdCBuYW5kX2RldmljZSAqbmFuZCwgY29uc3Qgc3RydWN0IG5hbmRf cG9zICpwb3MpOwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgbmFuZF9lY2NfY29udGV4dCAtIENvbnRl eHQgZm9yIHRoZSBFQ0MgZW5naW5lCisgKgorICogQGNvbmY6IGJhc2ljIEVDQyBlbmdpbmUgcGFy YW1ldGVycworICogQHByaXY6IEVDQyBlbmdpbmUgZHJpdmVyIHByaXZhdGUgZGF0YQorICovCitz dHJ1Y3QgbmFuZF9lY2NfY29udGV4dCB7CisJc3RydWN0IG5hbmRfZWNjX2NvbmYgY29uZjsKKwl2 b2lkICpwcml2OworfTsKKworLyoqCisgKiBzdHJ1Y3QgbmFuZF9lY2NfZW5naW5lX29wcyAtIEdl bmVyaWMgRUNDIGVuZ2luZSBvcGVyYXRpb25zCisgKgorICogQGluaXRfY3R4OiBnaXZlbiBhIGRl c2lyZWQgdXNlciBjb25maWd1cmF0aW9uIGZvciB0aGUgcG9pbnRlZCBOQU5EIGRldmljZSwKKyAq ICAgICAgICAgICAgcmVxdWVzdHMgdGhlIEVDQyBlbmdpbmUgZHJpdmVyIHRvIHNldHVwIGEgY29u ZmlndXJhdGlvbiB3aXRoCisgKiAgICAgICAgICAgIHZhbHVlcyBpdCBzdXBwb3J0cy4KKyAqIEBj bGVhbnVwX2N0eDogY2xlYW4gdGhlIGNvbnRleHQgaW5pdGlhbGl6ZWQgYnkgQGluaXRfY3R4Lgor ICogQHByZXBhcmVfaW9fcmVxOiBpcyBjYWxsZWQgYmVmb3JlIHJlYWRpbmcvd3JpdGluZyBhIHBh Z2UgdG8gcHJlcGFyZSB0aGUgSS9PCisgKiAgICAgICAgICAgICAgICAgIHJlcXVlc3QgdG8gYmUg cGVyZm9ybWVkIHdpdGggRUNDIGNvcnJlY3Rpb24uCisgKiBAZmluaXNoX2lvX3JlcTogaXMgY2Fs bGVkIGFmdGVyIHJlYWRpbmcvd3JpdGluZyBhIHBhZ2UgdG8gdGVybWluYXRlIHRoZSBJL08KKyAq ICAgICAgICAgICAgICAgICByZXF1ZXN0IGFuZCBlbnN1cmUgcHJvcGVyIEVDQyBjb3JyZWN0aW9u LgorICovCitzdHJ1Y3QgbmFuZF9lY2NfZW5naW5lX29wcyB7CisJaW50ICgqaW5pdF9jdHgpKHN0 cnVjdCBuYW5kX2RldmljZSAqbmFuZCk7CisJdm9pZCAoKmNsZWFudXBfY3R4KShzdHJ1Y3QgbmFu ZF9kZXZpY2UgKm5hbmQpOworCWludCAoKnByZXBhcmVfaW9fcmVxKShzdHJ1Y3QgbmFuZF9kZXZp Y2UgKm5hbmQsCisJCQkgICAgICBzdHJ1Y3QgbmFuZF9wYWdlX2lvX3JlcSAqcmVxLAorCQkJICAg ICAgdm9pZCAqb29iYnVmKTsKKwlpbnQgKCpmaW5pc2hfaW9fcmVxKShzdHJ1Y3QgbmFuZF9kZXZp Y2UgKm5hbmQsCisJCQkgICAgIHN0cnVjdCBuYW5kX3BhZ2VfaW9fcmVxICpyZXEsCisJCQkgICAg IHZvaWQgKm9vYmJ1Zik7Cit9OworCisvKioKKyAqIHN0cnVjdCBuYW5kX2VjY19lbmdpbmUgLSBH ZW5lcmljIEVDQyBlbmdpbmUgYWJzdHJhY3Rpb24gZm9yIE5BTkQgZGV2aWNlcworICoKKyAqIEBv cHM6IEVDQyBlbmdpbmUgb3BlcmF0aW9ucworICovCitzdHJ1Y3QgbmFuZF9lY2NfZW5naW5lIHsK KwlzdHJ1Y3QgbmFuZF9lY2NfZW5naW5lX29wcyAqb3BzOworfTsKKworaW50IG5hbmRfZWNjX2lu aXRfY3R4KHN0cnVjdCBuYW5kX2RldmljZSAqbmFuZCk7Cit2b2lkIG5hbmRfZWNjX2NsZWFudXBf Y3R4KHN0cnVjdCBuYW5kX2RldmljZSAqbmFuZCk7CitpbnQgbmFuZF9lY2NfcHJlcGFyZV9pb19y ZXEoc3RydWN0IG5hbmRfZGV2aWNlICpuYW5kLAorCQkJICAgIHN0cnVjdCBuYW5kX3BhZ2VfaW9f cmVxICpyZXEsIHZvaWQgKm9vYmJ1Zik7CitpbnQgbmFuZF9lY2NfZmluaXNoX2lvX3JlcShzdHJ1 Y3QgbmFuZF9kZXZpY2UgKm5hbmQsCisJCQkgICBzdHJ1Y3QgbmFuZF9wYWdlX2lvX3JlcSAqcmVx LCB2b2lkICpvb2JidWYpOworCisvKioKKyAqIHN0cnVjdCBuYW5kX2VjYyAtIEhpZ2gtbGV2ZWwg RUNDIG9iamVjdAorICoKKyAqIEByZXF1aXJlbWVudHM6IEVDQyByZXF1aXJlbWVudHMgZnJvbSB0 aGUgTkFORCBjaGlwIHBlcnNwZWN0aXZlCisgKiBAdXNlcl9jb25mOiB1c2VyIGRlc2lyZXMgaW4g dGVybXMgb2YgRUNDIHBhcmFtZXRlcnMKKyAqIEBjdHg6IEVDQyBjb250ZXh0IGZvciB0aGUgRUND IGVuZ2luZSwgZGVyaXZlZCBmcm9tIHRoZSBkZXZpY2UgQHJlcXVpcmVtZW50cworICogICAgICAg YW5kIEB1c2VyX2NvbmYKKyAqIEBlbmdpbmU6IEVDQyBlbmdpbmUKKyAqLworc3RydWN0IG5hbmRf ZWNjIHsKKwlzdHJ1Y3QgbmFuZF9lY2NfY29uZiByZXF1aXJlbWVudHM7CisJc3RydWN0IG5hbmRf ZWNjX3VzZXJfY29uZiB1c2VyX2NvbmY7CisJc3RydWN0IG5hbmRfZWNjX2NvbnRleHQgY3R4Owor CXN0cnVjdCBuYW5kX2VjY19lbmdpbmUgKmVuZ2luZTsKK307CisKIC8qKgogICogc3RydWN0IG5h bmRfZGV2aWNlIC0gTkFORCBkZXZpY2UKICAqIEBtdGQ6IE1URCBpbnN0YW5jZSBhdHRhY2hlZCB0 byB0aGUgTkFORCBkZXZpY2UKICAqIEBtZW1vcmc6IG1lbW9yeSBsYXlvdXQKLSAqIEBlY2NyZXE6 IEVDQyByZXF1aXJlbWVudHMKICAqIEByb3djb252OiBwb3NpdGlvbiB0byByb3cgYWRkcmVzcyBj b252ZXJ0ZXIKICAqIEBiYnQ6IGJhZCBibG9jayB0YWJsZSBpbmZvCiAgKiBAb3BzOiBOQU5EIG9w ZXJhdGlvbnMgYXR0YWNoZWQgdG8gdGhlIE5BTkQgZGV2aWNlCkBAIC0xNjksOCArMjYzLDggQEAg c3RydWN0IG5hbmRfb3BzIHsKICAqIEdlbmVyaWMgTkFORCBvYmplY3QuIFNwZWNpYWxpemVkIE5B TkQgbGF5ZXJzIChyYXcgTkFORCwgU1BJIE5BTkQsIE9uZU5BTkQpCiAgKiBzaG91bGQgZGVjbGFy ZSB0aGVpciBvd24gTkFORCBvYmplY3QgZW1iZWRkaW5nIGEgbmFuZF9kZXZpY2Ugc3RydWN0ICh0 aGF0J3MKICAqIGhvdyBpbmhlcml0YW5jZSBpcyBkb25lKS4KLSAqIHN0cnVjdF9uYW5kX2Rldmlj ZS0+bWVtb3JnIGFuZCBzdHJ1Y3RfbmFuZF9kZXZpY2UtPmVjY3JlcSBzaG91bGQgYmUgZmlsbGVk Ci0gKiBhdCBkZXZpY2UgZGV0ZWN0aW9uIHRpbWUgdG8gcmVmbGVjdCB0aGUgTkFORCBkZXZpY2UK KyAqIHN0cnVjdF9uYW5kX2RldmljZS0+bWVtb3JnIGFuZCBzdHJ1Y3RfbmFuZF9kZXZpY2UtPmVj Yy5jdHguY29uZiBzaG91bGQKKyAqIGJlIGZpbGxlZCBhdCBkZXZpY2UgZGV0ZWN0aW9uIHRpbWUg dG8gcmVmbGVjdCB0aGUgTkFORCBkZXZpY2UKICAqIGNhcGFiaWxpdGllcy9yZXF1aXJlbWVudHMu IE9uY2UgdGhpcyBpcyBkb25lIG5hbmRkZXZfaW5pdCgpIGNhbiBiZSBjYWxsZWQuCiAgKiBJdCB3 aWxsIHRha2UgY2FyZSBvZiBjb252ZXJ0aW5nIE5BTkQgaW5mb3JtYXRpb24gaW50byBNVEQgb25l cywgd2hpY2ggbWVhbnMKICAqIHRoZSBzcGVjaWFsaXplZCBOQU5EIGxheWVycyBzaG91bGQgbmV2 ZXIgbWFudWFsbHkgdHdlYWsKQEAgLTE3OSw3ICsyNzMsNyBAQCBzdHJ1Y3QgbmFuZF9vcHMgewog c3RydWN0IG5hbmRfZGV2aWNlIHsKIAlzdHJ1Y3QgbXRkX2luZm8gbXRkOwogCXN0cnVjdCBuYW5k X21lbW9yeV9vcmdhbml6YXRpb24gbWVtb3JnOwotCXN0cnVjdCBuYW5kX2VjY19yZXEgZWNjcmVx OworCXN0cnVjdCBuYW5kX2VjYyBlY2M7CiAJc3RydWN0IG5hbmRfcm93X2NvbnZlcnRlciByb3dj b252OwogCXN0cnVjdCBuYW5kX2JidCBiYnQ7CiAJY29uc3Qgc3RydWN0IG5hbmRfb3BzICpvcHM7 CkBAIC02MjQsMTEgKzcxOCwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbmFuZGRldl9wb3NfbmV4 dF9wYWdlKHN0cnVjdCBuYW5kX2RldmljZSAqbmFuZCwKICAqIGxheWVyLgogICovCiBzdGF0aWMg aW5saW5lIHZvaWQgbmFuZGRldl9pb19pdGVyX2luaXQoc3RydWN0IG5hbmRfZGV2aWNlICpuYW5k LAorCQkJCQllbnVtIG5hbmRfcGFnZV9pb19yZXFfdHlwZSByZXF0eXBlLAogCQkJCQlsb2ZmX3Qg b2Zmcywgc3RydWN0IG10ZF9vb2Jfb3BzICpyZXEsCiAJCQkJCXN0cnVjdCBuYW5kX2lvX2l0ZXIg Kml0ZXIpCiB7CiAJc3RydWN0IG10ZF9pbmZvICptdGQgPSBuYW5kZGV2X3RvX210ZChuYW5kKTsK IAorCWl0ZXItPnJlcS50eXBlID0gcmVxdHlwZTsKIAlpdGVyLT5yZXEubW9kZSA9IHJlcS0+bW9k ZTsKIAlpdGVyLT5yZXEuZGF0YW9mZnMgPSBuYW5kZGV2X29mZnNfdG9fcG9zKG5hbmQsIG9mZnMs ICZpdGVyLT5yZXEucG9zKTsKIAlpdGVyLT5yZXEub29ib2ZmcyA9IHJlcS0+b29ib2ZmczsKQEAg LTY5OCw4ICs3OTQsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgbmFuZGRldl9pb19pdGVyX2VuZChz dHJ1Y3QgbmFuZF9kZXZpY2UgKm5hbmQsCiAgKgogICogU2hvdWxkIGJlIHVzZWQgZm9yIGl0ZXJh dGUgb3ZlciBwYWdlcyB0aGF0IGFyZSBjb250YWluZWQgaW4gYW4gTVREIHJlcXVlc3QuCiAgKi8K LSNkZWZpbmUgbmFuZGRldl9pb19mb3JfZWFjaF9wYWdlKG5hbmQsIHN0YXJ0LCByZXEsIGl0ZXIp CQlcCi0JZm9yIChuYW5kZGV2X2lvX2l0ZXJfaW5pdChuYW5kLCBzdGFydCwgcmVxLCBpdGVyKTsJ CVwKKyNkZWZpbmUgbmFuZGRldl9pb19mb3JfZWFjaF9wYWdlKG5hbmQsIHR5cGUsIHN0YXJ0LCBy ZXEsIGl0ZXIpCQlcCisJZm9yIChuYW5kZGV2X2lvX2l0ZXJfaW5pdChuYW5kLCB0eXBlLCBzdGFy dCwgcmVxLCBpdGVyKTsJXAogCSAgICAgIW5hbmRkZXZfaW9faXRlcl9lbmQobmFuZCwgaXRlcik7 CQkJCVwKIAkgICAgIG5hbmRkZXZfaW9faXRlcl9uZXh0X3BhZ2UobmFuZCwgaXRlcikpCiAKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbXRkL3NwaW5hbmQuaCBiL2luY2x1ZGUvbGludXgvbXRk L3NwaW5hbmQuaAppbmRleCBiOTJlMmFhOTU1YjYuLjc1YTI4ZGM3OWE5YyAxMDA2NDQKLS0tIGEv aW5jbHVkZS9saW51eC9tdGQvc3BpbmFuZC5oCisrKyBiL2luY2x1ZGUvbGludXgvbXRkL3NwaW5h bmQuaApAQCAtMTY4LDcgKzE2OCw3IEBAIHN0cnVjdCBzcGluYW5kX2lkIHsKICAqCSAgICBtYXRj aCwgMCBpZiB0aGUgbWFudWZhY3R1cmVyIElEIGRvZXMgbm90IG1hdGNoIGFuZCBhIG5lZ2F0aXZl CiAgKgkgICAgZXJyb3IgY29kZSBvdGhlcndpc2UuIFdoZW4gdHJ1ZSBpcyByZXR1cm5lZCwgdGhl IGNvcmUgYXNzdW1lcwogICoJICAgIHRoYXQgcHJvcGVydGllcyBvZiB0aGUgTkFORCBjaGlwIChz cGluYW5kLT5iYXNlLm1lbW9yZyBhbmQKLSAqCSAgICBzcGluYW5kLT5iYXNlLmVjY3JlcSkgaGF2 ZSBiZWVuIGZpbGxlZAorICoJICAgIHNwaW5hbmQtPmJhc2UuZWNjLmN0eC5jb25mKSBoYXZlIGJl ZW4gZmlsbGVkCiAgKiBAaW5pdDogaW5pdGlhbGl6ZSBhIFNQSSBOQU5EIGRldmljZQogICogQGNs ZWFudXA6IGNsZWFudXAgYSBTUEkgTkFORCBkZXZpY2UKICAqCkBAIC0yNjMsNyArMjYzLDcgQEAg c3RydWN0IHNwaW5hbmRfaW5mbyB7CiAJdTggZGV2aWQ7CiAJdTMyIGZsYWdzOwogCXN0cnVjdCBu YW5kX21lbW9yeV9vcmdhbml6YXRpb24gbWVtb3JnOwotCXN0cnVjdCBuYW5kX2VjY19yZXEgZWNj cmVxOworCXN0cnVjdCBuYW5kX2VjY19jb25mIGVjY3JlcTsKIAlzdHJ1Y3Qgc3BpbmFuZF9lY2Nf aW5mbyBlY2NpbmZvOwogCXN0cnVjdCB7CiAJCWNvbnN0IHN0cnVjdCBzcGluYW5kX29wX3Zhcmlh bnRzICpyZWFkX2NhY2hlOwotLSAKMi4xOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgt YXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=