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 3917BCD8CA8 for ; Sat, 13 Jun 2026 09:06:24 +0000 (UTC) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 8BD2F3E55F9 for ; Sat, 13 Jun 2026 11:06:22 +0200 (CEST) Received: from in-7.smtp.seeweb.it (in-7.smtp.seeweb.it [217.194.8.7]) (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 9E2F73CC87E for ; Sat, 13 Jun 2026 11:05:51 +0200 (CEST) Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (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-7.smtp.seeweb.it (Postfix) with ESMTPS id 80DDD2000F3 for ; Sat, 13 Jun 2026 11:05:50 +0200 (CEST) Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65D6LcPj045901; Sat, 13 Jun 2026 09:05:48 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=1HBaFK Th/tgoeP2kuS1U/poCulIV3mg2qVRDYMl6MhI=; b=BfxOUm1dtW3zVPvEPVeUS4 5pa6Y4vn7YDzPPbux/mY3jcaSwbsIRoC2ekXMGVEZqfW9m7Zo6g/Klg0aurgXuqj vZToU5xhnNw0prudEbwGiaUVA5KgGoEaZq6i3IfaLGluaLk0rRGR04KRNhsqu49O oUaxbsMD8rqcmNb/Fg3WTWyf66DfC9p2KGUSQx6cASkos78VHzGxMDwlEYpTspRr MB8zaWqAZ5goDz99kWlHY/VsEQVgo3duPHuj2jvbng1FIDb3m9InKg3muRh/sqsx rzzXywdx4Q8sl9FT0/d9qxAIWlc6kcrwWB0/uQNQcwC6qHLM5MljUzrFejOsLGHg == 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 4es1v20983-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 13 Jun 2026 09:05: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 65D94cqx006362; Sat, 13 Jun 2026 09:05:47 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4eqe09ufmf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 13 Jun 2026 09:05:47 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 65D95jFG27263452 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 13 Jun 2026 09:05:46 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DAF832004E; Sat, 13 Jun 2026 09:05:45 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3668020040; Sat, 13 Jun 2026 09:05:45 +0000 (GMT) Received: from localhost.localdomain (unknown [9.43.78.90]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Sat, 13 Jun 2026 09:05:45 +0000 (GMT) From: Sachin Sant To: ltp@lists.linux.it Date: Sat, 13 Jun 2026 14:35:36 +0530 Message-Id: <20260613090543.78643-2-sachinp@linux.ibm.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20260613090543.78643-1-sachinp@linux.ibm.com> References: <20260613090543.78643-1-sachinp@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEzMDA4NyBTYWx0ZWRfX3y5b1lVy5HXY /p+JGIQG/olLXjdTeq4GU2lxyKX8G0Jpkv3sv7NLMhP7obA1+d3mPGMQtn7MqZsCzbRXfBOCPVz dGX4ys0wcEN+4Q6N2V/tMV93ghKjU3k= X-Proofpoint-GUID: -2i02D3uM-kKu0GnwYhHB1nHkgCgLzc1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEzMDA4NyBTYWx0ZWRfX9zDA0WR9ohRN M2YLtCPxeRQv+v2ERNVsDZjrk59ckAjEeUElFgqTarb+PtaIeaXRwh2z2YgaFMdusqiF+vOJ12Q TdCOkKM+1OSnz3sNZbM1BmvTdPYwm+a6ih1fO6BEa/eG/Y8HuUDNUKUpyHqbSHs3rCSk5PBAOLL PDmxfhiBSjPPjUjqAU06JqL2P9g8EonuGQ6o51zK1sUydB8OhgEYAA6rkAkGF/nMIw8Zal5Sfew P4Wk7HPT49Ggd32NJm+wvSQed81A4mJ6AQqaHI24mc+PzfgrqYQvqCmWTr2hAYkoBpMZC3ccM5h W+bMZuEVbvXJc60CkAYckkUFng1oxdCy+MJ3kRQDeC2joThXRSqbV/to7gdnu3bfrrDrd8hcweE CVcS0fDNOOlMOWYpKX8C+pDU9dDLTDhx909YlQf0dh09z14oE3RqZjWUFkH9cjWCAs2XpMuONOe jgSG3jITPlSN5Pje5fA== X-Proofpoint-ORIG-GUID: -2i02D3uM-kKu0GnwYhHB1nHkgCgLzc1 X-Authority-Analysis: v=2.4 cv=Dd0nbPtW c=1 sm=1 tr=0 ts=6a2d1d6c cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=ZJEMAUhidu7nXVqH2UMA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 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-06-13_01,2026-06-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 priorityscore=1501 impostorscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 phishscore=0 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606130087 X-Virus-Scanned: clamav-milter 1.0.9 at in-7.smtp.seeweb.it X-Virus-Status: Clean Subject: [LTP] [PATCH v8 1/8] fs/acl: Add ACL_USER_OBJ permission test 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" QWRkIGFjbF91c2VyX29iajAxIHRlc3QgdG8gdmFsaWRhdGUgQUNMX1VTRVJfT0JKIHBlcm1pc3Np b25zOgotIE93bmVyIHBlcm1pc3Npb25zIGNvcnJlY3RseSBjb250cm9sIGZpbGUvZGlyZWN0b3J5 IGFjY2VzcwotIEFDTF9VU0VSX09CSj1yd3ggdmlhIHNldHhhdHRyKCkgb3ZlcnJpZGVzIGNobW9k IHJlc3RyaWN0aW9ucwotIE93bmVyIHBlcm1pc3Npb25zIHdvcmsgaW5kZXBlbmRlbnRseSBvZiBn cm91cC9vdGhlciBwZXJtaXNzaW9ucwotIFRlc3RzIHVzZSBhcmJpdHJhcnkgVUlEcyB3aXRob3V0 IHJlcXVpcmluZyBhY3R1YWwgdXNlciBjcmVhdGlvbgoKVGhlIHBhdGNoIGFsc28gYWRkcyBhY2xf bGliLmggY29udGFpbmluZyBzaGFyZWQgaGVscGVycyBmb3IgQUNMCm1hbmlwdWxhdGlvbiB2aWEg eGF0dHIgQVBJLCBpbmNsdWRpbmc6Ci0gQUNMIHN0cnVjdHVyZSBtYW5hZ2VtZW50IChhY2xfaW5p dCwgYWNsX2ZyZWUsIGFjbF9hZGRfZW50cnkpCi0gQUNMIHNlcmlhbGl6YXRpb24vZGVzZXJpYWxp emF0aW9uIGZvciBrZXJuZWwgeGF0dHIgZm9ybWF0Ci0gQUNMIGdldC9zZXQgb3BlcmF0aW9ucyB1 c2luZyBnZXR4YXR0ci9zZXR4YXR0cgotIHBlcm1pc3Npb24gdGVzdGluZyBhbmQgZmlsZSBvcGVy YXRpb25zCi0gU3VwcG9ydCBmb3IgYm90aCBBQ0NFU1MgYW5kIERFRkFVTFQgQUNMIHR5cGVzCgpU aGUgaW1wbGVtZW50YXRpb24gdXNlcyBkaXJlY3QgeGF0dHIgQVBJIChnZXR4YXR0ci9zZXR4YXR0 cikgdG8KdGVzdCBrZXJuZWwgQUNMIGJlaGF2aW9yIGRpcmVjdGx5LiBUZXN0cyBydW4gb24gZXh0 Mi8zLzQsClhGUywgYW5kIEJ0cmZzIGZpbGVzeXN0ZW1zIHdpdGggQUNMIHN1cHBvcnQuCgpTdWdn ZXN0ZWQtYnk6IEN5cmlsIEhydWJpcyA8Y2hydWJpc0BzdXNlLmN6PgpTaWduZWQtb2ZmLWJ5OiBT YWNoaW4gU2FudCA8c2FjaGlucEBsaW51eC5pYm0uY29tPgotLS0KVjggY2hhbmdlczoKLSBSZW1v dmVkIG5vIGNob3duIHZhcmlhbnQgb2YgcmVzZXRfdGVzdF9wYXRoCi0gVXNlIFJTVCBtYW5wYWdl IGZvcm1hdHRlZCBkb2N1bWVudGF0aW9uCi0gdjcgbGluayBodHRwczovL2xvcmUua2VybmVsLm9y Zy9sdHAvMjAyNjA2MTIxNzE5MzAuMTE5NjQtMS1zYWNoaW5wQGxpbnV4LmlibS5jb20vVC8jdAoK VjcgY2hhbmdlczoKLSBVc2UgU0FGRV8gdmFyaWFudHMgb2Ygc2V0cmVzZ2lkL3NldHJlc3VpZAot IFJlcGxhY2UgVFNUX0VYUF9GQUlMIHdpdGggVFNUX0VYUF9GQUlMMgotIHY2IGxpbmsgaHR0cHM6 Ly9sb3JlLmtlcm5lbC5vcmcvbHRwLzIwMjYwNjEyMTAyNTAyLjI0MDcxLTEtc2FjaGlucEBsaW51 eC5pYm0uY29tL1QvI3QKClY2IGNoYW5nZXM6Ci0gQWRkZWQgSEFWRV9TWVNfWEFUVFJfSCBndWFy ZHMgZm9yIHN5c3RlbXMgd2l0aG91dCB4YXR0ciBzdXBwb3J0Ci0gUmVtb3ZlZCB1bm5lY2Vzc2Fy eSBlcnJvciBwYXRocyBhbmQgbWFudWFsIHN0YXR1cyBjaGVja2luZwotIFVzZXMgU0FGRV9NQUxM T0MoKSBhbmQgbmV3IGhlbHBlciBtYWNyb3MKLSBBZGRlZCBhY2xfdHlwZV90b19uYW1lKCkgaGVs cGVyIHRvIGVsaW1pbmF0ZSBkdXBsaWNhdGlvbgotIHY1IGxpbmsgaHR0cHM6Ly9sb3JlLmtlcm5l bC5vcmcvbHRwLzIwMjYwNjA4MDkyMjAwLjkyODI3LTEtc2FjaGlucEBsaW51eC5pYm0uY29tL1Qv I3QKClY1IGNoYW5nZXM6Ci0gU3dpdGNoIHRvIGtlcm5lbCBvbmx5IHRlc3QgdmFsaWRhdGlvbiB0 byByZW1vdmUgZGVwZW5kZW5jeSBvbiBsaWJhY2wKICBhbmQgdXNlcmFkZC9kZWwgY29tbWFuZHMu Ci0gdjQgbGluayBodHRwczovL2xvcmUua2VybmVsLm9yZy9sdHAvMjAyNjA2MDQwNjU0MTcuMjU5 MjQtMS1zYWNoaW5wQGxpbnV4LmlibS5jb20vVC8jdAoKVjQgY2hhbmdlczoKLSBBZGTCoC1VwqBm bGFnIGluIGNyZWF0ZV91c2VyX2lmX25lZWRlZCgpwqB0byB1c2VyYWRkIGZvciBndWFyYW50ZWVk CiAgdXNlci1wcml2YXRlIGdyb3Vwcy4KLSBNb3ZlIEVPUE5PVFNVUFAgaGFuZGxpbmcgaW50b8Kg c2V0X2FjbF9maWxlKCnCoGhlbHBlcgotIHYzIGxpbmsgaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcv bHRwLzIwMjYwNjAzMTQwMTQ3LjUwNzM4LTEtc2FjaGlucEBsaW51eC5pYm0uY29tL1QvI3QKClYz IGNoYW5nZXM6Ci0gVXBkYXRlZCBjb3B5cmlnaHQgaGVhZGVyIGFzIHBlciBMVFAgZm9ybWF0Lgot IHYyIGxpbmsgaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbHRwLzIwMjYwNjAzMDY1NzQ0LjQ3MTA2 LTEtc2FjaGlucEBsaW51eC5pYm0uY29tL1QvI3QKClYyIGNoYW5nZXM6Ci0gQWRkZWQgbm8gY2hv d24gdmFyaWFudCBvZiByZXNldF90ZXN0X3BhdGggdG8gc2tpcCBjaG93biBzdGVwLgogYWNsX2xp bmswMSBhbmQgeGF0dHJfdGVzdDAxIHRlc3RzIGFyZSB1cGRhdGVkIHRvIHVzZSB0aGlzCiB2YXJp YW50LgogLSBVcGRhdGVkIGFjbF91c2VyX29iajAxLmMgdG8gY29ycmVjdCBpbmNvcnJlY3QgZGVz Y3JpcHRpb24KLSB2MSBsaW5rIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2x0cC8yMDI2MDYwMjEy MTk1OC4yNzQ5NC0xLXNhY2hpbnBAbGludXguaWJtLmNvbS9ULyN0CgpWMSBjaGFuZ2VzOgotIFVz ZSBBQ0xfTElCUyB2YXJpYWJsZSBpbnN0ZWFkIG9mIGhhcmRjb2RlZCAtbGFjbCBpbiBNYWtlZmls ZQotIE1vdmUgQUNMIGhlYWRlciBpbmNsdWRlcyBpbnNpZGUgZmVhdHVyZSBndWFyZHMgaW4gYWNs X2xpYi5oCi0gVXNlIEhBVkVfTElCQUNMIGd1YXJkcyBpbiAuYyBjb2RlCi0gUmVwb3J0IFRDT05G IHdoZW4gbGliYWNsIGlzIG5vdCBhdmFpbGFibGUKLSByZmMgbGluayBodHRwczovL2xvcmUua2Vy bmVsLm9yZy9sdHAvNDc3ODM2ZmQtODBjOC00MTY4LWJmZTYtMDBiMzc0YmIyNTM0QGxpbnV4Lmli bS5jb20vVC8jdAoKLS0tCiBydW50ZXN0L2ZzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAzICsKIHRlc3RjYXNlcy9rZXJuZWwvZnMvYWNsLy5naXRpZ25vcmUgICAgICAgfCAgIDEg KwogdGVzdGNhc2VzL2tlcm5lbC9mcy9hY2wvTWFrZWZpbGUgICAgICAgICB8ICAgOCArCiB0ZXN0 Y2FzZXMva2VybmVsL2ZzL2FjbC9hY2xfbGliLmggICAgICAgIHwgNTA3ICsrKysrKysrKysrKysr KysrKysrKysrCiB0ZXN0Y2FzZXMva2VybmVsL2ZzL2FjbC9hY2xfdXNlcl9vYmowMS5jIHwgMTI2 ICsrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA2NDUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUg MTAwNjQ0IHRlc3RjYXNlcy9rZXJuZWwvZnMvYWNsLy5naXRpZ25vcmUKIGNyZWF0ZSBtb2RlIDEw MDY0NCB0ZXN0Y2FzZXMva2VybmVsL2ZzL2FjbC9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHRlc3RjYXNlcy9rZXJuZWwvZnMvYWNsL2FjbF9saWIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHRl c3RjYXNlcy9rZXJuZWwvZnMvYWNsL2FjbF91c2VyX29iajAxLmMKCmRpZmYgLS1naXQgYS9ydW50 ZXN0L2ZzIGIvcnVudGVzdC9mcwppbmRleCAxZDc1M2UwZGQuLjJhODc4NzQ0YiAxMDA2NDQKLS0t IGEvcnVudGVzdC9mcworKysgYi9ydW50ZXN0L2ZzCkBAIC04NywzICs4Nyw2IEBAIGJpbmZtdF9t aXNjMDEgYmluZm10X21pc2MwMS5zaAogYmluZm10X21pc2MwMiBiaW5mbXRfbWlzYzAyLnNoCiAK IHNxdWFzaGZzMDEgc3F1YXNoZnMwMQorCisjIFJ1biB0aGUgYWNsIHRlc3RzCithY2xfdXNlcl9v YmowMSBhY2xfdXNlcl9vYmowMQpkaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL2tlcm5lbC9mcy9hY2wv LmdpdGlnbm9yZSBiL3Rlc3RjYXNlcy9rZXJuZWwvZnMvYWNsLy5naXRpZ25vcmUKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5kOWM0NmRiMTEKLS0tIC9kZXYvbnVsbAorKysg Yi90ZXN0Y2FzZXMva2VybmVsL2ZzL2FjbC8uZ2l0aWdub3JlCkBAIC0wLDAgKzEgQEAKKy9hY2xf dXNlcl9vYmowMQpkaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL2tlcm5lbC9mcy9hY2wvTWFrZWZpbGUg Yi90ZXN0Y2FzZXMva2VybmVsL2ZzL2FjbC9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAuLjJkOWNiYTQ2ZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RjYXNlcy9r ZXJuZWwvZnMvYWNsL01ha2VmaWxlCkBAIC0wLDAgKzEsOCBAQAorIyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgorIyBDb3B5cmlnaHQgKGMpIDIwMjYgSUJNCisKK3Rv cF9zcmNkaXIJCT89IC4uLy4uLy4uLy4uCisKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9pbmNsdWRl L21rL3Rlc3RjYXNlcy5taworCitpbmNsdWRlICQodG9wX3NyY2RpcikvaW5jbHVkZS9tay9nZW5l cmljX2xlYWZfdGFyZ2V0Lm1rCmRpZmYgLS1naXQgYS90ZXN0Y2FzZXMva2VybmVsL2ZzL2FjbC9h Y2xfbGliLmggYi90ZXN0Y2FzZXMva2VybmVsL2ZzL2FjbC9hY2xfbGliLmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi43ZmU2OGFhNTkKLS0tIC9kZXYvbnVsbAorKysgYi90 ZXN0Y2FzZXMva2VybmVsL2ZzL2FjbC9hY2xfbGliLmgKQEAgLTAsMCArMSw1MDcgQEAKKy8qIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVyICovCisvKgorICogQ29weXJp Z2h0IChjKSAyMDI2IElCTQorICogT3JpZ2luYWwgc2hlbGwgdGVzdCBieSBLYWkgWmhhbyAobHRj ZDNAY24uaWJtLmNvbSkKKyAqIENvbnZlcnRlZCB0byBDIGJ5IFNhY2hpbiBTYW50IDxzYWNoaW5w QGxpbnV4LmlibS5jb20+CisgKgorICogQ29tbW9uIGxpYnJhcnkgZm9yIEFDTCBhbmQgZXh0ZW5k ZWQgYXR0cmlidXRlIHRlc3RzIHVzaW5nIHhhdHRyIEFQSQorICovCisKKyNpZm5kZWYgX0dOVV9T T1VSQ0UKKyNkZWZpbmUgX0dOVV9TT1VSQ0UKKyNlbmRpZgorCisjaWZuZGVmIEFDTF9MSUJfSAor I2RlZmluZSBBQ0xfTElCX0gKKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8cHdk Lmg+CisjaW5jbHVkZSA8Z3JwLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxmY250 bC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUg PGVuZGlhbi5oPgorI2luY2x1ZGUgPHN5cy9mc3VpZC5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+ CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3dhaXQuaD4KKworI2lmZGVm IEhBVkVfU1lTX1hBVFRSX0gKKyNpbmNsdWRlIDxzeXMveGF0dHIuaD4KKyNlbmRpZgorI2luY2x1 ZGUgInRzdF90ZXN0LmgiCisjaW5jbHVkZSAidHN0X3NhZmVfc3RkaW8uaCIKKyNpbmNsdWRlICJ0 c3RfY2FwYWJpbGl0eS5oIgorCisjZGVmaW5lIE1OVFBPSU5UCSJtbnRwb2ludCIKKyNkZWZpbmUg VEVTVERJUgkJTU5UUE9JTlQgIi90ZXN0ZGlyIgorI2RlZmluZSBURVNURklMRQlURVNURElSICIv dGVzdGZpbGUiCisjZGVmaW5lIFRFU1RTWU1MSU5LCVRFU1RESVIgIi90ZXN0c3ltbGluayIKKyNk ZWZpbmUgWEFUVFJfQkFDS1VQX0ZJTEUgTU5UUE9JTlQgIi94YXR0cl9iYWNrdXAudHh0IgorCisv KiBFeHRlbmRlZCBhdHRyaWJ1dGUgdGVzdCB2YWx1ZXMgKi8KKyNkZWZpbmUgWEFUVFJfVEVTVF9E SVJfTkFNRQkidXNlci50ZXN0X2F0dHIiCisjZGVmaW5lIFhBVFRSX1RFU1RfRElSX1ZBTFVFCSJ0 ZXN0X3ZhbHVlIgorI2RlZmluZSBYQVRUUl9URVNUX0RJUl9TSVpFCTEwCisjZGVmaW5lIFhBVFRS X1RFU1RfRklMRV9OQU1FCSJ1c2VyLmZpbGVfYXR0ciIKKyNkZWZpbmUgWEFUVFJfVEVTVF9GSUxF X1ZBTFVFCSJmaWxlX3ZhbCIKKyNkZWZpbmUgWEFUVFJfVEVTVF9GSUxFX1NJWkUJOAorI2RlZmlu ZSBYQVRUUl9URVNUMV9OQU1FCSJ1c2VyLnRlc3QxIgorI2RlZmluZSBYQVRUUl9URVNUMV9WQUxV RQkidmFsdWUxIgorI2RlZmluZSBYQVRUUl9URVNUMV9TSVpFCTYKKyNkZWZpbmUgWEFUVFJfVEVT VDJfTkFNRQkidXNlci50ZXN0MiIKKyNkZWZpbmUgWEFUVFJfVEVTVDJfVkFMVUUJInZhbHVlMiIK KyNkZWZpbmUgWEFUVFJfVEVTVDJfU0laRQk2CisKKy8qCisgKiBQT1NJWCBBQ0wgeGF0dHIgZm9y bWF0IGRlZmluaXRpb25zCisgKiBUaGVzZSBtYXRjaCB0aGUga2VybmVsJ3MgaW50ZXJuYWwgcmVw cmVzZW50YXRpb24KKyAqLworI2RlZmluZSBQT1NJWF9BQ0xfWEFUVFJfVkVSU0lPTgkweDAwMDIK KworLyogQUNMIGVudHJ5IHRhZyB0eXBlcyAqLworI2RlZmluZSBBQ0xfVU5ERUZJTkVEX1RBRwkw eDAwCisjZGVmaW5lIEFDTF9VU0VSX09CSgkJMHgwMQorI2RlZmluZSBBQ0xfVVNFUgkJMHgwMgor I2RlZmluZSBBQ0xfR1JPVVBfT0JKCQkweDA0CisjZGVmaW5lIEFDTF9HUk9VUAkJMHgwOAorI2Rl ZmluZSBBQ0xfTUFTSwkJMHgxMAorI2RlZmluZSBBQ0xfT1RIRVIJCTB4MjAKKworLyogQUNMIHBl cm1pc3Npb25zICovCisjZGVmaW5lIEFDTF9SRUFECQkweDA0CisjZGVmaW5lIEFDTF9XUklURQkJ MHgwMgorI2RlZmluZSBBQ0xfRVhFQ1VURQkJMHgwMQorCisvKiBBQ0wgeGF0dHIgbmFtZXMgKi8K KyNkZWZpbmUgWEFUVFJfTkFNRV9QT1NJWF9BQ0xfQUNDRVNTCSJzeXN0ZW0ucG9zaXhfYWNsX2Fj Y2VzcyIKKyNkZWZpbmUgWEFUVFJfTkFNRV9QT1NJWF9BQ0xfREVGQVVMVAkic3lzdGVtLnBvc2l4 X2FjbF9kZWZhdWx0IgorCisvKiBBQ0wgdHlwZSBmb3Igc2V0L2dldCBvcGVyYXRpb25zICovCisj ZGVmaW5lIEFDTF9UWVBFX0FDQ0VTUwkJMQorI2RlZmluZSBBQ0xfVFlQRV9ERUZBVUxUCTIKKwor LyogQ29udmVydCBob3N0IHRvIGxpdHRsZS1lbmRpYW4gKi8KKyNpZiBfX0JZVEVfT1JERVIgPT0g X19MSVRUTEVfRU5ESUFOCisjZGVmaW5lIGNwdV90b19sZTE2KHgpICh4KQorI2RlZmluZSBjcHVf dG9fbGUzMih4KSAoeCkKKyNkZWZpbmUgbGUxNl90b19jcHUoeCkgKHgpCisjZGVmaW5lIGxlMzJf dG9fY3B1KHgpICh4KQorI2Vsc2UKKyNkZWZpbmUgY3B1X3RvX2xlMTYoeCkgX19idWlsdGluX2Jz d2FwMTYoeCkKKyNkZWZpbmUgY3B1X3RvX2xlMzIoeCkgX19idWlsdGluX2Jzd2FwMzIoeCkKKyNk ZWZpbmUgbGUxNl90b19jcHUoeCkgX19idWlsdGluX2Jzd2FwMTYoeCkKKyNkZWZpbmUgbGUzMl90 b19jcHUoeCkgX19idWlsdGluX2Jzd2FwMzIoeCkKKyNlbmRpZgorCisvKgorICogUE9TSVggQUNM IHhhdHRyIGZvcm1hdCBhcyBzdG9yZWQgaW4ga2VybmVsCisgKiBUaGlzIGlzIHRoZSBvbi1kaXNr L2luLXhhdHRyIHJlcHJlc2VudGF0aW9uCisgKi8KK3N0cnVjdCBwb3NpeF9hY2xfeGF0dHJfaGVh ZGVyIHsKKwl1aW50MzJfdCBhX3ZlcnNpb247Cit9OworCitzdHJ1Y3QgcG9zaXhfYWNsX3hhdHRy X2VudHJ5IHsKKwl1aW50MTZfdCBlX3RhZzsKKwl1aW50MTZfdCBlX3Blcm07CisJdWludDMyX3Qg ZV9pZDsKK307CisKKy8qCisgKiBDb21iaW5lZCB4YXR0ciBzdHJ1Y3R1cmUgZm9yIEFDTCBvcGVy YXRpb25zCisgKi8KK3N0cnVjdCBhY2xfeGF0dHIgeworCXN0cnVjdCBwb3NpeF9hY2xfeGF0dHJf aGVhZGVyIGhlYWRlcjsKKwlzdHJ1Y3QgcG9zaXhfYWNsX3hhdHRyX2VudHJ5IGVudHJpZXNbXTsK K307CisKKy8qCisgKiBJbi1tZW1vcnkgQUNMIHJlcHJlc2VudGF0aW9uIGZvciBidWlsZGluZyBB Q0xzCisgKi8KKyNkZWZpbmUgTUFYX0FDTF9FTlRSSUVTIDMyCisKK3N0cnVjdCBhY2xfZW50cnkg eworCXVpbnQxNl90IHRhZzsKKwl1aW50MTZfdCBwZXJtOworCXVpbnQzMl90IGlkOworfTsKKwor c3RydWN0IGFjbCB7CisJaW50IGNvdW50OworCXN0cnVjdCBhY2xfZW50cnkgZW50cmllc1tNQVhf QUNMX0VOVFJJRVNdOworfTsKKworLyoKKyAqIFNBRkVfVFJZX1VOTElOSyAtIHVubGluayBhIGZp bGUsIGlnbm9yaW5nIEVOT0VOVAorICogV29uJ3QgVEJST0sgaWYgZmlsZSBkb2Vzbid0IGV4aXN0 CisgKi8KKyNkZWZpbmUgU0FGRV9UUllfVU5MSU5LKHBhdGgpIGRvIHsgXAorCWlmICh1bmxpbmso cGF0aCkgPT0gLTEgJiYgZXJybm8gIT0gRU5PRU5UKSBcCisJCXRzdF9icmsoVEJST0sgfCBURVJS Tk8sICJ1bmxpbmsoJXMpIGZhaWxlZCIsIHBhdGgpOyBcCit9IHdoaWxlICgwKQorCisvKgorICog U0FGRV9UUllfUk1ESVIgLSByZW1vdmUgYSBkaXJlY3RvcnksIGlnbm9yaW5nIEVOT0VOVAorICog V29uJ3QgVEJST0sgaWYgZGlyZWN0b3J5IGRvZXNuJ3QgZXhpc3QKKyAqLworI2RlZmluZSBTQUZF X1RSWV9STURJUihwYXRoKSBkbyB7IFwKKwlpZiAocm1kaXIocGF0aCkgPT0gLTEgJiYgZXJybm8g IT0gRU5PRU5UKSBcCisJCXRzdF9icmsoVEJST0sgfCBURVJSTk8sICJybWRpciglcykgZmFpbGVk IiwgcGF0aCk7IFwKK30gd2hpbGUgKDApCisKK3N0YXRpYyBpbmxpbmUgdm9pZCByZXNldF90ZXN0 X3BhdGgodm9pZCkKK3sKKwlTQUZFX1RSWV9VTkxJTksoVEVTVFNZTUxJTkspOworCVNBRkVfVFJZ X1VOTElOSyhURVNURklMRSk7CisJU0FGRV9UUllfUk1ESVIoVEVTVERJUik7CisKKwlTQUZFX01L RElSKFRFU1RESVIsIDA3NTUpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgY2xlYW51cF90ZXN0 ZmlsZSh2b2lkKQoreworCVNBRkVfVFJZX1VOTElOSyhURVNURklMRSk7Cit9CisKKyNpZmRlZiBI QVZFX1NZU19YQVRUUl9ICisKKy8qCisgKiBJbml0aWFsaXplIGFuIGVtcHR5IEFDTCBzdHJ1Y3R1 cmUKKyAqLworc3RhdGljIGlubGluZSBzdHJ1Y3QgYWNsICphY2xfaW5pdCh2b2lkKQoreworCXN0 cnVjdCBhY2wgKmFjbCA9IFNBRkVfTUFMTE9DKHNpemVvZihzdHJ1Y3QgYWNsKSk7CisKKwlhY2wt PmNvdW50ID0gMDsKKwlyZXR1cm4gYWNsOworfQorCisvKgorICogRnJlZSBhbiBBQ0wgc3RydWN0 dXJlCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBhY2xfZnJlZShzdHJ1Y3QgYWNsICphY2wpCit7 CisJZnJlZShhY2wpOworfQorCisvKgorICogQWRkIGFuIEFDTCBlbnRyeSB0byB0aGUgQUNMIHN0 cnVjdHVyZQorICovCitzdGF0aWMgaW5saW5lIGludCBhY2xfYWRkX2VudHJ5KHN0cnVjdCBhY2wg KmFjbCwgdWludDE2X3QgdGFnLCB1aW50MTZfdCBwZXJtLAorCQkJCXVpbnQzMl90IGlkKQorewor CWlmIChhY2wtPmNvdW50ID49IE1BWF9BQ0xfRU5UUklFUykgeworCQllcnJubyA9IEVOT01FTTsK KwkJcmV0dXJuIC0xOworCX0KKworCWFjbC0+ZW50cmllc1thY2wtPmNvdW50XS50YWcgPSB0YWc7 CisJYWNsLT5lbnRyaWVzW2FjbC0+Y291bnRdLnBlcm0gPSBwZXJtOworCWFjbC0+ZW50cmllc1th Y2wtPmNvdW50XS5pZCA9IGlkOworCWFjbC0+Y291bnQrKzsKKwlyZXR1cm4gMDsKK30KKworLyoK KyAqIENvbnZlcnQgQUNMIHR5cGUgdG8geGF0dHIgbmFtZQorICovCitzdGF0aWMgaW5saW5lIGNv bnN0IGNoYXIgKmFjbF90eXBlX3RvX25hbWUoaW50IHR5cGUpCit7CisJaWYgKHR5cGUgPT0gQUNM X1RZUEVfQUNDRVNTKQorCQlyZXR1cm4gWEFUVFJfTkFNRV9QT1NJWF9BQ0xfQUNDRVNTOworCWVs c2UgaWYgKHR5cGUgPT0gQUNMX1RZUEVfREVGQVVMVCkKKwkJcmV0dXJuIFhBVFRSX05BTUVfUE9T SVhfQUNMX0RFRkFVTFQ7CisJZWxzZQorCQlyZXR1cm4gTlVMTDsKK30KKworLyoKKyAqIFNldCBB Q0wgb24gYSBmaWxlIHVzaW5nIHhhdHRyLgorICoKKyAqIFRoZSBrZXJuZWwgc3RvcmVzIGFjY2Vz cyBBQ0xzIG9ubHkgd2hlbiB0aGV5IGRpZmZlciBmcm9tIHRoZSBmaWxlIG1vZGUuCisgKiBJZiB0 aGUgQUNMIGlzIGVxdWl2YWxlbnQgdG8gc3RfbW9kZSwgdGhlIHhhdHRyIGlzIHJlbW92ZWQgYW5k IGZ1dHVyZQorICogZ2V0eGF0dHIoKSBjYWxscyByZXR1cm4gRU5PREFUQS4gTWlycm9yIGxpYmFj bCBzZW1hbnRpY3MgYnkgdHJlYXRpbmcKKyAqIEVOT0RBVEEgYXMgYSB2YWxpZCBtaW5pbWFsIEFD TCBkZXJpdmVkIGZyb20gc3RfbW9kZS4KKyAqLworc3RhdGljIGlubGluZSBpbnQgYWNsX3NldF9m aWxlKGNvbnN0IGNoYXIgKnBhdGgsIGludCB0eXBlLCBzdHJ1Y3QgYWNsICphY2wpCit7CisJY29u c3QgY2hhciAqeGF0dHJfbmFtZTsKKwlzaXplX3Qgc2l6ZTsKKwljaGFyICpidWY7CisJc3RydWN0 IHBvc2l4X2FjbF94YXR0cl9oZWFkZXIgKmhlYWRlcjsKKwlzdHJ1Y3QgcG9zaXhfYWNsX3hhdHRy X2VudHJ5ICplbnRyaWVzOworCWludCBpLCByZXQ7CisKKwl4YXR0cl9uYW1lID0gYWNsX3R5cGVf dG9fbmFtZSh0eXBlKTsKKwlpZiAoIXhhdHRyX25hbWUpIHsKKwkJZXJybm8gPSBFSU5WQUw7CisJ CXJldHVybiAtMTsKKwl9CisKKwlzaXplID0gc2l6ZW9mKHN0cnVjdCBwb3NpeF9hY2xfeGF0dHJf aGVhZGVyKSArCisJICAgICAgIGFjbC0+Y291bnQgKiBzaXplb2Yoc3RydWN0IHBvc2l4X2FjbF94 YXR0cl9lbnRyeSk7CisKKwlidWYgPSBtYWxsb2Moc2l6ZSk7CisJaWYgKCFidWYpCisJCXJldHVy biAtMTsKKworCWhlYWRlciA9IChzdHJ1Y3QgcG9zaXhfYWNsX3hhdHRyX2hlYWRlciAqKWJ1ZjsK KwloZWFkZXItPmFfdmVyc2lvbiA9IGNwdV90b19sZTMyKFBPU0lYX0FDTF9YQVRUUl9WRVJTSU9O KTsKKworCWVudHJpZXMgPSAoc3RydWN0IHBvc2l4X2FjbF94YXR0cl9lbnRyeSAqKShidWYgKyBz aXplb2YoKmhlYWRlcikpOworCisJZm9yIChpID0gMDsgaSA8IGFjbC0+Y291bnQ7IGkrKykgewor CQllbnRyaWVzW2ldLmVfdGFnID0gY3B1X3RvX2xlMTYoYWNsLT5lbnRyaWVzW2ldLnRhZyk7CisJ CWVudHJpZXNbaV0uZV9wZXJtID0gY3B1X3RvX2xlMTYoYWNsLT5lbnRyaWVzW2ldLnBlcm0pOwor CQllbnRyaWVzW2ldLmVfaWQgPSBjcHVfdG9fbGUzMihhY2wtPmVudHJpZXNbaV0uaWQpOworCX0K KworCXJldCA9IHNldHhhdHRyKHBhdGgsIHhhdHRyX25hbWUsIGJ1Ziwgc2l6ZSwgMCk7CisJZnJl ZShidWYpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGFjbF9hZGRf bW9kZV9lbnRyaWVzKHN0cnVjdCBhY2wgKmFjbCwgbW9kZV90IG1vZGUpCit7CisJYWNsX2FkZF9l bnRyeShhY2wsIEFDTF9VU0VSX09CSiwgKG1vZGUgPj4gNikgJiAwNywgMCk7CisJYWNsX2FkZF9l bnRyeShhY2wsIEFDTF9HUk9VUF9PQkosIChtb2RlID4+IDMpICYgMDcsIDApOworCWFjbF9hZGRf ZW50cnkoYWNsLCBBQ0xfT1RIRVIsIG1vZGUgJiAwNywgMCk7Cit9CisKKy8qCisgKiBTeW50aGVz aXplIGFuIEFDTCBmcm9tIGZpbGUgbW9kZSBiaXRzLgorICogVXNlZCB3aGVuIG5vIHhhdHRyIGV4 aXN0cyBmb3IgYW4gYWNjZXNzIEFDTC4KKyAqLworc3RhdGljIGlubGluZSBzdHJ1Y3QgYWNsICph Y2xfZnJvbV9tb2RlKGNvbnN0IGNoYXIgKnBhdGgpCit7CisJc3RydWN0IGFjbCAqYWNsOworCXN0 cnVjdCBzdGF0IHN0OworCisJaWYgKHN0YXQocGF0aCwgJnN0KSA8IDApCisJCXJldHVybiBOVUxM OworCisJYWNsID0gYWNsX2luaXQoKTsKKwlhY2xfYWRkX21vZGVfZW50cmllcyhhY2wsIHN0LnN0 X21vZGUpOworCisJcmV0dXJuIGFjbDsKK30KKworLyoKKyAqIEdldCBBQ0wgZnJvbSBhIGZpbGUg dXNpbmcgeGF0dHIuCisgKgorICogQWNjZXNzIEFDTHMgZXF1aXZhbGVudCB0byBmaWxlIG1vZGUg bWF5IG5vdCBoYXZlIGEgYmFja2luZyB4YXR0ciBhdCBhbGwuCisgKiBJbiB0aGF0IGNhc2Ugc3lu dGhlc2l6ZSB0aGUgYmFzZSBBQ0wgZnJvbSBzdF9tb2RlIHNvIGNhbGxlcnMgb2JzZXJ2ZSB0aGUK KyAqIHNhbWUgYmVoYXZpb3IgYXMgYWNsX2dldF9maWxlKDMpLgorICovCitzdGF0aWMgaW5saW5l IHN0cnVjdCBhY2wgKmFjbF9nZXRfZmlsZShjb25zdCBjaGFyICpwYXRoLCBpbnQgdHlwZSkKK3sK Kwljb25zdCBjaGFyICp4YXR0cl9uYW1lOworCXNzaXplX3Qgc2l6ZTsKKwlzdHJ1Y3QgYWNsX3hh dHRyICpheDsKKwlzdHJ1Y3QgYWNsICphY2w7CisJaW50IGksIGNvdW50OworCisJeGF0dHJfbmFt ZSA9IGFjbF90eXBlX3RvX25hbWUodHlwZSk7CisJaWYgKCF4YXR0cl9uYW1lKSB7CisJCWVycm5v ID0gRUlOVkFMOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlzaXplID0gZ2V0eGF0dHIocGF0aCwg eGF0dHJfbmFtZSwgTlVMTCwgMCk7CisJaWYgKHNpemUgPCAwKSB7CisJCWlmIChlcnJubyAhPSBF Tk9EQVRBIHx8IHR5cGUgIT0gQUNMX1RZUEVfQUNDRVNTKQorCQkJcmV0dXJuIE5VTEw7CisKKwkJ cmV0dXJuIGFjbF9mcm9tX21vZGUocGF0aCk7CisJfQorCisJLyogSGFuZGxlIHJhY2U6IHhhdHRy IHJlbW92ZWQgYmV0d2VlbiBzaXplIGNoZWNrIGFuZCBhY3R1YWwgcmVhZCAqLworCWlmIChzaXpl ID09IDApCisJCXJldHVybiBhY2xfZnJvbV9tb2RlKHBhdGgpOworCisJYXggPSBtYWxsb2Moc2l6 ZSk7CisJaWYgKCFheCkKKwkJcmV0dXJuIE5VTEw7CisKKwlzaXplID0gZ2V0eGF0dHIocGF0aCwg eGF0dHJfbmFtZSwgYXgsIHNpemUpOworCWlmIChzaXplIDwgMCkgeworCQlmcmVlKGF4KTsKKwkJ LyogSGFuZGxlIHJhY2U6IHhhdHRyIHJlbW92ZWQgYmV0d2VlbiBzaXplIGNoZWNrIGFuZCByZWFk ICovCisJCWlmIChlcnJubyA9PSBFTk9EQVRBICYmIHR5cGUgPT0gQUNMX1RZUEVfQUNDRVNTKQor CQkJcmV0dXJuIGFjbF9mcm9tX21vZGUocGF0aCk7CisJCXJldHVybiBOVUxMOworCX0KKworCWlm IChsZTMyX3RvX2NwdShheC0+aGVhZGVyLmFfdmVyc2lvbikgIT0gUE9TSVhfQUNMX1hBVFRSX1ZF UlNJT04pIHsKKwkJZnJlZShheCk7CisJCWVycm5vID0gRUlOVkFMOworCQlyZXR1cm4gTlVMTDsK Kwl9CisKKwljb3VudCA9IChzaXplIC0gc2l6ZW9mKGF4LT5oZWFkZXIpKSAvCisJCXNpemVvZihz dHJ1Y3QgcG9zaXhfYWNsX3hhdHRyX2VudHJ5KTsKKworCWFjbCA9IGFjbF9pbml0KCk7CisJaWYg KCFhY2wpIHsKKwkJZnJlZShheCk7CisJCXJldHVybiBOVUxMOworCX0KKworCWZvciAoaSA9IDA7 IGkgPCBjb3VudDsgaSsrKSB7CisJCXVpbnQxNl90IHRhZyA9IGxlMTZfdG9fY3B1KGF4LT5lbnRy aWVzW2ldLmVfdGFnKTsKKwkJdWludDE2X3QgcGVybSA9IGxlMTZfdG9fY3B1KGF4LT5lbnRyaWVz W2ldLmVfcGVybSk7CisJCXVpbnQzMl90IGlkID0gbGUzMl90b19jcHUoYXgtPmVudHJpZXNbaV0u ZV9pZCk7CisKKwkJaWYgKGFjbF9hZGRfZW50cnkoYWNsLCB0YWcsIHBlcm0sIGlkKSA8IDApIHsK KwkJCWFjbF9mcmVlKGFjbCk7CisJCQlmcmVlKGF4KTsKKwkJCXJldHVybiBOVUxMOworCQl9CisJ fQorCisJZnJlZShheCk7CisJcmV0dXJuIGFjbDsKK30KKworLyoKKyAqIENoZWNrIGlmIGFuIEFD TCBlbnRyeSBoYXMgYSBzcGVjaWZpYyBwZXJtaXNzaW9uCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50 IGFjbF9lbnRyeV9oYXNfcGVybShzdHJ1Y3QgYWNsX2VudHJ5ICplbnRyeSwgdWludDE2X3QgcGVy bSkKK3sKKwlyZXR1cm4gKGVudHJ5LT5wZXJtICYgcGVybSkgPT0gcGVybTsKK30KKworLyoKKyAq IENoZWNrIGlmIGFuIEFDTCBlbnRyeSBoYXMgYWxsIHJ3eCBwZXJtaXNzaW9ucworICovCitzdGF0 aWMgaW5saW5lIGludCBhY2xfZW50cnlfaGFzX3J3eChzdHJ1Y3QgYWNsX2VudHJ5ICplbnRyeSkK K3sKKwlyZXR1cm4gYWNsX2VudHJ5X2hhc19wZXJtKGVudHJ5LAorCQkJCSAgQUNMX1JFQUQgfCBB Q0xfV1JJVEUgfCBBQ0xfRVhFQ1VURSk7Cit9CisKKy8qCisgKiBGaW5kIGFuIEFDTCBlbnRyeSBi eSB0YWcgdHlwZQorICovCitzdGF0aWMgaW5saW5lIHN0cnVjdCBhY2xfZW50cnkgKmFjbF9maW5k X2VudHJ5KHN0cnVjdCBhY2wgKmFjbCwgdWludDE2X3QgdGFnLAorCQkJCQkgICAgICAgdWludDMy X3QgaWQpCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgYWNsLT5jb3VudDsgaSsrKSB7 CisJCWlmIChhY2wtPmVudHJpZXNbaV0udGFnID09IHRhZykgeworCQkJaWYgKHRhZyA9PSBBQ0xf VVNFUiB8fCB0YWcgPT0gQUNMX0dST1VQKSB7CisJCQkJaWYgKGFjbC0+ZW50cmllc1tpXS5pZCA9 PSBpZCkKKwkJCQkJcmV0dXJuICZhY2wtPmVudHJpZXNbaV07CisJCQl9IGVsc2UgeworCQkJCXJl dHVybiAmYWNsLT5lbnRyaWVzW2ldOworCQkJfQorCQl9CisJfQorCisJcmV0dXJuIE5VTEw7Cit9 CisKKy8qCisgKiBVcGRhdGUgQUNMIG1hc2sgcGVybWlzc2lvbnMKKyAqLworc3RhdGljIGlubGlu ZSBpbnQgYWNsX3NldF9tYXNrX3Blcm1zKHN0cnVjdCBhY2wgKmFjbCwgdWludDE2X3QgcGVybSkK K3sKKwlzdHJ1Y3QgYWNsX2VudHJ5ICptYXNrX2VudHJ5ID0gYWNsX2ZpbmRfZW50cnkoYWNsLCBB Q0xfTUFTSywgMCk7CisKKwlpZiAoIW1hc2tfZW50cnkpIHsKKwkJZXJybm8gPSBFTk9FTlQ7CisJ CXJldHVybiAtMTsKKwl9CisKKwltYXNrX2VudHJ5LT5wZXJtID0gcGVybTsKKwlyZXR1cm4gMDsK K30KKworc3RhdGljIGlubGluZSB2b2lkIGNyZWF0ZV9maWxlX2FzKHVpZF90IHVpZCwgZ2lkX3Qg Z2lkLCBtb2RlX3QgbW9kZSwKKwkJCQkgICBpbnQgdXNlX3VtYXNrLCBtb2RlX3QgbWFzaywgaW50 IGV4cF9lcnJubykKK3sKKwlwaWRfdCBwaWQ7CisKKwlwaWQgPSBTQUZFX0ZPUksoKTsKKwlpZiAo IXBpZCkgeworCQl1aWRfdCBmc3VpZDsKKwkJZ2lkX3QgZnNnaWQ7CisJCXN0cnVjdCB0c3RfY2Fw X3VzZXJfaGVhZGVyIGhkciA9IHsKKwkJCS52ZXJzaW9uID0gMHgyMDA4MDUyMiwKKwkJCS5waWQg PSAwLAorCQl9OworCQlzdHJ1Y3QgdHN0X2NhcF91c2VyX2RhdGEgZGF0YVsyXSA9IHt9OworCisJ CVNBRkVfU0VUR1JPVVBTKDAsIE5VTEwpOworCQlTQUZFX1NFVFJFU0dJRChnaWQsIGdpZCwgZ2lk KTsKKwkJU0FGRV9TRVRSRVNVSUQodWlkLCB1aWQsIHVpZCk7CisKKwkJLyogRHJvcCBhbGwgY2Fw YWJpbGl0aWVzIHRvIGVuc3VyZSBEQUMgY2hlY2tzIGFyZSBlbmZvcmNlZCAqLworCQlpZiAodHN0 X2NhcHNldCgmaGRyLCBkYXRhKSA8IDApCisJCQl0c3RfYnJrKFRCUk9LIHwgVEVSUk5PLCAiY2Fw c2V0IGZhaWxlZCIpOworCisJCS8qCisJCSAqIHNldGZzdWlkKCkvc2V0ZnNnaWQoKSByZXR1cm4g dGhlIHByZXZpb3VzIHZhbHVlLCBub3QgLTEgb24KKwkJICogZmFpbHVyZS4gVmVyaWZ5IHRoZSBl ZmZlY3RpdmUgZmlsZXN5c3RlbSBjcmVkZW50aWFscyBieQorCQkgKiByZWFkaW5nIHRoZW0gYmFj ay4KKwkJICovCisJCXNldGZzdWlkKHVpZCk7CisJCWZzdWlkID0gc2V0ZnN1aWQoKHVpZF90KS0x KTsKKwkJaWYgKGZzdWlkICE9IHVpZCkKKwkJCXRzdF9icmsoVEJST0ssCisJCQkJInNldGZzdWlk IHZlcmlmaWNhdGlvbiBmYWlsZWQsIGV4cGVjdGVkICV1IGdvdCAldSIsCisJCQkJKHVuc2lnbmVk IGludCl1aWQsICh1bnNpZ25lZCBpbnQpZnN1aWQpOworCisJCXNldGZzZ2lkKGdpZCk7CisJCWZz Z2lkID0gc2V0ZnNnaWQoKGdpZF90KS0xKTsKKwkJaWYgKGZzZ2lkICE9IGdpZCkKKwkJCXRzdF9i cmsoVEJST0ssCisJCQkJInNldGZzZ2lkIHZlcmlmaWNhdGlvbiBmYWlsZWQsIGV4cGVjdGVkICV1 IGdvdCAldSIsCisJCQkJKHVuc2lnbmVkIGludClnaWQsICh1bnNpZ25lZCBpbnQpZnNnaWQpOwor CisJCWlmICh1c2VfdW1hc2spCisJCQl1bWFzayhtYXNrKTsKKworCQlpZiAoZXhwX2Vycm5vKSB7 CisJCQlUU1RfRVhQX0ZBSUwyKG9wZW4oVEVTVEZJTEUsIE9fQ1JFQVQgfCBPX1dST05MWSwgbW9k ZSksCisJCQkJICAgICAgZXhwX2Vycm5vLCAib3BlbiglcykiLCBURVNURklMRSk7CisJCX0gZWxz ZSB7CisJCQlUU1RfRVhQX0ZEKG9wZW4oVEVTVEZJTEUsIE9fQ1JFQVQgfCBPX1dST05MWSwgbW9k ZSksCisJCQkJICAgIm9wZW4oJXMpIiwgVEVTVEZJTEUpOworCQkJaWYgKFRTVF9SRVQgPj0gMCkK KwkJCQlTQUZFX0NMT1NFKFRTVF9SRVQpOworCQl9CisKKwkJZXhpdCgwKTsKKwl9CisKKwl0c3Rf cmVhcF9jaGlsZHJlbigpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgdHJ5X2NyZWF0ZV9hcyh1 aWRfdCB1aWQsIGdpZF90IGdpZCwgbW9kZV90IG1vZGUsCisJCQkJICBpbnQgZXhwX2Vycm5vKQor eworCWNyZWF0ZV9maWxlX2FzKHVpZCwgZ2lkLCBtb2RlLCAwLCAwLCBleHBfZXJybm8pOworfQor CitzdGF0aWMgaW5saW5lIHZvaWQgY3JlYXRlX3dpdGhfdW1hc2tfYXModWlkX3QgdWlkLCBnaWRf dCBnaWQsIG1vZGVfdCBtb2RlLAorCQkJCQkgbW9kZV90IG1hc2ssIGludCBleHBfZXJybm8pCit7 CisJY3JlYXRlX2ZpbGVfYXModWlkLCBnaWQsIG1vZGUsIDEsIG1hc2ssIGV4cF9lcnJubyk7Cit9 CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjbGVhbnVwX3Rlc3RfcGF0aHModm9pZCkKK3sKKwlTQUZF X1RSWV9VTkxJTksoVEVTVFNZTUxJTkspOworCVNBRkVfVFJZX1VOTElOSyhURVNURklMRSk7CisJ U0FGRV9UUllfUk1ESVIoVEVTVERJUik7Cit9CisKKyNlbmRpZiAvKiBIQVZFX1NZU19YQVRUUl9I ICovCisKKyNlbmRpZiAvKiBBQ0xfTElCX0ggKi8KZGlmZiAtLWdpdCBhL3Rlc3RjYXNlcy9rZXJu ZWwvZnMvYWNsL2FjbF91c2VyX29iajAxLmMgYi90ZXN0Y2FzZXMva2VybmVsL2ZzL2FjbC9hY2xf dXNlcl9vYmowMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYTQ0MmYx MTMxCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGNhc2VzL2tlcm5lbC9mcy9hY2wvYWNsX3VzZXJf b2JqMDEuYwpAQCAtMCwwICsxLDEyNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ TC0yLjAtb3ItbGF0ZXIKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjYgSUJNCisgKgorICogT3Jp Z2luYWwgc2hlbGwgdGVzdCBieSBLYWkgWmhhbyAobHRjZDNAY24uaWJtLmNvbSkKKyAqIENvbnZl cnRlZCB0byBDIGJ5IFNhY2hpbiBTYW50IDxzYWNoaW5wQGxpbnV4LmlibS5jb20+CisgKi8KKwor LypcCisgKiBUZXN0IEFDTF9VU0VSX09CSiBwZXJtaXNzaW9ucyB1c2luZyBkaXJlY3QgeGF0dHIg bWFuaXB1bGF0aW9uLgorICoKKyAqIFZlcmlmeSB0aGF0IG93bmVyIHBlcm1pc3Npb25zIChBQ0xf VVNFUl9PQkopIGNvcnJlY3RseSBjb250cm9sIGFjY2VzcworICogdG8gZmlsZXMgYW5kIGRpcmVj dG9yaWVzLiBUaGUgdGVzdCB2YWxpZGF0ZXMgdGhhdDoKKyAqIC0gQUNMX1VTRVJfT0JKIHBlcm1p c3Npb25zIGFyZSBhcHBsaWVkIGRpcmVjdGx5IGFzIHRoZSBvd25lciBiaXRzCisgKiAtIFNldHRp bmcgQUNMX1VTRVJfT0JKPXJ3eCB2aWEgOm1hbnBhZ2U6YHNldHhhdHRyKDIpYCBvdmVycmlkZXMg CisgKiAgIGEgcHJldmlvdXMgOm1hbnBhZ2U6YGNobW9kKDIpYCByZXN0cmljdGlvbgorICogLSBP d25lciBwZXJtaXNzaW9ucyB3b3JrIGluZGVwZW5kZW50bHkgb2YgZ3JvdXAgYW5kIG90aGVyIHBl cm1pc3Npb25zCisgKgorICogVGhpcyB0ZXN0IHVzZXMgYXJiaXRyYXJ5IFVJRHMgd2l0aG91dCBj cmVhdGluZyBhY3R1YWwgdXNlcnMsIHRlc3RpbmcKKyAqIG9ubHkgdGhlIGtlcm5lbCBBQ0wgaW1w bGVtZW50YXRpb24uCisgKi8KKworI2luY2x1ZGUgImFjbF9saWIuaCIKKworI2lmZGVmIEhBVkVf U1lTX1hBVFRSX0gKKworI2RlZmluZSBURVNUX1VJRCAxMDAwCisjZGVmaW5lIFRFU1RfR0lEIDEw MDAKKworLyoKKyAqIFRlc3QgcGVybWlzc2lvbiBiaXRzIGRlbnkgYWNjZXNzLgorICogT3duZXIg c2hvdWxkIGJlIGRlbmllZCBmaWxlIGNyZWF0aW9uIHdoZW4gZGlyZWN0b3J5IG1vZGUgaXMgMDU1 NS4KKyAqLworc3RhdGljIHZvaWQgdGVzdF9kZW55X2J5X21vZGUodm9pZCkKK3sKKwl0c3RfcmVz KFRJTkZPLCAiVGVzdGluZyBwZXJtaXNzaW9uIGJpdHMgZGVueSBhY2Nlc3MiKTsKKwlyZXNldF90 ZXN0X3BhdGgoKTsKKworCVNBRkVfQ0hPV04oVEVTVERJUiwgVEVTVF9VSUQsIFRFU1RfR0lEKTsK KwlTQUZFX0NITU9EKFRFU1RESVIsIDA1NTUpOworCisJdHJ5X2NyZWF0ZV9hcyhURVNUX1VJRCwg VEVTVF9HSUQsIDA2NDQsIEVBQ0NFUyk7Cit9CisKKy8qCisgKiBUZXN0IEFDTF9VU0VSX09CSiBn cmFudHMgYWNjZXNzLgorICogU2V0dGluZyBBQ0xfVVNFUl9PQko9cnd4IHNob3VsZCByZXN0b3Jl IG93bmVyIHdyaXRlIHBlcm1pc3Npb24gYW5kCisgKiBhbGxvdyBmaWxlIGNyZWF0aW9uIGFmdGVy IHRoZSByZXN0cmljdGl2ZSBtb2RlIGJhc2VsaW5lLgorICovCitzdGF0aWMgdm9pZCB0ZXN0X2dy YW50X2J5X2FjbCh2b2lkKQoreworCXN0cnVjdCBhY2wgKmFjbDsKKworCXRzdF9yZXMoVElORk8s ICJUZXN0aW5nIEFDTF9VU0VSX09CSiBncmFudHMgYWNjZXNzIik7CisJcmVzZXRfdGVzdF9wYXRo KCk7CisKKwlTQUZFX0NIT1dOKFRFU1RESVIsIFRFU1RfVUlELCBURVNUX0dJRCk7CisJU0FGRV9D SE1PRChURVNURElSLCAwNTU1KTsKKworCWFjbCA9IGFjbF9pbml0KCk7CisKKwlhY2xfYWRkX2Vu dHJ5KGFjbCwgQUNMX1VTRVJfT0JKLAorCQkgICAgICBBQ0xfUkVBRCB8IEFDTF9XUklURSB8IEFD TF9FWEVDVVRFLCAwKTsKKwlhY2xfYWRkX2VudHJ5KGFjbCwgQUNMX0dST1VQX09CSiwgMCwgMCk7 CisJYWNsX2FkZF9lbnRyeShhY2wsIEFDTF9PVEhFUiwgMCwgMCk7CisKKwlpZiAoYWNsX3NldF9m aWxlKFRFU1RESVIsIEFDTF9UWVBFX0FDQ0VTUywgYWNsKSA8IDApIHsKKwkJaWYgKGVycm5vID09 IEVPUE5PVFNVUFApIHsKKwkJCWFjbF9mcmVlKGFjbCk7CisJCQl0c3RfYnJrKFRDT05GIHwgVEVS Uk5PLCAiQUNMIG5vdCBzdXBwb3J0ZWQiKTsKKwkJfQorCQlhY2xfZnJlZShhY2wpOworCQl0c3Rf YnJrKFRCUk9LIHwgVEVSUk5PLCAiQUNMIHNldHVwIGZhaWxlZCIpOworCX0KKworCWFjbF9mcmVl KGFjbCk7CisKKwl0cnlfY3JlYXRlX2FzKFRFU1RfVUlELCBURVNUX0dJRCwgMDY0NCwgMCk7CisK KwljbGVhbnVwX3Rlc3RmaWxlKCk7Cit9CisKK3N0YXRpYyB2b2lkIHJ1bih1bnNpZ25lZCBpbnQg bikKK3sKKwlzd2l0Y2ggKG4pIHsKKwljYXNlIDA6CisJCXRlc3RfZGVueV9ieV9tb2RlKCk7CisJ CWJyZWFrOworCWNhc2UgMToKKwkJdGVzdF9ncmFudF9ieV9hY2woKTsKKwkJYnJlYWs7CisJfQor fQorCitzdGF0aWMgdm9pZCBzZXR1cCh2b2lkKQoreworCXJlc2V0X3Rlc3RfcGF0aCgpOworfQor CitzdGF0aWMgdm9pZCBjbGVhbnVwKHZvaWQpCit7CisJY2xlYW51cF90ZXN0X3BhdGhzKCk7Cit9 CisKK3N0YXRpYyBzdHJ1Y3QgdHN0X3Rlc3QgdGVzdCA9IHsKKwkudGVzdCA9IHJ1biwKKwkudGNu dCA9IDIsCisJLnNldHVwID0gc2V0dXAsCisJLmNsZWFudXAgPSBjbGVhbnVwLAorCS5uZWVkc19y b290ID0gMSwKKwkubW91bnRfZGV2aWNlID0gMSwKKwkubW50cG9pbnQgPSBNTlRQT0lOVCwKKwku Zm9ya3NfY2hpbGQgPSAxLAorCS5maWxlc3lzdGVtcyA9IChzdHJ1Y3QgdHN0X2ZzW10pIHsKKwkJ ey50eXBlID0gImV4dDIiLCAubW50X2RhdGEgPSAiYWNsIn0sCisJCXsudHlwZSA9ICJleHQzIiwg Lm1udF9kYXRhID0gImFjbCJ9LAorCQl7LnR5cGUgPSAiZXh0NCIsIC5tbnRfZGF0YSA9ICJhY2wi fSwKKwkJey50eXBlID0gInhmcyJ9LAorCQl7LnR5cGUgPSAiYnRyZnMifSwKKwkJe30KKwl9Cit9 OworCisjZWxzZQorCVRTVF9URVNUX1RDT05GKCJzeXMveGF0dHIuaCBpcyBub3QgYXZhaWxhYmxl Iik7CisjZW5kaWYKLS0gCjIuMzkuMQoKCi0tIApNYWlsaW5nIGxpc3QgaW5mbzogaHR0cHM6Ly9s aXN0cy5saW51eC5pdC9saXN0aW5mby9sdHAK