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 BD245C6FD1C for ; Wed, 22 Mar 2023 19:18:42 +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=9yB0G5IICofG1RbD271ZT9wugcDxTZP46pVMDGsSm5Q=; b=CTRPZqfaLnAOP+ RzNgVrT636yXJtzd1yIdNKIJ2FhX4iOyd+7e2ZOL4X+lBPr4ztUxIa0rsjN33V/dCs0XzNobaeJbL fWixhKJx9HP3W9VXHOJ/YOIGMMLD+Mgm8i14nVIVD9L4q8zz+lAoD6uTmdb0RF+zH74YRd5YbxQok RYCwaX3sN+rMgZbebxn1GUBu4wiqzi4nGgTzoSlk1q+/BSjjd10rHmoPlua7L7JWWnxv//iFbtdpZ kPXpKmdNzwmUzdXpPKsT5BtZpTtt0CWEkEQ8mM2e14sY3nibFryFioBzOr90GlzupS5zSbS3yQ+X2 zQPVjGe2qK5BevGzKZyA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pf3y0-00H9gk-1s; Wed, 22 Mar 2023 19:17:48 +0000 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pf3xw-00H9eb-29 for linux-arm-kernel@lists.infradead.org; Wed, 22 Mar 2023 19:17:46 +0000 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 32M6fKef018927; Wed, 22 Mar 2023 19:17:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=qcppdkim1; bh=AiP4BOjuLoB/Kjrial9eWIMycztKER8b+U2Ec2SDup8=; b=pXHjKfb/yPw9pza9NwbsQH6gTPkbeXVZJSmynf9+XtDqddfqRnzMmg0Bb+A8aYzP+0Di R47OL+GLGHqC2PKJT3e2v5oXsmGPwsxXxh63Gwhr7toYP2B1BJzUgkA6GKnqcYjVZWCP c73QYWQTaFX+X7Fsh5wAx/2rSlazDwv+NyzDMwGA2QMsXtYZPATUACD+WYOC6FnoK/xR 0fwCLeF01jW4duXpZgAxg5TQZze2IY9pblyc8+7b6TmryiQCdyFhngXag5LAlrCQrA4n sIZHiGroJ1uTBJMcME1ACUsofQonAmNfoWyuevn0wDm8SJRzUzAerAVo6YU9Ed+Nrgnm CA== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3pfhntk6vx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 22 Mar 2023 19:17:29 +0000 Received: from nasanex01b.na.qualcomm.com (nasanex01b.na.qualcomm.com [10.46.141.250]) by NASANPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 32MJHSO1011735 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 22 Mar 2023 19:17:28 GMT Received: from [10.134.65.165] (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 22 Mar 2023 12:17:27 -0700 Message-ID: <1b893760-0be7-e9f5-24c8-3e6dcbe8e237@quicinc.com> Date: Wed, 22 Mar 2023 12:17:27 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: [PATCH v11 15/26] gunyah: rsc_mgr: Add platform ops on mem_lend/mem_reclaim Content-Language: en-US To: Srinivas Kandagatla , Alex Elder , Prakruthi Deepak Heragu CC: Murali Nalajala , Trilok Soni , Srivatsa Vaddagiri , Carl van Schaik , Dmitry Baryshkov , Bjorn Andersson , "Konrad Dybcio" , Arnd Bergmann , "Greg Kroah-Hartman" , Rob Herring , Krzysztof Kozlowski , Jonathan Corbet , Bagas Sanjaya , Will Deacon , Andy Gross , Catalin Marinas , Jassi Brar , , , , , References: <20230304010632.2127470-1-quic_eberman@quicinc.com> <20230304010632.2127470-16-quic_eberman@quicinc.com> <5e9b3ec6-5d47-cd73-c7c0-0aa891bdfc23@linaro.org> From: Elliot Berman In-Reply-To: <5e9b3ec6-5d47-cd73-c7c0-0aa891bdfc23@linaro.org> X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01b.na.qualcomm.com (10.46.141.250) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: jRODWjIfHdBvayWmVaMKT0Cxnkn8s7Al X-Proofpoint-ORIG-GUID: jRODWjIfHdBvayWmVaMKT0Cxnkn8s7Al X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-22_15,2023-03-22_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 lowpriorityscore=0 spamscore=0 adultscore=0 priorityscore=1501 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303150002 definitions=main-2303220134 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230322_121744_719294_5DA37520 X-CRM114-Status: GOOD ( 33.85 ) 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 CgpPbiAzLzIxLzIwMjMgNzoyMyBBTSwgU3Jpbml2YXMgS2FuZGFnYXRsYSB3cm90ZToKPiAKPiAK PiBPbiAwNC8wMy8yMDIzIDAxOjA2LCBFbGxpb3QgQmVybWFuIHdyb3RlOgo+PiBPbiBRdWFsY29t bSBwbGF0Zm9ybXMsIHRoZXJlIGlzIGEgZmlybXdhcmUgZW50aXR5IHdoaWNoIGNvbnRyb2xzIGFj Y2Vzcwo+PiB0byBwaHlzaWNhbCBwYWdlcy4gSW4gb3JkZXIgdG8gc2hhcmUgbWVtb3J5IHdpdGgg YW5vdGhlciBWTSwgdGhpcyBlbnRpdHkKPj4gbmVlZHMgdG8gYmUgaW5mb3JtZWQgdGhhdCB0aGUg Z3Vlc3QgVk0gc2hvdWxkIGhhdmUgYWNjZXNzIHRvIHRoZSBtZW1vcnkuCj4+Cj4+IENvLWRldmVs b3BlZC1ieTogUHJha3J1dGhpIERlZXBhayBIZXJhZ3UgPHF1aWNfcGhlcmFndUBxdWljaW5jLmNv bT4KPj4gU2lnbmVkLW9mZi1ieTogUHJha3J1dGhpIERlZXBhayBIZXJhZ3UgPHF1aWNfcGhlcmFn dUBxdWljaW5jLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogRWxsaW90IEJlcm1hbiA8cXVpY19lYmVy bWFuQHF1aWNpbmMuY29tPgo+PiAtLS0KPj4gwqAgZHJpdmVycy92aXJ0L2d1bnlhaC9LY29uZmln wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDQgKysKPj4gwqAgZHJpdmVycy92 aXJ0L2d1bnlhaC9NYWtlZmlsZcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMSAr Cj4+IMKgIGRyaXZlcnMvdmlydC9ndW55YWgvZ3VueWFoX3BsYXRmb3JtX2hvb2tzLmMgfCA4MCAr KysrKysrKysrKysrKysrKysrKysKPj4gwqAgZHJpdmVycy92aXJ0L2d1bnlhaC9yc2NfbWdyLmjC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAzICsKPj4gwqAgZHJpdmVycy92aXJ0L2d1 bnlhaC9yc2NfbWdyX3JwYy5jwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAxOCArKysrLQo+PiDCoCBp bmNsdWRlL2xpbnV4L2d1bnlhaF9yc2NfbWdyLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8 IDE3ICsrKysrCj4+IMKgIDYgZmlsZXMgY2hhbmdlZCwgMTIxIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCj4+IMKgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3ZpcnQvZ3VueWFoL2d1 bnlhaF9wbGF0Zm9ybV9ob29rcy5jCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpcnQvZ3Vu eWFoL0tjb25maWcgYi9kcml2ZXJzL3ZpcnQvZ3VueWFoL0tjb25maWcKPj4gaW5kZXggMWE3Mzc2 OTRjMzMzLi5kZTgxNTE4OWRhYjYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvdmlydC9ndW55YWgv S2NvbmZpZwo+PiArKysgYi9kcml2ZXJzL3ZpcnQvZ3VueWFoL0tjb25maWcKPj4gQEAgLTQsNiAr NCw3IEBAIGNvbmZpZyBHVU5ZQUgKPj4gwqDCoMKgwqDCoCB0cmlzdGF0ZSAiR3VueWFoIFZpcnR1 YWxpemF0aW9uIGRyaXZlcnMiCj4+IMKgwqDCoMKgwqAgZGVwZW5kcyBvbiBBUk02NAo+PiDCoMKg wqDCoMKgIGRlcGVuZHMgb24gTUFJTEJPWAo+PiArwqDCoMKgIHNlbGVjdCBHVU5ZQUhfUExBVEZP Uk1fSE9PS1MKPj4gwqDCoMKgwqDCoCBoZWxwCj4+IMKgwqDCoMKgwqDCoMKgIFRoZSBHdW55YWgg ZHJpdmVycyBhcmUgdGhlIGhlbHBlciBpbnRlcmZhY2VzIHRoYXQgcnVuIGluIGEgCj4+IGd1ZXN0 IFZNCj4+IMKgwqDCoMKgwqDCoMKgIHN1Y2ggYXMgYmFzaWMgaW50ZXItVk0gSVBDIGFuZCBzaWdu YWxpbmcgbWVjaGFuaXNtcywgYW5kIAo+PiBoaWdoZXIgbGV2ZWwKPj4gQEAgLTExLDMgKzEyLDYg QEAgY29uZmlnIEdVTllBSAo+PiDCoMKgwqDCoMKgwqDCoCBTYXkgWS9NIGhlcmUgdG8gZW5hYmxl IHRoZSBkcml2ZXJzIG5lZWRlZCB0byBpbnRlcmFjdCBpbiBhIEd1bnlhaAo+PiDCoMKgwqDCoMKg wqDCoCB2aXJ0dWFsIGVudmlyb25tZW50Lgo+PiArCj4+ICtjb25maWcgR1VOWUFIX1BMQVRGT1JN X0hPT0tTCj4+ICvCoMKgwqAgdHJpc3RhdGUKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlydC9n dW55YWgvTWFrZWZpbGUgYi9kcml2ZXJzL3ZpcnQvZ3VueWFoL01ha2VmaWxlCj4+IGluZGV4IGZm OGJjNDkyNTM5Mi4uNmI4Zjg0ZGJmZTBkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL3ZpcnQvZ3Vu eWFoL01ha2VmaWxlCj4+ICsrKyBiL2RyaXZlcnMvdmlydC9ndW55YWgvTWFrZWZpbGUKPj4gQEAg LTEsNiArMSw3IEBACj4+IMKgICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPj4g wqAgb2JqLSQoQ09ORklHX0dVTllBSCkgKz0gZ3VueWFoLm8KPj4gK29iai0kKENPTkZJR19HVU5Z QUhfUExBVEZPUk1fSE9PS1MpICs9IGd1bnlhaF9wbGF0Zm9ybV9ob29rcy5vCj4+IMKgIGd1bnlh aF9yc2NfbWdyLXkgKz0gcnNjX21nci5vIHJzY19tZ3JfcnBjLm8gdm1fbWdyLm8gdm1fbWdyX21t Lm8KPj4gwqAgb2JqLSQoQ09ORklHX0dVTllBSCkgKz0gZ3VueWFoX3JzY19tZ3Iubwo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy92aXJ0L2d1bnlhaC9ndW55YWhfcGxhdGZvcm1faG9va3MuYyAKPj4g Yi9kcml2ZXJzL3ZpcnQvZ3VueWFoL2d1bnlhaF9wbGF0Zm9ybV9ob29rcy5jCj4+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uNjBkYTBlMTU0ZTk4Cj4+IC0tLSAv ZGV2L251bGwKPj4gKysrIGIvZHJpdmVycy92aXJ0L2d1bnlhaC9ndW55YWhfcGxhdGZvcm1faG9v a3MuYwo+PiBAQCAtMCwwICsxLDgwIEBACj4+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMC1vbmx5Cj4+ICsvKgo+PiArICogQ29weXJpZ2h0IChjKSAyMDIyLTIwMjMgUXVhbGNv bW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gQWxsIAo+PiByaWdodHMgcmVzZXJ2ZWQuCj4+ICsg Ki8KPj4gKwo+PiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+PiArI2luY2x1ZGUgPGxpbnV4 L3J3c2VtLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvZ3VueWFoX3JzY19tZ3IuaD4KPj4gKwo+PiAr I2luY2x1ZGUgInJzY19tZ3IuaCIKPj4gKwo+PiArc3RhdGljIHN0cnVjdCBnaF9ybV9wbGF0Zm9y bV9vcHMgKnJtX3BsYXRmb3JtX29wczsKPj4gK3N0YXRpYyBERUNMQVJFX1JXU0VNKHJtX3BsYXRm b3JtX29wc19sb2NrKTsKPj4gKwo+PiAraW50IGdoX3JtX3BsYXRmb3JtX3ByZV9tZW1fc2hhcmUo c3RydWN0IGdoX3JtICpybSwgc3RydWN0IAo+PiBnaF9ybV9tZW1fcGFyY2VsICptZW1fcGFyY2Vs KQo+IAo+IEkgdGhpbmsgSSBoYXZlIGFza2VkIHRoaXMgcXVlc3Rpb24gYnV0IEkgY2FuIG5vdCBm aW5kIHRoZSBhbnN3ZXIgdG8gdGhpcyAKPiBmcm9tIG9sZCByZXBsaWVzLgo+IFdoeSBpcyB0aGlz IHBsYXRmb3JtIGhvb2tzIG5vdCBwYXJ0IG9mIGNvcmUgZ3VueWFoPyBEbyB3ZSBuZWVkIGEgCj4g ZGVkaWNhdGVkIG1vZHVsZSBmb3IgdGhpcy4KPiBCeSB0aGUgbG9va3Mgb2YgQVBJcyBJIHNlZSB0 aGlzIGlzIHZlcnkgbXVjaCBjbG9zZSB0byBybSBhbmQgaSB0aGluayAKPiB0aGlzIGZ1bmN0aW9u YWxpdHkgc2hvdWxkIGxpdmUgd2l0aCBybS4KPiAKCklmIHRoZSBwbGF0Zm9ybSBob29rcyB3ZXJl IHBhcnQgb2YgY29yZSBndW55YWgsIHRoZW4gY29yZSBndW55YWggY291bGQgCm9ubHkgYmUgZW5h YmxlZCBhcyA9eSBpbiB0aGUgZGVmYXVsdCBkZWZjb25maWcgYmVjYXVzZSBRQ09NX1NDTSB3b3Vs ZCAKcmVseSBvbiB0aGUgcGxhdGZvcm0gaG9va3MgKGNvcmUgZ3VueWFoKS4KCldpdGggdGhlIHN1 Z2dlc3Rpb24gdG8gbW92ZSB0aGUgU0NNIHBsYXRmb3JtIGhvb2tzIGludG8gc2VwYXJhdGUgbW9k dWxlLCAKSSBjYW4vd2lsbCBicmluZyB0aGUgcGxhdGZvcm0gaG9va3MgYmFjayBpbnRvIGNvcmUg Z3VueWFoIG1vZHVsZS4KCi0gRWxsaW90Cgo+IC0tc3JpbmkKPiArewo+PiArwqDCoMKgIGludCBy ZXQgPSAwOwo+PiArCj4+ICvCoMKgwqAgZG93bl9yZWFkKCZybV9wbGF0Zm9ybV9vcHNfbG9jayk7 Cj4+ICvCoMKgwqAgaWYgKHJtX3BsYXRmb3JtX29wcyAmJiBybV9wbGF0Zm9ybV9vcHMtPnByZV9t ZW1fc2hhcmUpCj4+ICvCoMKgwqDCoMKgwqDCoCByZXQgPSBybV9wbGF0Zm9ybV9vcHMtPnByZV9t ZW1fc2hhcmUocm0sIG1lbV9wYXJjZWwpOwo+PiArwqDCoMKgIHVwX3JlYWQoJnJtX3BsYXRmb3Jt X29wc19sb2NrKTsKPj4gK8KgwqDCoCByZXR1cm4gcmV0Owo+PiArfQo+PiArRVhQT1JUX1NZTUJP TF9HUEwoZ2hfcm1fcGxhdGZvcm1fcHJlX21lbV9zaGFyZSk7Cj4+ICsKPj4gK2ludCBnaF9ybV9w bGF0Zm9ybV9wb3N0X21lbV9yZWNsYWltKHN0cnVjdCBnaF9ybSAqcm0sIHN0cnVjdCAKPj4gZ2hf cm1fbWVtX3BhcmNlbCAqbWVtX3BhcmNlbCkKPj4gK3sKPj4gK8KgwqDCoCBpbnQgcmV0ID0gMDsK Pj4gKwo+PiArwqDCoMKgIGRvd25fcmVhZCgmcm1fcGxhdGZvcm1fb3BzX2xvY2spOwo+PiArwqDC oMKgIGlmIChybV9wbGF0Zm9ybV9vcHMgJiYgcm1fcGxhdGZvcm1fb3BzLT5wb3N0X21lbV9yZWNs YWltKQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0ID0gcm1fcGxhdGZvcm1fb3BzLT5wb3N0X21lbV9y ZWNsYWltKHJtLCBtZW1fcGFyY2VsKTsKPj4gK8KgwqDCoCB1cF9yZWFkKCZybV9wbGF0Zm9ybV9v cHNfbG9jayk7Cj4+ICvCoMKgwqAgcmV0dXJuIHJldDsKPj4gK30KPj4gK0VYUE9SVF9TWU1CT0xf R1BMKGdoX3JtX3BsYXRmb3JtX3Bvc3RfbWVtX3JlY2xhaW0pOwo+PiArCj4+ICtpbnQgZ2hfcm1f cmVnaXN0ZXJfcGxhdGZvcm1fb3BzKHN0cnVjdCBnaF9ybV9wbGF0Zm9ybV9vcHMgKnBsYXRmb3Jt X29wcykKPj4gK3sKPj4gK8KgwqDCoCBpbnQgcmV0ID0gMDsKPj4gKwo+PiArwqDCoMKgIGRvd25f d3JpdGUoJnJtX3BsYXRmb3JtX29wc19sb2NrKTsKPj4gK8KgwqDCoCBpZiAoIXJtX3BsYXRmb3Jt X29wcykKPj4gK8KgwqDCoMKgwqDCoMKgIHJtX3BsYXRmb3JtX29wcyA9IHBsYXRmb3JtX29wczsK Pj4gK8KgwqDCoCBlbHNlCj4+ICvCoMKgwqDCoMKgwqDCoCByZXQgPSAtRUVYSVNUOwo+PiArwqDC oMKgIHVwX3dyaXRlKCZybV9wbGF0Zm9ybV9vcHNfbG9jayk7Cj4+ICvCoMKgwqAgcmV0dXJuIHJl dDsKPj4gK30KPj4gK0VYUE9SVF9TWU1CT0xfR1BMKGdoX3JtX3JlZ2lzdGVyX3BsYXRmb3JtX29w cyk7Cj4+ICsKPj4gK3ZvaWQgZ2hfcm1fdW5yZWdpc3Rlcl9wbGF0Zm9ybV9vcHMoc3RydWN0IGdo X3JtX3BsYXRmb3JtX29wcyAKPj4gKnBsYXRmb3JtX29wcykKPj4gK3sKPj4gK8KgwqDCoCBkb3du X3dyaXRlKCZybV9wbGF0Zm9ybV9vcHNfbG9jayk7Cj4+ICvCoMKgwqAgaWYgKHJtX3BsYXRmb3Jt X29wcyA9PSBwbGF0Zm9ybV9vcHMpCj4+ICvCoMKgwqDCoMKgwqDCoCBybV9wbGF0Zm9ybV9vcHMg PSBOVUxMOwo+PiArwqDCoMKgIHVwX3dyaXRlKCZybV9wbGF0Zm9ybV9vcHNfbG9jayk7Cj4+ICt9 Cj4+ICtFWFBPUlRfU1lNQk9MX0dQTChnaF9ybV91bnJlZ2lzdGVyX3BsYXRmb3JtX29wcyk7Cj4+ ICsKPj4gK3N0YXRpYyB2b2lkIF9kZXZtX2doX3JtX3VucmVnaXN0ZXJfcGxhdGZvcm1fb3BzKHZv aWQgKmRhdGEpCj4+ICt7Cj4+ICvCoMKgwqAgZ2hfcm1fdW5yZWdpc3Rlcl9wbGF0Zm9ybV9vcHMo ZGF0YSk7Cj4+ICt9Cj4+ICsKPj4gK2ludCBkZXZtX2doX3JtX3JlZ2lzdGVyX3BsYXRmb3JtX29w cyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCAKPj4gZ2hfcm1fcGxhdGZvcm1fb3BzICpvcHMp Cj4+ICt7Cj4+ICvCoMKgwqAgaW50IHJldDsKPj4gKwo+PiArwqDCoMKgIHJldCA9IGdoX3JtX3Jl Z2lzdGVyX3BsYXRmb3JtX29wcyhvcHMpOwo+PiArwqDCoMKgIGlmIChyZXQpCj4+ICvCoMKgwqDC oMKgwqDCoCByZXR1cm4gcmV0Owo+PiArCj4+ICvCoMKgwqAgcmV0dXJuIGRldm1fYWRkX2FjdGlv bihkZXYsIF9kZXZtX2doX3JtX3VucmVnaXN0ZXJfcGxhdGZvcm1fb3BzLCAKPj4gb3BzKTsKPj4g K30KPj4gK0VYUE9SVF9TWU1CT0xfR1BMKGRldm1fZ2hfcm1fcmVnaXN0ZXJfcGxhdGZvcm1fb3Bz KTsKPj4gKwo+PiArTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwo+PiArTU9EVUxFX0RFU0NSSVBUSU9O KCJHdW55YWggUGxhdGZvcm0gSG9va3MiKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlydC9n dW55YWgvcnNjX21nci5oIAo+PiBiL2RyaXZlcnMvdmlydC9ndW55YWgvcnNjX21nci5oCj4+IGlu ZGV4IDM2NjVlYmM3YjAyMC4uNjgzOGU3MzZmMzYxIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL3Zp cnQvZ3VueWFoL3JzY19tZ3IuaAo+PiArKysgYi9kcml2ZXJzL3ZpcnQvZ3VueWFoL3JzY19tZ3Iu aAo+PiBAQCAtMTMsNCArMTMsNyBAQCBzdHJ1Y3QgZ2hfcm07Cj4+IMKgIGludCBnaF9ybV9jYWxs KHN0cnVjdCBnaF9ybSAqcnNjX21nciwgdTMyIG1lc3NhZ2VfaWQsIHZvaWQgCj4+ICpyZXFfYnVm Ziwgc2l6ZV90IHJlcV9idWZfc2l6ZSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHZvaWQgKipyZXNw X2J1Ziwgc2l6ZV90ICpyZXNwX2J1Zl9zaXplKTsKPj4gK2ludCBnaF9ybV9wbGF0Zm9ybV9wcmVf bWVtX3NoYXJlKHN0cnVjdCBnaF9ybSAqcm0sIHN0cnVjdCAKPj4gZ2hfcm1fbWVtX3BhcmNlbCAq bWVtX3BhcmNlbCk7Cj4+ICtpbnQgZ2hfcm1fcGxhdGZvcm1fcG9zdF9tZW1fcmVjbGFpbShzdHJ1 Y3QgZ2hfcm0gKnJtLCBzdHJ1Y3QgCj4+IGdoX3JtX21lbV9wYXJjZWwgKm1lbV9wYXJjZWwpOwo+ PiArCj4+IMKgICNlbmRpZgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92aXJ0L2d1bnlhaC9yc2Nf bWdyX3JwYy5jIAo+PiBiL2RyaXZlcnMvdmlydC9ndW55YWgvcnNjX21ncl9ycGMuYwo+PiBpbmRl eCAzZGYxNWFkNWI5N2QuLjczM2JlNGRjOGRkMiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy92aXJ0 L2d1bnlhaC9yc2NfbWdyX3JwYy5jCj4+ICsrKyBiL2RyaXZlcnMvdmlydC9ndW55YWgvcnNjX21n cl9ycGMuYwo+PiBAQCAtMjA0LDYgKzIwNCwxMiBAQCBzdGF0aWMgaW50IGdoX3JtX21lbV9sZW5k X2NvbW1vbihzdHJ1Y3QgZ2hfcm0gCj4+ICpybSwgdTMyIG1lc3NhZ2VfaWQsIHN0cnVjdCBnaF9y bV8KPj4gwqDCoMKgwqDCoCBpZiAoIW1zZykKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAt RU5PTUVNOwo+PiArwqDCoMKgIHJldCA9IGdoX3JtX3BsYXRmb3JtX3ByZV9tZW1fc2hhcmUocm0s IHApOwo+PiArwqDCoMKgIGlmIChyZXQpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGtmcmVlKG1zZyk7 Cj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+PiArwqDCoMKgIH0KPj4gKwo+PiDCoMKg wqDCoMKgIHJlcV9oZWFkZXIgPSBtc2c7Cj4+IMKgwqDCoMKgwqAgYWNsX3NlY3Rpb24gPSAodm9p ZCAqKXJlcV9oZWFkZXIgKyBzaXplb2YoKnJlcV9oZWFkZXIpOwo+PiDCoMKgwqDCoMKgIG1lbV9z ZWN0aW9uID0gKHZvaWQgKilhY2xfc2VjdGlvbiArIHN0cnVjdF9zaXplKGFjbF9zZWN0aW9uLCAK Pj4gZW50cmllcywgcC0+bl9hY2xfZW50cmllcyk7Cj4+IEBAIC0yMjcsOCArMjMzLDEwIEBAIHN0 YXRpYyBpbnQgZ2hfcm1fbWVtX2xlbmRfY29tbW9uKHN0cnVjdCBnaF9ybSAKPj4gKnJtLCB1MzIg bWVzc2FnZV9pZCwgc3RydWN0IGdoX3JtXwo+PiDCoMKgwqDCoMKgIHJldCA9IGdoX3JtX2NhbGwo cm0sIG1lc3NhZ2VfaWQsIG1zZywgbXNnX3NpemUsICh2b2lkICoqKSZyZXNwLCAKPj4gJnJlc3Bf c2l6ZSk7Cj4+IMKgwqDCoMKgwqAga2ZyZWUobXNnKTsKPj4gLcKgwqDCoCBpZiAocmV0KQo+PiAr wqDCoMKgIGlmIChyZXQpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGdoX3JtX3BsYXRmb3JtX3Bvc3Rf bWVtX3JlY2xhaW0ocm0sIHApOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4g K8KgwqDCoCB9Cj4+IMKgwqDCoMKgwqAgcC0+bWVtX2hhbmRsZSA9IGxlMzJfdG9fY3B1KCpyZXNw KTsKPj4gQEAgLTI4Myw4ICsyOTEsMTQgQEAgaW50IGdoX3JtX21lbV9yZWNsYWltKHN0cnVjdCBn aF9ybSAqcm0sIHN0cnVjdCAKPj4gZ2hfcm1fbWVtX3BhcmNlbCAqcGFyY2VsKQo+PiDCoMKgwqDC oMKgIHN0cnVjdCBnaF9ybV9tZW1fcmVsZWFzZV9yZXEgcmVxID0gewo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgLm1lbV9oYW5kbGUgPSBjcHVfdG9fbGUzMihwYXJjZWwtPm1lbV9oYW5kbGUpLAo+PiDC oMKgwqDCoMKgIH07Cj4+ICvCoMKgwqAgaW50IHJldDsKPj4gKwo+PiArwqDCoMKgIHJldCA9IGdo X3JtX2NhbGwocm0sIEdIX1JNX1JQQ19NRU1fUkVDTEFJTSwgJnJlcSwgc2l6ZW9mKHJlcSksIAo+ PiBOVUxMLCBOVUxMKTsKPj4gK8KgwqDCoCAvKiBEbyBub3QgY2FsbCBwbGF0Zm9ybSBtZW0gcmVj bGFpbSBob29rczogdGhlIHJlY2xhaW0gZGlkbid0IAo+PiBoYXBwZW4qLwo+PiArwqDCoMKgIGlm IChyZXQpCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+PiAtwqDCoMKgIHJldHVybiBn aF9ybV9jYWxsKHJtLCBHSF9STV9SUENfTUVNX1JFQ0xBSU0sICZyZXEsIHNpemVvZihyZXEpLCAK Pj4gTlVMTCwgTlVMTCk7Cj4+ICvCoMKgwqAgcmV0dXJuIGdoX3JtX3BsYXRmb3JtX3Bvc3RfbWVt X3JlY2xhaW0ocm0sIHBhcmNlbCk7Cj4+IMKgIH0KPj4gwqAgLyoqCj4+IGRpZmYgLS1naXQgYS9p bmNsdWRlL2xpbnV4L2d1bnlhaF9yc2NfbWdyLmggCj4+IGIvaW5jbHVkZS9saW51eC9ndW55YWhf cnNjX21nci5oCj4+IGluZGV4IDhiMGI0NmYyOGUzOS4uNTE1MDg3OTMxYTJiIDEwMDY0NAo+PiAt LS0gYS9pbmNsdWRlL2xpbnV4L2d1bnlhaF9yc2NfbWdyLmgKPj4gKysrIGIvaW5jbHVkZS9saW51 eC9ndW55YWhfcnNjX21nci5oCj4+IEBAIC0xNDUsNCArMTQ1LDIxIEBAIGludCBnaF9ybV9nZXRf aHlwX3Jlc291cmNlcyhzdHJ1Y3QgZ2hfcm0gKnJtLCB1MTYgCj4+IHZtaWQsCj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGdoX3JtX2h5cF9yZXNvdXJjZXMgKipy ZXNvdXJjZXMpOwo+PiDCoCBpbnQgZ2hfcm1fZ2V0X3ZtaWQoc3RydWN0IGdoX3JtICpybSwgdTE2 ICp2bWlkKTsKPj4gK3N0cnVjdCBndW55YWhfcm1fcGxhdGZvcm1fb3BzIHsKPj4gK8KgwqDCoCBp bnQgKCpwcmVfbWVtX3NoYXJlKShzdHJ1Y3QgZ2hfcm0gKnJtLCBzdHJ1Y3QgZ2hfcm1fbWVtX3Bh cmNlbCAKPj4gKm1lbV9wYXJjZWwpOwo+PiArwqDCoMKgIGludCAoKnBvc3RfbWVtX3JlY2xhaW0p KHN0cnVjdCBnaF9ybSAqcm0sIHN0cnVjdCBnaF9ybV9tZW1fcGFyY2VsIAo+PiAqbWVtX3BhcmNl bCk7Cj4+ICt9Owo+PiArCj4+ICsjaWYgSVNfRU5BQkxFRChDT05GSUdfR1VOWUFIX1BMQVRGT1JN X0hPT0tTKQo+PiAraW50IGdoX3JtX3JlZ2lzdGVyX3BsYXRmb3JtX29wcyhzdHJ1Y3QgZ2hfcm1f cGxhdGZvcm1fb3BzIAo+PiAqcGxhdGZvcm1fb3BzKTsKPj4gK3ZvaWQgZ2hfcm1fdW5yZWdpc3Rl cl9wbGF0Zm9ybV9vcHMoc3RydWN0IGdoX3JtX3BsYXRmb3JtX29wcyAKPj4gKnBsYXRmb3JtX29w cyk7Cj4+ICtpbnQgZGV2bV9naF9ybV9yZWdpc3Rlcl9wbGF0Zm9ybV9vcHMoc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3QgCj4+IGdoX3JtX3BsYXRmb3JtX29wcyAqb3BzKTsKPj4gKyNlbHNlCj4+ ICtzdGF0aWMgaW5saW5lIGludCBnaF9ybV9yZWdpc3Rlcl9wbGF0Zm9ybV9vcHMoc3RydWN0IAo+ PiBnaF9ybV9wbGF0Zm9ybV9vcHMgKnBsYXRmb3JtX29wcykKPj4gK8KgwqDCoCB7IHJldHVybiAw OyB9Cj4+ICtzdGF0aWMgaW5saW5lIHZvaWQgZ2hfcm1fdW5yZWdpc3Rlcl9wbGF0Zm9ybV9vcHMo c3RydWN0IAo+PiBnaF9ybV9wbGF0Zm9ybV9vcHMgKnBsYXRmb3JtX29wcykgeyB9Cj4+ICtzdGF0 aWMgaW5saW5lIGludCBkZXZtX2doX3JtX3JlZ2lzdGVyX3BsYXRmb3JtX29wcyhzdHJ1Y3QgZGV2 aWNlICpkZXYsCj4+ICvCoMKgwqAgc3RydWN0IGdoX3JtX3BsYXRmb3JtX29wcyAqb3BzKSB7IHJl dHVybiAwOyB9Cj4+ICsjZW5kaWYKPj4gKwo+PiDCoCAjZW5kaWYKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBs aXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK