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 picard.linux.it (picard.linux.it [213.254.12.146]) (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 0377FC43602 for ; Wed, 1 Jul 2026 11:13:12 +0000 (UTC) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 515353E96FE for ; Wed, 1 Jul 2026 13:13:11 +0200 (CEST) Received: from in-2.smtp.seeweb.it (in-2.smtp.seeweb.it [IPv6:2001:4b78:1:20::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id 81CD03E215E for ; Wed, 1 Jul 2026 13:12:52 +0200 (CEST) Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by in-2.smtp.seeweb.it (Postfix) with ESMTPS id 393BB6008A5 for ; Wed, 1 Jul 2026 13:12:50 +0200 (CEST) Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 661AISpf551190; Wed, 1 Jul 2026 11:12:49 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=pp1; bh=mRst0GthYrGXsHKvb+zJOPUHPDEG xG3UwnhBxV4yGC8=; b=Lc+uguR4HHMtRqUG49sKSs4olepeVba5TzrCoCrDZkgP /NEqYeoWWNAm/FNc+bwHUC7dfkY1ckHf08SEU0dUCEHoTR7U4i8GKsD4nwfmamSF NY41UlOzcOhmHbKJcpjAYtO0kHBWFbAneMpMaaFIGnJwSJE1C4rvBNMN96W3/92G X3P2nHVV1ibABtoRSqduziZHyyfmZwXHU40031cZhomZ8yk8ZRPbkmK0MRdo19p3 uwdXWQ1W1+fh7dVpbN4s45umW5JF/xCrmMfEKwM+yHAkT3f73nbfDybSzAkFT4cS wAaQfAjq9oAe6O8AWBq7WmGLCWlabw8RLULPmS5dhQ== Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4f26n5v2w5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Jul 2026 11:12:48 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 661B4iSF013015; Wed, 1 Jul 2026 11:12:48 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4f2ruqf5qn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Jul 2026 11:12:47 +0000 (GMT) Received: from smtpav07.fra02v.mail.ibm.com (smtpav07.fra02v.mail.ibm.com [10.20.54.106]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 661BCkAM23396882 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 1 Jul 2026 11:12:46 GMT Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2A3E420043; Wed, 1 Jul 2026 11:12:46 +0000 (GMT) Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D1B0920040; Wed, 1 Jul 2026 11:12:45 +0000 (GMT) Received: from li-276bd24c-2dcc-11b2-a85c-945b6f05615c.ibm.com.com (unknown [9.111.1.111]) by smtpav07.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 1 Jul 2026 11:12:45 +0000 (GMT) From: Jan Polensky To: ltp@lists.linux.it Date: Wed, 1 Jul 2026 13:12:38 +0200 Message-ID: <20260701111242.97520-1-japo@linux.ibm.com> X-Mailer: git-send-email 2.54.0 MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzAxMDExMyBTYWx0ZWRfXwQ61++lEyVvS zvnb7BJocK+D2AFukjVHli/RF1G0FLvJWf7ru0FgOEr6Y0NZuePMQfUHNBbGyH3X91sqFcA7UWT WCt7OLwmTMMepgNdJ3+u0tZ4fLbO3Yai0oCdw9xBTXVBSucEVibaT3bW995AF8QamvLRSlpqnKs MfHjhO3izQbcczddpPgw31t6wJuvtZyiYIE1By0xCoK3kTNC+eFYe2foq6XbrAzjDP7L2g34vgu CKCFujPHI2LNBxE9WXatFGahhWU6J6tKKPnPeAoNLiZGxDURx96QC4i1YImUW8UL0sx0FBT9Mld 4MfO9zxY6mY22zgAA0a0WpNBwxI3tyopwAiooD65A6iAx7WsY+JFBelPZ5NiLBCBUP3kHphVk6U 8ChNyIGAlIbv8xhwuydquEDeLRiPrvq6OsP7uBU/xw1PRXV5yU4Qgut5Cm3cjCrwYdPCvJlAApC 5imlDvchsHWzkvjEeiQ== X-Authority-Analysis: v=2.4 cv=V45NF+ni c=1 sm=1 tr=0 ts=6a44f631 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=_tq49Q8PD2XzT2WL3owA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-ORIG-GUID: VOGtVeA4tHM-7eSBUytRcUWvpHc70Q7L X-Proofpoint-GUID: VOGtVeA4tHM-7eSBUytRcUWvpHc70Q7L X-Proofpoint-Spam-Info: AW1haW4tMjYwNzAxMDExMyBTYWx0ZWRfXwjJ54cfU3lcj hDrH84a6jrrt8szT70kvuFzfGCtQVEWatTS8Cg+EQL7/OmH882XFjkpGRCUYQ6ODBzobJdC1kUN YTYqpwuRvl0v+qQ3Tu99IVdfWD3ISKY= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-07-01_03,2026-06-26_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 spamscore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 clxscore=1015 impostorscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607010113 X-Virus-Scanned: clamav-milter 1.0.9 at in-2.smtp.seeweb.it X-Virus-Status: Clean Subject: [LTP] [PATCH v3] thp04: Fix PTRACE mode for CONFIG_PROC_MEM_FORCE_PTRACE=y X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ltp-bounces+ltp=archiver.kernel.org@lists.linux.it Sender: "ltp" V2hlbiBDT05GSUdfUFJPQ19NRU1fRk9SQ0VfUFRSQUNFPXkgaXMgc2V0LCBkaXJlY3Qgd3JpdGVz IHRvCi9wcm9jL3NlbGYvbWVtIGFyZSBkaXNhYmxlZCBhbmQgcmVxdWlyZSBwdHJhY2UgYXR0YWNo bWVudC4gVGhpcyBwYXRjaAphZGRzIHN1cHBvcnQgZm9yIHRoaXMgY29uZmlndXJhdGlvbiBieSBp bXBsZW1lbnRpbmcgYSBwdHJhY2UtYmFzZWQgdGVzdAptb2RlIHRoYXQgd3JpdGVzIHRvIC9wcm9j L3BpZC9tZW0gd2hpbGUgdGhlIHRyYWNlZSBpcyBzdG9wcGVkLgoKVGhlIGltcGxlbWVudGF0aW9u IHVzZXMgYSB3cml0ZS1zdG9wLWNvbnRpbnVlIGN5Y2xlIHdoZXJlIHRoZSBwYXJlbnQKd3JpdGVz IHRvIC9wcm9jL3BpZC9tZW0gd2hpbGUgdGhlIHRyYWNlZSBpcyBzdG9wcGVkLCB0aGVuIGNvbnRp bnVlcwp0aGUgdHJhY2VlIHRvIHJ1biBtYWR2aXNlIG9wZXJhdGlvbnMuIFRoaXMgc2VyaWFsaXph dGlvbiBpcyByZXF1aXJlZApiZWNhdXNlIC9wcm9jL3BpZC9tZW0gd3JpdGVzIG5lZWQgUFRSQUNF X01PREVfQVRUQUNIICh0cmFjZWUgbXVzdCBiZQppbiBzdG9wcGVkIHN0YXRlKS4KCkhvd2V2ZXIs IHRoaXMgc2VyaWFsaXphdGlvbiBlbGltaW5hdGVzIHRoZSBjb25jdXJyZW50IGV4ZWN1dGlvbiB3 aW5kb3cKdGhhdCBDVkUtMjAxNy0xMDAwNDA1IGV4cGxvaXRzLiBUaGUgcHRyYWNlIG1vZGUgdGVz dHMga2VybmVsIGhhbmRsaW5nCm9mIHdyaXRlcyB0byBzdG9wcGVkIHByb2Nlc3NlcywgYnV0IGRv ZXMgbm90IHRlc3QgdGhlIGFjdHVhbCByYWNlCmNvbmRpdGlvbiBiZXR3ZWVuIGNvbmN1cnJlbnQg d3JpdGVzIGFuZCBNQURWX0RPTlRORUVEIG9wZXJhdGlvbnMuCgpUaGUgdGVzdCBub3c6Ci0gUHJv YmVzIC9wcm9jL3NlbGYvbWVtIHdyaXRlIGNhcGFiaWxpdHkgYXQgc2V0dXAKLSBGYWxscyBiYWNr IHRvIHB0cmFjZSBtb2RlIGlmIGRpcmVjdCB3cml0ZXMgZmFpbCB3aXRoIEVJTwotIFJlc3BlY3Rz IHByb2NfbWVtLmZvcmNlX292ZXJyaWRlIGtlcm5lbCBjbWRsaW5lIHBhcmFtZXRlcgotIERvY3Vt ZW50cyB0aGUgcmFjZSBsaW1pdGF0aW9uIGluIGJvdGggbW9kZXMKClNpZ25lZC1vZmYtYnk6IEph biBQb2xlbnNreSA8amFwb0BsaW51eC5pYm0uY29tPgotLS0KTGluazogaHR0cHM6Ly9sb3JlLmtl cm5lbC5vcmcvbHRwLzIwMjYwNjEyMTcxNzEyLjMyNDE3NS0xLWphcG9AbGludXguaWJtLmNvbS8K CkNoYW5nZXMgc2luY2UgdjI6Ci0gQWRkZWQgZG9jdW1lbnRhdGlvbiBjbGFyaWZ5aW5nIHRoYXQg cHRyYWNlIG1vZGUgc2VyaWFsaXphdGlvbiBlbGltaW5hdGVzIHRoZSBDVkUgcmFjZQotIEZpeGVk IG1pc3NpbmcgbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotIEFkZHJlc3NlZCByZXZpZXcgZmVlZGJh Y2sgb24gcmFjZSBjb25kaXRpb24gdGVzdGluZyBsaW1pdGF0aW9ucwoKQ2hhbmdlcyBzaW5jZSB2 MToKLSBkZXRlY3QgcHJvY19tZW0uZm9yY2Vfb3ZlcnJpZGUgLyBrZXJuZWwgY29uZmlnIGluc3Rl YWQgb2YgcmVseWluZyBvbmx5IG9uIGEgcHJvYmUgd3JpdGUKLSBmaXgga2VybmVsIHBhcmFtZXRl ciBuYW1pbmcgcGVyIHJldmlldwotIGFkZHJlc3MgZmVlZGJhY2sgZnJvbSBDeXJpbCBIcnViaXMg aW4gcHJldmlvdXMgdGhyZWFkCgogdGVzdGNhc2VzL2tlcm5lbC9tZW0vdGhwL3RocDA0LmMgfCAz NjQgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMxMiBp bnNlcnRpb25zKCspLCA1MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0Y2FzZXMva2Vy bmVsL21lbS90aHAvdGhwMDQuYyBiL3Rlc3RjYXNlcy9rZXJuZWwvbWVtL3RocC90aHAwNC5jCmlu ZGV4IDE2ZDc2NmMzNDliNy4uYWU5ZWFjOGFkZmRhIDEwMDY0NAotLS0gYS90ZXN0Y2FzZXMva2Vy bmVsL21lbS90aHAvdGhwMDQuYworKysgYi90ZXN0Y2FzZXMva2VybmVsL21lbS90aHAvdGhwMDQu YwpAQCAtMjEsMjcgKzIxLDYzIEBACiAgKiBPbiBvbGQga2VybmVsIHN1Y2ggYXMgNC45LCBpdCBo YXMgZml4ZWQgdGhlIERpcnR5IENvdyBidWcgYnV0IGEgc2ltaWxhciBjaGVjawogICogaW4gaHVn ZV9tZW1vcnkuYyB3YXMgZm9yZ290dGVuLiAgQXMgYSByZXN1bHQsIHJlbW90ZSBtZW1vcnkgd3Jp dGVzIHRvIHJvIHJlZ2lvbnMKICAqIG9mIG1lbW9yeSBiYWNrZWQgYnkgdHJhbnNwYXJlbnQgaHVn ZSBwYWdlcyBjYXVzZSBhbiBpbmZpbml0ZSBsb29wIGluIHRoZSBrZXJuZWwuCi0gKiBXaGlsZSBp biB0aGlzIHN0YXRlIHRoZSBwcm9jZXNzIGlzIHN0aWwgU0lHS0lMTGFibGUsIGJ1dCBsaXR0bGUg ZWxzZSB3b3Jrcy4KKyAqIFdoaWxlIGluIHRoaXMgc3RhdGUgdGhlIHByb2Nlc3MgaXMgc3RpbGwg U0lHS0lMTGFibGUsIGJ1dCBsaXR0bGUgZWxzZSB3b3Jrcy4KICAqIEl0IGlzIGFsc28gYSByZWdy ZXNzaW9uIHRlc3QgYWJvdXQga2VybmVsCiAgKiBjb21taXQgODMxMGQ0OGIxMjVkKCJodWdlX21l bW9yeS5jOiByZXNwZWN0IEZPTExfRk9SQ0UvRk9MTF9DT1cgZm9yIHRocCIpLgorICoKKyAqIFRl c3QgTW9kZXM6CisgKgorICogUFJPQ19NRU1fQUxXQVlTOiBEaXJlY3Qgd3JpdGVzIHRvIC9wcm9j L3NlbGYvbWVtIChkZWZhdWx0IG9uIG1vc3Qgc3lzdGVtcykKKyAqICAgLSBDaGlsZCBwcm9jZXNz IHdyaXRlcyB0byBpdHMgb3duIG1lbW9yeSB2aWEgL3Byb2Mvc2VsZi9tZW0KKyAqICAgLSBDb25j dXJyZW50IGV4ZWN1dGlvbjogd3JpdGVzIHJhY2Ugd2l0aCBtYWR2aXNlKCkgY2FsbHMKKyAqICAg LSBVc2VzIGZ1enp5LXN5bmMgdG8gbWF4aW1pemUgcmFjZSB3aW5kb3cKKyAqCisgKiBQUk9DX01F TV9QVFJBQ0U6IFB0cmFjZS1iYXNlZCB3cml0ZXMgdG8gL3Byb2MvcGlkL21lbSAoQ09ORklHX1BS T0NfTUVNX0ZPUkNFX1BUUkFDRT15KQorICogICAtIFBhcmVudCB3cml0ZXMgdG8gdHJhY2VlJ3Mg bWVtb3J5IHZpYSAvcHJvYy9waWQvbWVtCisgKiAgIC0gV3JpdGUtc3RvcC1jb250aW51ZSBjeWNs ZTogdHJhY2VlIG11c3QgYmUgU1RPUFBFRCBmb3Igd3JpdGVzIHRvIHN1Y2NlZWQKKyAqICAgLSBB bHRlcm5hdGluZyBleGVjdXRpb246IHBhcmVudCB3cml0ZXMg4oaSIHRyYWNlZSBydW5zIG1hZHZp c2Ug4oaSIHRyYWNlZSBzdG9wcyDihpIgcmVwZWF0CisgKiAgIC0gUmVxdWlyZWQgYmVjYXVzZSAv cHJvYy9waWQvbWVtIHdyaXRlcyBuZWVkIFBUUkFDRV9NT0RFX0FUVEFDSCAoc3RvcHBlZCBzdGF0 ZSkKKyAqICAgLSBOb3RlOiBTZXJpYWxpemF0aW9uIGVsaW1pbmF0ZXMgdGhlIHJhY2U7IHRlc3Rz IHdyaXRlIGZ1bmN0aW9uYWxpdHksIG5vdCB0aGUgQ1ZFIHJhY2UKICAqLwoKLSNpbmNsdWRlICJ0 c3RfdGVzdC5oIgotI2luY2x1ZGUgImxhcGkvbW1hcC5oIgorI2luY2x1ZGUgPHNpZ25hbC5oPgor I2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4KKyNpbmNsdWRlIDxzeXMvd2FpdC5oPgorCisjaW5jbHVk ZSAidHN0X2NoZWNrcG9pbnQuaCIKICNpbmNsdWRlICJ0c3RfZnV6enlfc3luYy5oIgorI2luY2x1 ZGUgInRzdF9rY29uZmlnLmgiCisjaW5jbHVkZSAidHN0X3Rlc3QuaCIKCi1zdGF0aWMgY2hhciAq d3JpdGVfdGhwLCAqcmVhZF90aHA7Ci1zdGF0aWMgaW50ICp3cml0ZV9wdHIsICpyZWFkX3B0cjsK LXN0YXRpYyBzaXplX3QgdGhwX3NpemU7Ci1zdGF0aWMgaW50IHdyaXRlZmQgPSAtMSwgcmVhZGZk ID0gLTE7Ci1zdGF0aWMgc3RydWN0IHRzdF9menN5bmNfcGFpciBmenN5bmNfcGFpcjsKK2VudW0g cHJvY19tZW1fbW9kZSB7CisJUFJPQ19NRU1fQUxXQVlTLAorCVBST0NfTUVNX1BUUkFDRSwKKwlQ Uk9DX01FTV9ORVZFUiwKK307Cgotc3RhdGljIHZvaWQgKmFsbG9jX3plcm9fcGFnZSh2b2lkICpi YXNlYWRkcikKK3N0cnVjdCBjaGlsZF9zdGF0ZSB7CisJY2hhciAqd3JpdGVfdGhwOworCWNoYXIg KnJlYWRfdGhwOworCWludCAqd3JpdGVfcHRyOworCWludCAqcmVhZF9wdHI7CisJc2l6ZV90IHRo cF9zaXplOworCWludCB3cml0ZWZkOworCWludCByZWFkZmQ7CisJc3RydWN0IHRzdF9menN5bmNf cGFpciBmenN5bmNfcGFpcjsKK307CisKK3N0YXRpYyBwaWRfdCB0cmFjZWVfcGlkOworLyogTW9k ZSByZXF1ZXN0ZWQgYnkga2VybmVsIGNvbW1hbmQgbGluZSBwYXJzaW5nLiBEbyBub3QgbXV0YXRl IGR1cmluZyBwcm9iaW5nLiAqLworc3RhdGljIGVudW0gcHJvY19tZW1fbW9kZSB1c2VyX21vZGUg PSBQUk9DX01FTV9BTFdBWVM7CisvKiBSdW50aW1lIG1vZGUgc2VsZWN0ZWQgYWZ0ZXIgY2hlY2tp bmcgd2hldGhlciBkaXJlY3QgL3Byb2Mvc2VsZi9tZW0gd3JpdGVzIHdvcmsuICovCitzdGF0aWMg ZW51bSBwcm9jX21lbV9tb2RlIGVmZmVjdGl2ZV9tb2RlID0gUFJPQ19NRU1fQUxXQVlTOworc3Rh dGljIHN0cnVjdCBjaGlsZF9zdGF0ZSAqY2hpbGQ7CisKK3N0YXRpYyB2b2lkICphbGxvY196ZXJv X3BhZ2Uodm9pZCAqYmFzZWFkZHIsIHNpemVfdCB0aHBfc2l6ZSkKIHsKIAlpbnQgaTsKIAl2b2lk ICpyZXQ7CgotCS8qIEZpbmQgYWxpZ25lZCBjaHVuayBvZiBhZGRyZXNzIHNwYWNlLiBNQVBfSFVH RVRMQiBkb2Vzbid0IHdvcmsuICovCiAJZm9yIChpID0gMDsgaSA8IDE2OyBpKyssIGJhc2VhZGRy ICs9IHRocF9zaXplKSB7CiAJCXJldCA9IG1tYXAoYmFzZWFkZHIsIHRocF9zaXplLCBQUk9UX1JF QUQsCiAJCQlNQVBfUFJJVkFURSB8IE1BUF9BTk9OWU1PVVMsIC0xLCAwKTsKQEAgLTY3LDQ3ICsx MDMsNzggQEAgc3RhdGljIHZvaWQgKmFsbG9jX3plcm9fcGFnZSh2b2lkICpiYXNlYWRkcikKIAl9 CgogCXRzdF9icmsoVEJST0ssICJDYW5ub3QgbWFwIGh1Z2UgemVybyBwYWdlIG5lYXIgdGhlIHNw ZWNpZmllZCBhZGRyZXNzIik7Ci0JcmV0dXJuIE5VTEw7CS8qIFNpbGVuY2UgY29tcGlsZXIgd2Fy bmluZyAqLworCXJldHVybiBOVUxMOwogfQoKLXN0YXRpYyB2b2lkIHNldHVwKHZvaWQpCitzdGF0 aWMgdm9pZCBjaGlsZF9jbGVhbnVwKHZvaWQpCit7CisJaWYgKCFjaGlsZCkKKwkJcmV0dXJuOwor CisJaWYgKGVmZmVjdGl2ZV9tb2RlID09IFBST0NfTUVNX0FMV0FZUykKKwkJdHN0X2Z6c3luY19w YWlyX2NsZWFudXAoJmNoaWxkLT5menN5bmNfcGFpcik7CisKKwlpZiAoY2hpbGQtPnJlYWRmZCA+ PSAwKQorCQlTQUZFX0NMT1NFKGNoaWxkLT5yZWFkZmQpOworCisJaWYgKGNoaWxkLT53cml0ZWZk ID49IDApCisJCVNBRkVfQ0xPU0UoY2hpbGQtPndyaXRlZmQpOworCisJaWYgKGNoaWxkLT5yZWFk X3RocCkKKwkJU0FGRV9NVU5NQVAoY2hpbGQtPnJlYWRfdGhwLCBjaGlsZC0+dGhwX3NpemUpOwor CisJaWYgKGNoaWxkLT53cml0ZV90aHApCisJCVNBRkVfTVVOTUFQKGNoaWxkLT53cml0ZV90aHAs IGNoaWxkLT50aHBfc2l6ZSk7Cit9CisKK3N0YXRpYyB2b2lkIGNoaWxkX3NldHVwKHZvaWQpCiB7 CiAJc2l6ZV90IGk7CgotCXRocF9zaXplID0gdHN0X2dldF9odWdlcGFnZV9zaXplKCk7CisJY2hp bGQtPnRocF9zaXplID0gdHN0X2dldF9odWdlcGFnZV9zaXplKCk7CgotCWlmICghdGhwX3NpemUp CisJaWYgKCFjaGlsZC0+dGhwX3NpemUpCiAJCXRzdF9icmsoVENPTkYsICJLZXJuZWwgZG9lcyBu b3Qgc3VwcG9ydCBodWdlIHBhZ2VzIik7CgotCXdyaXRlX3RocCA9IGFsbG9jX3plcm9fcGFnZSgo dm9pZCAqKXRocF9zaXplKTsKKwljaGlsZC0+d3JpdGVfdGhwID0gYWxsb2NfemVyb19wYWdlKCh2 b2lkICopY2hpbGQtPnRocF9zaXplLAorCQljaGlsZC0+dGhwX3NpemUpOwoKLQlmb3IgKGkgPSAw OyBpIDwgdGhwX3NpemU7IGkrKykgewotCQlpZiAod3JpdGVfdGhwW2ldKQorCWZvciAoaSA9IDA7 IGkgPCBjaGlsZC0+dGhwX3NpemU7IGkrKykgeworCQlpZiAoY2hpbGQtPndyaXRlX3RocFtpXSkK IAkJCXRzdF9icmsoVENPTkYsICJIdWdlIHplcm8gcGFnZSBpcyBwcmUtcG9sbHV0ZWQiKTsKIAl9 CgotCS8qIGxlYXZlIGEgaG9sZSBiZXR3ZWVuIHJlYWQgYW5kIHdyaXRlIFRIUCB0byBwcmV2ZW50 IG1lcmdlICovCi0JcmVhZF90aHAgPSBhbGxvY196ZXJvX3BhZ2Uod3JpdGVfdGhwICsgMiAqIHRo cF9zaXplKTsKLQl3cml0ZV9wdHIgPSAoaW50ICopKHdyaXRlX3RocCArIHRocF9zaXplIC0gc2l6 ZW9mKGludCkpOwotCXJlYWRfcHRyID0gKGludCAqKShyZWFkX3RocCArIHRocF9zaXplIC0gc2l6 ZW9mKGludCkpOwotCXdyaXRlZmQgPSBTQUZFX09QRU4oIi9wcm9jL3NlbGYvbWVtIiwgT19SRFdS KTsKLQlyZWFkZmQgPSBTQUZFX09QRU4oIi9wcm9jL3NlbGYvbWVtIiwgT19SRFdSKTsKKwljaGls ZC0+cmVhZF90aHAgPSBhbGxvY196ZXJvX3BhZ2UoY2hpbGQtPndyaXRlX3RocCArIDIgKiBjaGls ZC0+dGhwX3NpemUsCisJCWNoaWxkLT50aHBfc2l6ZSk7CisJLyogd3JpdGVfcHRyIHBvaW50cyB0 byBsYXN0IGludCBpbiB3cml0ZV90aHAgcGFnZSAqLworCWNoaWxkLT53cml0ZV9wdHIgPSAoaW50 ICopKGNoaWxkLT53cml0ZV90aHAgKyBjaGlsZC0+dGhwX3NpemUgLSBzaXplb2YoaW50KSk7CisJ LyogcmVhZF9wdHIgcG9pbnRzIHRvIGxhc3QgaW50IGluIHJlYWRfdGhwIHBhZ2UgKi8KKwljaGls ZC0+cmVhZF9wdHIgPSAoaW50ICopKGNoaWxkLT5yZWFkX3RocCArIGNoaWxkLT50aHBfc2l6ZSAt IHNpemVvZihpbnQpKTsKCi0JZnpzeW5jX3BhaXIuZXhlY19sb29wcyA9IDEwMDAwMDsKLQl0c3Rf ZnpzeW5jX3BhaXJfaW5pdCgmZnpzeW5jX3BhaXIpOworCS8qIEluIHB0cmFjZSBtb2RlLCBwYXJl bnQgb3BlbnMgL3Byb2MvPHBpZD4vbWVtLCBub3QgY2hpbGQgKi8KKwlpZiAoZWZmZWN0aXZlX21v ZGUgPT0gUFJPQ19NRU1fQUxXQVlTKSB7CisJCWNoaWxkLT53cml0ZWZkID0gU0FGRV9PUEVOKCIv cHJvYy9zZWxmL21lbSIsIE9fUkRXUik7CisJCWNoaWxkLT5yZWFkZmQgPSBTQUZFX09QRU4oIi9w cm9jL3NlbGYvbWVtIiwgT19SRFdSKTsKKwkJY2hpbGQtPmZ6c3luY19wYWlyLmV4ZWNfbG9vcHMg PSAxMDAwMDA7CisJCXRzdF9menN5bmNfcGFpcl9pbml0KCZjaGlsZC0+ZnpzeW5jX3BhaXIpOwor CX0gZWxzZSB7CisJCWNoaWxkLT53cml0ZWZkID0gLTE7CisJCWNoaWxkLT5yZWFkZmQgPSAtMTsK Kwl9CiB9Cgotc3RhdGljIHZvaWQgKnRocmVhZF9ydW4odm9pZCAqYXJnKQorLyogUHJlc2VydmUg dGhlIG9yaWdpbmFsIGZ1enp5LXN5bmMgcmFjZTogdGhpcyBpcyB0aGUgYWN0dWFsIENWRSB0cmln Z2VyIG1lY2hhbmlzbS4gKi8KK3N0YXRpYyB2b2lkICp0aHJlYWRfcnVuX2Fsd2F5cyh2b2lkICph cmcpCiB7CiAJaW50IGM7CgotCXdoaWxlICh0c3RfZnpzeW5jX3J1bl9iKCZmenN5bmNfcGFpcikp IHsKLQkJdHN0X2Z6c3luY19zdGFydF9yYWNlX2IoJmZ6c3luY19wYWlyKTsKLQkJbWFkdmlzZSh3 cml0ZV90aHAsIHRocF9zaXplLCBNQURWX0RPTlRORUVEKTsKLQkJbWVtY3B5KCZjLCB3cml0ZV9w dHIsIHNpemVvZihjKSk7Ci0JCVNBRkVfTFNFRUsocmVhZGZkLCAob2ZmX3Qpd3JpdGVfcHRyLCBT RUVLX1NFVCk7Ci0JCVNBRkVfUkVBRCgxLCByZWFkZmQsICZjLCBzaXplb2YoaW50KSk7Ci0JCXRz dF9menN5bmNfZW5kX3JhY2VfYigmZnpzeW5jX3BhaXIpOworCXdoaWxlICh0c3RfZnpzeW5jX3J1 bl9iKCZjaGlsZC0+ZnpzeW5jX3BhaXIpKSB7CisJCXRzdF9menN5bmNfc3RhcnRfcmFjZV9iKCZj aGlsZC0+ZnpzeW5jX3BhaXIpOworCQltYWR2aXNlKGNoaWxkLT53cml0ZV90aHAsIGNoaWxkLT50 aHBfc2l6ZSwgTUFEVl9ET05UTkVFRCk7CisJCW1lbWNweSgmYywgY2hpbGQtPndyaXRlX3B0ciwg c2l6ZW9mKGMpKTsKKwkJU0FGRV9MU0VFSyhjaGlsZC0+cmVhZGZkLCAob2ZmX3QpY2hpbGQtPndy aXRlX3B0ciwgU0VFS19TRVQpOworCQlTQUZFX1JFQUQoMSwgY2hpbGQtPnJlYWRmZCwgJmMsIHNp emVvZihpbnQpKTsKKwkJdHN0X2Z6c3luY19lbmRfcmFjZV9iKCZjaGlsZC0+ZnpzeW5jX3BhaXIp OwogCQkvKiBXYWl0IGZvciBkaXJ0eSBwYWdlIGhhbmRsaW5nIGJlZm9yZSBuZXh0IG1hZHZpc2Uo KSAqLwogCQl1c2xlZXAoMTApOwogCX0KQEAgLTExNSwyNCArMTgyLDI0IEBAIHN0YXRpYyB2b2lk ICp0aHJlYWRfcnVuKHZvaWQgKmFyZykKIAlyZXR1cm4gYXJnOwogfQoKLXN0YXRpYyB2b2lkIHJ1 bih2b2lkKQorc3RhdGljIHZvaWQgcnVuX3Byb2NfbWVtX2Fsd2F5c19yYWNlKHZvaWQpCiB7CiAJ aW50IGMgPSAweGRlYWRiZWVmOwoKLQl0c3RfZnpzeW5jX3BhaXJfcmVzZXQoJmZ6c3luY19wYWly LCB0aHJlYWRfcnVuKTsKKwl0c3RfZnpzeW5jX3BhaXJfcmVzZXQoJmNoaWxkLT5menN5bmNfcGFp ciwgdGhyZWFkX3J1bl9hbHdheXMpOwoKLQl3aGlsZSAodHN0X2Z6c3luY19ydW5fYSgmZnpzeW5j X3BhaXIpKSB7CisJd2hpbGUgKHRzdF9menN5bmNfcnVuX2EoJmNoaWxkLT5menN5bmNfcGFpcikp IHsKIAkJLyogV3JpdGUgaW50byB0aGUgbWFpbiBodWdlIHBhZ2UgKi8KLQkJdHN0X2Z6c3luY19z dGFydF9yYWNlX2EoJmZ6c3luY19wYWlyKTsKLQkJU0FGRV9MU0VFSyh3cml0ZWZkLCAob2ZmX3Qp d3JpdGVfcHRyLCBTRUVLX1NFVCk7Ci0JCW1hZHZpc2Uod3JpdGVfdGhwLCB0aHBfc2l6ZSwgTUFE Vl9ET05UTkVFRCk7Ci0JCVNBRkVfV1JJVEUoU0FGRV9XUklURV9BTEwsIHdyaXRlZmQsICZjLCBz aXplb2YoaW50KSk7Ci0JCXRzdF9menN5bmNfZW5kX3JhY2VfYSgmZnpzeW5jX3BhaXIpOworCQl0 c3RfZnpzeW5jX3N0YXJ0X3JhY2VfYSgmY2hpbGQtPmZ6c3luY19wYWlyKTsKKwkJU0FGRV9MU0VF SyhjaGlsZC0+d3JpdGVmZCwgKG9mZl90KWNoaWxkLT53cml0ZV9wdHIsIFNFRUtfU0VUKTsKKwkJ bWFkdmlzZShjaGlsZC0+d3JpdGVfdGhwLCBjaGlsZC0+dGhwX3NpemUsIE1BRFZfRE9OVE5FRUQp OworCQlTQUZFX1dSSVRFKFNBRkVfV1JJVEVfQUxMLCBjaGlsZC0+d3JpdGVmZCwgJmMsIHNpemVv ZihpbnQpKTsKKwkJdHN0X2Z6c3luY19lbmRfcmFjZV9hKCZjaGlsZC0+ZnpzeW5jX3BhaXIpOwoK IAkJLyogQ2hlY2sgdGhlIG90aGVyIGh1Z2UgemVybyBwYWdlIGZvciBwb2xsdXRpb24gKi8KLQkJ bWFkdmlzZShyZWFkX3RocCwgdGhwX3NpemUsIE1BRFZfRE9OVE5FRUQpOworCQltYWR2aXNlKGNo aWxkLT5yZWFkX3RocCwgY2hpbGQtPnRocF9zaXplLCBNQURWX0RPTlRORUVEKTsKCi0JCWlmICgq cmVhZF9wdHIgIT0gMCkgeworCQlpZiAoKmNoaWxkLT5yZWFkX3B0ciAhPSAwKSB7CiAJCQl0c3Rf cmVzKFRGQUlMLCAiSHVnZSB6ZXJvIHBhZ2Ugd2FzIHBvbGx1dGVkIik7CiAJCQlyZXR1cm47CiAJ CX0KQEAgLTE0MSwyMCArMjA4LDIxMSBAQCBzdGF0aWMgdm9pZCBydW4odm9pZCkKIAl0c3RfcmVz KFRQQVNTLCAiSHVnZSB6ZXJvIHBhZ2UgaXMgc3RpbGwgY2xlYW4iKTsKIH0KCitzdGF0aWMgdm9p ZCB0cmFjZWVfbWFpbih2b2lkKQoreworCWludCBpOworCisJLyogY2hpbGQgc3RydWN0IGlzIGFs cmVhZHkgbWFwcGVkIGJ5IHBhcmVudCBiZWZvcmUgZm9yayAqLworCWNoaWxkLT53cml0ZWZkID0g LTE7CisJY2hpbGQtPnJlYWRmZCA9IC0xOworCisJY2hpbGRfc2V0dXAoKTsKKworCVRTVF9DSEVD S1BPSU5UX1dBS0UoMCk7CisKKwkvKiBQYXJlbnQgd2lsbCBQVFJBQ0VfQ09OVCB1cyB3aGVuIHJl YWR5IC0gbm8gY2hlY2twb2ludCBuZWVkZWQgKi8KKworCS8qCisJICogUHRyYWNlIG1vZGU6IHdy aXRlcyBhbmQgbWFkdmlzZSBhcmUgc2VyaWFsaXplZCAobm8gcmFjZSkuCisJICogVGVzdHMga2Vy bmVsIGhhbmRsaW5nIG9mIHdyaXRlcyB0byBzdG9wcGVkIHByb2Nlc3Nlcywgbm90IHRoZSBDVkUg cmFjZS4KKwkgKiBUaGUgc3RvcC9jb250aW51ZSBjeWNsZSBpcyByZXF1aXJlZCBiZWNhdXNlIC9w cm9jL3BpZC9tZW0gd3JpdGVzIG5lZWQKKwkgKiBQVFJBQ0VfTU9ERV9BVFRBQ0ggKHRyYWNlZSBt dXN0IGJlIGluIHN0b3BwZWQgc3RhdGUpLgorCSAqLworCWZvciAoaSA9IDA7IGkgPCAxMDAwOyBp KyspIHsKKwkJbWFkdmlzZShjaGlsZC0+d3JpdGVfdGhwLCBjaGlsZC0+dGhwX3NpemUsIE1BRFZf RE9OVE5FRUQpOworCQltYWR2aXNlKGNoaWxkLT5yZWFkX3RocCwgY2hpbGQtPnRocF9zaXplLCBN QURWX0RPTlRORUVEKTsKKworCQlpZiAoKmNoaWxkLT5yZWFkX3B0ciAhPSAwKSB7CisJCQl0c3Rf cmVzKFRGQUlMLCAiSHVnZSB6ZXJvIHBhZ2Ugd2FzIHBvbGx1dGVkIik7CisJCQljaGlsZF9jbGVh bnVwKCk7CisJCQlyZXR1cm47CisJCX0KKworCQkvKiBTdG9wIHNlbGYgdG8gbGV0IHBhcmVudCB3 cml0ZSBuZXh0IGl0ZXJhdGlvbiAqLworCQlyYWlzZShTSUdTVE9QKTsKKwl9CisKKwl0c3RfcmVz KFRQQVNTLCAiSHVnZSB6ZXJvIHBhZ2UgaXMgc3RpbGwgY2xlYW4iKTsKKwljaGlsZF9jbGVhbnVw KCk7Cit9CisKK3N0YXRpYyB2b2lkIHNldHVwX3B0cmFjZV90cmFjZWUodm9pZCkKK3sKKwlpbnQg c3RhdHVzOworCisJLyogTWFwIGNoaWxkIHN0cnVjdCBCRUZPUkUgZm9yayBzbyBib3RoIHBhcmVu dCBhbmQgY2hpbGQgY2FuIGFjY2VzcyBpdCAqLworCWNoaWxkID0gU0FGRV9NTUFQKE5VTEwsIHNp emVvZigqY2hpbGQpLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAorCQlNQVBfU0hBUkVEIHwgTUFQ X0FOT05ZTU9VUywgLTEsIDApOworCW1lbXNldChjaGlsZCwgMCwgc2l6ZW9mKCpjaGlsZCkpOwor CWNoaWxkLT53cml0ZWZkID0gLTE7CisJY2hpbGQtPnJlYWRmZCA9IC0xOworCisJdHJhY2VlX3Bp ZCA9IFNBRkVfRk9SSygpOworCWlmICghdHJhY2VlX3BpZCkgeworCQl0cmFjZWVfbWFpbigpOwor CQlleGl0KDApOworCX0KKworCVRTVF9DSEVDS1BPSU5UX1dBSVQoMCk7CisKKwlTQUZFX1BUUkFD RShQVFJBQ0VfU0VJWkUsIHRyYWNlZV9waWQsIE5VTEwsIE5VTEwpOworCVNBRkVfUFRSQUNFKFBU UkFDRV9JTlRFUlJVUFQsIHRyYWNlZV9waWQsIE5VTEwsIE5VTEwpOworCVNBRkVfV0FJVFBJRCh0 cmFjZWVfcGlkLCAmc3RhdHVzLCAwKTsKKworCWlmICghV0lGU1RPUFBFRChzdGF0dXMpKQorCQl0 c3RfYnJrKFRCUk9LLCAiUHRyYWNlIHNlaXplIGRpZCBub3Qgc3RvcCB0cmFjZWU6ICVzIiwKKwkJ CXRzdF9zdHJzdGF0dXMoc3RhdHVzKSk7CisKKwkvKiBUcmFjZWUgc3RheXMgc3RvcHBlZCAtIHBh cmVudF9ydW4oKSB3aWxsIFBUUkFDRV9DT05UIHdoZW4gcmVhZHkgKi8KK30KKworc3RhdGljIHZv aWQgc2V0dXAodm9pZCkKK3sKKwlpbnQgdGVzdF92YWwgPSAwOworCWludCBleHBsaWNpdF9tb2Rl ID0gMDsKKworCXN0YXRpYyBzdHJ1Y3QgdHN0X2tjbWRsaW5lX3ZhciBwYXJhbXNbXSA9IHsKKwkJ VFNUX0tDTURMSU5FX0lOSVQoInByb2NfbWVtLmZvcmNlX292ZXJyaWRlIiksCisJfTsKKworCXRz dF9rY21kbGluZV9wYXJzZShwYXJhbXMsIEFSUkFZX1NJWkUocGFyYW1zKSk7CisKKwlpZiAocGFy YW1zWzBdLmZvdW5kKSB7CisJCWV4cGxpY2l0X21vZGUgPSAxOworCisJCWlmICghc3RyY21wKHBh cmFtc1swXS52YWx1ZSwgImFsd2F5cyIpKSB7CisJCQl1c2VyX21vZGUgPSBQUk9DX01FTV9BTFdB WVM7CisJCX0gZWxzZSBpZiAoIXN0cmNtcChwYXJhbXNbMF0udmFsdWUsICJwdHJhY2UiKSkgewor CQkJdXNlcl9tb2RlID0gUFJPQ19NRU1fUFRSQUNFOworCQl9IGVsc2UgeworCQkJdXNlcl9tb2Rl ID0gUFJPQ19NRU1fTkVWRVI7CisJCQl0c3RfYnJrKFRDT05GLAorCQkJCSJXcml0ZXMgdG8gL3By b2Mvc2VsZi9tZW0gZGlzYWJsZWQgb24ga2VybmVsIGNtZGxpbmUiKTsKKwkJfQorCX0KKworCWVm ZmVjdGl2ZV9tb2RlID0gdXNlcl9tb2RlOworCisJLyogUHJvYmUgZGlyZWN0IC9wcm9jL3NlbGYv bWVtIHdyaXRlcyBvbmx5IGlmIG5vdCBleHBsaWNpdGx5IHNldCB0byBwdHJhY2UgKi8KKwlpZiAo IWV4cGxpY2l0X21vZGUgfHwgdXNlcl9tb2RlID09IFBST0NfTUVNX0FMV0FZUykgeworCQljaGls ZCA9IFNBRkVfTU1BUChOVUxMLCBzaXplb2YoKmNoaWxkKSwgUFJPVF9SRUFEIHwgUFJPVF9XUklU RSwKKwkJCU1BUF9TSEFSRUQgfCBNQVBfQU5PTllNT1VTLCAtMSwgMCk7CisJCW1lbXNldChjaGls ZCwgMCwgc2l6ZW9mKCpjaGlsZCkpOworCQljaGlsZC0+d3JpdGVmZCA9IC0xOworCQljaGlsZC0+ cmVhZGZkID0gLTE7CisKKwkJY2hpbGRfc2V0dXAoKTsKKworCQlURVNUKGxzZWVrKGNoaWxkLT53 cml0ZWZkLCAob2ZmX3QpY2hpbGQtPndyaXRlX3B0ciwgU0VFS19TRVQpKTsKKwkJaWYgKFRTVF9S RVQgPT0gLTEpCisJCQl0c3RfYnJrKFRCUk9LIHwgVFRFUlJOTywgImxzZWVrIG9uIC9wcm9jL3Nl bGYvbWVtIGZhaWxlZCIpOworCisJCVRFU1Qod3JpdGUoY2hpbGQtPndyaXRlZmQsICZ0ZXN0X3Zh bCwgc2l6ZW9mKHRlc3RfdmFsKSkpOworCisJCWlmIChUU1RfUkVUID09IHNpemVvZih0ZXN0X3Zh bCkpIHsKKwkJCS8qIERpcmVjdCB3cml0ZSBzdWNjZWVkZWQgKi8KKwkJCWVmZmVjdGl2ZV9tb2Rl ID0gUFJPQ19NRU1fQUxXQVlTOworCQkJcmV0dXJuOworCQl9CisKKwkJaWYgKFRTVF9SRVQgPT0g LTEgJiYgVFNUX0VSUiAhPSBFSU8pCisJCQl0c3RfYnJrKFRCUk9LIHwgVFRFUlJOTywgInRlc3Qg d3JpdGUgdG8gL3Byb2Mvc2VsZi9tZW0gZmFpbGVkIik7CisKKwkJLyogL3Byb2Mvc2VsZi9tZW0g d3JpdGUgZmFpbGVkLCBjbGVhbnVwIGFuZCB0cnkgcHRyYWNlIG1vZGUgKi8KKwkJY2hpbGRfY2xl YW51cCgpOworCQlTQUZFX01VTk1BUChjaGlsZCwgc2l6ZW9mKCpjaGlsZCkpOworCQljaGlsZCA9 IE5VTEw7CisKKwkJaWYgKGV4cGxpY2l0X21vZGUgJiYgdXNlcl9tb2RlID09IFBST0NfTUVNX0FM V0FZUykKKwkJCXRzdF9icmsoVENPTkYsCisJCQkJIldyaXRlcyB0byAvcHJvYy9zZWxmL21lbSBk aXNhYmxlZCBkZXNwaXRlIGFsd2F5cyBtb2RlIik7CisKKwkJZWZmZWN0aXZlX21vZGUgPSBQUk9D X01FTV9QVFJBQ0U7CisJfQorCisJLyogU2V0IHVwIHB0cmFjZSBtb2RlICovCisJaWYgKGVmZmVj dGl2ZV9tb2RlID09IFBST0NfTUVNX1BUUkFDRSkgeworCQlzZXR1cF9wdHJhY2VfdHJhY2VlKCk7 CisJCXJldHVybjsKKwl9CisKKwl0c3RfYnJrKFRDT05GLCAiV3JpdGVzIHRvIC9wcm9jL3NlbGYv bWVtIGRpc2FibGVkIGluIGtlcm5lbCBwb2xpY3kiKTsKK30KKworc3RhdGljIHZvaWQgcnVuX3By b2NfbWVtX3B0cmFjZV9yYWNlKHZvaWQpCit7CisJY2hhciBwYXRoWzY0XTsKKwlpbnQgd3JpdGVm ZDsKKwlpbnQgYyA9IDB4ZGVhZGJlZWY7CisJaW50IGk7CisJaW50IHN0YXR1czsKKworCXNucHJp bnRmKHBhdGgsIHNpemVvZihwYXRoKSwgIi9wcm9jLyVkL21lbSIsIHRyYWNlZV9waWQpOworCXdy aXRlZmQgPSBTQUZFX09QRU4ocGF0aCwgT19SRFdSKTsKKworCS8qIFdyaXRlLXN0b3AtY29udGlu dWUgY3ljbGU6IHRyYWNlZSBtdXN0IGJlIHN0b3BwZWQgZm9yIHdyaXRlcyAqLworCWZvciAoaSA9 IDA7IGkgPCAxMDAwOyBpKyspIHsKKwkJLyogV3JpdGUgdG8gL3Byb2MvcGlkL21lbSB3aGlsZSB0 cmFjZWUgaXMgc3RvcHBlZCAqLworCQlTQUZFX0xTRUVLKHdyaXRlZmQsIChvZmZfdCljaGlsZC0+ d3JpdGVfcHRyLCBTRUVLX1NFVCk7CisJCVNBRkVfV1JJVEUoU0FGRV9XUklURV9BTEwsIHdyaXRl ZmQsICZjLCBzaXplb2YoaW50KSk7CisKKwkJLyogTGV0IHRyYWNlZSBydW4gb25lIGl0ZXJhdGlv biAobWFkdmlzZSArIGNoZWNrKSAqLworCQlTQUZFX1BUUkFDRShQVFJBQ0VfQ09OVCwgdHJhY2Vl X3BpZCwgTlVMTCwgTlVMTCk7CisKKwkJLyogV2FpdCBmb3IgdHJhY2VlIHRvIHN0b3AgaXRzZWxm IHdpdGggcmFpc2UoU0lHU1RPUCkgKi8KKwkJU0FGRV9XQUlUUElEKHRyYWNlZV9waWQsICZzdGF0 dXMsIDApOworCisJCWlmICghV0lGU1RPUFBFRChzdGF0dXMpIHx8IFdTVE9QU0lHKHN0YXR1cykg IT0gU0lHU1RPUCkKKwkJCXRzdF9icmsoVEJST0ssICJUcmFjZWUgZGlkIG5vdCBzdG9wIHdpdGgg U0lHU1RPUDogJXMiLAorCQkJCXRzdF9zdHJzdGF0dXMoc3RhdHVzKSk7CisJfQorCisJU0FGRV9D TE9TRSh3cml0ZWZkKTsKKworCS8qIEFmdGVyIDEwMDAgaXRlcmF0aW9ucywgbGV0IHRyYWNlZSBl eGl0IGNsZWFubHkgKi8KKwlTQUZFX1BUUkFDRShQVFJBQ0VfQ09OVCwgdHJhY2VlX3BpZCwgTlVM TCwgTlVMTCk7CisJU0FGRV9XQUlUUElEKHRyYWNlZV9waWQsICZzdGF0dXMsIDApOworCisJaWYg KCFXSUZFWElURUQoc3RhdHVzKSB8fCBXRVhJVFNUQVRVUyhzdGF0dXMpICE9IDApCisJCXRzdF9i cmsoVEJST0ssICJUcmFjZWUgZXhpdGVkIHVuZXhwZWN0ZWRseTogJXMiLAorCQkJdHN0X3N0cnN0 YXR1cyhzdGF0dXMpKTsKK30KKworc3RhdGljIHZvaWQgcnVuKHZvaWQpCit7CisJaWYgKGVmZmVj dGl2ZV9tb2RlID09IFBST0NfTUVNX0FMV0FZUykgeworCQlydW5fcHJvY19tZW1fYWx3YXlzX3Jh Y2UoKTsKKwl9IGVsc2UgaWYgKGVmZmVjdGl2ZV9tb2RlID09IFBST0NfTUVNX1BUUkFDRSkgewor CQlydW5fcHJvY19tZW1fcHRyYWNlX3JhY2UoKTsKKwl9IGVsc2UgeworCQl0c3RfYnJrKFRCUk9L LCAiVW5rbm93biBwcm9jIG1lbSBtb2RlIik7CisJfQorfQorCiBzdGF0aWMgdm9pZCBjbGVhbnVw KHZvaWQpCiB7Ci0JdHN0X2Z6c3luY19wYWlyX2NsZWFudXAoJmZ6c3luY19wYWlyKTsKKwlpbnQg c3RhdHVzOwoKLQlpZiAocmVhZGZkID49IDApCi0JCVNBRkVfQ0xPU0UocmVhZGZkKTsKKwlpZiAo dHJhY2VlX3BpZCA+IDApIHsKKwkJLyogVHJhY2VlIG1heSBoYXZlIGFscmVhZHkgZXhpdGVkIC0g ZG9uJ3QgZmFpbCBpZiBpdCdzIGdvbmUgKi8KKwkJaWYgKGtpbGwodHJhY2VlX3BpZCwgU0lHS0lM TCkgPT0gMCkKKwkJCVNBRkVfV0FJVFBJRCh0cmFjZWVfcGlkLCAmc3RhdHVzLCAwKTsKKwl9Cgot CWlmICh3cml0ZWZkID49IDApCi0JCVNBRkVfQ0xPU0Uod3JpdGVmZCk7CisJY2hpbGRfY2xlYW51 cCgpOwoKLQlpZiAocmVhZF90aHApCi0JCVNBRkVfTVVOTUFQKHJlYWRfdGhwLCB0aHBfc2l6ZSk7 Ci0JaWYgKHdyaXRlX3RocCkKLQkJU0FGRV9NVU5NQVAod3JpdGVfdGhwLCB0aHBfc2l6ZSk7CisJ aWYgKGNoaWxkKQorCQlTQUZFX01VTk1BUChjaGlsZCwgc2l6ZW9mKCpjaGlsZCkpOwogfQoKIHN0 YXRpYyBzdHJ1Y3QgdHN0X3Rlc3QgdGVzdCA9IHsKQEAgLTE2Miw2ICs0MjAsOCBAQCBzdGF0aWMg c3RydWN0IHRzdF90ZXN0IHRlc3QgPSB7CiAJLnNldHVwID0gc2V0dXAsCiAJLmNsZWFudXAgPSBj bGVhbnVwLAogCS5ydW50aW1lID0gMTUwLAorCS5mb3Jrc19jaGlsZCA9IDEsCisJLm5lZWRzX2No ZWNrcG9pbnRzID0gMSwKIAkudGFncyA9IChjb25zdCBzdHJ1Y3QgdHN0X3RhZ1tdKSB7CiAJCXsi bGludXgtZ2l0IiwgImE4Zjk3MzY2NDUyZSJ9LAogCQl7ImxpbnV4LWdpdCIsICI4MzEwZDQ4YjEy NWQifSwKLS0KMi41NC4wCgoKLS0gCk1haWxpbmcgbGlzdCBpbmZvOiBodHRwczovL2xpc3RzLmxp bnV4Lml0L2xpc3RpbmZvL2x0cAo=