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 7BF78C7619A for ; Tue, 11 Apr 2023 21:05:43 +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=yCcwm1x3e2xSdN5ZAqeRVp5tl0WL8fJ2wUb6gqoz2Zo=; b=AiT1szsriyvIdK xuH+OcI2w86k6n8xm7umLlnGYmw9iKvtfOXe6jGb6V2wF7jKK0rN9B+0Mt6Au54s0AoiiNAtv4ZVf W2hmEWAudHDjlSH2kWCzDSxDt5n0uQP5ByeLe5i8WXVe3H72KfpLzekoUX5sIjQ/boWDdyOEWDNoI 01Co72G32FX4oX+ld4wXi6BGBVCPq5ilIJGzqoLB4Upr/7spJe9CoRHAv5zQBzerji9ixccl1N1GF ah11oTEAWIPZajiKuCRv1SG7w/nMrJfy/vTkAihV+N3tLYtu/17UevkOmTTBbQ5gJvDX63qHIJbdn QuM+B6XkpZ0WmnG+2V3A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pmLAW-0018aG-0O; Tue, 11 Apr 2023 21:04: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 1pmLAR-0018Zn-2y for linux-arm-kernel@lists.infradead.org; Tue, 11 Apr 2023 21:04:45 +0000 Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 33BKOUZp029715; Tue, 11 Apr 2023 21:04:32 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=b8ePNZOTICqSe+xK2ngJRni1H4oSJZNkfsVmf0MDt3Y=; b=btva9PBOjaVDrEycZByrXlarkFQvrcrPlSgqdkO0JLFdQpZVNyB9M/L3wXzm34RCZkLW nm8jfzfT0pChL5lRZxu/sBASC8Q7Z0M2UDeFIm4oDh4+UhYY6THG+gfAON2xr/E4dOgU qsutNkCXhSOUemsoYFYaVhYntlMTVEbFQhd7nkYPD6D+d1dZDVAiHBJiwjb5mPyjM0Dk X6v5dQXbYTbJ8sgmGVyTgBoU+qSIB0XrCo3sEFUhztJI40RXjUcG/R9WwOrQZhrk64TY sXuzzFTYu+sa+Eu5jIkR7WQKMPVNjMrYpinJXZNN6p+3Jb7X4mERW0726iqvAfPcxLJm ag== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3pw3cv9mg5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 11 Apr 2023 21:04:32 +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 33BL4DaS016655 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 11 Apr 2023 21:04:13 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.42; Tue, 11 Apr 2023 14:04:13 -0700 Message-ID: <1276ec4c-e177-aeb2-d493-93bd48634ee8@quicinc.com> Date: Tue, 11 Apr 2023 14:04:12 -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 12/26] gunyah: vm_mgr: Add/remove user memory regions Content-Language: en-US To: Alex Elder , Srinivas Kandagatla , 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-13-quic_eberman@quicinc.com> <3b4e230c-6635-43f6-99ce-1ed51b55a450@linaro.org> From: Elliot Berman In-Reply-To: <3b4e230c-6635-43f6-99ce-1ed51b55a450@linaro.org> X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) 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: Xn1is88OUJ6e3fH2xhPQpYYbaZDYmSH9 X-Proofpoint-ORIG-GUID: Xn1is88OUJ6e3fH2xhPQpYYbaZDYmSH9 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-04-11_14,2023-04-11_02,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 suspectscore=0 phishscore=0 adultscore=0 clxscore=1015 bulkscore=0 mlxlogscore=914 impostorscore=0 lowpriorityscore=0 mlxscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304110190 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230411_140443_968038_02969D02 X-CRM114-Status: GOOD ( 36.05 ) 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 CgpPbiAzLzMxLzIwMjMgNzoyNiBBTSwgQWxleCBFbGRlciB3cm90ZToKPiBPbiAzLzMvMjMgNzow NiBQTSwgRWxsaW90IEJlcm1hbiB3cm90ZToKPj4gKwo+PiArwqDCoMKgIG1lbV9lbnRyaWVzID0g a2NhbGxvYyhtYXBwaW5nLT5ucGFnZXMsIHNpemVvZigqbWVtX2VudHJpZXMpLCAKPj4gR0ZQX0tF Uk5FTCk7Cj4+ICvCoMKgwqAgaWYgKCFtZW1fZW50cmllcykgewo+PiArwqDCoMKgwqDCoMKgwqAg cmV0ID0gLUVOT01FTTsKPj4gK8KgwqDCoMKgwqDCoMKgIGdvdG8gcmVjbGFpbTsKPj4gK8KgwqDC oCB9Cj4+ICsKPj4gK8KgwqDCoCAvKiByZWR1Y2UgbnVtYmVyIG9mIGVudHJpZXMgYnkgY29tYmlu aW5nIGNvbnRpZ3VvdXMgcGFnZXMgaW50byAKPj4gc2luZ2xlIG1lbW9yeSBlbnRyeSAqLwo+IAo+ IEFyZSB5b3Ugc3VyZSB5b3UgbmVlZCB0byBkbyB0aGlzP8KgIEkuZS4sIGRvZXMgcGluX3VzZXJf cGFnZXNfZmFzdCgpCj4gYWxyZWFkeSB0YWtlIGNhcmUgb2YgY29uc29saWRhdGluZyB0aGVzZSBw YWdlcz8KPiAKCnBpbl91c2VyX3BhZ2VzX2Zhc3Qgd291bGRuJ3QgY29uc29saWRhdGUgdGhlIHBh Z2UgZW50cmllcy4gVGhlcmUncyBhIApzcGVlZHVwIGluIHNoYXJpbmcgbWVtb3J5IHdoZW4gcGFn ZXMgYXJlIGNvbnRpZ3VvdXMgc2luY2UgbGVzcyAKaW5mb3JtYXRpb24gbmVlZHMgdG8gYmUgdHJh bnNtaXR0ZWQgdG8gR3VueWFoIGRlc2NyaWJpbmcgdGhlIG1lbW9yeS4KCj4+ICvCoMKgwqAgcHJl dl9wYWdlID0gcGFnZV90b19waHlzKG1hcHBpbmctPnBhZ2VzWzBdKTsKPj4gK8KgwqDCoCBtZW1f ZW50cmllc1swXS5pcGFfYmFzZSA9IGNwdV90b19sZTY0KHByZXZfcGFnZSk7Cj4+ICvCoMKgwqAg ZW50cnlfc2l6ZSA9IFBBR0VfU0laRTsKPj4gK8KgwqDCoCBmb3IgKGkgPSAxLCBqID0gMDsgaSA8 IG1hcHBpbmctPm5wYWdlczsgaSsrKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBjdXJyX3BhZ2UgPSBw YWdlX3RvX3BoeXMobWFwcGluZy0+cGFnZXNbaV0pOwo+IAo+IEkgdGhpbmsgeW91IGNhbiBhY3R1 YWxseSB1c2UgdGhlIHBhZ2UgZnJhbWUgbnVtYmVycwo+IGhlcmUgaW5zdGVhZCBvZiB0aGUgYWRk cmVzc2VzLsKgIElmIHRoZXkgYXJlIGNvbnNlY3V0aXZlLAo+IHRoZXkgYXJlIGNvbnRpZ3VvdXMu wqAgU2VlIHBhZ2VzX2FyZV9tZXJnZWFibGUoKSBmb3IgYW4KPiBleGFtcGxlIG9mIHRoYXQuwqAg VXNpbmcgUEZOcyBtaWdodCBzaW1wbGlmeSB0aGlzIGNvZGUuCj4gCgpJdCBkaWQsIHRoYW5rcyBm b3IgdGhlIHN1Z2dlc3Rpb24hCgo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKGN1cnJfcGFnZSAtIHBy ZXZfcGFnZSA9PSBQQUdFX1NJWkUpIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW50cnlf c2l6ZSArPSBQQUdFX1NJWkU7Cj4+ICvCoMKgwqDCoMKgwqDCoCB9IGVsc2Ugewo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBtZW1fZW50cmllc1tqXS5zaXplID0gY3B1X3RvX2xlNjQoZW50cnlf c2l6ZSk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGorKzsKPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgbWVtX2VudHJpZXNbal0uaXBhX2Jhc2UgPSBjcHVfdG9fbGU2NChjdXJyX3BhZ2Up Owo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbnRyeV9zaXplID0gUEFHRV9TSVpFOwo+PiAr wqDCoMKgwqDCoMKgwqAgfQo+PiArCj4+ICvCoMKgwqDCoMKgwqDCoCBwcmV2X3BhZ2UgPSBjdXJy X3BhZ2U7Cj4+ICvCoMKgwqAgfQo+PiArwqDCoMKgIG1lbV9lbnRyaWVzW2pdLnNpemUgPSBjcHVf dG9fbGU2NChlbnRyeV9zaXplKTsKPiAKPiBJdCBtaWdodCBiZSBtZXNzaWVyLCBidXQgaXQgc2Vl bXMgbGlrZSB5b3UgY291bGQgc2NhbiB0aGUgcGFnZXMgdG8KPiBzZWUgaG93IG1hbnkgeW91J2xs IG5lZWQgKGFmdGVyIGNvbWJpbmluZyksIHRoZW4gYWxsb2NhdGUgdGhlIGFycmF5Cj4gb2YgbWVt IGVudHJpZXMgYmFzZWQgb24gdGhhdC7CoCBUaGF0IGlzLCBkbyB0aGF0IHJhdGhlciB0aGFuIGFs bG9jYXRpbmcsCj4gZmlsbGluZywgdGhlbiBkdXBsaWNhdGluZyBhbmQgZnJlZWluZy4KPiAKPiAg wqDCoMKgwqBjb3VudCA9IDE7Cj4gIMKgwqDCoMKgY3Vycl9wYWdlID0gbWFwcGluZy0+cGFnZXNb MF07Cj4gIMKgwqDCoMKgZm9yIChpID0gMTsgaSA8IG1hcHBpbmctPm5wYWdlczsgaSsrKSB7Cj4g IMKgwqDCoMKgwqDCoMKgIG5leHRfcGFnZSA9IG1hcHBpbmctPnBhZ2VzW2ldOwo+ICDCoMKgwqDC oMKgwqDCoCBpZiAocGFnZV90b19wZm4obmV4dF9wYWdlKSAhPQo+ICDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgcGFnZV90b19wZm4oY3Vycl9wYWdlKSArIDEpCj4gIMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgY291bnQrKzsKPiAgwqDCoMKgwqDCoMKgwqAgY3Vycl9wYWdlID0gbmV4dF9w YWdlOwo+ICDCoMKgwqDCoH0KPiAgwqDCoMKgwqBwYXJjZWwtPm5fbWVtX2VudHJpZXMgPSBjb3Vu dDsKPiAgwqDCoMKgwqBwYXJjZWwtPm1lbV9lbnRyaWVzID0ga2NhbGxvYyhjb3VudCwgLi4uKTsK PiAgwqDCoMKgwqAvKiBUaGVuIGZpbGwgdGhlbSB1cCAqLwo+IAo+IChOb3QgdGVzdGVkLCBidXQg eW91IGdldCB0aGUgaWRlYS4pCj4gCgpJdCB3YXNuJ3QgdG9vIG1lc3N5IElNTywgSSB0aGluayB0 aGlzIGVuZGVkIHVwIHNpbXBsaWZ5aW5nIHRoZSBsb29wLgoKPj4gKwo+PiArwqDCoMKgIHBhcmNl bC0+bl9tZW1fZW50cmllcyA9IGogKyAxOwo+PiArwqDCoMKgIHBhcmNlbC0+bWVtX2VudHJpZXMg PSBrbWVtZHVwKG1lbV9lbnRyaWVzLCBzaXplb2YoKm1lbV9lbnRyaWVzKSAqIAo+PiBwYXJjZWwt Pm5fbWVtX2VudHJpZXMsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBHRlBfS0VSTkVMKTsKPj4gK8KgwqDCoCBrZnJlZShtZW1fZW50cmllcyk7Cj4+ICvCoMKgwqAg aWYgKCFwYXJjZWwtPm1lbV9lbnRyaWVzKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCByZXQgPSAtRU5P TUVNOwo+PiArwqDCoMKgwqDCoMKgwqAgZ290byByZWNsYWltOwo+PiArwqDCoMKgIH0KPj4gKwo+ PiArwqDCoMKgIG11dGV4X3VubG9jaygmZ2h2bS0+bW1fbG9jayk7Cj4+ICvCoMKgwqAgcmV0dXJu IDA7Cj4+ICtyZWNsYWltOgo+PiArwqDCoMKgIGdoX3ZtX21lbV9yZWNsYWltKGdodm0sIG1hcHBp bmcpOwo+PiArZnJlZV9tYXBwaW5nOgo+PiArwqDCoMKgIGtmcmVlKG1hcHBpbmcpOwo+PiArwqDC oMKgIG11dGV4X3VubG9jaygmZ2h2bS0+bW1fbG9jayk7Cj4+ICvCoMKgwqAgcmV0dXJuIHJldDsK Pj4gK30KPj4gKwo+PiAraW50IGdoX3ZtX21lbV9mcmVlKHN0cnVjdCBnaF92bSAqZ2h2bSwgdTMy IGxhYmVsKQo+PiArewo+PiArwqDCoMKgIHN0cnVjdCBnaF92bV9tZW0gKm1hcHBpbmc7Cj4+ICvC oMKgwqAgaW50IHJldDsKPj4gKwo+PiArwqDCoMKgIHJldCA9IG11dGV4X2xvY2tfaW50ZXJydXB0 aWJsZSgmZ2h2bS0+bW1fbG9jayk7Cj4+ICvCoMKgwqAgaWYgKHJldCkKPj4gK8KgwqDCoMKgwqDC oMKgIHJldHVybiByZXQ7Cj4+ICsKPj4gK8KgwqDCoCBtYXBwaW5nID0gX19naF92bV9tZW1fZmlu ZF9ieV9sYWJlbChnaHZtLCBsYWJlbCk7Cj4+ICvCoMKgwqAgaWYgKCFtYXBwaW5nKQo+PiArwqDC oMKgwqDCoMKgwqAgZ290byBvdXQ7Cj4+ICsKPj4gK8KgwqDCoCBnaF92bV9tZW1fcmVjbGFpbShn aHZtLCBtYXBwaW5nKTsKPj4gK8KgwqDCoCBrZnJlZShtYXBwaW5nKTsKPj4gK291dDoKPj4gK8Kg wqDCoCBtdXRleF91bmxvY2soJmdodm0tPm1tX2xvY2spOwo+PiArwqDCoMKgIHJldHVybiByZXQ7 Cj4+ICt9Cj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvZ3VueWFoLmggYi9pbmNs dWRlL3VhcGkvbGludXgvZ3VueWFoLmgKPj4gaW5kZXggMTBiYTMyZDJiMGE2Li5hMTkyMDdlM2Uw NjUgMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9ndW55YWguaAo+PiArKysgYi9p bmNsdWRlL3VhcGkvbGludXgvZ3VueWFoLmgKPj4gQEAgLTIwLDQgKzIwLDMzIEBACj4+IMKgwqAg Ki8KPj4gwqAgI2RlZmluZSBHSF9DUkVBVEVfVk3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9JTyhH SF9JT0NUTF9UWVBFLCAweDApIC8qIFJldHVybnMgYSAKPj4gR3VueWFoIFZNIGZkICovCj4+ICsv Kgo+PiArICogaW9jdGxzIGZvciBWTSBmZHMKPj4gKyAqLwo+PiArCj4gCj4gSSB0aGluayB5b3Ug c2hvdWxkIGRlZmluZSB0aGUgZm9sbG93aW5nIHRocmVlIHZhbHVlcyBpbiBhbiBlbnVtLgo+IAo+ PiArI2RlZmluZSBHSF9NRU1fQUxMT1dfUkVBRMKgwqDCoCAoMVVMIDw8IDApCj4+ICsjZGVmaW5l IEdIX01FTV9BTExPV19XUklURcKgwqDCoCAoMVVMIDw8IDEpCj4+ICsjZGVmaW5lIEdIX01FTV9B TExPV19FWEVDwqDCoMKgICgxVUwgPDwgMikKPj4gKwo+PiArLyoqCj4+ICsgKiBzdHJ1Y3QgZ2hf dXNlcnNwYWNlX21lbW9yeV9yZWdpb24gLSBVc2Vyc3BhY2UgbWVtb3J5IGRlc2NyaXBpb24gCj4+ IGZvciBHSF9WTV9TRVRfVVNFUl9NRU1fUkVHSU9OCj4+ICsgKiBAbGFiZWw6IFVuaXF1ZSBpZGVu dGlmZXIgdG8gdGhlIHJlZ2lvbi4KPiAKPiBVbmlxdWUgd2l0aCByZXNwZWN0IHRvIHdoYXQ/wqAg SSB0aGluayBpdCdzIHVuaXF1ZSBhbW9uZyBtZW1vcnkKPiByZWdpb25zIGRlZmluZWQgd2l0aGlu IGEgVk0uwqAgQW5kIEkgdGhpbmsgaXQncyBhcmJpdHJhcnkgYW5kCj4gZGVmaW5lZCBieSB0aGUg Y2FsbGVyIChyaWdodD8pLgo+IAo+PiArICogQGZsYWdzOiBGbGFncyBmb3IgbWVtb3J5IHBhcmNl bCBiZWhhdmlvcgo+PiArICogQGd1ZXN0X3BoeXNfYWRkcjogTG9jYXRpb24gb2YgdGhlIG1lbW9y eSByZWdpb24gaW4gZ3Vlc3QncyBtZW1vcnkgCj4+IHNwYWNlIChwYWdlLWFsaWduZWQpCj4+ICsg KiBAbWVtb3J5X3NpemU6IFNpemUgb2YgdGhlIHJlZ2lvbiAocGFnZS1hbGlnbmVkKQo+PiArICog QHVzZXJzcGFjZV9hZGRyOiBMb2NhdGlvbiBvZiB0aGUgbWVtb3J5IHJlZ2lvbiBpbiBjYWxsZXIg Cj4+ICh1c2Vyc3BhY2UpJ3MgbWVtb3J5Cj4+ICsgKgo+PiArICogU2VlIERvY3VtZW50YXRpb24v dmlydC9ndW55YWgvdm0tbWFuYWdlci5yc3QgZm9yIGZ1cnRoZXIgZGV0YWlscy4KPj4gKyAqLwo+ PiArc3RydWN0IGdoX3VzZXJzcGFjZV9tZW1vcnlfcmVnaW9uIHsKPj4gK8KgwqDCoCBfX3UzMiBs YWJlbDsKPj4gK8KgwqDCoCBfX3UzMiBmbGFnczsKPiAKPiBBZGQgYSBjb21tZW50IHRvIGluZGlj YXRlIHdoYXQgdHlwZXMgb2YgdmFsdWVzICJmbGFncyIgY2FuIGhhdmUuCj4gTWF5YmUgImZsYWdz IiBzaG91bGQgYmUgY2FsbGVkICJwZXJtcyIgb3Igc29tZXRoaW5nPwo+IAoKQWRkZWQgZG9jdW1l bnRhdGlvbiBmb3IgdGhlIHZhbGlkIHZhbHVlcyBvZiBmbGFncy4gSSdtIGFudGljaXBhdGluZyAK bmVlZGluZyB0byBhZGQgb3RoZXIgZmxhZyB2YWx1ZXMgYmV5b25kIHBlcm1pc3Npb24gYml0cy4K Cj4+ICvCoMKgwqAgX191NjQgZ3Vlc3RfcGh5c19hZGRyOwo+PiArwqDCoMKgIF9fdTY0IG1lbW9y eV9zaXplOwo+PiArwqDCoMKgIF9fdTY0IHVzZXJzcGFjZV9hZGRyOwo+IAo+IFdoeSBpc24ndCB1 c2Vyc3BhY2VfYWRkciBqdXN0IGEgKHZvaWQgKik/wqAgVGhhdCB3b3VsZCBiZSBhIG1vcmUgbmF0 dXJhbAo+IHRoaW5nIHRvIHBhc3MgdG8gdGhlIGtlcm5lbC7CoCBJcyBpdCB0byBhdm9pZCAzMi1i aXQvNjQtYml0IHBvaW50ZXIKPiBkaWZmZXJlbmNlcyBpbiB0aGUgQVBJPwo+IAoKWWVzLCB0byBh dm9pZCAzMi1iaXQvNjQtYml0IHBvaW50ZXIgZGlmZmVyZW5jZXMgaW4gQVBJLgoKPj4gK307Cj4+ ICsKPj4gKyNkZWZpbmUgR0hfVk1fU0VUX1VTRVJfTUVNX1JFR0lPTsKgwqDCoCBfSU9XKEdIX0lP Q1RMX1RZUEUsIDB4MSwgXAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBzdHJ1Y3QgZ2hfdXNlcnNwYWNlX21lbW9yeV9yZWdpb24pCj4+ICsKPiAKPiBJ IHRoaW5rIGl0J3MgbmljZXIgdG8gZ3JvdXAgdGhlIGRlZmluaXRpb25zIG9mIHRoZXNlIElPQ1RM IHZhbHVlcy4KPiBUaGVuIGluIHRoZSBzdHJ1Y3QgZGVmaW5pdGlvbnMgdGhhdCBmb2xsb3csIHlv dSBjYW4gYWRkIGNvbW1lbnQgdGhhdAo+IGluZGljYXRlcyB3aGljaCBJT0NUTCB0aGUgc3RydWN0 IGlzIHVzZWQgZm9yLgo+IAo+PiDCoCAjZW5kaWYKPiAKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cmxp bnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK