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 lists.gnu.org (lists.gnu.org [209.51.188.17]) (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 8D87CCCD196 for ; Tue, 14 Oct 2025 13:30:08 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8f5l-0006IO-Uh; Tue, 14 Oct 2025 09:29:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v8f5j-0006Ct-UD for qemu-devel@nongnu.org; Tue, 14 Oct 2025 09:29:27 -0400 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v8f5e-000872-4d for qemu-devel@nongnu.org; Tue, 14 Oct 2025 09:29:27 -0400 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59E87NKR001613 for ; Tue, 14 Oct 2025 13:29:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= qcppdkim1; bh=roihQeZrO8JuTG2aeERzuqdR/NOogQlPQKqjAHd7kcA=; b=FE WUd+lpYJmDpdC1uDePUiEkmBZqoWdz1K2BQWk9ew796LFm4LhWum2M9kx+rrO6zA T9NXpHWMWAAIVSJkLfcgGXN0DD8in5i2CnWWFrGWdCGERW/CFfeePb0yYXfBTTfB nOUVTR2V3NzIg699JxoLBbEi+jqODSEX/pi09Nt7dE8b+q27rJGmDXR7tNkw36qd BqeaoDPPXGSl5abemkeIoejAjauWY2FWLyuhNNTKQQ3NaVXihP7+ogVKmQTr0Hod ZItxB4+dhRIcJhv341FvniNhdGChNwRR8Jqqfo9BfXuv802L4lZRzFpyTds64aZD CSQJMjOV6HoXrXMb+53w== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 49qfdk8kvd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 14 Oct 2025 13:29:18 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-27eed7bdff0so93907875ad.0 for ; Tue, 14 Oct 2025 06:29:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760448557; x=1761053357; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=roihQeZrO8JuTG2aeERzuqdR/NOogQlPQKqjAHd7kcA=; b=WOirFyRsMQ8LgW2OTSKbqOpgO5sBooIozYWJVZBl1KvWNC/otcDFhdPj6X4qoZOiVI +td+aFqEe7clfIMwhHpFrTrTTIad5/+n9uvqk4icB/mAqOgKMYhbmUEWhHX91/pw4Zvb OfmAbafezs+d8zHqYf8n6M066oYK651SYlPzMSWUu8zfoo5Mjg/tP66sLZWTfdRRdOPB Ct/TJ1R5FVQX1vWxaxXkJ8Ah9whyFbwxGQO7T88xuuzmKbSvrnd3iDSDwlUR57r7AE7A Q5Jj6AtIUuM8G0FBtfRmJtrhfKqmYDYf1P1wyu/L/oQYwAQ2CMvT2mHrUG9/i+9xVVnh J8gw== X-Gm-Message-State: AOJu0YwllH28EP0zGVNyLBRD7IcQwZ8Gd+GYxJeEozR7wCjx5NRk2CPb qoEoog4ZOQMP+Qz/QW21DUOcRiWpihNDN+6ybwYyOo//lpUvY8HnLHDOMZ684V+mhz+9hE0oMAt YAVjLzNr5APYTqT3aRyNaTiOGdQU/XgMDK/tG/hQoFCErC4fOJXBipqWC7aj76g2ZRQ== X-Gm-Gg: ASbGncsK8XEoX2aSjLh/T0fFsI5ExLR2MdsBluPXxg0H0I2Phvk3LBmQ6BvZOExP52J Q5jERXF6wG5Q25xRPqfu3SuQlag8kFrGdBBIcS6U8/9IwXVwZvEvoJEovFnvm0awM3fEB4JVwIz R7K33ENGkhC6/aTi8BpXZXSDx0BtahLUfqltXOkr76ZBGToh2ppvvMp8x0VqupskceF7O/gigHH OL/x/ZIBtOL9hlOg3/bDAs0+8RCK0Kr09jms3YPpUTjyZ8uc348wGkHpJSWfQjWOn9j4NlCYUhi tQya1WtrgM/wRGUToU8JHLnUFBJC6e9e+CkBpHd02IwdvAeh8Q7Us8a4hm+4gfwQ9IfcIuT4ZbN UkOiTqd8Qz7Jb X-Received: by 2002:a17:902:fa0e:b0:28e:cbbd:975f with SMTP id d9443c01a7336-28ecbbd9928mr211852865ad.1.1760448556517; Tue, 14 Oct 2025 06:29:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGgHpD3womp2Ze4ODqQCI6bpVwW027m8ZAp+GEQyM47CKsiJMJJKOla3TLcBeEAkgoEYmRdnw== X-Received: by 2002:a17:902:fa0e:b0:28e:cbbd:975f with SMTP id d9443c01a7336-28ecbbd9928mr211852405ad.1.1760448555655; Tue, 14 Oct 2025 06:29:15 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f07275sm164478125ad.66.2025.10.14.06.29.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 06:29:15 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: brian.cain@oss.qualcomm.com, richard.henderson@linaro.org, philmd@linaro.org, matheus.bernardino@oss.qualcomm.com, ale@rev.ng, anjo@rev.ng, marco.liebel@oss.qualcomm.com, ltaylorsimpson@gmail.com, alex.bennee@linaro.org, quic_mburton@quicinc.com, sid.manning@oss.qualcomm.com, =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= , Laurent Vivier Subject: [PATCH v3 1/4] linux-user/hexagon: Fix sigcontext Date: Tue, 14 Oct 2025 06:29:04 -0700 Message-Id: <20251014132907.3268743-2-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251014132907.3268743-1-brian.cain@oss.qualcomm.com> References: <20251014132907.3268743-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Proofpoint-ORIG-GUID: 50dLqW7vX4xcR3GFHAF8peAgUhcaqoLB X-Authority-Analysis: v=2.4 cv=MrNfKmae c=1 sm=1 tr=0 ts=68ee502e cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Z3Pf_jetAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=xdaGQENHFgu-g-JqPgkA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 a=yHs3G5endCJexrGSZ2Xt:22 X-Proofpoint-GUID: 50dLqW7vX4xcR3GFHAF8peAgUhcaqoLB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDExMDAxOCBTYWx0ZWRfX3qpLMSALBstb V8R/q0BLA3A2SARtjr7NUKfKxlmS3SIrM2K5KiF4WKXQ1uRHiPlc4D88iQmIQ185V/pRkx+HMQb t/x/oSv38RhFCSL6DCT+ZQTDTu+o3PCKVwt5OgBCM054QJHbIfTGL4HDkNVV3O7tgA6ZoIr9v3t X9aYjITRsee56R6DjigZ4zNy2KOL/cXYoNQsNe5qsRxCvN6gOofUCnrUuDyqpQuUQ0lkH4I6W3a 4eqwBv4D7WKX209PZu2Hqfn84JRIIXQL/u/nW/HPvOr+xSNWXlJU91jS22zHxFvryUQ6IrGktex yddV9v4KBkX6d3f3MgZ4hAuTv/Dh+KS68oH2lkycfNt958sDgx3WgcsYbyiwn+c6LkfZXnCoZ58 4fjYx348xtziKF8mMLnaGF4J6NcFsw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-14_02,2025-10-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 clxscore=1015 adultscore=0 phishscore=0 impostorscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510110018 Received-SPF: pass client-ip=205.220.180.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0b-0031df01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org SW4gb3JkZXIgdG8gY29ycmVzcG9uZCB3aXRoIHRoZSBrZXJuZWwsIHdlJ3ZlIG5vdyAoMSkgbW92 ZWQgdGhlCnByZWRzW10gdG8gdGhlIHJpZ2h0IG9mZnNldCBhbmQgY29tYmluZWQgdGhlIHJlcHJl c2VudGF0aW9uIGFzIGEgc2luZ2xlCnVsb25nICJwM18wIiwgKDIpLCBhZGRlZCB0aGUgY3N7MCwx fSByZWdpc3RlcnMsICgzKSBhZGRlZCBhIHBhZCBmb3IgNDgKd29yZHMsICg0KSBhZGRlZCB0aGUg dXNlciByZWdzIHN0cnVjdHVyZSB0byBhbiA4LWJ5dGUgYWxpZ25lZAp0YXJnZXRfc2lnY29udGV4 dCBzdHJ1Y3R1cmUuCgpDby1hdXRob3JlZC1ieTogQWxleCBSw7hubmUgUGV0ZXJzZW4gPGFsZXhA YWxleHJwLmNvbT4KUmV2aWV3ZWQtYnk6IFRheWxvciBTaW1wc29uIDxsdGF5bG9yc2ltcHNvbkBn bWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEJyaWFuIENhaW4gPGJyaWFuLmNhaW5Ab3NzLnF1YWxj b21tLmNvbT4KLS0tCiBsaW51eC11c2VyL2hleGFnb24vc2lnbmFsLmMgfCAyMDkgKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTE3IGluc2VydGlv bnMoKyksIDkyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpbnV4LXVzZXIvaGV4YWdvbi9z aWduYWwuYyBiL2xpbnV4LXVzZXIvaGV4YWdvbi9zaWduYWwuYwppbmRleCA0OTJiNTFmMTU1Li4y ODQ3OTUyMjE2IDEwMDY0NAotLS0gYS9saW51eC11c2VyL2hleGFnb24vc2lnbmFsLmMKKysrIGIv bGludXgtdXNlci9oZXhhZ29uL3NpZ25hbC5jCkBAIC0yMyw3ICsyMyw3IEBACiAjaW5jbHVkZSAi c2lnbmFsLWNvbW1vbi5oIgogI2luY2x1ZGUgImxpbnV4LXVzZXIvdHJhY2UuaCIKIAotc3RydWN0 IHRhcmdldF9zaWdjb250ZXh0IHsKK3N0cnVjdCB0YXJnZXRfdXNlcl9yZWdzX3N0cnVjdCB7CiAg ICAgdGFyZ2V0X3Vsb25nIHIwLCAgcjEsICByMiwgIHIzOwogICAgIHRhcmdldF91bG9uZyByNCwg IHI1LCAgcjYsICByNzsKICAgICB0YXJnZXRfdWxvbmcgcjgsICByOSwgcjEwLCByMTE7CkBAIC0z OSwxNCArMzksMjMgQEAgc3RydWN0IHRhcmdldF9zaWdjb250ZXh0IHsKICAgICB0YXJnZXRfdWxv bmcgbTA7CiAgICAgdGFyZ2V0X3Vsb25nIG0xOwogICAgIHRhcmdldF91bG9uZyB1c3I7CisgICAg dGFyZ2V0X3Vsb25nIHAzXzA7CiAgICAgdGFyZ2V0X3Vsb25nIGdwOwogICAgIHRhcmdldF91bG9u ZyB1Z3A7CiAgICAgdGFyZ2V0X3Vsb25nIHBjOwogICAgIHRhcmdldF91bG9uZyBjYXVzZTsKICAg ICB0YXJnZXRfdWxvbmcgYmFkdmE7Ci0gICAgdGFyZ2V0X3Vsb25nIHByZWRbTlVNX1BSRUdTXTsK KyAgICB0YXJnZXRfdWxvbmcgY3MwOworICAgIHRhcmdldF91bG9uZyBjczE7CisgICAgdGFyZ2V0 X3Vsb25nIHBhZDE7IC8qIHBhZCB0byA0OCB3b3JkcyAqLwogfTsKIAorUUVNVV9CVUlMRF9CVUdf T04oc2l6ZW9mKHN0cnVjdCB0YXJnZXRfdXNlcl9yZWdzX3N0cnVjdCkgIT0gNDggKiA0KTsKKwor c3RydWN0IHRhcmdldF9zaWdjb250ZXh0IHsKKyAgICBzdHJ1Y3QgdGFyZ2V0X3VzZXJfcmVnc19z dHJ1Y3Qgc2NfcmVnczsKK30gUUVNVV9BTElHTkVEKDgpOworCiBzdHJ1Y3QgdGFyZ2V0X3Vjb250 ZXh0IHsKICAgICB1bnNpZ25lZCBsb25nIHVjX2ZsYWdzOwogICAgIHRhcmdldF91bG9uZyB1Y19s aW5rOyAvKiB0YXJnZXQgcG9pbnRlciAqLwpAQCAtNzYsNTMgKzg1LDYzIEBAIHN0YXRpYyBhYmlf dWxvbmcgZ2V0X3NpZ2ZyYW1lKHN0cnVjdCB0YXJnZXRfc2lnYWN0aW9uICprYSwKIAogc3RhdGlj IHZvaWQgc2V0dXBfc2lnY29udGV4dChzdHJ1Y3QgdGFyZ2V0X3NpZ2NvbnRleHQgKnNjLCBDUFVI ZXhhZ29uU3RhdGUgKmVudikKIHsKLSAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjAw XSwgJnNjLT5yMCk7Ci0gICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwMV0sICZzYy0+ cjEpOwotICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMDJdLCAmc2MtPnIyKTsKLSAg ICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjAzXSwgJnNjLT5yMyk7Ci0gICAgX19wdXRf dXNlcihlbnYtPmdwcltIRVhfUkVHX1IwNF0sICZzYy0+cjQpOwotICAgIF9fcHV0X3VzZXIoZW52 LT5ncHJbSEVYX1JFR19SMDVdLCAmc2MtPnI1KTsKLSAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hF WF9SRUdfUjA2XSwgJnNjLT5yNik7Ci0gICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1Iw N10sICZzYy0+cjcpOwotICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMDhdLCAmc2Mt PnI4KTsKLSAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjA5XSwgJnNjLT5yOSk7Ci0g ICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IxMF0sICZzYy0+cjEwKTsKLSAgICBfX3B1 dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjExXSwgJnNjLT5yMTEpOwotICAgIF9fcHV0X3VzZXIo ZW52LT5ncHJbSEVYX1JFR19SMTJdLCAmc2MtPnIxMik7Ci0gICAgX19wdXRfdXNlcihlbnYtPmdw cltIRVhfUkVHX1IxM10sICZzYy0+cjEzKTsKLSAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9S RUdfUjE0XSwgJnNjLT5yMTQpOwotICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMTVd LCAmc2MtPnIxNSk7Ci0gICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IxNl0sICZzYy0+ cjE2KTsKLSAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjE3XSwgJnNjLT5yMTcpOwot ICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMThdLCAmc2MtPnIxOCk7Ci0gICAgX19w dXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IxOV0sICZzYy0+cjE5KTsKLSAgICBfX3B1dF91c2Vy KGVudi0+Z3ByW0hFWF9SRUdfUjIwXSwgJnNjLT5yMjApOwotICAgIF9fcHV0X3VzZXIoZW52LT5n cHJbSEVYX1JFR19SMjFdLCAmc2MtPnIyMSk7Ci0gICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhf UkVHX1IyMl0sICZzYy0+cjIyKTsKLSAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjIz XSwgJnNjLT5yMjMpOwotICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMjRdLCAmc2Mt PnIyNCk7Ci0gICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IyNV0sICZzYy0+cjI1KTsK LSAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjI2XSwgJnNjLT5yMjYpOwotICAgIF9f cHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMjddLCAmc2MtPnIyNyk7Ci0gICAgX19wdXRfdXNl cihlbnYtPmdwcltIRVhfUkVHX1IyOF0sICZzYy0+cjI4KTsKLSAgICBfX3B1dF91c2VyKGVudi0+ Z3ByW0hFWF9SRUdfUjI5XSwgJnNjLT5yMjkpOwotICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVY X1JFR19SMzBdLCAmc2MtPnIzMCk7Ci0gICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1Iz MV0sICZzYy0+cjMxKTsKLSAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfU0EwXSwgJnNj LT5zYTApOwotICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19MQzBdLCAmc2MtPmxjMCk7 Ci0gICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1NBMV0sICZzYy0+c2ExKTsKLSAgICBf X3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfTEMxXSwgJnNjLT5sYzEpOwotICAgIF9fcHV0X3Vz ZXIoZW52LT5ncHJbSEVYX1JFR19NMF0sICZzYy0+bTApOwotICAgIF9fcHV0X3VzZXIoZW52LT5n cHJbSEVYX1JFR19NMV0sICZzYy0+bTEpOwotICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JF R19VU1JdLCAmc2MtPnVzcik7Ci0gICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX0dQXSwg JnNjLT5ncCk7Ci0gICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1VHUF0sICZzYy0+dWdw KTsKLSAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUENdLCAmc2MtPnBjKTsKKyAgICB0 YXJnZXRfdWxvbmcgcHJlZHMgPSAwOwogCi0gICAgaW50IGk7Ci0gICAgZm9yIChpID0gMDsgaSA8 IE5VTV9QUkVHUzsgaSsrKSB7Ci0gICAgICAgIF9fcHV0X3VzZXIoZW52LT5wcmVkW2ldLCAmKHNj LT5wcmVkW2ldKSk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwMF0sICZzYy0+ c2NfcmVncy5yMCk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwMV0sICZzYy0+ c2NfcmVncy5yMSk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwMl0sICZzYy0+ c2NfcmVncy5yMik7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwM10sICZzYy0+ c2NfcmVncy5yMyk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwNF0sICZzYy0+ c2NfcmVncy5yNCk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwNV0sICZzYy0+ c2NfcmVncy5yNSk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwNl0sICZzYy0+ c2NfcmVncy5yNik7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwN10sICZzYy0+ c2NfcmVncy5yNyk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwOF0sICZzYy0+ c2NfcmVncy5yOCk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwOV0sICZzYy0+ c2NfcmVncy5yOSk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IxMF0sICZzYy0+ c2NfcmVncy5yMTApOworICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMTFdLCAmc2Mt PnNjX3JlZ3MucjExKTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjEyXSwgJnNj LT5zY19yZWdzLnIxMik7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IxM10sICZz Yy0+c2NfcmVncy5yMTMpOworICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMTRdLCAm c2MtPnNjX3JlZ3MucjE0KTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjE1XSwg JnNjLT5zY19yZWdzLnIxNSk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IxNl0s ICZzYy0+c2NfcmVncy5yMTYpOworICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMTdd LCAmc2MtPnNjX3JlZ3MucjE3KTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjE4 XSwgJnNjLT5zY19yZWdzLnIxOCk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1Ix OV0sICZzYy0+c2NfcmVncy5yMTkpOworICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19S MjBdLCAmc2MtPnNjX3JlZ3MucjIwKTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9SRUdf UjIxXSwgJnNjLT5zY19yZWdzLnIyMSk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhfUkVH X1IyMl0sICZzYy0+c2NfcmVncy5yMjIpOworICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVYX1JF R19SMjNdLCAmc2MtPnNjX3JlZ3MucjIzKTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hFWF9S RUdfUjI0XSwgJnNjLT5zY19yZWdzLnIyNCk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltIRVhf UkVHX1IyNV0sICZzYy0+c2NfcmVncy5yMjUpOworICAgIF9fcHV0X3VzZXIoZW52LT5ncHJbSEVY X1JFR19SMjZdLCAmc2MtPnNjX3JlZ3MucjI2KTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3ByW0hF WF9SRUdfUjI3XSwgJnNjLT5zY19yZWdzLnIyNyk7CisgICAgX19wdXRfdXNlcihlbnYtPmdwcltI RVhfUkVHX1IyOF0sICZzYy0+c2NfcmVncy5yMjgpOworICAgIF9fcHV0X3VzZXIoZW52LT5ncHJb SEVYX1JFR19SMjldLCAmc2MtPnNjX3JlZ3MucjI5KTsKKyAgICBfX3B1dF91c2VyKGVudi0+Z3By W0hFWF9SRUdfUjMwXSwgJnNjLT5zY19yZWdzLnIzMCk7CisgICAgX19wdXRfdXNlcihlbnYtPmdw cltIRVhfUkVHX1IzMV0sICZzYy0+c2NfcmVncy5yMzEpOworICAgIF9fcHV0X3VzZXIoZW52LT5n cHJbSEVYX1JFR19TQTBdLCAmc2MtPnNjX3JlZ3Muc2EwKTsKKyAgICBfX3B1dF91c2VyKGVudi0+ Z3ByW0hFWF9SRUdfTEMwXSwgJnNjLT5zY19yZWdzLmxjMCk7CisgICAgX19wdXRfdXNlcihlbnYt PmdwcltIRVhfUkVHX1NBMV0sICZzYy0+c2NfcmVncy5zYTEpOworICAgIF9fcHV0X3VzZXIoZW52 LT5ncHJbSEVYX1JFR19MQzFdLCAmc2MtPnNjX3JlZ3MubGMxKTsKKyAgICBfX3B1dF91c2VyKGVu di0+Z3ByW0hFWF9SRUdfTTBdLCAmc2MtPnNjX3JlZ3MubTApOworICAgIF9fcHV0X3VzZXIoZW52 LT5ncHJbSEVYX1JFR19NMV0sICZzYy0+c2NfcmVncy5tMSk7CisgICAgX19wdXRfdXNlcihlbnYt PmdwcltIRVhfUkVHX1VTUl0sICZzYy0+c2NfcmVncy51c3IpOworICAgIF9fcHV0X3VzZXIoZW52 LT5ncHJbSEVYX1JFR19HUF0sICZzYy0+c2NfcmVncy5ncCk7CisgICAgX19wdXRfdXNlcihlbnYt PmdwcltIRVhfUkVHX1VHUF0sICZzYy0+c2NfcmVncy51Z3ApOworICAgIF9fcHV0X3VzZXIoZW52 LT5ncHJbSEVYX1JFR19QQ10sICZzYy0+c2NfcmVncy5wYyk7CisKKyAgICAvKiBDb25zb2xpZGF0 ZSBwcmVkaWNhdGVzIGludG8gcDNfMCAqLworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTlVNX1BS RUdTOyBpKyspIHsKKyAgICAgICAgcHJlZHMgfD0gKGVudi0+cHJlZFtpXSAmIDB4ZmYpIDw8IChp ICogOCk7CiAgICAgfQorICAgIF9fcHV0X3VzZXIocHJlZHMsICZzYy0+c2NfcmVncy5wM18wKTsK KworICAgIC8qIFNldCBjYXVzZSBhbmQgYmFkdmEgdG8gMCAtIHRoZXNlIGFyZSBzZXQgYnkga2Vy bmVsIG9uIGV4Y2VwdGlvbnMgKi8KKyAgICBfX3B1dF91c2VyKDAsICZzYy0+c2NfcmVncy5jYXVz ZSk7CisgICAgX19wdXRfdXNlcigwLCAmc2MtPnNjX3JlZ3MuYmFkdmEpOworCisgICAgX19wdXRf dXNlcihlbnYtPmdwcltIRVhfUkVHX0NTMF0sICZzYy0+c2NfcmVncy5jczApOworICAgIF9fcHV0 X3VzZXIoZW52LT5ncHJbSEVYX1JFR19DUzFdLCAmc2MtPnNjX3JlZ3MuY3MxKTsKIH0KIAogc3Rh dGljIHZvaWQgc2V0dXBfdWNvbnRleHQoc3RydWN0IHRhcmdldF91Y29udGV4dCAqdWMsCkBAIC0x OTIsNTMgKzIxMSw1OSBAQCBiYWRmcmFtZToKIHN0YXRpYyB2b2lkIHJlc3RvcmVfc2lnY29udGV4 dChDUFVIZXhhZ29uU3RhdGUgKmVudiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdGFyZ2V0X3NpZ2NvbnRleHQgKnNjKQogewotICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJb SEVYX1JFR19SMDBdLCAmc2MtPnIwKTsKLSAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdf UjAxXSwgJnNjLT5yMSk7Ci0gICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwMl0sICZz Yy0+cjIpOwotICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMDNdLCAmc2MtPnIzKTsK LSAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjA0XSwgJnNjLT5yNCk7Ci0gICAgX19n ZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IwNV0sICZzYy0+cjUpOwotICAgIF9fZ2V0X3VzZXIo ZW52LT5ncHJbSEVYX1JFR19SMDZdLCAmc2MtPnI2KTsKLSAgICBfX2dldF91c2VyKGVudi0+Z3By W0hFWF9SRUdfUjA3XSwgJnNjLT5yNyk7Ci0gICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVH X1IwOF0sICZzYy0+cjgpOwotICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMDldLCAm c2MtPnI5KTsKLSAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjEwXSwgJnNjLT5yMTAp OwotICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMTFdLCAmc2MtPnIxMSk7Ci0gICAg X19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IxMl0sICZzYy0+cjEyKTsKLSAgICBfX2dldF91 c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjEzXSwgJnNjLT5yMTMpOwotICAgIF9fZ2V0X3VzZXIoZW52 LT5ncHJbSEVYX1JFR19SMTRdLCAmc2MtPnIxNCk7Ci0gICAgX19nZXRfdXNlcihlbnYtPmdwcltI RVhfUkVHX1IxNV0sICZzYy0+cjE1KTsKLSAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdf UjE2XSwgJnNjLT5yMTYpOwotICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMTddLCAm c2MtPnIxNyk7Ci0gICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IxOF0sICZzYy0+cjE4 KTsKLSAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjE5XSwgJnNjLT5yMTkpOwotICAg IF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMjBdLCAmc2MtPnIyMCk7Ci0gICAgX19nZXRf dXNlcihlbnYtPmdwcltIRVhfUkVHX1IyMV0sICZzYy0+cjIxKTsKLSAgICBfX2dldF91c2VyKGVu di0+Z3ByW0hFWF9SRUdfUjIyXSwgJnNjLT5yMjIpOwotICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJb SEVYX1JFR19SMjNdLCAmc2MtPnIyMyk7Ci0gICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVH X1IyNF0sICZzYy0+cjI0KTsKLSAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjI1XSwg JnNjLT5yMjUpOwotICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMjZdLCAmc2MtPnIy Nik7Ci0gICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1IyN10sICZzYy0+cjI3KTsKLSAg ICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjI4XSwgJnNjLT5yMjgpOwotICAgIF9fZ2V0 X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMjldLCAmc2MtPnIyOSk7Ci0gICAgX19nZXRfdXNlcihl bnYtPmdwcltIRVhfUkVHX1IzMF0sICZzYy0+cjMwKTsKLSAgICBfX2dldF91c2VyKGVudi0+Z3By W0hFWF9SRUdfUjMxXSwgJnNjLT5yMzEpOwotICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JF R19TQTBdLCAmc2MtPnNhMCk7Ci0gICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX0xDMF0s ICZzYy0+bGMwKTsKLSAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfU0ExXSwgJnNjLT5z YTEpOwotICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19MQzFdLCAmc2MtPmxjMSk7Ci0g ICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX00wXSwgJnNjLT5tMCk7Ci0gICAgX19nZXRf dXNlcihlbnYtPmdwcltIRVhfUkVHX00xXSwgJnNjLT5tMSk7Ci0gICAgX19nZXRfdXNlcihlbnYt PmdwcltIRVhfUkVHX1VTUl0sICZzYy0+dXNyKTsKLSAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hF WF9SRUdfR1BdLCAmc2MtPmdwKTsKLSAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfVUdQ XSwgJnNjLT51Z3ApOwotICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19QQ10sICZzYy0+ cGMpOworICAgIHRhcmdldF91bG9uZyBwcmVkczsKIAotICAgIGludCBpOwotICAgIGZvciAoaSA9 IDA7IGkgPCBOVU1fUFJFR1M7IGkrKykgewotICAgICAgICBfX2dldF91c2VyKGVudi0+cHJlZFtp XSwgJihzYy0+cHJlZFtpXSkpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMDBd LCAmc2MtPnNjX3JlZ3MucjApOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMDFd LCAmc2MtPnNjX3JlZ3MucjEpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMDJd LCAmc2MtPnNjX3JlZ3MucjIpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMDNd LCAmc2MtPnNjX3JlZ3MucjMpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMDRd LCAmc2MtPnNjX3JlZ3MucjQpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMDVd LCAmc2MtPnNjX3JlZ3MucjUpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMDZd LCAmc2MtPnNjX3JlZ3MucjYpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMDdd LCAmc2MtPnNjX3JlZ3MucjcpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMDhd LCAmc2MtPnNjX3JlZ3MucjgpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMDld LCAmc2MtPnNjX3JlZ3MucjkpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19SMTBd LCAmc2MtPnNjX3JlZ3MucjEwKTsKKyAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdfUjEx XSwgJnNjLT5zY19yZWdzLnIxMSk7CisgICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX1Ix Ml0sICZzYy0+c2NfcmVncy5yMTIpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19S MTNdLCAmc2MtPnNjX3JlZ3MucjEzKTsKKyAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9SRUdf UjE0XSwgJnNjLT5zY19yZWdzLnIxNCk7CisgICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVH X1IxNV0sICZzYy0+c2NfcmVncy5yMTUpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JF R19SMTZdLCAmc2MtPnNjX3JlZ3MucjE2KTsKKyAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hFWF9S RUdfUjE3XSwgJnNjLT5zY19yZWdzLnIxNyk7CisgICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhf UkVHX1IxOF0sICZzYy0+c2NfcmVncy5yMTgpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVY X1JFR19SMTldLCAmc2MtPnNjX3JlZ3MucjE5KTsKKyAgICBfX2dldF91c2VyKGVudi0+Z3ByW0hF WF9SRUdfUjIwXSwgJnNjLT5zY19yZWdzLnIyMCk7CisgICAgX19nZXRfdXNlcihlbnYtPmdwcltI RVhfUkVHX1IyMV0sICZzYy0+c2NfcmVncy5yMjEpOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJb SEVYX1JFR19SMjJdLCAmc2MtPnNjX3JlZ3MucjIyKTsKKyAgICBfX2dldF91c2VyKGVudi0+Z3By W0hFWF9SRUdfUjIzXSwgJnNjLT5zY19yZWdzLnIyMyk7CisgICAgX19nZXRfdXNlcihlbnYtPmdw cltIRVhfUkVHX1IyNF0sICZzYy0+c2NfcmVncy5yMjQpOworICAgIF9fZ2V0X3VzZXIoZW52LT5n cHJbSEVYX1JFR19SMjVdLCAmc2MtPnNjX3JlZ3MucjI1KTsKKyAgICBfX2dldF91c2VyKGVudi0+ Z3ByW0hFWF9SRUdfUjI2XSwgJnNjLT5zY19yZWdzLnIyNik7CisgICAgX19nZXRfdXNlcihlbnYt PmdwcltIRVhfUkVHX1IyN10sICZzYy0+c2NfcmVncy5yMjcpOworICAgIF9fZ2V0X3VzZXIoZW52 LT5ncHJbSEVYX1JFR19SMjhdLCAmc2MtPnNjX3JlZ3MucjI4KTsKKyAgICBfX2dldF91c2VyKGVu di0+Z3ByW0hFWF9SRUdfUjI5XSwgJnNjLT5zY19yZWdzLnIyOSk7CisgICAgX19nZXRfdXNlcihl bnYtPmdwcltIRVhfUkVHX1IzMF0sICZzYy0+c2NfcmVncy5yMzApOworICAgIF9fZ2V0X3VzZXIo ZW52LT5ncHJbSEVYX1JFR19SMzFdLCAmc2MtPnNjX3JlZ3MucjMxKTsKKyAgICBfX2dldF91c2Vy KGVudi0+Z3ByW0hFWF9SRUdfU0EwXSwgJnNjLT5zY19yZWdzLnNhMCk7CisgICAgX19nZXRfdXNl cihlbnYtPmdwcltIRVhfUkVHX0xDMF0sICZzYy0+c2NfcmVncy5sYzApOworICAgIF9fZ2V0X3Vz ZXIoZW52LT5ncHJbSEVYX1JFR19TQTFdLCAmc2MtPnNjX3JlZ3Muc2ExKTsKKyAgICBfX2dldF91 c2VyKGVudi0+Z3ByW0hFWF9SRUdfTEMxXSwgJnNjLT5zY19yZWdzLmxjMSk7CisgICAgX19nZXRf dXNlcihlbnYtPmdwcltIRVhfUkVHX00wXSwgJnNjLT5zY19yZWdzLm0wKTsKKyAgICBfX2dldF91 c2VyKGVudi0+Z3ByW0hFWF9SRUdfTTFdLCAmc2MtPnNjX3JlZ3MubTEpOworICAgIF9fZ2V0X3Vz ZXIoZW52LT5ncHJbSEVYX1JFR19VU1JdLCAmc2MtPnNjX3JlZ3MudXNyKTsKKyAgICBfX2dldF91 c2VyKGVudi0+Z3ByW0hFWF9SRUdfR1BdLCAmc2MtPnNjX3JlZ3MuZ3ApOworICAgIF9fZ2V0X3Vz ZXIoZW52LT5ncHJbSEVYX1JFR19VR1BdLCAmc2MtPnNjX3JlZ3MudWdwKTsKKyAgICBfX2dldF91 c2VyKGVudi0+Z3ByW0hFWF9SRUdfUENdLCAmc2MtPnNjX3JlZ3MucGMpOworCisgICAgLyogUmVz dG9yZSBwcmVkaWNhdGVzIGZyb20gcDNfMCAqLworICAgIF9fZ2V0X3VzZXIocHJlZHMsICZzYy0+ c2NfcmVncy5wM18wKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE5VTV9QUkVHUzsgaSsrKSB7 CisgICAgICAgIGVudi0+cHJlZFtpXSA9IChwcmVkcyA+PiAoaSAqIDgpKSAmIDB4ZmY7CiAgICAg fQorCisgICAgX19nZXRfdXNlcihlbnYtPmdwcltIRVhfUkVHX0NTMF0sICZzYy0+c2NfcmVncy5j czApOworICAgIF9fZ2V0X3VzZXIoZW52LT5ncHJbSEVYX1JFR19DUzFdLCAmc2MtPnNjX3JlZ3Mu Y3MxKTsKIH0KIAogc3RhdGljIHZvaWQgcmVzdG9yZV91Y29udGV4dChDUFVIZXhhZ29uU3RhdGUg KmVudiwgc3RydWN0IHRhcmdldF91Y29udGV4dCAqdWMpCi0tIAoyLjM0LjEKCg==