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 6C300C4345F for ; Fri, 12 Apr 2024 06:59:00 +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=wzNm+3n/AreGjtQBnVsTSDEss7n6++W+7Sr9mMyamtQ=; b=yk8OeYI6LDVXeM +gMDX0D52Fpiw5F3jWCyHj2DoYq4hpZ2Tyox5K4tyijJGyreVYxGnZ30BPJwBWSf2FY9K3Kfzfen6 cFF04M1RXbEiwK4iQnjF7amTNYlR+jqRsS7tW4SSVtkw2Kq9WlgH3msJu1Ljh3VlCwMjxv9VyxArE 5dmMuh5ZDz+d3jf3dwO8Z/Zpqqby9OL4o3uZJKfs14F+9kkHIaZbRiU6Asv2W07mLYpYAs/cCjoXY QoNPSGPmeqZ6jHP5O9GFiQpIf0Py71rmcTB+lC3ovpB5Bqk5jPtIOBgq4mFqQiobUD/VmykGz91Wf 4ZBLteVYeIxgI6Vrcwbw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rvAs4-0000000FgQe-1JVe; Fri, 12 Apr 2024 06:58:48 +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 1rvArE-0000000FfoE-12da; Fri, 12 Apr 2024 06:57:59 +0000 X-UUID: fa610d3cf89911ee96d5dfc950b7243d-20240411 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=KnmR3iuaQdzN5AUrWbhyo1vnuEmyAbGW2cOptRwC8Bk=; b=CtR3mCMWJFump1fAGpqDnILYhqPD4e9ELqyz7+Gmc5s61aevIWUTEjYDScbMm2Sftt9m3ZeZYtrZPXp4XG5O+9yIYOppL4diCa0zuDF8rjstqTaMsCfmYi4Ouvt6Qwxt5grzkmrx3UjLSOAhSHw9W7qt6yl9Y8dqeiR8nIXkHao=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.37,REQID:fc420903-164d-464e-8f53-4c0fb354a63f,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:6f543d0,CLOUDID:974a9782-4f93-4875-95e7-8c66ea833d57,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: fa610d3cf89911ee96d5dfc950b7243d-20240411 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 461969109; Thu, 11 Apr 2024 23:57:50 -0700 Received: from mtkmbs13n1.mediatek.inc (172.21.101.193) by mtkmbs13n1.mediatek.inc (172.21.101.193) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Fri, 12 Apr 2024 14:57:47 +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; Fri, 12 Apr 2024 14:57:47 +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 v10 17/21] virt: geniezone: Add memory pin/unpin support Date: Fri, 12 Apr 2024 14:57:14 +0800 Message-ID: <20240412065718.29105-18-yi-de.wu@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20240412065718.29105-1-yi-de.wu@mediatek.com> References: <20240412065718.29105-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-20240411_235756_585095_BCC8C33C X-CRM114-Status: GOOD ( 29.48 ) 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 Y2gvYXJtNjQvZ2VuaWV6b25lL3ZtLmMgICAgICAgICAgICAgfCAgOCArKy0KIGRyaXZlcnMvdmly dC9nZW5pZXpvbmUvZ3p2bV9tbXUuYyAgICAgfCA4OCArKysrKysrKysrKysrKysrKysrKysrKysr LS0KIGRyaXZlcnMvdmlydC9nZW5pZXpvbmUvZ3p2bV92bS5jICAgICAgfCAyMSArKysrKysrCiBp bmNsdWRlL2xpbnV4L3NvYy9tZWRpYXRlay9nenZtX2Rydi5oIHwgMTUgKysrKy0KIDQgZmlsZXMg Y2hhbmdlZCwgMTIyIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2FyY2gvYXJtNjQvZ2VuaWV6b25lL3ZtLmMgYi9hcmNoL2FybTY0L2dlbmllem9uZS92bS5jCmlu ZGV4IDQ2OTFhM2FkYTY3OC4uZWIyOGMzODUwYjVkIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2dl bmllem9uZS92bS5jCisrKyBiL2FyY2gvYXJtNjQvZ2VuaWV6b25lL3ZtLmMKQEAgLTIxMSwxMiAr MjExLDE0IEBAIHN0YXRpYyBpbnQgZ3p2bV92bV9pb2N0bF9nZXRfcHZtZndfc2l6ZShzdHJ1Y3Qg Z3p2bSAqZ3p2bSwKICAqIEBnZm46IEd1ZXN0IGZyYW1lIG51bWJlci4KICAqIEB0b3RhbF9wYWdl czogVG90YWwgcGFnZSBudW1iZXJzLgogICogQHNsb3Q6IFBvaW50ZXIgdG8gc3RydWN0IGd6dm1f bWVtc2xvdC4KKyAqIEBnenZtOiBQb2ludGVyIHRvIHN0cnVjdCBnenZtLgogICoKICAqIFJldHVy bjogaG93IG1hbnkgcGFnZXMgd2UndmUgZmlsbCBpbiwgbmVnYXRpdmUgaWYgZXJyb3IKICAqLwog c3RhdGljIGludCBmaWxsX2NvbnN0aXR1ZW50cyhzdHJ1Y3QgbWVtX3JlZ2lvbl9hZGRyX3Jhbmdl ICpjb25zdGksCiAJCQkgICAgIGludCAqY29uc3RpX2NudCwgaW50IG1heF9ucl9jb25zdGksIHU2 NCBnZm4sCi0JCQkgICAgIHUzMiB0b3RhbF9wYWdlcywgc3RydWN0IGd6dm1fbWVtc2xvdCAqc2xv dCkKKwkJCSAgICAgdTMyIHRvdGFsX3BhZ2VzLCBzdHJ1Y3QgZ3p2bV9tZW1zbG90ICpzbG90LAor CQkJICAgICBzdHJ1Y3QgZ3p2bSAqZ3p2bSkKIHsKIAl1NjQgcGZuID0gMCwgcHJldl9wZm4gPSAw LCBnZm5fZW5kID0gMDsKIAlpbnQgbnJfcGFnZXMgPSAwOwpAQCAtMjI3LDcgKzIyOSw3IEBAIHN0 YXRpYyBpbnQgZmlsbF9jb25zdGl0dWVudHMoc3RydWN0IG1lbV9yZWdpb25fYWRkcl9yYW5nZSAq Y29uc3RpLAogCWdmbl9lbmQgPSBnZm4gKyB0b3RhbF9wYWdlczsKIAogCXdoaWxlIChpIDwgbWF4 X25yX2NvbnN0aSAmJiBnZm4gPCBnZm5fZW5kKSB7Ci0JCWlmIChnenZtX3ZtX2FsbG9jYXRlX2d1 ZXN0X3BhZ2Uoc2xvdCwgZ2ZuLCAmcGZuKSAhPSAwKQorCQlpZiAoZ3p2bV92bV9hbGxvY2F0ZV9n dWVzdF9wYWdlKGd6dm0sIHNsb3QsIGdmbiwgJnBmbikgIT0gMCkKIAkJCXJldHVybiAtRUZBVUxU OwogCQlpZiAocGZuID09IChwcmV2X3BmbiArIDEpKSB7CiAJCQljb25zdGlbaV0ucGdfY250Kys7 CkBAIC0yODQsNyArMjg2LDcgQEAgaW50IGd6dm1fdm1fcG9wdWxhdGVfbWVtX3JlZ2lvbihzdHJ1 Y3QgZ3p2bSAqZ3p2bSwgaW50IHNsb3RfaWQpCiAJCW5yX3BhZ2VzID0gZmlsbF9jb25zdGl0dWVu dHMocmVnaW9uLT5jb25zdGl0dWVudHMsCiAJCQkJCSAgICAgJnJlZ2lvbi0+Y29uc3RpdHVlbnRf Y250LAogCQkJCQkgICAgIG1heF9ucl9jb25zdGksIGdmbiwKLQkJCQkJICAgICByZW1haW5fcGFn ZXMsIG1lbXNsb3QpOworCQkJCQkgICAgIHJlbWFpbl9wYWdlcywgbWVtc2xvdCwgZ3p2bSk7CiAK IAkJaWYgKG5yX3BhZ2VzIDwgMCkgewogCQkJcHJfZXJyKCJGYWlsZWQgdG8gZmlsbCBjb25zdGl0 dWVudHNcbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aXJ0L2dlbmllem9uZS9nenZtX21tdS5j IGIvZHJpdmVycy92aXJ0L2dlbmllem9uZS9nenZtX21tdS5jCmluZGV4IGVmZjAyYTVlMWIxNy4u N2JjOTZjYmExZWNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpcnQvZ2VuaWV6b25lL2d6dm1fbW11 LmMKKysrIGIvZHJpdmVycy92aXJ0L2dlbmllem9uZS9nenZtX21tdS5jCkBAIC0xMDgsMTEgKzEw OCw4OCBAQCBpbnQgZ3p2bV9nZm5fdG9fcGZuX21lbXNsb3Qoc3RydWN0IGd6dm1fbWVtc2xvdCAq bWVtc2xvdCwgdTY0IGdmbiwKIAlyZXR1cm4gMDsKIH0KIAotaW50IGd6dm1fdm1fYWxsb2NhdGVf Z3Vlc3RfcGFnZShzdHJ1Y3QgZ3p2bV9tZW1zbG90ICpzbG90LCB1NjQgZ2ZuLCB1NjQgKnBmbikK K3N0YXRpYyBpbnQgY21wX3BwYWdlcyhzdHJ1Y3QgcmJfbm9kZSAqbm9kZSwgY29uc3Qgc3RydWN0 IHJiX25vZGUgKnBhcmVudCkKIHsKKwlzdHJ1Y3QgZ3p2bV9waW5uZWRfcGFnZSAqYSA9IGNvbnRh aW5lcl9vZihub2RlLAorCQkJCQkJICBzdHJ1Y3QgZ3p2bV9waW5uZWRfcGFnZSwKKwkJCQkJCSAg bm9kZSk7CisJc3RydWN0IGd6dm1fcGlubmVkX3BhZ2UgKmIgPSBjb250YWluZXJfb2YocGFyZW50 LAorCQkJCQkJICBzdHJ1Y3QgZ3p2bV9waW5uZWRfcGFnZSwKKwkJCQkJCSAgbm9kZSk7CisKKwlp ZiAoYS0+aXBhIDwgYi0+aXBhKQorCQlyZXR1cm4gLTE7CisJaWYgKGEtPmlwYSA+IGItPmlwYSkK KwkJcmV0dXJuIDE7CisJcmV0dXJuIDA7Cit9CisKKy8qIEludm9rZXIgb2YgdGhpcyBmdW5jdGlv biBpcyByZXNwb25zaWJsZSBmb3IgbG9ja2luZyAqLworc3RhdGljIGludCBnenZtX2luc2VydF9w cGFnZShzdHJ1Y3QgZ3p2bSAqdm0sIHN0cnVjdCBnenZtX3Bpbm5lZF9wYWdlICpwcGFnZSkKK3sK KwlpZiAocmJfZmluZF9hZGQoJnBwYWdlLT5ub2RlLCAmdm0tPnBpbm5lZF9wYWdlcywgY21wX3Bw YWdlcykpCisJCXJldHVybiAtRUVYSVNUOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHBp bl9vbmVfcGFnZShzdHJ1Y3QgZ3p2bSAqdm0sIHVuc2lnbmVkIGxvbmcgaHZhLCB1NjQgZ3BhKQor eworCXVuc2lnbmVkIGludCBmbGFncyA9IEZPTExfSFdQT0lTT04gfCBGT0xMX0xPTkdURVJNIHwg Rk9MTF9XUklURTsKKwlzdHJ1Y3QgZ3p2bV9waW5uZWRfcGFnZSAqcHBhZ2UgPSBOVUxMOworCXN0 cnVjdCBtbV9zdHJ1Y3QgKm1tID0gY3VycmVudC0+bW07CisJc3RydWN0IHBhZ2UgKnBhZ2UgPSBO VUxMOworCWludCByZXQ7CisKKwlwcGFnZSA9IGttYWxsb2Moc2l6ZW9mKCpwcGFnZSksIEdGUF9L RVJORUxfQUNDT1VOVCk7CisJaWYgKCFwcGFnZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltbWFw X3JlYWRfbG9jayhtbSk7CisJcGluX3VzZXJfcGFnZXMoaHZhLCAxLCBmbGFncywgJnBhZ2UpOwor CW1tYXBfcmVhZF91bmxvY2sobW0pOworCisJaWYgKCFwYWdlKSB7CisJCWtmcmVlKHBwYWdlKTsK KwkJcmV0dXJuIC1FRkFVTFQ7CisJfQorCisJcHBhZ2UtPnBhZ2UgPSBwYWdlOworCXBwYWdlLT5p cGEgPSBncGE7CisKKwltdXRleF9sb2NrKCZ2bS0+bWVtX2xvY2spOworCXJldCA9IGd6dm1faW5z ZXJ0X3BwYWdlKHZtLCBwcGFnZSk7CisKKwkvKioKKwkgKiBUaGUgcmV0dXJuIG9mIC1FRVhJU1Qg ZnJvbSBnenZtX2luc2VydF9wcGFnZSBpcyBjb25zaWRlcmVkIGFuCisJICogZXhwZWN0ZWQgYmVo YXZpb3IgaW4gdGhpcyBjb250ZXh0LgorCSAqIFRoaXMgc2l0dWF0aW9uIGFyaXNlcyB3aGVuIHR3 byBvciBtb3JlIFZDUFVzIGFyZSBjb25jdXJyZW50bHkKKwkgKiBlbmdhZ2VkIGluIGRlbWFuZCBw YWdpbmcgaGFuZGxpbmcuIFRoZSBpbml0aWFsIFZDUFUgaGFzIGFscmVhZHkKKwkgKiBhbGxvY2F0 ZWQgYW5kIHBpbm5lZCBhIHBhZ2UsIHdoaWxlIHRoZSBzdWJzZXF1ZW50IFZDUFUgYXR0ZW1wdHMK KwkgKiB0byBwaW4gdGhlIHNhbWUgcGFnZSBhZ2Fpbi4gQXMgYSByZXN1bHQsIHdlIHByb21wdCB0 aGUgdW5waW5uaW5nCisJICogYW5kIHJlbGVhc2Ugb2YgdGhlIGFsbG9jYXRlZCBzdHJ1Y3R1cmUs IGZvbGxvd2VkIGJ5IGEgcmV0dXJuIDAuCisJICovCisJaWYgKHJldCA9PSAtRUVYSVNUKSB7CisJ CWtmcmVlKHBwYWdlKTsKKwkJdW5waW5fdXNlcl9wYWdlcygmcGFnZSwgMSk7CisJCXJldCA9IDA7 CisJfQorCW11dGV4X3VubG9jaygmdm0tPm1lbV9sb2NrKTsKKworCXJldHVybiByZXQ7Cit9CisK K2ludCBnenZtX3ZtX2FsbG9jYXRlX2d1ZXN0X3BhZ2Uoc3RydWN0IGd6dm0gKnZtLCBzdHJ1Y3Qg Z3p2bV9tZW1zbG90ICpzbG90LAorCQkJCXU2NCBnZm4sIHU2NCAqcGZuKQoreworCXVuc2lnbmVk IGxvbmcgaHZhOworCiAJaWYgKGd6dm1fZ2ZuX3RvX3Bmbl9tZW1zbG90KHNsb3QsIGdmbiwgcGZu KSAhPSAwKQogCQlyZXR1cm4gLUVGQVVMVDsKLQlyZXR1cm4gMDsKKworCWlmIChnenZtX2dmbl90 b19odmFfbWVtc2xvdChzbG90LCBnZm4sICh1NjQgKikmaHZhKSAhPSAwKQorCQlyZXR1cm4gLUVJ TlZBTDsKKworCXJldHVybiBwaW5fb25lX3BhZ2Uodm0sIGh2YSwgUEZOX1BIWVMoZ2ZuKSk7CiB9 CiAKIHN0YXRpYyBpbnQgaGFuZGxlX2Jsb2NrX2RlbWFuZF9wYWdlKHN0cnVjdCBnenZtICp2bSwg aW50IG1lbXNsb3RfaWQsIHU2NCBnZm4pCkBAIC0xMzgsNyArMjE1LDcgQEAgc3RhdGljIGludCBo YW5kbGVfYmxvY2tfZGVtYW5kX3BhZ2Uoc3RydWN0IGd6dm0gKnZtLCBpbnQgbWVtc2xvdF9pZCwg dTY0IGdmbikKIAogCW11dGV4X2xvY2soJnZtLT5kZW1hbmRfcGFnaW5nX2xvY2spOwogCWZvciAo aSA9IDAsIF9fZ2ZuID0gc3RhcnRfZ2ZuOyBpIDwgbnJfZW50cmllczsgaSsrLCBfX2dmbisrKSB7 Ci0JCXJldCA9IGd6dm1fdm1fYWxsb2NhdGVfZ3Vlc3RfcGFnZShtZW1zbG90LCBfX2dmbiwgJnBm bik7CisJCXJldCA9IGd6dm1fdm1fYWxsb2NhdGVfZ3Vlc3RfcGFnZSh2bSwgbWVtc2xvdCwgX19n Zm4sICZwZm4pOwogCQlpZiAodW5saWtlbHkocmV0KSkgewogCQkJcmV0ID0gLUVSUl9GQVVMVDsK IAkJCWdvdG8gZXJyX3VubG9jazsKQEAgLTE2NCwxNSArMjQxLDE0IEBAIHN0YXRpYyBpbnQgaGFu ZGxlX3NpbmdsZV9kZW1hbmRfcGFnZShzdHJ1Y3QgZ3p2bSAqdm0sIGludCBtZW1zbG90X2lkLCB1 NjQgZ2ZuKQogCWludCByZXQ7CiAJdTY0IHBmbjsKIAotCXJldCA9IGd6dm1fdm1fYWxsb2NhdGVf Z3Vlc3RfcGFnZSgmdm0tPm1lbXNsb3RbbWVtc2xvdF9pZF0sIGdmbiwgJnBmbik7CisJcmV0ID0g Z3p2bV92bV9hbGxvY2F0ZV9ndWVzdF9wYWdlKHZtLCAmdm0tPm1lbXNsb3RbbWVtc2xvdF9pZF0s IGdmbiwgJnBmbik7CiAJaWYgKHVubGlrZWx5KHJldCkpCiAJCXJldHVybiAtRUZBVUxUOwogCiAJ cmV0ID0gZ3p2bV9hcmNoX21hcF9ndWVzdCh2bS0+dm1faWQsIG1lbXNsb3RfaWQsIHBmbiwgZ2Zu LCAxKTsKIAlpZiAodW5saWtlbHkocmV0KSkKIAkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQlyZXR1cm4g MDsKKwlyZXR1cm4gcmV0OwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlydC9nZW5p ZXpvbmUvZ3p2bV92bS5jIGIvZHJpdmVycy92aXJ0L2dlbmllem9uZS9nenZtX3ZtLmMKaW5kZXgg ZDY5OGU0ZTg2YjBlLi4wNGFmNTliNzcxODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlydC9nZW5p ZXpvbmUvZ3p2bV92bS5jCisrKyBiL2RyaXZlcnMvdmlydC9nZW5pZXpvbmUvZ3p2bV92bS5jCkBA IC0yOTksNiArMjk5LDIyIEBAIHN0YXRpYyBsb25nIGd6dm1fdm1faW9jdGwoc3RydWN0IGZpbGUg KmZpbHAsIHVuc2lnbmVkIGludCBpb2N0bCwKIAlyZXR1cm4gcmV0OwogfQogCisvKiBJbnZva2Vy IG9mIHRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIGxvY2tpbmcgKi8KK3N0YXRpYyB2 b2lkIGd6dm1fZGVzdHJveV9hbGxfcHBhZ2Uoc3RydWN0IGd6dm0gKmd6dm0pCit7CisJc3RydWN0 IGd6dm1fcGlubmVkX3BhZ2UgKnBwYWdlOworCXN0cnVjdCByYl9ub2RlICpub2RlOworCisJbm9k ZSA9IHJiX2ZpcnN0KCZnenZtLT5waW5uZWRfcGFnZXMpOworCXdoaWxlIChub2RlKSB7CisJCXBw YWdlID0gcmJfZW50cnkobm9kZSwgc3RydWN0IGd6dm1fcGlubmVkX3BhZ2UsIG5vZGUpOworCQl1 bnBpbl91c2VyX3BhZ2VzX2RpcnR5X2xvY2soJnBwYWdlLT5wYWdlLCAxLCB0cnVlKTsKKwkJbm9k ZSA9IHJiX25leHQobm9kZSk7CisJCXJiX2VyYXNlKCZwcGFnZS0+bm9kZSwgJmd6dm0tPnBpbm5l ZF9wYWdlcyk7CisJCWtmcmVlKHBwYWdlKTsKKwl9Cit9CisKIHN0YXRpYyB2b2lkIGd6dm1fZGVz dHJveV92bShzdHJ1Y3QgZ3p2bSAqZ3p2bSkKIHsKIAlzaXplX3QgYWxsb2NhdGVkX3NpemU7CkBA IC0zMjIsNiArMzM4LDkgQEAgc3RhdGljIHZvaWQgZ3p2bV9kZXN0cm95X3ZtKHN0cnVjdCBnenZt ICpnenZtKQogCiAJbXV0ZXhfdW5sb2NrKCZnenZtLT5sb2NrKTsKIAorCS8qIE5vIG5lZWQgdG8g bG9jayBoZXJlIGJlY2F1ZXNlIGl0J3Mgc2luZ2xlLXRocmVhZGVkIGV4ZWN1dGlvbiAqLworCWd6 dm1fZGVzdHJveV9hbGxfcHBhZ2UoZ3p2bSk7CisKIAlrZnJlZShnenZtKTsKIH0KIApAQCAtNDE1 LDYgKzQzNCw4IEBAIHN0YXRpYyBzdHJ1Y3QgZ3p2bSAqZ3p2bV9jcmVhdGVfdm0odW5zaWduZWQg bG9uZyB2bV90eXBlKQogCWd6dm0tPnZtX2lkID0gcmV0OwogCWd6dm0tPm1tID0gY3VycmVudC0+ bW07CiAJbXV0ZXhfaW5pdCgmZ3p2bS0+bG9jayk7CisJbXV0ZXhfaW5pdCgmZ3p2bS0+bWVtX2xv Y2spOworCWd6dm0tPnBpbm5lZF9wYWdlcyA9IFJCX1JPT1Q7CiAKIAlyZXQgPSBnenZtX3ZtX2ly cWZkX2luaXQoZ3p2bSk7CiAJaWYgKHJldCkgewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9z b2MvbWVkaWF0ZWsvZ3p2bV9kcnYuaCBiL2luY2x1ZGUvbGludXgvc29jL21lZGlhdGVrL2d6dm1f ZHJ2LmgKaW5kZXggMWMxNjk2MGExNzI4Li5iZjVmMWFiZjhkYmUgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbGludXgvc29jL21lZGlhdGVrL2d6dm1fZHJ2LmgKKysrIGIvaW5jbHVkZS9saW51eC9zb2Mv bWVkaWF0ZWsvZ3p2bV9kcnYuaApAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L211 dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvZ3p2bS5oPgogI2luY2x1ZGUgPGxpbnV4L3NyY3UuaD4K KyNpbmNsdWRlIDxsaW51eC9yYnRyZWUuaD4KIAogLyoKICAqIEZvciB0aGUgbm9ybWFsIHBoeXNp Y2FsIGFkZHJlc3MsIHRoZSBoaWdoZXN0IDEyIGJpdHMgc2hvdWxkIGJlIHplcm8sIHNvIHdlCkBA IC05OSw2ICsxMDAsMTIgQEAgc3RydWN0IGd6dm1fdmNwdSB7CiAJc3RydWN0IGd6dm1fdmNwdV9o d3N0YXRlICpod3N0YXRlOwogfTsKIAorc3RydWN0IGd6dm1fcGlubmVkX3BhZ2UgeworCXN0cnVj dCByYl9ub2RlIG5vZGU7CisJc3RydWN0IHBhZ2UgKnBhZ2U7CisJdTY0IGlwYTsKK307CisKIC8q KgogICogc3RydWN0IGd6dm06IHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBmb3Ig ZGF0YSB0cmFuc2ZlcnJpbmcgYmV0d2VlbgogICogZHJpdmVyIGFuZCBoeXBlcnZpc29yLCBhbmQg dGhleSdyZSBhbGlnbmVkIHdpdGggaHlwZXJ2aXNvciBkZWZpbml0aW9ucy4KQEAgLTExOSw2ICsx MjYsOCBAQCBzdHJ1Y3QgZ3p2bV92Y3B1IHsKICAqIEBkZW1hbmRfcGFnZV9idWZmZXI6IHRoZSBt YWlsYm94IGZvciB0cmFuc2ZlcnJpbmcgbGFyZ2UgcG9ydGlvbiBwYWdlcwogICogQGRlbWFuZF9w YWdpbmdfbG9jazogbG9jayBmb3IgcHJldmVudGluZyBtdWx0aXBsZSBjcHUgdXNpbmcgdGhlIHNh bWUgZGVtYW5kCiAgKiBwYWdlIG1haWxib3ggYXQgdGhlIHNhbWUgdGltZQorICogQHBpbm5lZF9w YWdlczogdXNlIHJiLXRyZWUgdG8gcmVjb3JkIHBpbi91bnBpbiBwYWdlCisgKiBAbWVtX2xvY2s6 IGxvY2sgZm9yIG1lbW9yeSBvcGVyYXRpb25zCiAgKi8KIHN0cnVjdCBnenZtIHsKIAlzdHJ1Y3Qg Z3p2bV92Y3B1ICp2Y3B1c1tHWlZNX01BWF9WQ1BVU107CkBAIC0xNDYsNiArMTU1LDkgQEAgc3Ry dWN0IGd6dm0gewogCXUzMiBkZW1hbmRfcGFnZV9ncmFuOwogCXU2NCAqZGVtYW5kX3BhZ2VfYnVm ZmVyOwogCXN0cnVjdCBtdXRleCAgZGVtYW5kX3BhZ2luZ19sb2NrOworCisJc3RydWN0IHJiX3Jv b3QgcGlubmVkX3BhZ2VzOworCXN0cnVjdCBtdXRleCBtZW1fbG9jazsKIH07CiAKIGxvbmcgZ3p2 bV9kZXZfaW9jdGxfY2hlY2tfZXh0ZW5zaW9uKHN0cnVjdCBnenZtICpnenZtLCB1bnNpZ25lZCBs b25nIGFyZ3MpOwpAQCAtMTc4LDcgKzE5MCw4IEBAIGludCBnenZtX2dmbl90b19wZm5fbWVtc2xv dChzdHJ1Y3QgZ3p2bV9tZW1zbG90ICptZW1zbG90LCB1NjQgZ2ZuLCB1NjQgKnBmbik7CiBpbnQg Z3p2bV9nZm5fdG9faHZhX21lbXNsb3Qoc3RydWN0IGd6dm1fbWVtc2xvdCAqbWVtc2xvdCwgdTY0 IGdmbiwKIAkJCSAgICB1NjQgKmh2YV9tZW1zbG90KTsKIGludCBnenZtX3ZtX3BvcHVsYXRlX21l bV9yZWdpb24oc3RydWN0IGd6dm0gKmd6dm0sIGludCBzbG90X2lkKTsKLWludCBnenZtX3ZtX2Fs bG9jYXRlX2d1ZXN0X3BhZ2Uoc3RydWN0IGd6dm1fbWVtc2xvdCAqc2xvdCwgdTY0IGdmbiwgdTY0 ICpwZm4pOworaW50IGd6dm1fdm1fYWxsb2NhdGVfZ3Vlc3RfcGFnZShzdHJ1Y3QgZ3p2bSAqZ3p2 bSwgc3RydWN0IGd6dm1fbWVtc2xvdCAqc2xvdCwKKwkJCQl1NjQgZ2ZuLCB1NjQgKnBmbik7CiAK IGludCBnenZtX3ZtX2lvY3RsX2NyZWF0ZV92Y3B1KHN0cnVjdCBnenZtICpnenZtLCB1MzIgY3B1 aWQpOwogaW50IGd6dm1fYXJjaF92Y3B1X3VwZGF0ZV9vbmVfcmVnKHN0cnVjdCBnenZtX3ZjcHUg KnZjcHUsIF9fdTY0IHJlZ19pZCwKLS0gCjIuMTguMAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cmxp bnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK