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=-15.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 6F993C433C1 for ; Thu, 25 Mar 2021 15:13:57 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 C2FAC61A16 for ; Thu, 25 Mar 2021 15:13:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C2FAC61A16 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:References:In-Reply-To:MIME-Version:Date:Message-ID: From:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=+61CQaiL5uVC+L30fY3FTyk8pp7QNEzHiCJyKtt2OCc=; b=D0rSbigq1wB0pLePLdGKxHiRQ wqy45SMnaF9+WpULnjsjVoxpCxmiWGoeGj/03G3sKryZ6gOFGOlIaq5JKMpTMZDExB/WhKOyXMb7c 2UHXx79uhqGpyCM2i0obw4rF2wIEOu1E8cEVxwzhvWmaLKkU9DQur/FcD7g7OSfKXcNpKfUTyhBNK zWHuDFgIe7I6gN8l0FFVQKuuVpuS6UIbWBIgSu65cDTAd1kJh/HnMAxm6AZCskndcOSJZwOd9Ng76 JBw7c6s8dOyAwjfUtmUh296aQUp91t15oBygCwVn0AsZOOEt+RKGjcn5o26y5eVq6jupTWBMPx6z2 ihfA52WDQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lPRgE-001h9H-Kz; Thu, 25 Mar 2021 15:13:51 +0000 Received: from mailout1.w1.samsung.com ([210.118.77.11]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lPRg7-001h7b-K9 for linux-amlogic@lists.infradead.org; Thu, 25 Mar 2021 15:13:48 +0000 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20210325151330euoutp0136e5136c2966f5032ce40d620a4f6d7f~vnqIvHnsA0993309933euoutp01t for ; Thu, 25 Mar 2021 15:13:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20210325151330euoutp0136e5136c2966f5032ce40d620a4f6d7f~vnqIvHnsA0993309933euoutp01t DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1616685210; bh=ZGPa5fVfRSfinWPEDgHLOSPhuIAIXOEQc5LsF6R8+T0=; h=Subject:To:Cc:From:Date:In-Reply-To:References:From; b=KczXuYOyelZZbiTscoyDcgtv5FDN3T1IFToWikhcaYMzNWvN5SB/9lOBUdCTxV4cd W9tb8ZfKa1q0pqs/CLYwVLrSowSbcViPLnhY9aXJvOJZLGk8Z2nyvG+KG3JTqc3Hbi HMxaygmNRShexfjw5+kEnG+o6SmOl+irpHGGBm9A= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20210325151330eucas1p2b44a1cd5a985f1446aee9d07573fb5d6~vnqINy9rZ2540425404eucas1p2B; Thu, 25 Mar 2021 15:13:30 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id CA.9B.09444.998AC506; Thu, 25 Mar 2021 15:13:29 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20210325151329eucas1p10b57c4e56a53ba17dc8f68e6b29a46b2~vnqHjIUeL0274602746eucas1p1H; Thu, 25 Mar 2021 15:13:29 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20210325151329eusmtrp13566a4fb7964bf6cfd7aa2d4dad12e54~vnqHh826z0469304693eusmtrp1m; Thu, 25 Mar 2021 15:13:29 +0000 (GMT) X-AuditID: cbfec7f4-dd5ff700000024e4-70-605ca8991f98 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id A3.13.08705.998AC506; Thu, 25 Mar 2021 15:13:29 +0000 (GMT) Received: from [106.210.134.192] (unknown [106.210.134.192]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20210325151328eusmtip121817def291fafd9bbb1528249748d7b~vnqGaAwUk0952909529eusmtip1B; Thu, 25 Mar 2021 15:13:28 +0000 (GMT) Subject: Re: [PATCH net-next] net: stmmac: support FPE link partner hand-shaking procedure To: mohammad.athari.ismail@intel.com, Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu , "David S . Miller" , Jakub Kicinski , Maxime Coquelin , Russell King , Joakim Zhang , Chuah@vger.kernel.org, Kim Tatt , Fugang Duan Cc: Ong Boon Leong , Voon Weifeng , vee.khee.wong@intel.com, netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-amlogic@lists.infradead.org, Neil Armstrong From: Marek Szyprowski Message-ID: Date: Thu, 25 Mar 2021 16:13:27 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: <20210324090742.3413-1-mohammad.athari.ismail@intel.com> Content-Language: en-US X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpmk+LIzCtJLcpLzFFi42LZduznOd2ZK2ISDHYds7bY+OQ0o8WT9YvY LC6v2MdiMed8C4vFyud32S3uLXrHarFv7RtWiwvb+lgtFszmttj0+BqrxeVdc9gsuq49YbU4 NHUvo8W8v2uBrEPvmSwO9UVbHFsgZvH/9VZGixXPutgtZj/Yy2ax9MgMdgdRj8vXLjJ7vL/R yu6xZeVNJo+ds+6yeyze85LJY9OqTjaPzUvqPTa+28HkcXCfocfTH3uZPbbs/8zo8XmTXABP FJdNSmpOZllqkb5dAlfGisdTWApe7Ges2P24namB8fcsxi5GTg4JAROJSasWsYLYQgIrGCWm n6iCsL8wSnR+yexi5AKyPzNK7H55gh2mYeXygywQieWMEv8OzmaHcD4ySky8PxFsrLBAjMTu k11sIAkRgUvMEtdO/gFrYRY4wSSxa/0WJpAqNgFDia63IFWcHLwCdhJ/t/WB2SwCqhLft/cD NXBwiAokSWw4FAtRIihxcuYTFhCbU8BV4kv/SjCbWUBeonnrbGYIW1zi1pP5TBCnfuKUmHY2 GsJ2kTj7eCfUC8ISr45vgbJlJE5P7gG7TUKgmVHi4bm17BBOD6PE5aYZ0FCylrhz7hcbyEHM ApoS63fpQ4QdJfY8+MQEEpYQ4JO48VYQ4gY+iUnbpjNDhHklOtqEIKrVJGYdXwe39uCFS8wT GJVmIflsFpJvZiH5ZhbC3gWMLKsYxVNLi3PTU4uN8lLL9YoTc4tL89L1kvNzNzEC0+npf8e/ 7GBc/uqj3iFGJg7GQ4wSHMxKIrxJvjEJQrwpiZVVqUX58UWlOanFhxilOViUxHmTtqyJFxJI TyxJzU5NLUgtgskycXBKNTD5KNZMMAnmvMQy5xyH12qWnOVmPtNqNFfOM5/3e9fRFcsfbWx4 EB62qG9uY26P08ROqfRJkquO+UXKnypk9l5wL4775b+w0OWvbyg7z7Y1W/t7foJQ/9K8ZxZp cUJXRfbkvDU2fHHwwc3fRnvEn22XKEqd2jtB6Rafx+Inr/qT3fZ93mP7ZPOpK147zy79l3rB x2T/x6MRV478YORQ45bsMdTr3pa06Us7z9pk+Rd3viy+/fzCoyt8Bq4Jr0/8XNy/UJsz+Trf 61bj3fr2nDyZnZ935ryU7J36ckr/epmuIuNjSh+3MkjP9XV2drA9cJaNcSVXZvzShDQeV8sM zR++PR0qvBxHss2M3Fi1r9cpsRRnJBpqMRcVJwIAEqIG6hYEAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprOKsWRmVeSWpSXmKPExsVy+t/xu7ozV8QkGMx4yWex8clpRosn6xex WVxesY/FYs75FhaLlc/vslvcW/SO1WLf2jesFhe29bFaLJjNbbHp8TVWi8u75rBZdF17wmpx aOpeRot5f9cCWYfeM1kc6ou2OLZAzOL/662MFiuedbFbzH6wl81i6ZEZ7A6iHpevXWT2eH+j ld1jy8qbTB47Z91l91i85yWTx6ZVnWwem5fUe2x8t4PJ4+A+Q4+nP/Yye2zZ/5nR4/MmuQCe KD2bovzSklSFjPziElulaEMLIz1DSws9IxNLPUNj81grI1MlfTublNSczLLUIn27BL2MFY+n sBS82M9YsftxO1MD4+9ZjF2MnBwSAiYSK5cfZOli5OIQEljKKHHnXQ8LREJG4uS0BlYIW1ji z7UuNoii94wSzU/+ghUJC8RI7D4JkuDkEBG4wiwx6ZgsSBGzwAkmiev3roJ1Cwm4SDTf72EH sdkEDCW63kI08ArYSfzd1gdmswioSnzf3g82VFQgSeLykomsEDWCEidnPgGLcwq4SnzpXwlm MwuYSczb/JAZwpaXaN46G8oWl7j1ZD7TBEahWUjaZyFpmYWkZRaSlgWMLKsYRVJLi3PTc4sN 9YoTc4tL89L1kvNzNzECU8i2Yz8372Cc9+qj3iFGJg7GQ4wSHMxKIrxJvjEJQrwpiZVVqUX5 8UWlOanFhxhNgf6ZyCwlmpwPTGJ5JfGGZgamhiZmlgamlmbGSuK8W+euiRcSSE8sSc1OTS1I LYLpY+LglGpgatZesWm65tWQW6lbLh1iWanUV75z8o0Hldd9HnFF1C64mJLzddL2gs+3a/Qk NG7PvbDktI+UBWOW7oI7O/JkL7/f/LFQdcaa3wr/DvVZx7bYfPfwX5wXdEXrV7v8JDXLhk1N Hh7q4TPOrTpyvUzGd+WUj+yRh4N2PXqm0X1hysqlz+4ee3rgj9D8WSoLb8+V60mPz5zZYZUi ovg4S/yT+af3//eG7V6SEhtxoft0mWOJ45GzmxdYS6/dVHD2857oZznM2q1W2xWa3q9s4juf 8n3F1o/BdT+/bWd0Fox4LV6ybsOhXx+/LY50F0p0kn18/rvzIYXVyS+WNf56vIvlwT3zikbh zr6PbWzn/Lo41+krsRRnJBpqMRcVJwIAXlYkeaoDAAA= X-CMS-MailID: 20210325151329eucas1p10b57c4e56a53ba17dc8f68e6b29a46b2 X-Msg-Generator: CA X-RootMTR: 20210325151329eucas1p10b57c4e56a53ba17dc8f68e6b29a46b2 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20210325151329eucas1p10b57c4e56a53ba17dc8f68e6b29a46b2 References: <20210324090742.3413-1-mohammad.athari.ismail@intel.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210325_151344_524365_6C24F030 X-CRM114-Status: GOOD ( 27.72 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org SGksCgpPbiAyNC4wMy4yMDIxIDEwOjA3LCBtb2hhbW1hZC5hdGhhcmkuaXNtYWlsQGludGVsLmNv bSB3cm90ZToKPiBGcm9tOiBPbmcgQm9vbiBMZW9uZyA8Ym9vbi5sZW9uZy5vbmdAaW50ZWwuY29t Pgo+Cj4gSW4gb3JkZXIgdG8gZGlzY292ZXIgd2hldGhlciByZW1vdGUgc3RhdGlvbiBzdXBwb3J0 cyBmcmFtZSBwcmVlbXB0aW9uLAo+IGxvY2FsIHN0YXRpb24gc2VuZHMgdmVyaWZ5IG1QYWNrZXQg YW5kIGV4cGVjdHMgcmVzcG9uc2UgbVBhY2tldCBpbgo+IHJldHVybiBmcm9tIHRoZSByZW1vdGUg c3RhdGlvbi4KPgo+IFNvLCB3ZSBhZGQgdGhlIGZ1bmN0aW9ucyB0byBzZW5kIGFuZCBoYW5kbGUg ZXZlbnQgd2hlbiB2ZXJpZnkgbVBhY2tldAo+IGFuZCByZXNwb25zZSBtUGFja2V0IGFyZSBleGNo YW5nZWQgYmV0d2VlbiB0aGUgbmV0d29ya2VkIHN0YXRpb25zLgo+Cj4gVGhlIG1lY2hhbmlzbSB0 byBoYW5kbGUgZGlmZmVyZW50IEZQRSBzdGF0ZXMgYmV0d2VlbiBsb2NhbCBhbmQgcmVtb3RlCj4g c3RhdGlvbiAobGluayBwYXJ0bmVyKSBpcyBpbXBsZW1lbnRlZCB1c2luZyB3b3JrcXVldWUgd2hp Y2ggc3RhcnRzIGEKPiB0YXNrIGVhY2ggdGltZSB0aGVyZSBpcyBzb21lIHNpZ24gb2YgdmVyaWZ5 ICYgcmVzcG9uc2UgbVBhY2tldCBleGNoYW5nZQo+IGFzIGNoZWNrIGluIEZQRSBJUlEgZXZlbnQu IFRoZSB0YXNrIHJldHJpZXMgY291cGxlIG9mIHRpbWVzIHRvIHRyeSB0bwo+IHNwb3QgdGhlIHN0 YXRlcyB0aGF0IGJvdGggc3RhdGlvbnMgYXJlIHJlYWR5IHRvIGVudGVyIEZQRSBPTi4gVGhpcyBh bGxvd3MKPiBkaWZmZXJlbnQgZW5kIHBvaW50cyB0byBlbmFibGUgRlBFIGF0IGRpZmZlcmVudCB0 aW1lIGFuZCB2ZXJpZnktcmVzcG9uc2UKPiBtUGFja2V0IGNhbiBoYXBwZW4gYXN5bmNocm9ub3Vz bHkuIFVsdGltYXRlbHksIHRoZSB0YXNrIHdpbGwgb25seSB0dXJuCj4gRlBFIE9OIHdoZW4gbG9j YWwgc3RhdGlvbiBoYXZlIGJvdGggZXhjaGFuZ2UgcmVzcG9uc2UgaW4gYm90aCBkaXJlY3Rpb25z Lgo+Cj4gVGhhbmtzIHRvIFZvb24gV2VpZmVuZyBmb3IgaW1wbGVtZW50aW5nIHRoZSBjb3JlIGZ1 bmN0aW9ucyBmb3IgZGV0ZWN0aW5nCj4gRlBFIGV2ZW50cyBhbmQgc2VuZCBtUGFja2V0IGFuZCBw aHlsaW5rIHJlbGF0ZWQgY2hhbmdlLgo+Cj4gU2lnbmVkLW9mZi1ieTogT25nIEJvb24gTGVvbmcg PGJvb24ubGVvbmcub25nQGludGVsLmNvbT4KPiBDby1kZXZlbG9wZWQtYnk6IFZvb24gV2VpZmVu ZyA8d2VpZmVuZy52b29uQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBWb29uIFdlaWZlbmcg PHdlaWZlbmcudm9vbkBpbnRlbC5jb20+Cj4gQ28tZGV2ZWxvcGVkLWJ5OiBUYW4gVGVlIE1pbiA8 dGVlLm1pbi50YW5AaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFRhbiBUZWUgTWluIDx0ZWUu bWluLnRhbkBpbnRlbC5jb20+Cj4gQ28tZGV2ZWxvcGVkLWJ5OiBNb2hhbW1hZCBBdGhhcmkgQmlu IElzbWFpbCA8bW9oYW1tYWQuYXRoYXJpLmlzbWFpbEBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1i eTogTW9oYW1tYWQgQXRoYXJpIEJpbiBJc21haWwgPG1vaGFtbWFkLmF0aGFyaS5pc21haWxAaW50 ZWwuY29tPgoKVGhpcyBwYXRjaCBsYW5kZWQgaW4gdG9kYXkncyBsaW51eC1uZXh0IGFzIGNvbW1p dCA1YTU1ODYxMTJiOTIgKCJuZXQ6IApzdG1tYWM6IHN1cHBvcnQgRlBFIGxpbmsgcGFydG5lciBo YW5kLXNoYWtpbmcgcHJvY2VkdXJlIikuIEl0IGNhdXNlcyB0aGUgCmZvbGxvd2luZyBOVUxMIHBv aW50ZXIgZGVyZWZlcmVuY2UgaXNzdWUgb24gdmFyaW91cyBBbWxvZ2ljIFNvQyBiYXNlZCAKYm9h cmRzOgoKIMKgbWVzb244Yi1kd21hYyBmZjNmMDAwMC5ldGhlcm5ldCBldGgwOiBQSFkgWzAuMDow MF0gZHJpdmVyIFtSVEw4MjExRiAKR2lnYWJpdCBFdGhlcm5ldF0gKGlycT0zNSkKIMKgbWVzb244 Yi1kd21hYyBmZjNmMDAwMC5ldGhlcm5ldCBldGgwOiBObyBTYWZldHkgRmVhdHVyZXMgc3VwcG9y dCBmb3VuZAogwqBtZXNvbjhiLWR3bWFjIGZmM2YwMDAwLmV0aGVybmV0IGV0aDA6IFBUUCBub3Qg c3VwcG9ydGVkIGJ5IEhXCiDCoG1lc29uOGItZHdtYWMgZmYzZjAwMDAuZXRoZXJuZXQgZXRoMDog Y29uZmlndXJpbmcgZm9yIHBoeS9yZ21paSBsaW5rIG1vZGUKIMKgVW5hYmxlIHRvIGhhbmRsZSBr ZXJuZWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGF0IHZpcnR1YWwgYWRkcmVzcyAKMDAwMDAw MDAwMDAwMDAwMQogwqBNZW0gYWJvcnQgaW5mbzoKLi4uCiDCoHVzZXIgcGd0YWJsZTogNGsgcGFn ZXMsIDQ4LWJpdCBWQXMsIHBnZHA9MDAwMDAwMDAwNDRlYjAwMAogwqBbMDAwMDAwMDAwMDAwMDAw MV0gcGdkPTAwMDAwMDAwMDAwMDAwMDAsIHA0ZD0wMDAwMDAwMDAwMDAwMDAwCiDCoEludGVybmFs IGVycm9yOiBPb3BzOiA5NjAwMDAwNCBbIzFdIFBSRUVNUFQgU01QCiDCoE1vZHVsZXMgbGlua2Vk IGluOiBkd19oZG1pX2kyc19hdWRpbyBkd19oZG1pX2NlYyBtZXNvbl9neGwgcmVhbHRlayAKbWVz b25fZ3hiYl93ZHQgc25kX3NvY19tZXNvbl9heGdfc291bmRfY2FyZCBkd21hY19nZW5lcmljIGF4 Z19hdWRpbyAKbWVzb25fZHdfaGRtaSBjcmN0MTBkaWZfY2Ugc25kX3NvY19tZXNvbl9jYXJkX3V0 aWxzIApzbmRfc29jX21lc29uX2F4Z190ZG1vdXQgcGFuZnJvc3QgcmNfb2Ryb2lkIGdwdV9zY2hl ZCAKcmVzZXRfbWVzb25fYXVkaW9fYXJiIG1lc29uX2lyIHNuZF9zb2NfbWVzb25fZzEyYV90b2hk bWl0eCAKc25kX3NvY19tZXNvbl9heGdfZnJkZHIgc2Nsa19kaXYgY2xrX3BoYXNlIHNuZF9zb2Nf bWVzb25fY29kZWNfZ2x1ZSAKZHdtYWNfbWVzb244YiBzbmRfc29jX21lc29uX2F4Z19maWZvIHN0 bW1hY19wbGF0Zm9ybSBtZXNvbl9ybmcgbWVzb25fZHJtIApzdG1tYWMgcnRjX21lc29uX3ZydGMg cm5nX2NvcmUgbWVzb25fY2FudmFzIHB3bV9tZXNvbiBkd19oZG1pIAptZGlvX211eF9tZXNvbl9n MTJhIHBjc194cGNzIHNuZF9zb2NfbWVzb25fYXhnX3RkbV9pbnRlcmZhY2UgCnNuZF9zb2NfbWVz b25fYXhnX3RkbV9mb3JtYXR0ZXIgbnZtZW1fbWVzb25fZWZ1c2UgZGlzcGxheV9jb25uZWN0b3IK IMKgQ1BVOiAxIFBJRDogNyBDb21tOiBrd29ya2VyL3U4OjAgTm90IHRhaW50ZWQgNS4xMi4wLXJj NC1uZXh0LTIwMjEwMzI1KyAKIzI3NDcKIMKgSGFyZHdhcmUgbmFtZTogSGFyZGtlcm5lbCBPRFJP SUQtQzQgKERUKQogwqBXb3JrcXVldWU6IGV2ZW50c19wb3dlcl9lZmZpY2llbnQgcGh5bGlua19y ZXNvbHZlCiDCoHBzdGF0ZTogMjA0MDAwMDkgKG56Q3YgZGFpZiArUEFOIC1VQU8gLVRDTyBCVFlQ RT0tLSkKIMKgcGMgOiBzdG1tYWNfbWFjX2xpbmtfdXArMHgxNGMvMHgzNDggW3N0bW1hY10KIMKg bHIgOiBzdG1tYWNfbWFjX2xpbmtfdXArMHgyODQvMHgzNDggW3N0bW1hY10KLi4uCiDCoENhbGwg dHJhY2U6CiDCoCBzdG1tYWNfbWFjX2xpbmtfdXArMHgxNGMvMHgzNDggW3N0bW1hY10KIMKgIHBo eWxpbmtfcmVzb2x2ZSsweDEwNC8weDQyMAogwqAgcHJvY2Vzc19vbmVfd29yaysweDJhOC8weDcx OAogwqAgd29ya2VyX3RocmVhZCsweDQ4LzB4NDYwCiDCoCBrdGhyZWFkKzB4MTM0LzB4MTYwCiDC oCByZXRfZnJvbV9mb3JrKzB4MTAvMHgxOAogwqBDb2RlOiBiOTcxYmE2MCAzNTAwMDdjMCBmOTU4 YzI2MCBmOTQwMjAwMCAoMzk0MDA0MDEpCiDCoC0tLVsgZW5kIHRyYWNlIDBjOWRlYjZjNTEwMjI4 YWEgXS0tLQoKPiAtLS0KPiAgIGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2Nv bW1vbi5oICB8ICAgNyArCj4gICAuLi4vbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFj NF9jb3JlLmMgfCAgIDggKwo+ICAgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMv ZHdtYWM1LmMgIHwgIDQ5ICsrKysrCj4gICBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0 bW1hYy9kd21hYzUuaCAgfCAgMTEgKysKPiAgIGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8v c3RtbWFjL2h3aWYuaCAgICB8ICAgNyArCj4gICBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3Jv L3N0bW1hYy9zdG1tYWMuaCAgfCAgIDcgKwo+ICAgLi4uL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0 bW1hYy9zdG1tYWNfbWFpbi5jIHwgMTgzICsrKysrKysrKysrKysrKysrKwo+ICAgLi4uL25ldC9l dGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfdGMuYyAgIHwgIDM5ICsrKy0KPiAgIGluY2x1 ZGUvbGludXgvc3RtbWFjLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAyNyArKysKPiAgIDkg ZmlsZXMgY2hhbmdlZCwgMzMxIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCj4KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmggYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaAo+IGluZGV4IDFjMGM2 MGJkZjg1NC4uNDUxMTk0NWRmODAyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oCj4gKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3Rt aWNyby9zdG1tYWMvY29tbW9uLmgKPiBAQCAtMzE1LDYgKzMxNSwxMyBAQCBlbnVtIGRtYV9pcnFf c3RhdHVzIHsKPiAgICNkZWZpbmUJQ09SRV9JUlFfUlhfUEFUSF9JTl9MUElfTU9ERQkoMSA8PCAy KQo+ICAgI2RlZmluZQlDT1JFX0lSUV9SWF9QQVRIX0VYSVRfTFBJX01PREUJKDEgPDwgMykKPiAg IAo+ICsvKiBGUEUgZGVmaW5lcyAqLwo+ICsjZGVmaW5lIEZQRV9FVkVOVF9VTktOT1dOCQkwCj4g KyNkZWZpbmUgRlBFX0VWRU5UX1RSU1AJCQlCSVQoMCkKPiArI2RlZmluZSBGUEVfRVZFTlRfVFZF UgkJCUJJVCgxKQo+ICsjZGVmaW5lIEZQRV9FVkVOVF9SUlNQCQkJQklUKDIpCj4gKyNkZWZpbmUg RlBFX0VWRU5UX1JWRVIJCQlCSVQoMykKPiArCj4gICAjZGVmaW5lIENPUkVfSVJRX01UTF9SWF9P VkVSRkxPVwlCSVQoOCkKPiAgIAo+ICAgLyogUGh5c2ljYWwgQ29kaW5nIFN1YmxheWVyICovCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9j b3JlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzRfY29yZS5j Cj4gaW5kZXggMjlmNzY1YTI0NmEwLi45NTg2NGYwMTRmZmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM0X2NvcmUuYwo+ICsrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNF9jb3JlLmMKPiBAQCAtNTMsNiAr NTMsMTAgQEAgc3RhdGljIHZvaWQgZHdtYWM0X2NvcmVfaW5pdChzdHJ1Y3QgbWFjX2RldmljZV9p bmZvICpodywKPiAgIAlpZiAoaHctPnBjcykKPiAgIAkJdmFsdWUgfD0gR01BQ19QQ1NfSVJRX0RF RkFVTFQ7Cj4gICAKPiArCS8qIEVuYWJsZSBGUEUgaW50ZXJydXB0ICovCj4gKwlpZiAoKEdNQUNf SFdfRkVBVF9GUEVTRUwgJiByZWFkbChpb2FkZHIgKyBHTUFDX0hXX0ZFQVRVUkUzKSkgPj4gMjYp Cj4gKwkJdmFsdWUgfD0gR01BQ19JTlRfRlBFX0VOOwo+ICsKPiAgIAl3cml0ZWwodmFsdWUsIGlv YWRkciArIEdNQUNfSU5UX0VOKTsKPiAgIH0KPiAgIAo+IEBAIC0xMjQ1LDYgKzEyNDksOCBAQCBj b25zdCBzdHJ1Y3Qgc3RtbWFjX29wcyBkd21hYzQxMF9vcHMgPSB7Cj4gICAJLmNvbmZpZ19sNF9m aWx0ZXIgPSBkd21hYzRfY29uZmlnX2w0X2ZpbHRlciwKPiAgIAkuZXN0X2NvbmZpZ3VyZSA9IGR3 bWFjNV9lc3RfY29uZmlndXJlLAo+ICAgCS5mcGVfY29uZmlndXJlID0gZHdtYWM1X2ZwZV9jb25m aWd1cmUsCj4gKwkuZnBlX3NlbmRfbXBhY2tldCA9IGR3bWFjNV9mcGVfc2VuZF9tcGFja2V0LAo+ ICsJLmZwZV9pcnFfc3RhdHVzID0gZHdtYWM1X2ZwZV9pcnFfc3RhdHVzLAo+ICAgCS5hZGRfaHdf dmxhbl9yeF9mbHRyID0gZHdtYWM0X2FkZF9od192bGFuX3J4X2ZsdHIsCj4gICAJLmRlbF9od192 bGFuX3J4X2ZsdHIgPSBkd21hYzRfZGVsX2h3X3ZsYW5fcnhfZmx0ciwKPiAgIAkucmVzdG9yZV9o d192bGFuX3J4X2ZsdHIgPSBkd21hYzRfcmVzdG9yZV9od192bGFuX3J4X2ZsdHIsCj4gQEAgLTEy OTQsNiArMTMwMCw4IEBAIGNvbnN0IHN0cnVjdCBzdG1tYWNfb3BzIGR3bWFjNTEwX29wcyA9IHsK PiAgIAkuY29uZmlnX2w0X2ZpbHRlciA9IGR3bWFjNF9jb25maWdfbDRfZmlsdGVyLAo+ICAgCS5l c3RfY29uZmlndXJlID0gZHdtYWM1X2VzdF9jb25maWd1cmUsCj4gICAJLmZwZV9jb25maWd1cmUg PSBkd21hYzVfZnBlX2NvbmZpZ3VyZSwKPiArCS5mcGVfc2VuZF9tcGFja2V0ID0gZHdtYWM1X2Zw ZV9zZW5kX21wYWNrZXQsCj4gKwkuZnBlX2lycV9zdGF0dXMgPSBkd21hYzVfZnBlX2lycV9zdGF0 dXMsCj4gICAJLmFkZF9od192bGFuX3J4X2ZsdHIgPSBkd21hYzRfYWRkX2h3X3ZsYW5fcnhfZmx0 ciwKPiAgIAkuZGVsX2h3X3ZsYW5fcnhfZmx0ciA9IGR3bWFjNF9kZWxfaHdfdmxhbl9yeF9mbHRy LAo+ICAgCS5yZXN0b3JlX2h3X3ZsYW5fcnhfZmx0ciA9IGR3bWFjNF9yZXN0b3JlX2h3X3ZsYW5f cnhfZmx0ciwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1t YWMvZHdtYWM1LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzUu Ywo+IGluZGV4IDBhZTg1ZjhhZGY2Ny4uNWIwMTBlYmZlZGU5IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjNS5jCj4gKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM1LmMKPiBAQCAtNzA3LDMgKzcwNyw1MiBA QCB2b2lkIGR3bWFjNV9mcGVfY29uZmlndXJlKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1MzIgbnVt X3R4cSwgdTMyIG51bV9yeHEsCj4gICAJdmFsdWUgfD0gRUZQRTsKPiAgIAl3cml0ZWwodmFsdWUs IGlvYWRkciArIE1BQ19GUEVfQ1RSTF9TVFMpOwo+ICAgfQo+ICsKPiAraW50IGR3bWFjNV9mcGVf aXJxX3N0YXR1cyh2b2lkIF9faW9tZW0gKmlvYWRkciwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikK PiArewo+ICsJdTMyIHZhbHVlOwo+ICsJaW50IHN0YXR1czsKPiArCj4gKwlzdGF0dXMgPSBGUEVf RVZFTlRfVU5LTk9XTjsKPiArCj4gKwl2YWx1ZSA9IHJlYWRsKGlvYWRkciArIE1BQ19GUEVfQ1RS TF9TVFMpOwo+ICsKPiArCWlmICh2YWx1ZSAmIFRSU1ApIHsKPiArCQlzdGF0dXMgfD0gRlBFX0VW RU5UX1RSU1A7Cj4gKwkJbmV0ZGV2X2luZm8oZGV2LCAiRlBFOiBSZXNwb25kIG1QYWNrZXQgaXMg dHJhbnNtaXR0ZWRcbiIpOwo+ICsJfQo+ICsKPiArCWlmICh2YWx1ZSAmIFRWRVIpIHsKPiArCQlz dGF0dXMgfD0gRlBFX0VWRU5UX1RWRVI7Cj4gKwkJbmV0ZGV2X2luZm8oZGV2LCAiRlBFOiBWZXJp ZnkgbVBhY2tldCBpcyB0cmFuc21pdHRlZFxuIik7Cj4gKwl9Cj4gKwo+ICsJaWYgKHZhbHVlICYg UlJTUCkgewo+ICsJCXN0YXR1cyB8PSBGUEVfRVZFTlRfUlJTUDsKPiArCQluZXRkZXZfaW5mbyhk ZXYsICJGUEU6IFJlc3BvbmQgbVBhY2tldCBpcyByZWNlaXZlZFxuIik7Cj4gKwl9Cj4gKwo+ICsJ aWYgKHZhbHVlICYgUlZFUikgewo+ICsJCXN0YXR1cyB8PSBGUEVfRVZFTlRfUlZFUjsKPiArCQlu ZXRkZXZfaW5mbyhkZXYsICJGUEU6IFZlcmlmeSBtUGFja2V0IGlzIHJlY2VpdmVkXG4iKTsKPiAr CX0KPiArCj4gKwlyZXR1cm4gc3RhdHVzOwo+ICt9Cj4gKwo+ICt2b2lkIGR3bWFjNV9mcGVfc2Vu ZF9tcGFja2V0KHZvaWQgX19pb21lbSAqaW9hZGRyLCBlbnVtIHN0bW1hY19tcGFja2V0X3R5cGUg dHlwZSkKPiArewo+ICsJdTMyIHZhbHVlOwo+ICsKPiArCXZhbHVlID0gcmVhZGwoaW9hZGRyICsg TUFDX0ZQRV9DVFJMX1NUUyk7Cj4gKwo+ICsJaWYgKHR5cGUgPT0gTVBBQ0tFVF9WRVJJRlkpIHsK PiArCQl2YWx1ZSAmPSB+U1JTUDsKPiArCQl2YWx1ZSB8PSBTVkVSOwo+ICsJfSBlbHNlIHsKPiAr CQl2YWx1ZSAmPSB+U1ZFUjsKPiArCQl2YWx1ZSB8PSBTUlNQOwo+ICsJfQo+ICsKPiArCXdyaXRl bCh2YWx1ZSwgaW9hZGRyICsgTUFDX0ZQRV9DVFJMX1NUUyk7Cj4gK30KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWM1LmggYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzUuaAo+IGluZGV4IDcwOWJiZmM5YWU2MS4u ZmY1NTVkOGIwY2RmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8v c3RtbWFjL2R3bWFjNS5oCj4gKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1t YWMvZHdtYWM1LmgKPiBAQCAtMTIsNiArMTIsMTIgQEAKPiAgICNkZWZpbmUgVE1PVVRFTgkJCQlC SVQoMCkKPiAgIAo+ICAgI2RlZmluZSBNQUNfRlBFX0NUUkxfU1RTCQkweDAwMDAwMjM0Cj4gKyNk ZWZpbmUgVFJTUAkJCQlCSVQoMTkpCj4gKyNkZWZpbmUgVFZFUgkJCQlCSVQoMTgpCj4gKyNkZWZp bmUgUlJTUAkJCQlCSVQoMTcpCj4gKyNkZWZpbmUgUlZFUgkJCQlCSVQoMTYpCj4gKyNkZWZpbmUg U1JTUAkJCQlCSVQoMikKPiArI2RlZmluZSBTVkVSCQkJCUJJVCgxKQo+ICAgI2RlZmluZSBFRlBF CQkJCUJJVCgwKQo+ICAgCj4gICAjZGVmaW5lIE1BQ19QUFNfQ09OVFJPTAkJCTB4MDAwMDBiNzAK PiBAQCAtMTI4LDYgKzEzNCw4IEBACj4gICAjZGVmaW5lIEdNQUNfUlhRQ1RSTF9WRkZRX1NISUZU CQkxNwo+ICAgI2RlZmluZSBHTUFDX1JYUUNUUkxfVkZGUUUJCUJJVCgxNikKPiAgIAo+ICsjZGVm aW5lIEdNQUNfSU5UX0ZQRV9FTgkJCUJJVCgxNykKPiArCj4gICBpbnQgZHdtYWM1X3NhZmV0eV9m ZWF0X2NvbmZpZyh2b2lkIF9faW9tZW0gKmlvYWRkciwgdW5zaWduZWQgaW50IGFzcCk7Cj4gICBp bnQgZHdtYWM1X3NhZmV0eV9mZWF0X2lycV9zdGF0dXMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYs Cj4gICAJCXZvaWQgX19pb21lbSAqaW9hZGRyLCB1bnNpZ25lZCBpbnQgYXNwLAo+IEBAIC0xNDUs NSArMTUzLDggQEAgdm9pZCBkd21hYzVfZXN0X2lycV9zdGF0dXModm9pZCBfX2lvbWVtICppb2Fk ZHIsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCj4gICAJCQkgICBzdHJ1Y3Qgc3RtbWFjX2V4dHJh X3N0YXRzICp4LCB1MzIgdHhxY250KTsKPiAgIHZvaWQgZHdtYWM1X2ZwZV9jb25maWd1cmUodm9p ZCBfX2lvbWVtICppb2FkZHIsIHUzMiBudW1fdHhxLCB1MzIgbnVtX3J4cSwKPiAgIAkJCSAgYm9v bCBlbmFibGUpOwo+ICt2b2lkIGR3bWFjNV9mcGVfc2VuZF9tcGFja2V0KHZvaWQgX19pb21lbSAq aW9hZGRyLAo+ICsJCQkgICAgIGVudW0gc3RtbWFjX21wYWNrZXRfdHlwZSB0eXBlKTsKPiAraW50 IGR3bWFjNV9mcGVfaXJxX3N0YXR1cyh2b2lkIF9faW9tZW0gKmlvYWRkciwgc3RydWN0IG5ldF9k ZXZpY2UgKmRldik7Cj4gICAKPiAgICNlbmRpZiAvKiBfX0RXTUFDNV9IX18gKi8KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oCj4gaW5kZXggNjkyNTQxYzdiNDE5 Li4zOGNmYzJjYWUxMjkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNy by9zdG1tYWMvaHdpZi5oCj4gKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1t YWMvaHdpZi5oCj4gQEAgLTM5Nyw2ICszOTcsOSBAQCBzdHJ1Y3Qgc3RtbWFjX29wcyB7Cj4gICAJ CQkgICAgICAgc3RydWN0IHN0bW1hY19leHRyYV9zdGF0cyAqeCwgdTMyIHR4cWNudCk7Cj4gICAJ dm9pZCAoKmZwZV9jb25maWd1cmUpKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1MzIgbnVtX3R4cSwg dTMyIG51bV9yeHEsCj4gICAJCQkgICAgICBib29sIGVuYWJsZSk7Cj4gKwl2b2lkICgqZnBlX3Nl bmRfbXBhY2tldCkodm9pZCBfX2lvbWVtICppb2FkZHIsCj4gKwkJCQkgZW51bSBzdG1tYWNfbXBh Y2tldF90eXBlIHR5cGUpOwo+ICsJaW50ICgqZnBlX2lycV9zdGF0dXMpKHZvaWQgX19pb21lbSAq aW9hZGRyLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsKPiAgIH07Cj4gICAKPiAgICNkZWZpbmUg c3RtbWFjX2NvcmVfaW5pdChfX3ByaXYsIF9fYXJncy4uLikgXAo+IEBAIC00OTcsNiArNTAwLDEw IEBAIHN0cnVjdCBzdG1tYWNfb3BzIHsKPiAgIAlzdG1tYWNfZG9fdm9pZF9jYWxsYmFjayhfX3By aXYsIG1hYywgZXN0X2lycV9zdGF0dXMsIF9fYXJncykKPiAgICNkZWZpbmUgc3RtbWFjX2ZwZV9j b25maWd1cmUoX19wcml2LCBfX2FyZ3MuLi4pIFwKPiAgIAlzdG1tYWNfZG9fdm9pZF9jYWxsYmFj ayhfX3ByaXYsIG1hYywgZnBlX2NvbmZpZ3VyZSwgX19hcmdzKQo+ICsjZGVmaW5lIHN0bW1hY19m cGVfc2VuZF9tcGFja2V0KF9fcHJpdiwgX19hcmdzLi4uKSBcCj4gKwlzdG1tYWNfZG9fdm9pZF9j YWxsYmFjayhfX3ByaXYsIG1hYywgZnBlX3NlbmRfbXBhY2tldCwgX19hcmdzKQo+ICsjZGVmaW5l IHN0bW1hY19mcGVfaXJxX3N0YXR1cyhfX3ByaXYsIF9fYXJncy4uLikgXAo+ICsJc3RtbWFjX2Rv X2NhbGxiYWNrKF9fcHJpdiwgbWFjLCBmcGVfaXJxX3N0YXR1cywgX19hcmdzKQo+ICAgCj4gICAv KiBQVFAgYW5kIEhXIFRpbWVyIGhlbHBlcnMgKi8KPiAgIHN0cnVjdCBzdG1tYWNfaHd0aW1lc3Rh bXAgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9z dG1tYWMuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oCj4g aW5kZXggMzc1YzUwM2QyZGY4Li40ZmFhZDMzMWE0Y2EgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmgKPiArKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaAo+IEBAIC0yMzQsNiArMjM0LDEyIEBAIHN0 cnVjdCBzdG1tYWNfcHJpdiB7Cj4gICAJc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndxOwo+ICAg CXN0cnVjdCB3b3JrX3N0cnVjdCBzZXJ2aWNlX3Rhc2s7Cj4gICAKPiArCS8qIFdvcmtxdWV1ZSBm b3IgaGFuZGxpbmcgRlBFIGhhbmQtc2hha2luZyAqLwo+ICsJdW5zaWduZWQgbG9uZyBmcGVfdGFz a19zdGF0ZTsKPiArCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpmcGVfd3E7Cj4gKwlzdHJ1Y3Qg d29ya19zdHJ1Y3QgZnBlX3Rhc2s7Cj4gKwljaGFyIHdxX25hbWVbSUZOQU1TSVogKyA0XTsKPiAr Cj4gICAJLyogVEMgSGFuZGxpbmcgKi8KPiAgIAl1bnNpZ25lZCBpbnQgdGNfZW50cmllc19tYXg7 Cj4gICAJdW5zaWduZWQgaW50IHRjX29mZl9tYXg7Cj4gQEAgLTI3Myw2ICsyNzksNyBAQCBib29s IHN0bW1hY19lZWVfaW5pdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpOwo+ICAgaW50IHN0bW1h Y19yZWluaXRfcXVldWVzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUzMiByeF9jbnQsIHUzMiB0 eF9jbnQpOwo+ICAgaW50IHN0bW1hY19yZWluaXRfcmluZ3BhcmFtKHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYsIHUzMiByeF9zaXplLCB1MzIgdHhfc2l6ZSk7Cj4gICBpbnQgc3RtbWFjX2J1c19jbGtz X2NvbmZpZyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGJvb2wgZW5hYmxlZCk7Cj4gK3ZvaWQg c3RtbWFjX2ZwZV9oYW5kc2hha2Uoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBib29sIGVuYWJs ZSk7Cj4gICAKPiAgICNpZiBJU19FTkFCTEVEKENPTkZJR19TVE1NQUNfU0VMRlRFU1RTKQo+ICAg dm9pZCBzdG1tYWNfc2VsZnRlc3RfcnVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCj4gaW5k ZXggOGQ3MDE1ZDNhNTM3Li4xNzAyOTY4MjBhZjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwo+ICsrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKPiBAQCAtOTcxLDYgKzk3MSwy MSBAQCBzdGF0aWMgdm9pZCBzdG1tYWNfbWFjX2FuX3Jlc3RhcnQoc3RydWN0IHBoeWxpbmtfY29u ZmlnICpjb25maWcpCj4gICAJLyogTm90IFN1cHBvcnRlZCAqLwo+ICAgfQo+ICAgCj4gK3N0YXRp YyB2b2lkIHN0bW1hY19mcGVfbGlua19zdGF0ZV9oYW5kbGUoc3RydWN0IHN0bW1hY19wcml2ICpw cml2LCBib29sIGlzX3VwKQo+ICt7Cj4gKwlzdHJ1Y3Qgc3RtbWFjX2ZwZV9jZmcgKmZwZV9jZmcg PSBwcml2LT5wbGF0LT5mcGVfY2ZnOwo+ICsJZW51bSBzdG1tYWNfZnBlX3N0YXRlICpsb19zdGF0 ZSA9ICZmcGVfY2ZnLT5sb19mcGVfc3RhdGU7Cj4gKwllbnVtIHN0bW1hY19mcGVfc3RhdGUgKmxw X3N0YXRlID0gJmZwZV9jZmctPmxwX2ZwZV9zdGF0ZTsKPiArCWJvb2wgKmhzX2VuYWJsZSA9ICZm cGVfY2ZnLT5oc19lbmFibGU7Cj4gKwo+ICsJaWYgKGlzX3VwICYmICpoc19lbmFibGUpIHsKPiAr CQlzdG1tYWNfZnBlX3NlbmRfbXBhY2tldChwcml2LCBwcml2LT5pb2FkZHIsIE1QQUNLRVRfVkVS SUZZKTsKPiArCX0gZWxzZSB7Cj4gKwkJKmxvX3N0YXRlID0gRlBFX0VWRU5UX1VOS05PV047Cj4g KwkJKmxwX3N0YXRlID0gRlBFX0VWRU5UX1VOS05PV047Cj4gKwl9Cj4gK30KPiArCj4gICBzdGF0 aWMgdm9pZCBzdG1tYWNfbWFjX2xpbmtfZG93bihzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZp ZywKPiAgIAkJCQkgdW5zaWduZWQgaW50IG1vZGUsIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2Up Cj4gICB7Cj4gQEAgLTk4MSw2ICs5OTYsOCBAQCBzdGF0aWMgdm9pZCBzdG1tYWNfbWFjX2xpbmtf ZG93bihzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZywKPiAgIAlwcml2LT50eF9scGlfZW5h YmxlZCA9IGZhbHNlOwo+ICAgCXN0bW1hY19lZWVfaW5pdChwcml2KTsKPiAgIAlzdG1tYWNfc2V0 X2VlZV9wbHMocHJpdiwgcHJpdi0+aHcsIGZhbHNlKTsKPiArCj4gKwlzdG1tYWNfZnBlX2xpbmtf c3RhdGVfaGFuZGxlKHByaXYsIGZhbHNlKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgc3Rt bWFjX21hY19saW5rX3VwKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLAo+IEBAIC0xMDc5 LDYgKzEwOTYsOCBAQCBzdGF0aWMgdm9pZCBzdG1tYWNfbWFjX2xpbmtfdXAoc3RydWN0IHBoeWxp bmtfY29uZmlnICpjb25maWcsCj4gICAJCXByaXYtPnR4X2xwaV9lbmFibGVkID0gcHJpdi0+ZWVl X2VuYWJsZWQ7Cj4gICAJCXN0bW1hY19zZXRfZWVlX3Bscyhwcml2LCBwcml2LT5odywgdHJ1ZSk7 Cj4gICAJfQo+ICsKPiArCXN0bW1hY19mcGVfbGlua19zdGF0ZV9oYW5kbGUocHJpdiwgdHJ1ZSk7 Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19tYWNfb3BzIHN0bW1h Y19waHlsaW5rX21hY19vcHMgPSB7Cj4gQEAgLTI3OTMsNiArMjgxMiwyNiBAQCBzdGF0aWMgdm9p ZCBzdG1tYWNfc2FmZXR5X2ZlYXRfY29uZmlndXJhdGlvbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnBy aXYpCj4gICAJfQo+ICAgfQo+ICAgCj4gK3N0YXRpYyBpbnQgc3RtbWFjX2ZwZV9zdGFydF93cShz dHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpCj4gK3sKPiArCWNoYXIgKm5hbWU7Cj4gKwo+ICsJY2xl YXJfYml0KF9fRlBFX1RBU0tfU0NIRUQsICZwcml2LT5mcGVfdGFza19zdGF0ZSk7Cj4gKwo+ICsJ bmFtZSA9IHByaXYtPndxX25hbWU7Cj4gKwlzcHJpbnRmKG5hbWUsICIlcy1mcGUiLCBwcml2LT5k ZXYtPm5hbWUpOwo+ICsKPiArCXByaXYtPmZwZV93cSA9IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29y a3F1ZXVlKG5hbWUpOwo+ICsJaWYgKCFwcml2LT5mcGVfd3EpIHsKPiArCQluZXRkZXZfZXJyKHBy aXYtPmRldiwgIiVzOiBGYWlsZWQgdG8gY3JlYXRlIHdvcmtxdWV1ZVxuIiwgbmFtZSk7Cj4gKwo+ ICsJCXJldHVybiAtRU5PTUVNOwo+ICsJfQo+ICsJbmV0ZGV2X2luZm8ocHJpdi0+ZGV2LCAiRlBF IHdvcmtxdWV1ZSBzdGFydCIpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICAgLyoqCj4g ICAgKiBzdG1tYWNfaHdfc2V0dXAgLSBzZXR1cCBtYWMgaW4gYSB1c2FibGUgc3RhdGUuCj4gICAg KiAgQGRldiA6IHBvaW50ZXIgdG8gdGhlIGRldmljZSBzdHJ1Y3R1cmUuCj4gQEAgLTI5MjksNiAr Mjk2OCwxMyBAQCBzdGF0aWMgaW50IHN0bW1hY19od19zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2LCBib29sIGluaXRfcHRwKQo+ICAgCS8qIFN0YXJ0IHRoZSBiYWxsIHJvbGxpbmcuLi4gKi8K PiAgIAlzdG1tYWNfc3RhcnRfYWxsX2RtYShwcml2KTsKPiAgIAo+ICsJaWYgKHByaXYtPmRtYV9j YXAuZnBlc2VsKSB7Cj4gKwkJc3RtbWFjX2ZwZV9zdGFydF93cShwcml2KTsKPiArCj4gKwkJaWYg KHByaXYtPnBsYXQtPmZwZV9jZmctPmVuYWJsZSkKPiArCQkJc3RtbWFjX2ZwZV9oYW5kc2hha2Uo cHJpdiwgdHJ1ZSk7Cj4gKwl9Cj4gKwo+ICAgCXJldHVybiAwOwo+ICAgfQo+ICAgCj4gQEAgLTMw OTAsNiArMzEzNiwxNiBAQCBzdGF0aWMgaW50IHN0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYpCj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgdm9pZCBzdG1tYWNf ZnBlX3N0b3Bfd3Eoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KQo+ICt7Cj4gKwlzZXRfYml0KF9f RlBFX1JFTU9WSU5HLCAmcHJpdi0+ZnBlX3Rhc2tfc3RhdGUpOwo+ICsKPiArCWlmIChwcml2LT5m cGVfd3EpCj4gKwkJZGVzdHJveV93b3JrcXVldWUocHJpdi0+ZnBlX3dxKTsKPiArCj4gKwluZXRk ZXZfaW5mbyhwcml2LT5kZXYsICJGUEUgd29ya3F1ZXVlIHN0b3AiKTsKPiArfQo+ICsKPiAgIC8q Kgo+ICAgICogIHN0bW1hY19yZWxlYXNlIC0gY2xvc2UgZW50cnkgcG9pbnQgb2YgdGhlIGRyaXZl cgo+ICAgICogIEBkZXYgOiBkZXZpY2UgcG9pbnRlci4KPiBAQCAtMzEzOSw2ICszMTk1LDkgQEAg c3RhdGljIGludCBzdG1tYWNfcmVsZWFzZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQo+ICAgCj4g ICAJcG1fcnVudGltZV9wdXQocHJpdi0+ZGV2aWNlKTsKPiAgIAo+ICsJaWYgKHByaXYtPmRtYV9j YXAuZnBlc2VsKQo+ICsJCXN0bW1hY19mcGVfc3RvcF93cShwcml2KTsKPiArCj4gICAJcmV0dXJu IDA7Cj4gICB9Cj4gICAKPiBAQCAtNDI4MCw2ICs0MzM5LDQ4IEBAIHN0YXRpYyBpbnQgc3RtbWFj X3NldF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LAo+ICAgCXJldHVybiAwOwo+ ICAgfQo+ICAgCj4gK3N0YXRpYyB2b2lkIHN0bW1hY19mcGVfZXZlbnRfc3RhdHVzKHN0cnVjdCBz dG1tYWNfcHJpdiAqcHJpdiwgaW50IHN0YXR1cykKPiArewo+ICsJc3RydWN0IHN0bW1hY19mcGVf Y2ZnICpmcGVfY2ZnID0gcHJpdi0+cGxhdC0+ZnBlX2NmZzsKPiArCWVudW0gc3RtbWFjX2ZwZV9z dGF0ZSAqbG9fc3RhdGUgPSAmZnBlX2NmZy0+bG9fZnBlX3N0YXRlOwo+ICsJZW51bSBzdG1tYWNf ZnBlX3N0YXRlICpscF9zdGF0ZSA9ICZmcGVfY2ZnLT5scF9mcGVfc3RhdGU7Cj4gKwlib29sICpo c19lbmFibGUgPSAmZnBlX2NmZy0+aHNfZW5hYmxlOwo+ICsKPiArCWlmIChzdGF0dXMgPT0gRlBF X0VWRU5UX1VOS05PV04gfHwgISpoc19lbmFibGUpCj4gKwkJcmV0dXJuOwo+ICsKPiArCS8qIElm IExQIGhhcyBzZW50IHZlcmlmeSBtUGFja2V0LCBMUCBpcyBGUEUgY2FwYWJsZSAqLwo+ICsJaWYg KChzdGF0dXMgJiBGUEVfRVZFTlRfUlZFUikgPT0gRlBFX0VWRU5UX1JWRVIpIHsKPiArCQlpZiAo KmxwX3N0YXRlIDwgRlBFX1NUQVRFX0NBUEFCTEUpCj4gKwkJCSpscF9zdGF0ZSA9IEZQRV9TVEFU RV9DQVBBQkxFOwo+ICsKPiArCQkvKiBJZiB1c2VyIGhhcyByZXF1ZXN0ZWQgRlBFIGVuYWJsZSwg cXVpY2tseSByZXNwb25zZSAqLwo+ICsJCWlmICgqaHNfZW5hYmxlKQo+ICsJCQlzdG1tYWNfZnBl X3NlbmRfbXBhY2tldChwcml2LCBwcml2LT5pb2FkZHIsCj4gKwkJCQkJCU1QQUNLRVRfUkVTUE9O U0UpOwo+ICsJfQo+ICsKPiArCS8qIElmIExvY2FsIGhhcyBzZW50IHZlcmlmeSBtUGFja2V0LCBM b2NhbCBpcyBGUEUgY2FwYWJsZSAqLwo+ICsJaWYgKChzdGF0dXMgJiBGUEVfRVZFTlRfVFZFUikg PT0gRlBFX0VWRU5UX1RWRVIpIHsKPiArCQlpZiAoKmxvX3N0YXRlIDwgRlBFX1NUQVRFX0NBUEFC TEUpCj4gKwkJCSpsb19zdGF0ZSA9IEZQRV9TVEFURV9DQVBBQkxFOwo+ICsJfQo+ICsKPiArCS8q IElmIExQIGhhcyBzZW50IHJlc3BvbnNlIG1QYWNrZXQsIExQIGlzIGVudGVyaW5nIEZQRSBPTiAq Lwo+ICsJaWYgKChzdGF0dXMgJiBGUEVfRVZFTlRfUlJTUCkgPT0gRlBFX0VWRU5UX1JSU1ApCj4g KwkJKmxwX3N0YXRlID0gRlBFX1NUQVRFX0VOVEVSSU5HX09OOwo+ICsKPiArCS8qIElmIExvY2Fs IGhhcyBzZW50IHJlc3BvbnNlIG1QYWNrZXQsIExvY2FsIGlzIGVudGVyaW5nIEZQRSBPTiAqLwo+ ICsJaWYgKChzdGF0dXMgJiBGUEVfRVZFTlRfVFJTUCkgPT0gRlBFX0VWRU5UX1RSU1ApCj4gKwkJ KmxvX3N0YXRlID0gRlBFX1NUQVRFX0VOVEVSSU5HX09OOwo+ICsKPiArCWlmICghdGVzdF9iaXQo X19GUEVfUkVNT1ZJTkcsICZwcml2LT5mcGVfdGFza19zdGF0ZSkgJiYKPiArCSAgICAhdGVzdF9h bmRfc2V0X2JpdChfX0ZQRV9UQVNLX1NDSEVELCAmcHJpdi0+ZnBlX3Rhc2tfc3RhdGUpICYmCj4g KwkgICAgcHJpdi0+ZnBlX3dxKSB7Cj4gKwkJcXVldWVfd29yayhwcml2LT5mcGVfd3EsICZwcml2 LT5mcGVfdGFzayk7Cj4gKwl9Cj4gK30KPiArCj4gICAvKioKPiAgICAqICBzdG1tYWNfaW50ZXJy dXB0IC0gbWFpbiBJU1IKPiAgICAqICBAaXJxOiBpbnRlcnJ1cHQgbnVtYmVyLgo+IEBAIC00MzE4 LDYgKzQ0MTksMTMgQEAgc3RhdGljIGlycXJldHVybl90IHN0bW1hY19pbnRlcnJ1cHQoaW50IGly cSwgdm9pZCAqZGV2X2lkKQo+ICAgCQlzdG1tYWNfZXN0X2lycV9zdGF0dXMocHJpdiwgcHJpdi0+ aW9hZGRyLCBwcml2LT5kZXYsCj4gICAJCQkJICAgICAgJnByaXYtPnhzdGF0cywgdHhfY250KTsK PiAgIAo+ICsJaWYgKHByaXYtPmRtYV9jYXAuZnBlc2VsKSB7Cj4gKwkJaW50IHN0YXR1cyA9IHN0 bW1hY19mcGVfaXJxX3N0YXR1cyhwcml2LCBwcml2LT5pb2FkZHIsCj4gKwkJCQkJCSAgIHByaXYt PmRldik7Cj4gKwo+ICsJCXN0bW1hY19mcGVfZXZlbnRfc3RhdHVzKHByaXYsIHN0YXR1cyk7Cj4g Kwl9Cj4gKwo+ICAgCS8qIFRvIGhhbmRsZSBHTUFDIG93biBpbnRlcnJ1cHRzICovCj4gICAJaWYg KChwcml2LT5wbGF0LT5oYXNfZ21hYykgfHwgeG1hYykgewo+ICAgCQlpbnQgc3RhdHVzID0gc3Rt bWFjX2hvc3RfaXJxX3N0YXR1cyhwcml2LCBwcml2LT5odywgJnByaXYtPnhzdGF0cyk7Cj4gQEAg LTUwNjUsNiArNTE3Myw2OCBAQCBpbnQgc3RtbWFjX3JlaW5pdF9yaW5ncGFyYW0oc3RydWN0IG5l dF9kZXZpY2UgKmRldiwgdTMyIHJ4X3NpemUsIHUzMiB0eF9zaXplKQo+ICAgCXJldHVybiByZXQ7 Cj4gICB9Cj4gICAKPiArI2RlZmluZSBTRU5EX1ZFUklGWV9NUEFLQ0VUX0ZNVCAiU2VuZCBWZXJp ZnkgbVBhY2tldCBsb19zdGF0ZT0lZCBscF9zdGF0ZT0lZFxuIgo+ICtzdGF0aWMgdm9pZCBzdG1t YWNfZnBlX2xwX3Rhc2soc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICt7Cj4gKwlzdHJ1Y3Qg c3RtbWFjX3ByaXYgKnByaXYgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHN0bW1hY19wcml2 LAo+ICsJCQkJCQlmcGVfdGFzayk7Cj4gKwlzdHJ1Y3Qgc3RtbWFjX2ZwZV9jZmcgKmZwZV9jZmcg PSBwcml2LT5wbGF0LT5mcGVfY2ZnOwo+ICsJZW51bSBzdG1tYWNfZnBlX3N0YXRlICpsb19zdGF0 ZSA9ICZmcGVfY2ZnLT5sb19mcGVfc3RhdGU7Cj4gKwllbnVtIHN0bW1hY19mcGVfc3RhdGUgKmxw X3N0YXRlID0gJmZwZV9jZmctPmxwX2ZwZV9zdGF0ZTsKPiArCWJvb2wgKmhzX2VuYWJsZSA9ICZm cGVfY2ZnLT5oc19lbmFibGU7Cj4gKwlib29sICplbmFibGUgPSAmZnBlX2NmZy0+ZW5hYmxlOwo+ ICsJaW50IHJldHJpZXMgPSAyMDsKPiArCj4gKwl3aGlsZSAocmV0cmllcy0tID4gMCkgewo+ICsJ CS8qIEJhaWwgb3V0IGltbWVkaWF0ZWx5IGlmIEZQRSBoYW5kc2hha2UgaXMgT0ZGICovCj4gKwkJ aWYgKCpsb19zdGF0ZSA9PSBGUEVfU1RBVEVfT0ZGIHx8ICEqaHNfZW5hYmxlKQo+ICsJCQlicmVh azsKPiArCj4gKwkJaWYgKCpsb19zdGF0ZSA9PSBGUEVfU1RBVEVfRU5URVJJTkdfT04gJiYKPiAr CQkgICAgKmxwX3N0YXRlID09IEZQRV9TVEFURV9FTlRFUklOR19PTikgewo+ICsJCQlzdG1tYWNf ZnBlX2NvbmZpZ3VyZShwcml2LCBwcml2LT5pb2FkZHIsCj4gKwkJCQkJICAgICBwcml2LT5wbGF0 LT50eF9xdWV1ZXNfdG9fdXNlLAo+ICsJCQkJCSAgICAgcHJpdi0+cGxhdC0+cnhfcXVldWVzX3Rv X3VzZSwKPiArCQkJCQkgICAgICplbmFibGUpOwo+ICsKPiArCQkJbmV0ZGV2X2luZm8ocHJpdi0+ ZGV2LCAiY29uZmlndXJlZCBGUEVcbiIpOwo+ICsKPiArCQkJKmxvX3N0YXRlID0gRlBFX1NUQVRF X09OOwo+ICsJCQkqbHBfc3RhdGUgPSBGUEVfU1RBVEVfT047Cj4gKwkJCW5ldGRldl9pbmZvKHBy aXYtPmRldiwgIiEhISBCT1RIIEZQRSBzdGF0aW9ucyBPTlxuIik7Cj4gKwkJCWJyZWFrOwo+ICsJ CX0KPiArCj4gKwkJaWYgKCgqbG9fc3RhdGUgPT0gRlBFX1NUQVRFX0NBUEFCTEUgfHwKPiArCQkg ICAgICpsb19zdGF0ZSA9PSBGUEVfU1RBVEVfRU5URVJJTkdfT04pICYmCj4gKwkJICAgICAqbHBf c3RhdGUgIT0gRlBFX1NUQVRFX09OKSB7Cj4gKwkJCW5ldGRldl9pbmZvKHByaXYtPmRldiwgU0VO RF9WRVJJRllfTVBBS0NFVF9GTVQsCj4gKwkJCQkgICAgKmxvX3N0YXRlLCAqbHBfc3RhdGUpOwo+ ICsJCQlzdG1tYWNfZnBlX3NlbmRfbXBhY2tldChwcml2LCBwcml2LT5pb2FkZHIsCj4gKwkJCQkJ CU1QQUNLRVRfVkVSSUZZKTsKPiArCQl9Cj4gKwkJLyogU2xlZXAgdGhlbiByZXRyeSAqLwo+ICsJ CW1zbGVlcCg1MDApOwo+ICsJfQo+ICsKPiArCWNsZWFyX2JpdChfX0ZQRV9UQVNLX1NDSEVELCAm cHJpdi0+ZnBlX3Rhc2tfc3RhdGUpOwo+ICt9Cj4gKwo+ICt2b2lkIHN0bW1hY19mcGVfaGFuZHNo YWtlKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgYm9vbCBlbmFibGUpCj4gK3sKPiArCWlmIChw cml2LT5wbGF0LT5mcGVfY2ZnLT5oc19lbmFibGUgIT0gZW5hYmxlKSB7Cj4gKwkJaWYgKGVuYWJs ZSkgewo+ICsJCQlzdG1tYWNfZnBlX3NlbmRfbXBhY2tldChwcml2LCBwcml2LT5pb2FkZHIsCj4g KwkJCQkJCU1QQUNLRVRfVkVSSUZZKTsKPiArCQl9IGVsc2Ugewo+ICsJCQlwcml2LT5wbGF0LT5m cGVfY2ZnLT5sb19mcGVfc3RhdGUgPSBGUEVfU1RBVEVfT0ZGOwo+ICsJCQlwcml2LT5wbGF0LT5m cGVfY2ZnLT5scF9mcGVfc3RhdGUgPSBGUEVfU1RBVEVfT0ZGOwo+ICsJCX0KPiArCj4gKwkJcHJp di0+cGxhdC0+ZnBlX2NmZy0+aHNfZW5hYmxlID0gZW5hYmxlOwo+ICsJfQo+ICt9Cj4gKwo+ICAg LyoqCj4gICAgKiBzdG1tYWNfZHZyX3Byb2JlCj4gICAgKiBAZGV2aWNlOiBkZXZpY2UgcG9pbnRl cgo+IEBAIC01MTIyLDYgKzUyOTIsOSBAQCBpbnQgc3RtbWFjX2R2cl9wcm9iZShzdHJ1Y3QgZGV2 aWNlICpkZXZpY2UsCj4gICAKPiAgIAlJTklUX1dPUksoJnByaXYtPnNlcnZpY2VfdGFzaywgc3Rt bWFjX3NlcnZpY2VfdGFzayk7Cj4gICAKPiArCS8qIEluaXRpYWxpemUgTGluayBQYXJ0bmVyIEZQ RSB3b3JrcXVldWUgKi8KPiArCUlOSVRfV09SSygmcHJpdi0+ZnBlX3Rhc2ssIHN0bW1hY19mcGVf bHBfdGFzayk7Cj4gKwo+ICAgCS8qIE92ZXJyaWRlIHdpdGgga2VybmVsIHBhcmFtZXRlcnMgaWYg c3VwcGxpZWQgWFhYIENSUyBYWFgKPiAgIAkgKiB0aGlzIG5lZWRzIHRvIGhhdmUgbXVsdGlwbGUg aW5zdGFuY2VzCj4gICAJICovCj4gQEAgLTU0MzUsOCArNTYwOCwxOCBAQCBpbnQgc3RtbWFjX3N1 c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQo+ICAgCQlpZiAocmV0KQo+ICAgCQkJcmV0dXJuIHJl dDsKPiAgIAl9Cj4gKwo+ICAgCW11dGV4X3VubG9jaygmcHJpdi0+bG9jayk7Cj4gICAKPiArCWlm IChwcml2LT5kbWFfY2FwLmZwZXNlbCkgewo+ICsJCS8qIERpc2FibGUgRlBFICovCj4gKwkJc3Rt bWFjX2ZwZV9jb25maWd1cmUocHJpdiwgcHJpdi0+aW9hZGRyLAo+ICsJCQkJICAgICBwcml2LT5w bGF0LT50eF9xdWV1ZXNfdG9fdXNlLAo+ICsJCQkJICAgICBwcml2LT5wbGF0LT5yeF9xdWV1ZXNf dG9fdXNlLCBmYWxzZSk7Cj4gKwo+ICsJCXN0bW1hY19mcGVfaGFuZHNoYWtlKHByaXYsIGZhbHNl KTsKPiArCX0KPiArCj4gICAJcHJpdi0+c3BlZWQgPSBTUEVFRF9VTktOT1dOOwo+ICAgCXJldHVy biAwOwo+ICAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0 bW1hYy9zdG1tYWNfdGMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0 bW1hY190Yy5jCj4gaW5kZXggYjgwY2IyOTg1YjM5Li4xZDg0ZWUzNTk4MDggMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3RjLmMKPiArKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfdGMuYwo+IEBAIC0y OTcsNiArMjk3LDE3IEBAIHN0YXRpYyBpbnQgdGNfaW5pdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnBy aXYpCj4gICAKPiAgIAlkZXZfaW5mbyhwcml2LT5kZXZpY2UsICJFbmFibGluZyBIVyBUQyAoZW50 cmllcz0lZCwgbWF4X29mZj0lZClcbiIsCj4gICAJCQlwcml2LT50Y19lbnRyaWVzX21heCwgcHJp di0+dGNfb2ZmX21heCk7Cj4gKwo+ICsJaWYgKCFwcml2LT5wbGF0LT5mcGVfY2ZnKSB7Cj4gKwkJ cHJpdi0+cGxhdC0+ZnBlX2NmZyA9IGRldm1fa3phbGxvYyhwcml2LT5kZXZpY2UsCj4gKwkJCQkJ CSAgIHNpemVvZigqcHJpdi0+cGxhdC0+ZnBlX2NmZyksCj4gKwkJCQkJCSAgIEdGUF9LRVJORUwp Owo+ICsJCWlmICghcHJpdi0+cGxhdC0+ZnBlX2NmZykKPiArCQkJcmV0dXJuIC1FTk9NRU07Cj4g Kwl9IGVsc2Ugewo+ICsJCW1lbXNldChwcml2LT5wbGF0LT5mcGVfY2ZnLCAwLCBzaXplb2YoKnBy aXYtPnBsYXQtPmZwZV9jZmcpKTsKPiArCX0KPiArCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAK PiBAQCAtODI5LDEzICs4NDAsMTAgQEAgc3RhdGljIGludCB0Y19zZXR1cF90YXByaW8oc3RydWN0 IHN0bW1hY19wcml2ICpwcml2LAo+ICAgCWlmIChmcGUgJiYgIXByaXYtPmRtYV9jYXAuZnBlc2Vs KQo+ICAgCQlyZXR1cm4gLUVPUE5PVFNVUFA7Cj4gICAKPiAtCXJldCA9IHN0bW1hY19mcGVfY29u ZmlndXJlKHByaXYsIHByaXYtPmlvYWRkciwKPiAtCQkJCSAgIHByaXYtPnBsYXQtPnR4X3F1ZXVl c190b191c2UsCj4gLQkJCQkgICBwcml2LT5wbGF0LT5yeF9xdWV1ZXNfdG9fdXNlLCBmcGUpOwo+ IC0JaWYgKHJldCAmJiBmcGUpIHsKPiAtCQluZXRkZXZfZXJyKHByaXYtPmRldiwgImZhaWxlZCB0 byBlbmFibGUgRnJhbWUgUHJlZW1wdGlvblxuIik7Cj4gLQkJcmV0dXJuIHJldDsKPiAtCX0KPiAr CS8qIEFjdHVhbCBGUEUgcmVnaXN0ZXIgY29uZmlndXJhdGlvbiB3aWxsIGJlIGRvbmUgYWZ0ZXIg RlBFIGhhbmRzaGFrZQo+ICsJICogaXMgc3VjY2Vzcy4KPiArCSAqLwo+ICsJcHJpdi0+cGxhdC0+ ZnBlX2NmZy0+ZW5hYmxlID0gZnBlOwo+ICAgCj4gICAJcmV0ID0gc3RtbWFjX2VzdF9jb25maWd1 cmUocHJpdiwgcHJpdi0+aW9hZGRyLCBwcml2LT5wbGF0LT5lc3QsCj4gICAJCQkJICAgcHJpdi0+ cGxhdC0+Y2xrX3B0cF9yYXRlKTsKPiBAQCAtODQ1LDEyICs4NTMsMjkgQEAgc3RhdGljIGludCB0 Y19zZXR1cF90YXByaW8oc3RydWN0IHN0bW1hY19wcml2ICpwcml2LAo+ICAgCX0KPiAgIAo+ICAg CW5ldGRldl9pbmZvKHByaXYtPmRldiwgImNvbmZpZ3VyZWQgRVNUXG4iKTsKPiArCj4gKwlpZiAo ZnBlKSB7Cj4gKwkJc3RtbWFjX2ZwZV9oYW5kc2hha2UocHJpdiwgdHJ1ZSk7Cj4gKwkJbmV0ZGV2 X2luZm8ocHJpdi0+ZGV2LCAic3RhcnQgRlBFIGhhbmRzaGFrZVxuIik7Cj4gKwl9Cj4gKwo+ICAg CXJldHVybiAwOwo+ICAgCj4gICBkaXNhYmxlOgo+ICAgCXByaXYtPnBsYXQtPmVzdC0+ZW5hYmxl ID0gZmFsc2U7Cj4gICAJc3RtbWFjX2VzdF9jb25maWd1cmUocHJpdiwgcHJpdi0+aW9hZGRyLCBw cml2LT5wbGF0LT5lc3QsCj4gICAJCQkgICAgIHByaXYtPnBsYXQtPmNsa19wdHBfcmF0ZSk7Cj4g Kwo+ICsJcHJpdi0+cGxhdC0+ZnBlX2NmZy0+ZW5hYmxlID0gZmFsc2U7Cj4gKwlzdG1tYWNfZnBl X2NvbmZpZ3VyZShwcml2LCBwcml2LT5pb2FkZHIsCj4gKwkJCSAgICAgcHJpdi0+cGxhdC0+dHhf cXVldWVzX3RvX3VzZSwKPiArCQkJICAgICBwcml2LT5wbGF0LT5yeF9xdWV1ZXNfdG9fdXNlLAo+ ICsJCQkgICAgIGZhbHNlKTsKPiArCW5ldGRldl9pbmZvKHByaXYtPmRldiwgImRpc2FibGVkIEZQ RVxuIik7Cj4gKwo+ICsJc3RtbWFjX2ZwZV9oYW5kc2hha2UocHJpdiwgZmFsc2UpOwo+ICsJbmV0 ZGV2X2luZm8ocHJpdi0+ZGV2LCAic3RvcCBGUEUgaGFuZHNoYWtlXG4iKTsKPiArCj4gICAJcmV0 dXJuIHJldDsKPiAgIH0KPiAgIAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3N0bW1hYy5o IGIvaW5jbHVkZS9saW51eC9zdG1tYWMuaAo+IGluZGV4IDEwYWJjODBiNjAxZS4uMDcyZjI2OWIx NjE4IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvc3RtbWFjLmgKPiArKysgYi9pbmNsdWRl L2xpbnV4L3N0bW1hYy5oCj4gQEAgLTE0NCw2ICsxNDQsMzIgQEAgc3RydWN0IHN0bW1hY190eHFf Y2ZnIHsKPiAgIAlpbnQgdGJzX2VuOwo+ICAgfTsKPiAgIAo+ICsvKiBGUEUgbGluayBzdGF0ZSAq Lwo+ICtlbnVtIHN0bW1hY19mcGVfc3RhdGUgewo+ICsJRlBFX1NUQVRFX09GRiA9IDAsCj4gKwlG UEVfU1RBVEVfQ0FQQUJMRSA9IDEsCj4gKwlGUEVfU1RBVEVfRU5URVJJTkdfT04gPSAyLAo+ICsJ RlBFX1NUQVRFX09OID0gMywKPiArfTsKPiArCj4gKy8qIEZQRSBsaW5rLXBhcnRuZXIgaGFuZC1z aGFraW5nIG1QYWNrZXQgdHlwZSAqLwo+ICtlbnVtIHN0bW1hY19tcGFja2V0X3R5cGUgewo+ICsJ TVBBQ0tFVF9WRVJJRlkgPSAwLAo+ICsJTVBBQ0tFVF9SRVNQT05TRSA9IDEsCj4gK307Cj4gKwo+ ICtlbnVtIHN0bW1hY19mcGVfdGFza19zdGF0ZV90IHsKPiArCV9fRlBFX1JFTU9WSU5HLAo+ICsJ X19GUEVfVEFTS19TQ0hFRCwKPiArfTsKPiArCj4gK3N0cnVjdCBzdG1tYWNfZnBlX2NmZyB7Cj4g Kwlib29sIGVuYWJsZTsJCQkJLyogRlBFIGVuYWJsZSAqLwo+ICsJYm9vbCBoc19lbmFibGU7CQkJ CS8qIEZQRSBoYW5kc2hha2UgZW5hYmxlICovCj4gKwllbnVtIHN0bW1hY19mcGVfc3RhdGUgbHBf ZnBlX3N0YXRlOwkvKiBMaW5rIFBhcnRuZXIgRlBFIHN0YXRlICovCj4gKwllbnVtIHN0bW1hY19m cGVfc3RhdGUgbG9fZnBlX3N0YXRlOwkvKiBMb2NhbCBzdGF0aW9uIEZQRSBzdGF0ZSAqLwo+ICt9 Owo+ICsKPiAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSB7Cj4gICAJaW50IGJ1c19pZDsK PiAgIAlpbnQgcGh5X2FkZHI7Cj4gQEAgLTE1NSw2ICsxODEsNyBAQCBzdHJ1Y3QgcGxhdF9zdG1t YWNlbmV0X2RhdGEgewo+ICAgCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbWRpb19ub2RlOwo+ICAgCXN0 cnVjdCBzdG1tYWNfZG1hX2NmZyAqZG1hX2NmZzsKPiAgIAlzdHJ1Y3Qgc3RtbWFjX2VzdCAqZXN0 Owo+ICsJc3RydWN0IHN0bW1hY19mcGVfY2ZnICpmcGVfY2ZnOwo+ICAgCWludCBjbGtfY3NyOwo+ ICAgCWludCBoYXNfZ21hYzsKPiAgIAlpbnQgZW5oX2Rlc2M7CgpCZXN0IHJlZ2FyZHMKLS0gCk1h cmVrIFN6eXByb3dza2ksIFBoRApTYW1zdW5nIFImRCBJbnN0aXR1dGUgUG9sYW5kCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYW1sb2dpYyBt YWlsaW5nIGxpc3QKbGludXgtYW1sb2dpY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYW1sb2dpYwo=