From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 713A2CD11DD for ; Tue, 26 Mar 2024 13:57:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=CPUUEV1Y4UOJH0GMTX2ZODLw7Ue4BcBsCc8J/YHkBgw=; b=2BUCxfLxKRwXua 9wewX5TETu0+dA+dfhH47CcUy3XWlv5lr5Clzu4k0rM3j/yEe+ZMMMU8Mg5xNKjNysYbRgxeh4Obe g9iSh5OrP6GncOyIg33bzWao2hHYbJHTM/7ug8Z+8n5EBpxRwK4QEVIP7gzhCByKBrdanDGrld/Xt 7qI4JtUAq5ER4lobVurpB6x9koHQhWF0NsKxPZIyI7RdXVlIzLfDJ6YBuW8tq/3yjLx+SgHTJitWa VYtHxTPLHyanuJbBfjIzwfM1yngrld7vDcXsrhKNiPOX2mTBcF0mn75La8K/senipd05IUMR+DfkH Pb03bU2maFhdndXIc8uw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rp7Im-00000004mnI-0Vvx; Tue, 26 Mar 2024 13:57:20 +0000 Received: from madrid.collaboradmins.com ([2a00:1098:ed:100::25]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rp7Id-00000004mlW-1x1B; Tue, 26 Mar 2024 13:57:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1711461427; bh=8+UkfQFcSGx7Ny6yQMpzS+qDlr7otfWIYw6zuYufEKA=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=oifsG60zOHSKEobk5bJ5iEvHc7XpGbb7rkWJyOq0MykFhb0aOPwA8/7HSRYmhAgTB +P9+wxtjg89937bURMkE75oNJCBLf97Ujh7d6SZeblqYvporXF5nOTwlZOFlVRZWgs vmC8G6xQDyAOlAJPQc89A6aK1/XZBl9B64TUkAYgcCc6dr9MbIGMRK8ZOcYGhrWYCN Zp4c9py+DqoM2cB+EbGFj8nGaVadyk+UZRiKHfae0yt6Rl/hbYavRw7GiwassVFEf+ kEihc3RTDAP2PQMZ7mHve5pvltCFNI4tBW2J2v0kzfH/jAJDmwS+8Ihpb2+R8ZqMkT azCHOTiWpve3A== Received: from [100.113.186.2] (cola.collaboradmins.com [195.201.22.229]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: kholk11) by madrid.collaboradmins.com (Postfix) with ESMTPSA id 739A537813D7; Tue, 26 Mar 2024 13:57:06 +0000 (UTC) Message-ID: Date: Tue, 26 Mar 2024 14:57:05 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/2] soc: mediatek: pm-domains: support smi clamp protection To: =?UTF-8?B?WXUtY2hhbmcgTGVlICjmnY7nprnnkosp?= , "ulf.hansson@linaro.org" , "matthias.bgg@gmail.com" Cc: "linux-kernel@vger.kernel.org" , "linux-mediatek@lists.infradead.org" , "linux-pm@vger.kernel.org" , =?UTF-8?B?TWFuZHlKSCBMaXUgKOWKieS6uuWDlik=?= , Project_Global_Chrome_Upstream_Group , =?UTF-8?B?WGl1ZmVuZyBMaSAo5p2O56eA5bOwKQ==?= , "linux-arm-kernel@lists.infradead.org" , =?UTF-8?B?RmFuIENoZW4gKOmZs+WHoSk=?= References: <20240325121908.3958-1-yu-chang.lee@mediatek.com> <20240325121908.3958-3-yu-chang.lee@mediatek.com> From: AngeloGioacchino Del Regno Content-Language: en-US In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240326_065712_782252_9841CDC8 X-CRM114-Status: GOOD ( 17.18 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SWwgMjYvMDMvMjQgMDM6MDAsIFl1LWNoYW5nIExlZSAo5p2O56a555KLKSBoYSBzY3JpdHRvOgo+ IE9uIE1vbiwgMjAyNC0wMy0yNSBhdCAxNDowNSArMDEwMCwgQW5nZWxvR2lvYWNjaGlubyBEZWwg UmVnbm8gd3JvdGU6Cj4+IElsIDI1LzAzLzI0IDEzOjE5LCB5dS1jaGFuZy5sZWUgaGEgc2NyaXR0 bzoKPj4+IEluIG9yZGVyIHRvIGF2b2lkIHBvd2VyIGdsaXRjaCwgdGhpcyBwYXRjaCB1c2Ugc21p IGNsYW1wCj4+PiB0byBkaXNhYmxlL2VuYWJsZSBzbWkgY29tbW9uIHBvcnQuCj4+Pgo+Pj4gU2ln bmVkLW9mZi1ieTogeXUtY2hhbmcubGVlIDx5dS1jaGFuZy5sZWVAbWVkaWF0ZWsuY29tPgo+Pj4g LS0tCj4+PiAgICBkcml2ZXJzL3BtZG9tYWluL21lZGlhdGVrL210ODE4OC1wbS1kb21haW5zLmgg fCAgNDEgKysrKy0KPj4+ICAgIGRyaXZlcnMvcG1kb21haW4vbWVkaWF0ZWsvbXRrLXBtLWRvbWFp bnMuYyAgICB8IDE0Nwo+Pj4gKysrKysrKysrKysrKystLS0tCj4+PiAgICBkcml2ZXJzL3BtZG9t YWluL21lZGlhdGVrL210ay1wbS1kb21haW5zLmggICAgfCAgIDEgKwo+Pj4gICAgMyBmaWxlcyBj aGFuZ2VkLCAxNTYgaW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCj4+Pgo+Pj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvcG1kb21haW4vbWVkaWF0ZWsvbXQ4MTg4LXBtLWRvbWFpbnMuaAo+Pj4g Yi9kcml2ZXJzL3BtZG9tYWluL21lZGlhdGVrL210ODE4OC1wbS1kb21haW5zLmgKPj4+IGluZGV4 IDdiYmJhNGQ1NmE3Ny4uMzlmMDU3ZGNhOTJjIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9wbWRv bWFpbi9tZWRpYXRlay9tdDgxODgtcG0tZG9tYWlucy5oCj4+PiArKysgYi9kcml2ZXJzL3BtZG9t YWluL21lZGlhdGVrL210ODE4OC1wbS1kb21haW5zLmgKPj4+IEBAIC01NzMsNiArNTczLDE4IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Nwc3lzX2RvbWFpbl9kYXRhCj4+PiBzY3BzeXNfZG9tYWlu X2RhdGFfbXQ4MTg4W10gPSB7Cj4+PiAgICAJCS5wd3Jfc3RhMm5kX29mZnMgPSAweDE3MCwKPj4+ ICAgIAkJLnNyYW1fcGRuX2JpdHMgPSBCSVQoOCksCj4+PiAgICAJCS5zcmFtX3Bkbl9hY2tfYml0 cyA9IEJJVCgxMiksCj4+PiArCQkuYnBfY2ZnID0gewo+Pj4gKwkJCUJVU19QUk9UX1dSKFNNSSwK Pj4+ICsJCQkJICAgIE1UODE4OF9TTUlfQ09NTU9OX1NNSV9DTEFNUF9ESVBfVE9fCj4+PiBWRE8w LAo+Pj4gKwkJCQkgICAgTVQ4MTg4X1NNSV9DT01NT05fQ0xBTVBfRU5fU0VULAo+Pj4gKwkJCQkg ICAgTVQ4MTg4X1NNSV9DT01NT05fQ0xBTVBfRU5fQ0xSLAo+Pj4gKwkJCQkgICAgTVQ4MTg4X1NN SV9DT01NT05fQ0xBTVBfRU5fU1RBKSwKPj4+ICsJCQlCVVNfUFJPVF9XUihTTUksCj4+PiArCQkJ CSAgICBNVDgxODhfU01JX0NPTU1PTl9TTUlfQ0xBTVBfRElQX1RPXwo+Pj4gVlBQMSwKPj4+ICsJ CQkJICAgIE1UODE4OF9TTUlfQ09NTU9OX0NMQU1QX0VOX1NFVCwKPj4+ICsJCQkJICAgIE1UODE4 OF9TTUlfQ09NTU9OX0NMQU1QX0VOX0NMUiwKPj4+ICsJCQkJICAgIE1UODE4OF9TTUlfQ09NTU9O X0NMQU1QX0VOX1NUQSksCj4+PiArCQl9LAo+Pj4gICAgCQkucmVzZXRfc21pID0gewo+Pj4gICAg CQkJU01JX1JFU0VUX1dSKE1UODE4OF9TTUlfTEFSQjEwX1JFU0VULAo+Pj4gICAgCQkJCSAgICAg TVQ4MTg4X1NNSV9MQVJCMTBfUkVTRVRfQUREUiksCj4+PiBAQCAtNTg1LDcgKzU5Nyw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3Qgc2Nwc3lzX2RvbWFpbl9kYXRhCj4+PiBzY3BzeXNfZG9tYWluX2Rh dGFfbXQ4MTg4W10gPSB7Cj4+PiAgICAJCQlTTUlfUkVTRVRfV1IoTVQ4MTg4X1NNSV9MQVJCMTVf UkVTRVQsCj4+PiAgICAJCQkJICAgICBNVDgxODhfU01JX0xBUkIxNV9SRVNFVF9BRERSKSwKPj4+ ICAgIAkJfSwKPj4+IC0JCS5jYXBzID0gTVRLX1NDUERfS0VFUF9ERUZBVUxUX09GRiwKPj4+ICsJ CS5jYXBzID0gTVRLX1NDUERfS0VFUF9ERUZBVUxUX09GRiB8Cj4+PiBNVEtfU0NQRF9DTEFNUF9Q Uk9URUNUSU9OLAo+Pj4gICAgCX0sCj4+PiAgICAJW01UODE4OF9QT1dFUl9ET01BSU5fSVBFXSA9 IHsKPj4+ICAgIAkJLm5hbWUgPSAiaXBlIiwKPj4+IEBAIC01OTUsMTEgKzYwNywxOCBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IHNjcHN5c19kb21haW5fZGF0YQo+Pj4gc2Nwc3lzX2RvbWFpbl9kYXRh X210ODE4OFtdID0gewo+Pj4gICAgCQkucHdyX3N0YTJuZF9vZmZzID0gMHgxNzAsCj4+PiAgICAJ CS5zcmFtX3Bkbl9iaXRzID0gQklUKDgpLAo+Pj4gICAgCQkuc3JhbV9wZG5fYWNrX2JpdHMgPSBC SVQoMTIpLAo+Pj4gKwkJLmJwX2NmZyA9IHsKPj4+ICsJCQlCVVNfUFJPVF9XUihTTUksCj4+PiAr CQkJCSAgICBNVDgxODhfU01JX0NPTU1PTl9TTUlfQ0xBTVBfSVBFX1RPXwo+Pj4gVlBQMSwKPj4+ ICsJCQkJICAgIE1UODE4OF9TTUlfQ09NTU9OX0NMQU1QX0VOX1NFVCwKPj4+ICsJCQkJICAgIE1U ODE4OF9TTUlfQ09NTU9OX0NMQU1QX0VOX0NMUiwKPj4+ICsJCQkJICAgIE1UODE4OF9TTUlfQ09N TU9OX0NMQU1QX0VOX1NUQSksCj4+PiArCQl9LAo+Pj4gICAgCQkucmVzZXRfc21pID0gewo+Pj4g ICAgCQkJU01JX1JFU0VUX1dSKE1UODE4OF9TTUlfTEFSQjEyX1JFU0VULAo+Pj4gICAgCQkJCSAg ICAgTVQ4MTg4X1NNSV9MQVJCMTJfUkVTRVRfQUREUiksCj4+PiAgICAJCX0sCj4+PiAtCQkuY2Fw cyA9IE1US19TQ1BEX0tFRVBfREVGQVVMVF9PRkYsCj4+PiArCQkuY2FwcyA9IE1US19TQ1BEX0tF RVBfREVGQVVMVF9PRkYgfAo+Pj4gTVRLX1NDUERfQ0xBTVBfUFJPVEVDVElPTiwKPj4+ICAgIAl9 LAo+Pj4gICAgCVtNVDgxODhfUE9XRVJfRE9NQUlOX0NBTV9WQ09SRV0gPSB7Cj4+PiAgICAJCS5u YW1lID0gImNhbV92Y29yZSIsCj4+PiBAQCAtNjc2LDEzICs2OTUsMjAgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBzY3BzeXNfZG9tYWluX2RhdGEKPj4+IHNjcHN5c19kb21haW5fZGF0YV9tdDgxODhb XSA9IHsKPj4+ICAgIAkJLnB3cl9zdGEybmRfb2ZmcyA9IDB4MTcwLAo+Pj4gICAgCQkuc3JhbV9w ZG5fYml0cyA9IEJJVCg4KSwKPj4+ICAgIAkJLnNyYW1fcGRuX2Fja19iaXRzID0gQklUKDEyKSwK Pj4+ICsJCS5icF9jZmcgPSB7Cj4+PiArCQkJQlVTX1BST1RfV1IoU01JLAo+Pj4gKwkJCQkgICAg TVQ4MTg4X1NNSV9DT01NT05fU01JX0NMQU1QX0lQRV9UT18KPj4+IFZQUDEsCj4+PiArCQkJCSAg ICBNVDgxODhfU01JX0NPTU1PTl9DTEFNUF9FTl9TRVQsCj4+PiArCQkJCSAgICBNVDgxODhfU01J X0NPTU1PTl9DTEFNUF9FTl9DTFIsCj4+PiArCQkJCSAgICBNVDgxODhfU01JX0NPTU1PTl9DTEFN UF9FTl9TVEEpLAo+Pj4gKwkJfSwKPj4+ICAgIAkJLnJlc2V0X3NtaSA9IHsKPj4+ICAgIAkJCVNN SV9SRVNFVF9XUihNVDgxODhfU01JX0xBUkIxNkFfUkVTRVQsCj4+PiAgICAJCQkJICAgICBNVDgx ODhfU01JX0xBUkIxNkFfUkVTRVRfQUREUiksCj4+PiAgICAJCQlTTUlfUkVTRVRfV1IoTVQ4MTg4 X1NNSV9MQVJCMTdBX1JFU0VULAo+Pj4gICAgCQkJCSAgICAgTVQ4MTg4X1NNSV9MQVJCMTdBX1JF U0VUX0FERFIpLAo+Pj4gICAgCQl9LAo+Pj4gLQkJLmNhcHMgPSBNVEtfU0NQRF9LRUVQX0RFRkFV TFRfT0ZGLAo+Pj4gKwkJLmNhcHMgPSBNVEtfU0NQRF9LRUVQX0RFRkFVTFRfT0ZGIHwKPj4+IE1U S19TQ1BEX0NMQU1QX1BST1RFQ1RJT04sCj4+PiAgICAJfSwKPj4+ICAgIAlbTVQ4MTg4X1BPV0VS X0RPTUFJTl9DQU1fU1VCQl0gPSB7Cj4+PiAgICAJCS5uYW1lID0gImNhbV9zdWJiIiwKPj4+IEBA IC02OTIsMTMgKzcxOCwyMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNjcHN5c19kb21haW5fZGF0 YQo+Pj4gc2Nwc3lzX2RvbWFpbl9kYXRhX210ODE4OFtdID0gewo+Pj4gICAgCQkucHdyX3N0YTJu ZF9vZmZzID0gMHgxNzAsCj4+PiAgICAJCS5zcmFtX3Bkbl9iaXRzID0gQklUKDgpLAo+Pj4gICAg CQkuc3JhbV9wZG5fYWNrX2JpdHMgPSBCSVQoMTIpLAo+Pj4gKwkJLmJwX2NmZyA9IHsKPj4+ICsJ CQlCVVNfUFJPVF9XUihTTUksCj4+PiArCQkJCSAgICBNVDgxODhfU01JX0NPTU1PTl9TTUlfQ0xB TVBfQ0FNX1NVQgo+Pj4gQl9UT19WRE8wLAo+Pj4gKwkJCQkgICAgTVQ4MTg4X1NNSV9DT01NT05f Q0xBTVBfRU5fU0VULAo+Pj4gKwkJCQkgICAgTVQ4MTg4X1NNSV9DT01NT05fQ0xBTVBfRU5fQ0xS LAo+Pj4gKwkJCQkgICAgTVQ4MTg4X1NNSV9DT01NT05fQ0xBTVBfRU5fU1RBKSwKPj4+ICsJCX0s Cj4+PiAgICAJCS5yZXNldF9zbWkgPSB7Cj4+PiAgICAJCQlTTUlfUkVTRVRfV1IoTVQ4MTg4X1NN SV9MQVJCMTZCX1JFU0VULAo+Pj4gICAgCQkJCSAgICAgTVQ4MTg4X1NNSV9MQVJCMTZCX1JFU0VU X0FERFIpLAo+Pj4gICAgCQkJU01JX1JFU0VUX1dSKE1UODE4OF9TTUlfTEFSQjE3Ql9SRVNFVCwK Pj4+ICAgIAkJCQkgICAgIE1UODE4OF9TTUlfTEFSQjE3Ql9SRVNFVF9BRERSKSwKPj4+ICAgIAkJ fSwKPj4+IC0JCS5jYXBzID0gTVRLX1NDUERfS0VFUF9ERUZBVUxUX09GRiwKPj4+ICsJCS5jYXBz ID0gTVRLX1NDUERfS0VFUF9ERUZBVUxUX09GRiB8Cj4+PiBNVEtfU0NQRF9DTEFNUF9QUk9URUNU SU9OLAo+Pj4gICAgCX0sCj4+PiAgICB9Owo+Pj4gICAgCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9wbWRvbWFpbi9tZWRpYXRlay9tdGstcG0tZG9tYWlucy5jCj4+PiBiL2RyaXZlcnMvcG1kb21h aW4vbWVkaWF0ZWsvbXRrLXBtLWRvbWFpbnMuYwo+Pj4gaW5kZXggOWFiNmZhMTA1YzhjLi4zYzc5 N2UxMzZjMGUgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL3BtZG9tYWluL21lZGlhdGVrL210ay1w bS1kb21haW5zLmMKPj4+ICsrKyBiL2RyaXZlcnMvcG1kb21haW4vbWVkaWF0ZWsvbXRrLXBtLWRv bWFpbnMuYwo+Pj4gQEAgLTQ3LDkgKzQ3LDEwIEBAIHN0cnVjdCBzY3BzeXNfZG9tYWluIHsKPj4+ ICAgIAlzdHJ1Y3QgY2xrX2J1bGtfZGF0YSAqc3Vic3lzX2Nsa3M7Cj4+PiAgICAJc3RydWN0IHJl Z21hcCAqaW5mcmFjZmdfbmFvOwo+Pj4gICAgCXN0cnVjdCByZWdtYXAgKmluZnJhY2ZnOwo+Pj4g LQlzdHJ1Y3QgcmVnbWFwICpzbWk7Cj4+PiArCXN0cnVjdCByZWdtYXAgKipzbWk7Cj4+PiAgICAJ c3RydWN0IHJlZ21hcCAqKmxhcmI7Cj4+PiAgICAJaW50IG51bV9sYXJiOwo+Pj4gKwlpbnQgbnVt X3NtaTsKPj4+ICAgIAlzdHJ1Y3QgcmVndWxhdG9yICpzdXBwbHk7Cj4+PiAgICB9Owo+Pj4gICAg Cj4+PiBAQCAtMTIyLDI5ICsxMjMsMTkgQEAgc3RhdGljIGludCBzY3BzeXNfc3JhbV9kaXNhYmxl KHN0cnVjdAo+Pj4gc2Nwc3lzX2RvbWFpbiAqcGQpCj4+PiAgICAJCQkJCU1US19QT0xMX1RJTUVP VVQpOwo+Pj4gICAgfQo+Pj4gICAgCj4+PiAtc3RhdGljIHN0cnVjdCByZWdtYXAgKnNjcHN5c19i dXNfcHJvdGVjdF9nZXRfcmVnbWFwKHN0cnVjdAo+Pj4gc2Nwc3lzX2RvbWFpbiAqcGQsCj4+PiAt CQkJCQkJICAgIGNvbnN0IHN0cnVjdAo+Pj4gc2Nwc3lzX2J1c19wcm90X2RhdGEgKmJwZCkKPj4+ IC17Cj4+PiAtCWlmIChicGQtPmZsYWdzICYgQlVTX1BST1RfQ09NUE9ORU5UX1NNSSkKPj4+IC0J CXJldHVybiBwZC0+c21pOwo+Pj4gLQllbHNlCj4+PiAtCQlyZXR1cm4gcGQtPmluZnJhY2ZnOwo+ Pj4gLX0KPj4+IC0KPj4+ICAgIHN0YXRpYyBzdHJ1Y3QgcmVnbWFwICpzY3BzeXNfYnVzX3Byb3Rl Y3RfZ2V0X3N0YV9yZWdtYXAoc3RydWN0Cj4+PiBzY3BzeXNfZG9tYWluICpwZCwKPj4+ICAgIAkJ CQkJCQljb25zdCBzdHJ1Y3QKPj4+IHNjcHN5c19idXNfcHJvdF9kYXRhICpicGQpCj4+PiAgICB7 Cj4+PiAgICAJaWYgKGJwZC0+ZmxhZ3MgJiBCVVNfUFJPVF9TVEFfQ09NUE9ORU5UX0lORlJBX05B TykKPj4+ICAgIAkJcmV0dXJuIHBkLT5pbmZyYWNmZ19uYW87Cj4+PiAgICAJZWxzZQo+Pj4gLQkJ cmV0dXJuIHNjcHN5c19idXNfcHJvdGVjdF9nZXRfcmVnbWFwKHBkLCBicGQpOwo+Pj4gKwkJcmV0 dXJuIHBkLT5pbmZyYWNmZzsKPj4+ICAgIH0KPj4+ICAgIAo+Pj4gICAgc3RhdGljIGludCBzY3Bz eXNfYnVzX3Byb3RlY3RfY2xlYXIoc3RydWN0IHNjcHN5c19kb21haW4gKnBkLAo+Pj4gLQkJCQkg ICAgY29uc3Qgc3RydWN0IHNjcHN5c19idXNfcHJvdF9kYXRhCj4+PiAqYnBkKQo+Pj4gKwkJCQkg ICAgY29uc3Qgc3RydWN0IHNjcHN5c19idXNfcHJvdF9kYXRhCj4+PiAqYnBkLAo+Pj4gKwkJCQkJ c3RydWN0IHJlZ21hcCAqc3RhX3JlZ21hcCwKPj4+IHN0cnVjdCByZWdtYXAgKnJlZ21hcCkKPj4+ ICAgIHsKPj4+IC0Jc3RydWN0IHJlZ21hcCAqc3RhX3JlZ21hcCA9Cj4+PiBzY3BzeXNfYnVzX3By b3RlY3RfZ2V0X3N0YV9yZWdtYXAocGQsIGJwZCk7Cj4+PiAtCXN0cnVjdCByZWdtYXAgKnJlZ21h cCA9IHNjcHN5c19idXNfcHJvdGVjdF9nZXRfcmVnbWFwKHBkLCBicGQpOwo+Pj4gICAgCXUzMiBz dGFfbWFzayA9IGJwZC0+YnVzX3Byb3Rfc3RhX21hc2s7Cj4+PiAgICAJdTMyIGV4cGVjdGVkX2Fj azsKPj4+ICAgIAl1MzIgdmFsOwo+Pj4gQEAgLTE2NSwxMCArMTU2LDkgQEAgc3RhdGljIGludCBz Y3BzeXNfYnVzX3Byb3RlY3RfY2xlYXIoc3RydWN0Cj4+PiBzY3BzeXNfZG9tYWluICpwZCwKPj4+ ICAgIH0KPj4+ICAgIAo+Pj4gICAgc3RhdGljIGludCBzY3BzeXNfYnVzX3Byb3RlY3Rfc2V0KHN0 cnVjdCBzY3BzeXNfZG9tYWluICpwZCwKPj4+IC0JCQkJICBjb25zdCBzdHJ1Y3Qgc2Nwc3lzX2J1 c19wcm90X2RhdGEKPj4+ICpicGQpCj4+PiArCQkJCSAgY29uc3Qgc3RydWN0IHNjcHN5c19idXNf cHJvdF9kYXRhCj4+PiAqYnBkLAo+Pj4gKwkJCQkgIHN0cnVjdCByZWdtYXAgKnN0YV9yZWdtYXAs IHN0cnVjdAo+Pj4gcmVnbWFwICpyZWdtYXApCj4+PiAgICB7Cj4+PiAtCXN0cnVjdCByZWdtYXAg KnN0YV9yZWdtYXAgPQo+Pj4gc2Nwc3lzX2J1c19wcm90ZWN0X2dldF9zdGFfcmVnbWFwKHBkLCBi cGQpOwo+Pj4gLQlzdHJ1Y3QgcmVnbWFwICpyZWdtYXAgPSBzY3BzeXNfYnVzX3Byb3RlY3RfZ2V0 X3JlZ21hcChwZCwgYnBkKTsKPj4+ICAgIAl1MzIgc3RhX21hc2sgPSBicGQtPmJ1c19wcm90X3N0 YV9tYXNrOwo+Pj4gICAgCXUzMiB2YWw7Cj4+PiAgICAKPj4+IEBAIC0xODIsMTkgKzE3MiwzMiBA QCBzdGF0aWMgaW50IHNjcHN5c19idXNfcHJvdGVjdF9zZXQoc3RydWN0Cj4+PiBzY3BzeXNfZG9t YWluICpwZCwKPj4+ICAgIAkJCQkJTVRLX1BPTExfREVMQVlfVVMsCj4+PiBNVEtfUE9MTF9USU1F T1VUKTsKPj4+ICAgIH0KPj4+ICAgIAo+Pj4gLXN0YXRpYyBpbnQgc2Nwc3lzX2J1c19wcm90ZWN0 X2VuYWJsZShzdHJ1Y3Qgc2Nwc3lzX2RvbWFpbiAqcGQpCj4+PiArc3RhdGljIGludCBfc2Nwc3lz X2NsYW1wX2J1c19wcm90ZWN0aW9uX2VuYWJsZShzdHJ1Y3QKPj4+IHNjcHN5c19kb21haW4gKnBk LCBib29sIGlzX3NtaSkKPj4+ICAgIHsKPj4+ICsJaW50IHNtaV9jb3VudCA9IDA7Cj4+PiArCj4+ PiAgICAJZm9yIChpbnQgaSA9IDA7IGkgPCBTUE1fTUFYX0JVU19QUk9UX0RBVEE7IGkrKykgewo+ Pj4gICAgCQljb25zdCBzdHJ1Y3Qgc2Nwc3lzX2J1c19wcm90X2RhdGEgKmJwZCA9ICZwZC0+ZGF0 YS0KPj4+PiBicF9jZmdbaV07Cj4+PiArCQlzdHJ1Y3QgcmVnbWFwICpzdGFfcmVnbWFwLCAqcmVn bWFwOwo+Pj4gKwkJYm9vbCBpc19zbWkgPSBicGQtPmZsYWdzICYgQlVTX1BST1RfQ09NUE9ORU5U X1NNSTsKPj4+ICAgIAkJaW50IHJldDsKPj4+ICAgIAo+Pj4gICAgCQlpZiAoIWJwZC0+YnVzX3By b3Rfc2V0X2Nscl9tYXNrKQo+Pj4gICAgCQkJYnJlYWs7Cj4+PiAgICAKPj4+ICsJCWlmIChpc19z bWkpIHsKPj4+ICsJCQlzdGFfcmVnbWFwID0gcGQtPnNtaVtzbWlfY291bnRdOwo+Pj4gKwkJCXJl Z21hcCA9IHBkLT5zbWlbc21pX2NvdW50XTsKPj4+ICsJCQlzbWlfY291bnQrKzsKPj4+ICsJCX0g ZWxzZSB7Cj4+PiArCQkJc3RhX3JlZ21hcCA9Cj4+PiBzY3BzeXNfYnVzX3Byb3RlY3RfZ2V0X3N0 YV9yZWdtYXAocGQsIGJwZCk7Cj4+PiArCQkJcmVnbWFwID0gcGQtPmluZnJhY2ZnOwo+Pj4gKwkJ fQo+Pj4gKwo+Pj4gICAgCQlpZiAoYnBkLT5mbGFncyAmIEJVU19QUk9UX0lOVkVSVEVEKQo+Pj4g LQkJCXJldCA9IHNjcHN5c19idXNfcHJvdGVjdF9jbGVhcihwZCwgYnBkKTsKPj4+ICsJCQlyZXQg PSBzY3BzeXNfYnVzX3Byb3RlY3RfY2xlYXIocGQsIGJwZCwKPj4+IHN0YV9yZWdtYXAsIHJlZ21h cCk7Cj4+PiAgICAJCWVsc2UKPj4+IC0JCQlyZXQgPSBzY3BzeXNfYnVzX3Byb3RlY3Rfc2V0KHBk LCBicGQpOwo+Pj4gKwkJCXJldCA9IHNjcHN5c19idXNfcHJvdGVjdF9zZXQocGQsIGJwZCwKPj4+ IHN0YV9yZWdtYXAsIHJlZ21hcCk7Cj4+PiAgICAJCWlmIChyZXQpCj4+PiAgICAJCQlyZXR1cm4g cmV0Owo+Pj4gICAgCX0KPj4+IEBAIC0yMDIsMTkgKzIwNSwzMiBAQCBzdGF0aWMgaW50IHNjcHN5 c19idXNfcHJvdGVjdF9lbmFibGUoc3RydWN0Cj4+PiBzY3BzeXNfZG9tYWluICpwZCkKPj4+ICAg IAlyZXR1cm4gMDsKPj4+ICAgIH0KPj4+ICAgIAo+Pj4gLXN0YXRpYyBpbnQgc2Nwc3lzX2J1c19w cm90ZWN0X2Rpc2FibGUoc3RydWN0IHNjcHN5c19kb21haW4gKnBkKQo+Pj4gK3N0YXRpYyBpbnQg X3NjcHN5c19jbGFtcF9idXNfcHJvdGVjdGlvbl9kaXNhYmxlKHN0cnVjdAo+Pj4gc2Nwc3lzX2Rv bWFpbiAqcGQsIGJvb2wgaXNfc21pKQo+Pj4gICAgewo+Pj4gKwlpbnQgc21pX2NvdW50ID0gcGQt Pm51bV9zbWkgLSAxOwo+Pj4gKwo+Pj4gICAgCWZvciAoaW50IGkgPSBTUE1fTUFYX0JVU19QUk9U X0RBVEEgLSAxOyBpID49IDA7IGktLSkgewo+Pj4gICAgCQljb25zdCBzdHJ1Y3Qgc2Nwc3lzX2J1 c19wcm90X2RhdGEgKmJwZCA9ICZwZC0+ZGF0YS0KPj4+PiBicF9jZmdbaV07Cj4+PiArCQlzdHJ1 Y3QgcmVnbWFwICpzdGFfcmVnbWFwLCAqcmVnbWFwOwo+Pj4gKwkJYm9vbCBpc19zbWkgPSBicGQt PmZsYWdzICYgQlVTX1BST1RfQ09NUE9ORU5UX1NNSTsKPj4+ICAgIAkJaW50IHJldDsKPj4+ICAg IAo+Pj4gICAgCQlpZiAoIWJwZC0+YnVzX3Byb3Rfc2V0X2Nscl9tYXNrKQo+Pj4gICAgCQkJY29u dGludWU7Cj4+PiAgICAKPj4+ICsJCWlmIChpc19zbWkpIHsKPj4+ICsJCQlzdGFfcmVnbWFwID0g cGQtPnNtaVtzbWlfY291bnRdOwo+Pj4gKwkJCXJlZ21hcCA9IHBkLT5zbWlbc21pX2NvdW50XTsK Pj4+ICsJCQlzbWlfY291bnQtLTsKPj4+ICsJCX0gZWxzZSB7Cj4+PiArCQkJc3RhX3JlZ21hcCA9 Cj4+PiBzY3BzeXNfYnVzX3Byb3RlY3RfZ2V0X3N0YV9yZWdtYXAocGQsIGJwZCk7Cj4+PiArCQkJ cmVnbWFwID0gcGQtPmluZnJhY2ZnOwo+Pj4gKwkJfQo+Pj4gKwo+Pj4gICAgCQlpZiAoYnBkLT5m bGFncyAmIEJVU19QUk9UX0lOVkVSVEVEKQo+Pj4gLQkJCXJldCA9IHNjcHN5c19idXNfcHJvdGVj dF9zZXQocGQsIGJwZCk7Cj4+PiArCQkJcmV0ID0gc2Nwc3lzX2J1c19wcm90ZWN0X3NldChwZCwg YnBkLAo+Pj4gc3RhX3JlZ21hcCwgcmVnbWFwKTsKPj4+ICAgIAkJZWxzZQo+Pj4gLQkJCXJldCA9 IHNjcHN5c19idXNfcHJvdGVjdF9jbGVhcihwZCwgYnBkKTsKPj4+ICsJCQlyZXQgPSBzY3BzeXNf YnVzX3Byb3RlY3RfY2xlYXIocGQsIGJwZCwKPj4+IHN0YV9yZWdtYXAsIHJlZ21hcCk7Cj4+PiAg ICAJCWlmIChyZXQpCj4+PiAgICAJCQlyZXR1cm4gcmV0Owo+Pj4gICAgCX0KPj4+IEBAIC0yMjIs NiArMjM4LDUwIEBAIHN0YXRpYyBpbnQgc2Nwc3lzX2J1c19wcm90ZWN0X2Rpc2FibGUoc3RydWN0 Cj4+PiBzY3BzeXNfZG9tYWluICpwZCkKPj4+ICAgIAlyZXR1cm4gMDsKPj4+ICAgIH0KPj4+ICAg IAo+Pj4gK3N0YXRpYyBpbnQgc2Nwc3lzX2NsYW1wX3Byb3RlY3Rpb24oc3RydWN0IHNjcHN5c19k b21haW4gKnBkKQo+Pj4gK3sKPj4+ICsJaW50IHJldDsKPj4+ICsKPj4KPj4gWW91IGNhbiBkaXJl Y3RseSBjYWxsIF9zY3BzeXNfY2xhbXBfYnVzX3Byb3RlY3Rpb25fZW5hYmxlKCksIG5vIG5lZWQK Pj4gZm9yIGEgaGVscGVyLgo+Pgo+Pj4gKwlyZXQgPSBfc2Nwc3lzX2NsYW1wX2J1c19wcm90ZWN0 aW9uX2VuYWJsZShwZCwgdHJ1ZSk7Cj4+PiArCWlmIChyZXQpCj4+PiArCQlyZXR1cm4gcmV0Owo+ Pj4gKwo+Pj4gKwlyZXR1cm4gMDsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIGludCBzY3BzeXNf Y2xhbXBfcHJvdGVjdGlvbl9kaXNhYmxlKHN0cnVjdCBzY3BzeXNfZG9tYWluCj4+PiAqcGQpCj4+ PiArewo+Pj4gKwlpbnQgcmV0Owo+Pj4gKwo+Pj4gKwlyZXQgPSBfc2Nwc3lzX2NsYW1wX2J1c19w cm90ZWN0aW9uX2Rpc2FibGUocGQsIHRydWUpOwo+Pj4gKwlpZiAocmV0KQo+Pj4gKwkJcmV0dXJu IHJldDsKPj4+ICsKPj4+ICsJcmV0dXJuIDA7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyBpbnQg c2Nwc3lzX2J1c19wcm90ZWN0X2VuYWJsZShzdHJ1Y3Qgc2Nwc3lzX2RvbWFpbiAqcGQpCj4+Cj4+ IFVudXNlZCBmdW5jdGlvbiwgcGxlYXNlIHJlbW92ZS4KPiAKPiBJIHRoaW5rIHRoaXMgaXMgdXNl ZCBpbiBzY3BzeXNfcG93ZXJfb2ZmIGZ1bmN0aW9uLiBEbyB5b3UgbWVhbiBJCj4gc2hvdWxkIGRp cmVjdGx5IGNhbGwgX3NjcHN5c19jbGFtcF9idXNfcHJvdGVjdGlvbl9kaXNhYmxlPwo+IAoKWWVz LCBwbGVhc2UuCgpDaGVlcnMsCkFuZ2VsbwoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1h cm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==