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 9C4EBC47DA9 for ; Mon, 29 Jan 2024 08:37:22 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=9EA4jtLuTljQJWkuH3brUI0NgnXalGXtDelhSatfrNw=; b=2JwrNIduXnbwNO ta0RgDGarPF3p1v80VJ9RawOA5TNSzwVeg8mZK+bYtPmWdYrEsyCW/WZXfWQlI7ph5VK82d6GBo6E 6p8VhjoLMAFMuP4gfwHzGqUav8nHHdMpyUsTg7QGKP3/CbobzynqmzNLByFGnT3//NnXTxFzxnlwm a7lnsJ9c3hAKEXHoB/V71nnd2HJjRz/7DOHAJgCO6MC0g25LSCeYiq7cvX/EcYEr7tb3fz1tvZe5h 3FJIWPYrwjATzi1TVGt/0tMGr+HRGr1S2MNZOD037F8VgmitjcqVnriuqbfoGEWTTHqUTQDANutqA nRKifHCqNh6FLB0+fx2A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rUN8h-0000000BpCK-1fO7; Mon, 29 Jan 2024 08:37:11 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rUN5Q-0000000Bn7j-0Lfx; Mon, 29 Jan 2024 08:33:49 +0000 X-UUID: 1cdfdf94be8111eea0bf134e88e6c2dc-20240129 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=c+26dMTTSdxbm38+P9yYsT5O7WjTnzxRDdRCBRWTttw=; b=ipMcdyo4UMYqnpdD3nOW35iHlQp55OT9RbjCS1oxijBvimzGQZYHkvUOHINBRX6vz0umIz5KR7jxDEd4stQu3Jxj34wRpiOAHekyld79X/ze/Il0+usIvak/1qDImLko7x3q2DtwBvgVWQNTeckGSDo1WCIqxv/gBhSpeR8DGO0=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.36,REQID:58f1462d-f886-4996-9c01-489646efa8d5,IP:0,U RL:0,TC:0,Content:-25,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTIO N:release,TS:-25 X-CID-META: VersionHash:6e16cf4,CLOUDID:e34243fe-c16b-4159-a099-3b9d0558e447,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:11|1,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES :1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0 X-CID-BVR: 0,NGT X-CID-BAS: 0,NGT,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_ULN X-UUID: 1cdfdf94be8111eea0bf134e88e6c2dc-20240129 Received: from mtkmbs11n2.mediatek.inc [(172.21.101.187)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1999770354; Mon, 29 Jan 2024 01:33:43 -0700 Received: from mtkmbs13n1.mediatek.inc (172.21.101.193) by mtkmbs11n2.mediatek.inc (172.21.101.187) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Mon, 29 Jan 2024 16:33:08 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkmbs13n1.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Mon, 29 Jan 2024 16:33:08 +0800 From: Yi-De Wu To: Yingshiuan Pan , Ze-Yu Wang , Yi-De Wu , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Jonathan Corbet , Catalin Marinas , Will Deacon , Richard Cochran , Matthias Brugger , AngeloGioacchino Del Regno CC: , , , , , , David Bradil , Trilok Soni , My Chuang , Shawn Hsiao , PeiLun Suei , Liju Chen , Willix Yeh , Kevenny Hsieh Subject: [PATCH v9 17/21] virt: geniezone: Add memory pin/unpin support Date: Mon, 29 Jan 2024 16:32:58 +0800 Message-ID: <20240129083302.26044-18-yi-de.wu@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20240129083302.26044-1-yi-de.wu@mediatek.com> References: <20240129083302.26044-1-yi-de.wu@mediatek.com> MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240129_003348_251569_9EBE5B89 X-CRM114-Status: GOOD ( 28.72 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RnJvbTogIkplcnJ5IFdhbmciIDx6ZS15dS53YW5nQG1lZGlhdGVrLmNvbT4KClByb3RlY3RlZCBW TSdzIG1lbW9yeSBjYW5ub3QgYmUgc3dhcHBlZCBvdXQgYmVjYXVzZSB0aGUgbWVtb3J5IHBhZ2Vz IGFyZQpwcm90ZWN0ZWQgZnJvbSBob3N0IGFjY2Vzcy4KCk9uY2UgaG9zdCBhY2Nlc3NlcyB0byB0 aG9zZSBwcm90ZWN0ZWQgcGFnZXMsIHRoZSBoYXJkd2FyZSBleGNlcHRpb24gaXMKdHJpZ2dlcmVk IGFuZCBtYXkgY3Jhc2ggdGhlIGhvc3QuIFNvLCB3ZSBoYXZlIHRvIG1ha2UgdGhvc2UgcHJvdGVj dGVkCnBhZ2VzIGJlIGluZWxpZ2libGUgZm9yIHN3YXBwaW5nIG9yIG1lcmdpbmcgYnkgdGhlIGhv c3Qga2VybmVsIHRvIGF2b2lkCmhvc3QgYWNjZXNzLiBUbyBkbyBzbywgd2UgcGluIHRoZSBwYWdl IHdoZW4gaXQgaXMgYXNzaWduZWQgKGRvbmF0ZWQpIHRvClZNIGFuZCB1bnBpbiB3aGVuIFZNIHJl bGlucXVpc2ggdGhlIHBhZ2VzIG9yIGlzIGRlc3Ryb3llZC4gQmVzaWRlcywgdGhlCnByb3RlY3Rl ZCBWTeKAmXMgbWVtb3J5IHJlcXVpcmVzIGh5cGVydmlzb3IgdG8gY2xlYXIgdGhlIGNvbnRlbnQg YmVmb3JlCnJldHVybmluZyB0byBob3N0LCBidXQgVk1NIG1heSBmcmVlIHRob3NlIG1lbW9yeSBi ZWZvcmUgY2xlYXJpbmcsIGl0CndpbGwgcmVzdWx0IGluIHRob3NlIG1lbW9yeSBwYWdlcyBhcmUg cmVjbGFpbWVkIGFuZCByZXVzZWQgYmVmb3JlCnRvdGFsbHkgY2xlYXJpbmcuIFVzaW5nIHBpbi91 bnBpbiBjYW4gYWxzbyBhdm9pZCB0aGUgYWJvdmUgcHJvYmxlbXMuCgpUaGUgaW1wbGVtZW50YXRp b24gaXMgZGVzY3JpYmVkIGFzIGZvbGxvd3MuCi0gVXNlIHJiX3RyZWUgdG8gc3RvcmUgcGlubmVk IG1lbW9yeSBwYWdlcy4KLSBQaW4gdGhlIHBhZ2Ugd2hlbiBoYW5kbGluZyBwYWdlIGZhdWx0Lgot IFVucGluIHRoZSBwYWdlcyB3aGVuIFZNIHJlbGlucXVpc2ggdGhlIHBhZ2VzIG9yIGlzIGRlc3Ry b3llZC4KClNpZ25lZC1vZmYtYnk6IEplcnJ5IFdhbmcgPHplLXl1LndhbmdAbWVkaWF0ZWsuY29t PgpTaWduZWQtb2ZmLWJ5OiBZaW5nc2hpdWFuIFBhbiA8eWluZ3NoaXVhbi5wYW5AbWVkaWF0ZWsu Y29tPgpTaWduZWQtb2ZmLWJ5OiBMaWp1IENoZW4gPGxpanUtY2xyLmNoZW5AbWVkaWF0ZWsuY29t PgpTaWduZWQtb2ZmLWJ5OiBZaS1EZSBXdSA8eWktZGUud3VAbWVkaWF0ZWsuY29tPgotLS0KIGFy Y2gvYXJtNjQvZ2VuaWV6b25lL3ZtLmMgICAgICAgICB8ICA4ICsrLS0KIGRyaXZlcnMvdmlydC9n ZW5pZXpvbmUvZ3p2bV9tbXUuYyB8IDc2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0K IGRyaXZlcnMvdmlydC9nZW5pZXpvbmUvZ3p2bV92bS5jICB8IDIxICsrKysrKysrKwogaW5jbHVk ZS9saW51eC9nenZtX2Rydi5oICAgICAgICAgIHwgMTUgKysrKystCiA0IGZpbGVzIGNoYW5nZWQs IDExMCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL2Fy bTY0L2dlbmllem9uZS92bS5jIGIvYXJjaC9hcm02NC9nZW5pZXpvbmUvdm0uYwppbmRleCAxODQx ZTNhZWQzNjMuLjY5MWU2NTIxY2M0OCAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9nZW5pZXpvbmUv dm0uYworKysgYi9hcmNoL2FybTY0L2dlbmllem9uZS92bS5jCkBAIC0xOTUsMTIgKzE5NSwxNCBA QCBzdGF0aWMgaW50IGd6dm1fdm1faW9jdGxfZ2V0X3B2bWZ3X3NpemUoc3RydWN0IGd6dm0gKmd6 dm0sCiAgKiBAZ2ZuOiBHdWVzdCBmcmFtZSBudW1iZXIuCiAgKiBAdG90YWxfcGFnZXM6IFRvdGFs IHBhZ2UgbnVtYmVycy4KICAqIEBzbG90OiBQb2ludGVyIHRvIHN0cnVjdCBnenZtX21lbXNsb3Qu CisgKiBAZ3p2bTogUG9pbnRlciB0byBzdHJ1Y3QgZ3p2bS4KICAqCiAgKiBSZXR1cm46IGhvdyBt YW55IHBhZ2VzIHdlJ3ZlIGZpbGwgaW4sIG5lZ2F0aXZlIGlmIGVycm9yCiAgKi8KIHN0YXRpYyBp bnQgZmlsbF9jb25zdGl0dWVudHMoc3RydWN0IG1lbV9yZWdpb25fYWRkcl9yYW5nZSAqY29uc3Rp LAogCQkJICAgICBpbnQgKmNvbnN0aV9jbnQsIGludCBtYXhfbnJfY29uc3RpLCB1NjQgZ2ZuLAot CQkJICAgICB1MzIgdG90YWxfcGFnZXMsIHN0cnVjdCBnenZtX21lbXNsb3QgKnNsb3QpCisJCQkg ICAgIHUzMiB0b3RhbF9wYWdlcywgc3RydWN0IGd6dm1fbWVtc2xvdCAqc2xvdCwKKwkJCSAgICAg c3RydWN0IGd6dm0gKmd6dm0pCiB7CiAJdTY0IHBmbiA9IDAsIHByZXZfcGZuID0gMCwgZ2ZuX2Vu ZCA9IDA7CiAJaW50IG5yX3BhZ2VzID0gMDsKQEAgLTIxMSw3ICsyMTMsNyBAQCBzdGF0aWMgaW50 IGZpbGxfY29uc3RpdHVlbnRzKHN0cnVjdCBtZW1fcmVnaW9uX2FkZHJfcmFuZ2UgKmNvbnN0aSwK IAlnZm5fZW5kID0gZ2ZuICsgdG90YWxfcGFnZXM7CiAKIAl3aGlsZSAoaSA8IG1heF9ucl9jb25z dGkgJiYgZ2ZuIDwgZ2ZuX2VuZCkgewotCQlpZiAoZ3p2bV92bV9hbGxvY2F0ZV9ndWVzdF9wYWdl KHNsb3QsIGdmbiwgJnBmbikgIT0gMCkKKwkJaWYgKGd6dm1fdm1fYWxsb2NhdGVfZ3Vlc3RfcGFn ZShnenZtLCBzbG90LCBnZm4sICZwZm4pICE9IDApCiAJCQlyZXR1cm4gLUVGQVVMVDsKIAkJaWYg KHBmbiA9PSAocHJldl9wZm4gKyAxKSkgewogCQkJY29uc3RpW2ldLnBnX2NudCsrOwpAQCAtMjY4 LDcgKzI3MCw3IEBAIGludCBnenZtX3ZtX3BvcHVsYXRlX21lbV9yZWdpb24oc3RydWN0IGd6dm0g Kmd6dm0sIGludCBzbG90X2lkKQogCQlucl9wYWdlcyA9IGZpbGxfY29uc3RpdHVlbnRzKHJlZ2lv bi0+Y29uc3RpdHVlbnRzLAogCQkJCQkgICAgICZyZWdpb24tPmNvbnN0aXR1ZW50X2NudCwKIAkJ CQkJICAgICBtYXhfbnJfY29uc3RpLCBnZm4sCi0JCQkJCSAgICAgcmVtYWluX3BhZ2VzLCBtZW1z bG90KTsKKwkJCQkJICAgICByZW1haW5fcGFnZXMsIG1lbXNsb3QsIGd6dm0pOwogCiAJCWlmIChu cl9wYWdlcyA8IDApIHsKIAkJCXByX2VycigiRmFpbGVkIHRvIGZpbGwgY29uc3RpdHVlbnRzXG4i KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlydC9nZW5pZXpvbmUvZ3p2bV9tbXUuYyBiL2RyaXZl cnMvdmlydC9nZW5pZXpvbmUvZ3p2bV9tbXUuYwppbmRleCA5OGQyOTZmZjljOTAuLmNmNjE5YjM4 MzNhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aXJ0L2dlbmllem9uZS9nenZtX21tdS5jCisrKyBi L2RyaXZlcnMvdmlydC9nZW5pZXpvbmUvZ3p2bV9tbXUuYwpAQCAtMTA3LDExICsxMDcsNzYgQEAg aW50IGd6dm1fZ2ZuX3RvX3Bmbl9tZW1zbG90KHN0cnVjdCBnenZtX21lbXNsb3QgKm1lbXNsb3Qs IHU2NCBnZm4sCiAJcmV0dXJuIDA7CiB9CiAKLWludCBnenZtX3ZtX2FsbG9jYXRlX2d1ZXN0X3Bh Z2Uoc3RydWN0IGd6dm1fbWVtc2xvdCAqc2xvdCwgdTY0IGdmbiwgdTY0ICpwZm4pCitzdGF0aWMg aW50IGNtcF9wcGFnZXMoc3RydWN0IHJiX25vZGUgKm5vZGUsIGNvbnN0IHN0cnVjdCByYl9ub2Rl ICpwYXJlbnQpCiB7CisJc3RydWN0IGd6dm1fcGlubmVkX3BhZ2UgKmEgPSBjb250YWluZXJfb2Yo bm9kZSwKKwkJCQkJCSAgc3RydWN0IGd6dm1fcGlubmVkX3BhZ2UsCisJCQkJCQkgIG5vZGUpOwor CXN0cnVjdCBnenZtX3Bpbm5lZF9wYWdlICpiID0gY29udGFpbmVyX29mKHBhcmVudCwKKwkJCQkJ CSAgc3RydWN0IGd6dm1fcGlubmVkX3BhZ2UsCisJCQkJCQkgIG5vZGUpOworCisJaWYgKGEtPmlw YSA8IGItPmlwYSkKKwkJcmV0dXJuIC0xOworCWlmIChhLT5pcGEgPiBiLT5pcGEpCisJCXJldHVy biAxOworCXJldHVybiAwOworfQorCisvKiBJbnZva2VyIG9mIHRoaXMgZnVuY3Rpb24gaXMgcmVz cG9uc2libGUgZm9yIGxvY2tpbmcgKi8KK3N0YXRpYyBpbnQgZ3p2bV9pbnNlcnRfcHBhZ2Uoc3Ry dWN0IGd6dm0gKnZtLCBzdHJ1Y3QgZ3p2bV9waW5uZWRfcGFnZSAqcHBhZ2UpCit7CisJaWYgKHJi X2ZpbmRfYWRkKCZwcGFnZS0+bm9kZSwgJnZtLT5waW5uZWRfcGFnZXMsIGNtcF9wcGFnZXMpKQor CQlyZXR1cm4gLUVFWElTVDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBwaW5fb25lX3Bh Z2Uoc3RydWN0IGd6dm0gKnZtLCB1bnNpZ25lZCBsb25nIGh2YSwgdTY0IGdwYSkKK3sKKwl1bnNp Z25lZCBpbnQgZmxhZ3MgPSBGT0xMX0hXUE9JU09OIHwgRk9MTF9MT05HVEVSTSB8IEZPTExfV1JJ VEU7CisJc3RydWN0IGd6dm1fcGlubmVkX3BhZ2UgKnBwYWdlID0gTlVMTDsKKwlzdHJ1Y3QgbW1f c3RydWN0ICptbSA9IGN1cnJlbnQtPm1tOworCXN0cnVjdCBwYWdlICpwYWdlID0gTlVMTDsKKwlp bnQgcmV0OworCisJcHBhZ2UgPSBrbWFsbG9jKHNpemVvZigqcHBhZ2UpLCBHRlBfS0VSTkVMX0FD Q09VTlQpOworCWlmICghcHBhZ2UpCisJCXJldHVybiAtRU5PTUVNOworCisJbW1hcF9yZWFkX2xv Y2sobW0pOworCXBpbl91c2VyX3BhZ2VzKGh2YSwgMSwgZmxhZ3MsICZwYWdlKTsKKwltbWFwX3Jl YWRfdW5sb2NrKG1tKTsKKworCWlmICghcGFnZSkgeworCQlrZnJlZShwcGFnZSk7CisJCXJldHVy biAtRUZBVUxUOworCX0KKworCXBwYWdlLT5wYWdlID0gcGFnZTsKKwlwcGFnZS0+aXBhID0gZ3Bh OworCisJbXV0ZXhfbG9jaygmdm0tPm1lbV9sb2NrKTsKKwlyZXQgPSBnenZtX2luc2VydF9wcGFn ZSh2bSwgcHBhZ2UpOworCWlmIChyZXQgPT0gLUVFWElTVCkgeworCQlrZnJlZShwcGFnZSk7CisJ CXVucGluX3VzZXJfcGFnZXMoJnBhZ2UsIDEpOworCQlyZXQgPSAwOworCX0KKwltdXRleF91bmxv Y2soJnZtLT5tZW1fbG9jayk7CisKKwlyZXR1cm4gcmV0OworfQorCitpbnQgZ3p2bV92bV9hbGxv Y2F0ZV9ndWVzdF9wYWdlKHN0cnVjdCBnenZtICp2bSwgc3RydWN0IGd6dm1fbWVtc2xvdCAqc2xv dCwKKwkJCQl1NjQgZ2ZuLCB1NjQgKnBmbikKK3sKKwl1bnNpZ25lZCBsb25nIGh2YTsKKwogCWlm IChnenZtX2dmbl90b19wZm5fbWVtc2xvdChzbG90LCBnZm4sIHBmbikgIT0gMCkKIAkJcmV0dXJu IC1FRkFVTFQ7Ci0JcmV0dXJuIDA7CisKKwlodmEgPSBnenZtX2dmbl90b19odmFfbWVtc2xvdChz bG90LCBnZm4pOworCXJldHVybiBwaW5fb25lX3BhZ2Uodm0sIGh2YSwgUEZOX1BIWVMoZ2ZuKSk7 CiB9CiAKIHN0YXRpYyBpbnQgaGFuZGxlX2Jsb2NrX2RlbWFuZF9wYWdlKHN0cnVjdCBnenZtICp2 bSwgaW50IG1lbXNsb3RfaWQsIHU2NCBnZm4pCkBAIC0xMzEsNyArMTk2LDcgQEAgc3RhdGljIGlu dCBoYW5kbGVfYmxvY2tfZGVtYW5kX3BhZ2Uoc3RydWN0IGd6dm0gKnZtLCBpbnQgbWVtc2xvdF9p ZCwgdTY0IGdmbikKIAogCW11dGV4X2xvY2soJnZtLT5kZW1hbmRfcGFnaW5nX2xvY2spOwogCWZv ciAoaSA9IDAsIF9fZ2ZuID0gc3RhcnRfZ2ZuOyBpIDwgbnJfZW50cmllczsgaSsrLCBfX2dmbisr KSB7Ci0JCXJldCA9IGd6dm1fdm1fYWxsb2NhdGVfZ3Vlc3RfcGFnZShtZW1zbG90LCBfX2dmbiwg JnBmbik7CisJCXJldCA9IGd6dm1fdm1fYWxsb2NhdGVfZ3Vlc3RfcGFnZSh2bSwgbWVtc2xvdCwg X19nZm4sICZwZm4pOwogCQlpZiAodW5saWtlbHkocmV0KSkgewogCQkJcmV0ID0gLUVSUl9GQVVM VDsKIAkJCWdvdG8gZXJyX3VubG9jazsKQEAgLTE1NywxNSArMjIyLDE0IEBAIHN0YXRpYyBpbnQg aGFuZGxlX3NpbmdsZV9kZW1hbmRfcGFnZShzdHJ1Y3QgZ3p2bSAqdm0sIGludCBtZW1zbG90X2lk LCB1NjQgZ2ZuKQogCWludCByZXQ7CiAJdTY0IHBmbjsKIAotCXJldCA9IGd6dm1fdm1fYWxsb2Nh dGVfZ3Vlc3RfcGFnZSgmdm0tPm1lbXNsb3RbbWVtc2xvdF9pZF0sIGdmbiwgJnBmbik7CisJcmV0 ID0gZ3p2bV92bV9hbGxvY2F0ZV9ndWVzdF9wYWdlKHZtLCAmdm0tPm1lbXNsb3RbbWVtc2xvdF9p ZF0sIGdmbiwgJnBmbik7CiAJaWYgKHVubGlrZWx5KHJldCkpCiAJCXJldHVybiAtRUZBVUxUOwog CiAJcmV0ID0gZ3p2bV9hcmNoX21hcF9ndWVzdCh2bS0+dm1faWQsIG1lbXNsb3RfaWQsIHBmbiwg Z2ZuLCAxKTsKIAlpZiAodW5saWtlbHkocmV0KSkKIAkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQlyZXR1 cm4gMDsKKwlyZXR1cm4gcmV0OwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlydC9n ZW5pZXpvbmUvZ3p2bV92bS5jIGIvZHJpdmVycy92aXJ0L2dlbmllem9uZS9nenZtX3ZtLmMKaW5k ZXggNDg1ZDFlMjA5N2FhLi4xYWY3OGYxNjFlYjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlydC9n ZW5pZXpvbmUvZ3p2bV92bS5jCisrKyBiL2RyaXZlcnMvdmlydC9nZW5pZXpvbmUvZ3p2bV92bS5j CkBAIC0yOTIsNiArMjkyLDIyIEBAIHN0YXRpYyBsb25nIGd6dm1fdm1faW9jdGwoc3RydWN0IGZp bGUgKmZpbHAsIHVuc2lnbmVkIGludCBpb2N0bCwKIAlyZXR1cm4gcmV0OwogfQogCisvKiBJbnZv a2VyIG9mIHRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIGxvY2tpbmcgKi8KK3N0YXRp YyB2b2lkIGd6dm1fZGVzdHJveV9hbGxfcHBhZ2Uoc3RydWN0IGd6dm0gKmd6dm0pCit7CisJc3Ry dWN0IGd6dm1fcGlubmVkX3BhZ2UgKnBwYWdlOworCXN0cnVjdCByYl9ub2RlICpub2RlOworCisJ bm9kZSA9IHJiX2ZpcnN0KCZnenZtLT5waW5uZWRfcGFnZXMpOworCXdoaWxlIChub2RlKSB7CisJ CXBwYWdlID0gcmJfZW50cnkobm9kZSwgc3RydWN0IGd6dm1fcGlubmVkX3BhZ2UsIG5vZGUpOwor CQl1bnBpbl91c2VyX3BhZ2VzX2RpcnR5X2xvY2soJnBwYWdlLT5wYWdlLCAxLCB0cnVlKTsKKwkJ bm9kZSA9IHJiX25leHQobm9kZSk7CisJCXJiX2VyYXNlKCZwcGFnZS0+bm9kZSwgJmd6dm0tPnBp bm5lZF9wYWdlcyk7CisJCWtmcmVlKHBwYWdlKTsKKwl9Cit9CisKIHN0YXRpYyB2b2lkIGd6dm1f ZGVzdHJveV92bShzdHJ1Y3QgZ3p2bSAqZ3p2bSkKIHsKIAlzaXplX3QgYWxsb2NhdGVkX3NpemU7 CkBAIC0zMTUsNiArMzMxLDkgQEAgc3RhdGljIHZvaWQgZ3p2bV9kZXN0cm95X3ZtKHN0cnVjdCBn enZtICpnenZtKQogCiAJbXV0ZXhfdW5sb2NrKCZnenZtLT5sb2NrKTsKIAorCS8qIE5vIG5lZWQg dG8gbG9jayBoZXJlIGJlY2F1ZXNlIGl0J3Mgc2luZ2xlLXRocmVhZGVkIGV4ZWN1dGlvbiAqLwor CWd6dm1fZGVzdHJveV9hbGxfcHBhZ2UoZ3p2bSk7CisKIAlrZnJlZShnenZtKTsKIH0KIApAQCAt MzkwLDYgKzQwOSw4IEBAIHN0YXRpYyBzdHJ1Y3QgZ3p2bSAqZ3p2bV9jcmVhdGVfdm0odW5zaWdu ZWQgbG9uZyB2bV90eXBlKQogCWd6dm0tPnZtX2lkID0gcmV0OwogCWd6dm0tPm1tID0gY3VycmVu dC0+bW07CiAJbXV0ZXhfaW5pdCgmZ3p2bS0+bG9jayk7CisJbXV0ZXhfaW5pdCgmZ3p2bS0+bWVt X2xvY2spOworCWd6dm0tPnBpbm5lZF9wYWdlcyA9IFJCX1JPT1Q7CiAKIAlyZXQgPSBnenZtX3Zt X2lycWZkX2luaXQoZ3p2bSk7CiAJaWYgKHJldCkgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9nenZtX2Rydi5oIGIvaW5jbHVkZS9saW51eC9nenZtX2Rydi5oCmluZGV4IGI1MzdmNzE0NjVl Ny4uYmI0N2RlMmNmNWEyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2d6dm1fZHJ2LmgKKysr IGIvaW5jbHVkZS9saW51eC9nenZtX2Rydi5oCkBAIC0xMiw2ICsxMiw3IEBACiAjaW5jbHVkZSA8 bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9nenZtLmg+CiAjaW5jbHVkZSA8bGludXgv c3JjdS5oPgorI2luY2x1ZGUgPGxpbnV4L3JidHJlZS5oPgogCiAvKgogICogRm9yIHRoZSBub3Jt YWwgcGh5c2ljYWwgYWRkcmVzcywgdGhlIGhpZ2hlc3QgMTIgYml0cyBzaG91bGQgYmUgemVybywg c28gd2UKQEAgLTgyLDYgKzgzLDEyIEBAIHN0cnVjdCBnenZtX3ZjcHUgewogCXN0cnVjdCBnenZt X3ZjcHVfaHdzdGF0ZSAqaHdzdGF0ZTsKIH07CiAKK3N0cnVjdCBnenZtX3Bpbm5lZF9wYWdlIHsK KwlzdHJ1Y3QgcmJfbm9kZSBub2RlOworCXN0cnVjdCBwYWdlICpwYWdlOworCXU2NCBpcGE7Cit9 OworCiBzdHJ1Y3QgZ3p2bSB7CiAJc3RydWN0IGd6dm1fdmNwdSAqdmNwdXNbR1pWTV9NQVhfVkNQ VVNdOwogCS8qIHVzZXJzcGFjZSB0aWVkIHRvIHRoaXMgdm0gKi8KQEAgLTEyMSw2ICsxMjgsMTEg QEAgc3RydWN0IGd6dm0gewogCSAqIGF0IHRoZSBzYW1lIHRpbWUKIAkgKi8KIAlzdHJ1Y3QgbXV0 ZXggIGRlbWFuZF9wYWdpbmdfbG9jazsKKworCS8qIFVzZSByYi10cmVlIHRvIHJlY29yZCBwaW4v dW5waW4gcGFnZSAqLworCXN0cnVjdCByYl9yb290IHBpbm5lZF9wYWdlczsKKwkvKiBsb2NrIGZv ciBtZW1vcnkgb3BlcmF0aW9ucyAqLworCXN0cnVjdCBtdXRleCBtZW1fbG9jazsKIH07CiAKIGxv bmcgZ3p2bV9kZXZfaW9jdGxfY2hlY2tfZXh0ZW5zaW9uKHN0cnVjdCBnenZtICpnenZtLCB1bnNp Z25lZCBsb25nIGFyZ3MpOwpAQCAtMTUyLDcgKzE2NCw4IEBAIHU2NCBodmFfdG9fcGFfc2xvdyh1 NjQgaHZhKTsKIGludCBnenZtX2dmbl90b19wZm5fbWVtc2xvdChzdHJ1Y3QgZ3p2bV9tZW1zbG90 ICptZW1zbG90LCB1NjQgZ2ZuLCB1NjQgKnBmbik7CiB1NjQgZ3p2bV9nZm5fdG9faHZhX21lbXNs b3Qoc3RydWN0IGd6dm1fbWVtc2xvdCAqbWVtc2xvdCwgdTY0IGdmbik7CiBpbnQgZ3p2bV92bV9w b3B1bGF0ZV9tZW1fcmVnaW9uKHN0cnVjdCBnenZtICpnenZtLCBpbnQgc2xvdF9pZCk7Ci1pbnQg Z3p2bV92bV9hbGxvY2F0ZV9ndWVzdF9wYWdlKHN0cnVjdCBnenZtX21lbXNsb3QgKnNsb3QsIHU2 NCBnZm4sIHU2NCAqcGZuKTsKK2ludCBnenZtX3ZtX2FsbG9jYXRlX2d1ZXN0X3BhZ2Uoc3RydWN0 IGd6dm0gKmd6dm0sIHN0cnVjdCBnenZtX21lbXNsb3QgKnNsb3QsCisJCQkJdTY0IGdmbiwgdTY0 ICpwZm4pOwogCiBpbnQgZ3p2bV92bV9pb2N0bF9jcmVhdGVfdmNwdShzdHJ1Y3QgZ3p2bSAqZ3p2 bSwgdTMyIGNwdWlkKTsKIGludCBnenZtX2FyY2hfdmNwdV91cGRhdGVfb25lX3JlZyhzdHJ1Y3Qg Z3p2bV92Y3B1ICp2Y3B1LCBfX3U2NCByZWdfaWQsCi0tIAoyLjE4LjAKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==