From nobody Sat Feb 7 11:05:15 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A8A05EB64DB for ; Wed, 14 Jun 2023 22:30:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236697AbjFNWaf (ORCPT ); Wed, 14 Jun 2023 18:30:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60920 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236445AbjFNWab (ORCPT ); Wed, 14 Jun 2023 18:30:31 -0400 Received: from mail-qt1-x834.google.com (mail-qt1-x834.google.com [IPv6:2607:f8b0:4864:20::834]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BEEE92128 for ; Wed, 14 Jun 2023 15:30:30 -0700 (PDT) Received: by mail-qt1-x834.google.com with SMTP id d75a77b69052e-3f9b2b7109dso22436241cf.0 for ; Wed, 14 Jun 2023 15:30:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686781830; x=1689373830; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=OKre5lx93OS68asz2lxTR1h/Hm2i2Vx/EPW9kiojq8g=; b=GUXXyJ2L8Hfq7id2x0tenjNMbZStKVuZQLxIxfXH8V3z15J+A9chEk/aRXlQSK0gy5 yFKFtvpy0Rqsh9HXzm2pLu/gdKXUWOsHOBKiuqs4WMG1BL44u2AzTOfE2u2QY0vM1/0j ShUxdbejNv6tuMmNFLoQV5Hm/gufRLvAYHelM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686781830; x=1689373830; h=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=OKre5lx93OS68asz2lxTR1h/Hm2i2Vx/EPW9kiojq8g=; b=cFmgwCdnlIU3ORIiizENV5wQqVvR8VzsPEt3KYd0J+e4RiJP4iJnpuNwfpVCeaxjd0 nELyH7KpyZ7iFAzc92JKzl+2YGE6vcE44Dg19Plt+zv0hbfR2Sh6qUkou8jS9uUxaHpA BqvFzLKQElyeCLCzMgVZGeTLW25gxBUJakfWiz2jiXVCE3EFld9bq+kOqtakiOtFtpHv /J2xEkFxC1F3UNaveY6FkR5FhpbRD4N2lDW4jeAKfWDJME8rqiHnxlBXjsaLtU6/1UKo CgIR0KSHaopJK1XP4RhRRQRG4HfIo9ieB8mAuUsUqYgXmac2M1rYO3G1iVhr3LFk/i2C CGwQ== X-Gm-Message-State: AC+VfDx0AO3iDUX89svAGpdm1tQtC0qAxLdj/IibhOsuM5fD7EjUq7AM 80lyJvZ/PZ5sU+LwTe+A4kswqA== X-Google-Smtp-Source: ACHHUZ78Cc+628LnBCBmgLU3IprLYaDk8Ky3B5lSfhqEeheZBoz1lisIuMiWure6ag85jstdsGbLeA== X-Received: by 2002:ac8:57ce:0:b0:3f5:1f9c:5b28 with SMTP id w14-20020ac857ce000000b003f51f9c5b28mr4260250qta.42.1686781829857; Wed, 14 Jun 2023 15:30:29 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d3-20020ac85443000000b003ef2db16e72sm5419360qtq.94.2023.06.14.15.30.27 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Jun 2023 15:30:29 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, christian.koenig@amd.com, simon.horman@corigine.com, Justin Chen Subject: [PATCH net-next v7 01/11] dt-bindings: net: brcm,unimac-mdio: Add asp-v2.0 Date: Wed, 14 Jun 2023 15:30:10 -0700 Message-Id: <1686781820-832-2-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> References: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000cc740105fe1e7fcf" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --000000000000cc740105fe1e7fcf MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlIEFTUCAyLjAgRXRoZXJuZXQgY29udHJvbGxlciB1c2VzIGEgYnJjbSB1bmltYWMuCgpSZXZp ZXdlZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3JtYW5AY29yaWdpbmUuY29tPgpBY2tlZC1i eTogQ29ub3IgRG9vbGV5IDxjb25vci5kb29sZXlAbWljcm9jaGlwLmNvbT4KU2lnbmVkLW9mZi1i eTogRmxvcmlhbiBGYWluZWxsaSA8Zmxvcmlhbi5mYWluZWxsaUBicm9hZGNvbS5jb20+ClNpZ25l ZC1vZmYtYnk6IEp1c3RpbiBDaGVuIDxqdXN0aW4uY2hlbkBicm9hZGNvbS5jb20+Ci0tLQogRG9j dW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9icmNtLHVuaW1hYy1tZGlvLnlhbWwg fCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvRG9j dW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9icmNtLHVuaW1hYy1tZGlvLnlhbWwg Yi89CkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYnJjbSx1bmltYWMtbWRp by55YW1sCmluZGV4IDBiZTQyNmVlMWU0NC4uNjY4NDgxMGZjYmYwIDEwMDY0NAotLS0gYS9Eb2N1 bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2JyY20sdW5pbWFjLW1kaW8ueWFtbAor KysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2JyY20sdW5pbWFjLW1k aW8ueWFtbApAQCAtMjIsNiArMjIsOCBAQCBwcm9wZXJ0aWVzOgogICAgICAgLSBicmNtLGdlbmV0 LW1kaW8tdjMKICAgICAgIC0gYnJjbSxnZW5ldC1tZGlvLXY0CiAgICAgICAtIGJyY20sZ2VuZXQt bWRpby12NQorICAgICAgLSBicmNtLGFzcC12Mi4wLW1kaW8KKyAgICAgIC0gYnJjbSxhc3AtdjIu MS1tZGlvCiAgICAgICAtIGJyY20sdW5pbWFjLW1kaW8KPTIwCiAgIHJlZzoKLS09MjAKMi43LjQK --000000000000cc740105fe1e7fcf Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEINAcq15A6mFf9q6u2xJbqVsioTkozB6uouzx A9tu0tHlMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNDIy MzAzMFowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQCoSXpdkIRr7aDSI90Kpa3JiTPkbGcmssHWhmK9Z5OBFoOZA0flcPOY GHTOuSlQuWlqG7vgDjMono+TQdD+sIs2DZbFek9ChLOUq8L3OKAe4wDJVYckzNsWt/ZRnDS4qkag pbDWSSBrRyPHLpSTjWJc4u/QB3I74i3PnGvO+hD5TFXPXYOP5ldgYWMaDFQVw6TN06GDXMYljqlP bVRs9xUlrXmWOv815lJcJPJhYp4ek77CtrMjjzFZZxf09WwYpJT+UeLf36oMikY2daUK8c4uZ4Cz H5q20/Qc3Kg61a5YUk63di/Yj9BMi3sAlK16HrYA0L1EBAgqC1wTxkwPjVN8 --000000000000cc740105fe1e7fcf-- From nobody Sat Feb 7 11:05:15 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D6C5FEB64D9 for ; Wed, 14 Jun 2023 22:30:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236763AbjFNWak (ORCPT ); Wed, 14 Jun 2023 18:30:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60956 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236680AbjFNWae (ORCPT ); Wed, 14 Jun 2023 18:30:34 -0400 Received: from mail-qt1-x82b.google.com (mail-qt1-x82b.google.com [IPv6:2607:f8b0:4864:20::82b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 84D29268B for ; Wed, 14 Jun 2023 15:30:33 -0700 (PDT) Received: by mail-qt1-x82b.google.com with SMTP id d75a77b69052e-3f6a494810fso22409881cf.1 for ; Wed, 14 Jun 2023 15:30:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686781832; x=1689373832; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=I/D5KYojReiaxlseT7Klb4C3OpJJu5tOAy6NMk789pg=; b=OD9P8d9WikPrvITlThL9u2ZMvlbDPsJDcYQUKV17fAE6/Nb4YQrrMiSP4iDPLy93tI 6BaNtzOHE6GVUG3nmpNoeME7Rdgy+CGt2CsnnKHvRhfVNyZyZKGE2bBcacSERm4DUEPb OqdlLavBKkFuvLWdqoOEWTx47/W+fbN+HLkpA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686781832; x=1689373832; h=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=I/D5KYojReiaxlseT7Klb4C3OpJJu5tOAy6NMk789pg=; b=L/hZ6ccZNdMIXsJh3Ks2a2Sd8qb1lE4xHuTaTtG/KdoCNP1arUP+mDhqO2qd0qvENi Wa88KU00O8oThnDwJyIyq2YQjMZ0epnbxn/mRXSGaYP5x5akjjY0WXUMBGXg38C8ac5R CFcOsauWMn6cXJLsB9n8jO7+6sfXFLB6cnoGz10xwphnJrZHKcgz31oNM6/MoEA6R5Na HjXwcW5Av+e2aj6d2L8qQcigWE1Bv5oRc65n94Xl3bi1he2w1JER6brLd/IsORegkvAR DilAj9LyF/uSGquWkzuXL1qCq8XxWH+httknNbijSTdH+PAHm5QUNQwXtiQpwoZ1shB0 C9Pw== X-Gm-Message-State: AC+VfDxAPNV/+UTRdE3onpBP82WJGEfDJEUkcO3/IngUFh9JuvdvvPa/ SsUfrIUKMCrcOV+7lBQ9Pw0ZdQ== X-Google-Smtp-Source: ACHHUZ7v063BTLyvvIoHUKMWjeLKY+wPu/OQfmAhk11WuU4i1RXDC2anwpK3C3U0rdcPS946pQ+8NA== X-Received: by 2002:a05:622a:4b:b0:3f9:c38b:44b7 with SMTP id y11-20020a05622a004b00b003f9c38b44b7mr3413534qtw.50.1686781832544; Wed, 14 Jun 2023 15:30:32 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d3-20020ac85443000000b003ef2db16e72sm5419360qtq.94.2023.06.14.15.30.30 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Jun 2023 15:30:32 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, christian.koenig@amd.com, simon.horman@corigine.com, Justin Chen Subject: [PATCH net-next v7 02/11] dt-bindings: net: Brcm ASP 2.0 Ethernet controller Date: Wed, 14 Jun 2023 15:30:11 -0700 Message-Id: <1686781820-832-3-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> References: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000f6240405fe1e7fad" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --000000000000f6240405fe1e7fad MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RnJvbTogRmxvcmlhbiBGYWluZWxsaSA8Zmxvcmlhbi5mYWluZWxsaUBicm9hZGNvbS5jb20+CgpB ZGQgYSBiaW5kaW5nIGRvY3VtZW50IGZvciB0aGUgQnJvYWRjb20gQVNQIDIuMCBFdGhlcm5ldApj b250cm9sbGVyLgoKUmV2aWV3ZWQtYnk6IENvbm9yIERvb2xleSA8Y29ub3IuZG9vbGV5QG1pY3Jv Y2hpcC5jb20+ClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGZsb3JpYW4uZmFpbmVs bGlAYnJvYWRjb20uY29tPgpTaWduZWQtb2ZmLWJ5OiBKdXN0aW4gQ2hlbiA8anVzdGluLmNoZW5A YnJvYWRjb20uY29tPgotLS0KdjcKCS0gQWRkZWQgInVuZXZhbHVhdGVkUHJvcGVydGllczogRmFs c2UiCgp2NgoJLSBNb3ZlZCBjb21wYXRpYmxlIHRvIHRoZSB0b3AKCS0gQ2hhbmdlZCBxdW90ZXMg dG8gYmUgY29uc2lzdGVudAoJLSBFbGFib3JhdGVkIG9uIGJyY20sY2hhbm5lbCBkZXNjcmlwdGlv bgoKdjUKCS0gRml4IGNvbXBhdGlibGUgc3RyaW5nIHlhbWwgZm9ybWF0IHRvIHByb3Blcmx5IGNh cHR1cmUgd2hhdCB3ZSB3YW50Cgp2NAogICAgICAgIC0gQWRqdXN0IGNvbXBhdGlibGUgc3RyaW5n IGV4YW1wbGUgdG8gcmVmZXJlbmNlIFNvQyBhbmQgSFcgdmVyCgp2MwogICAgICAgIC0gTWlub3Ig Zm9ybWF0dGluZyBpc3N1ZXMKICAgICAgICAtIENoYW5nZSBjaGFubmVsIHByb3AgdG8gYnJjbSxj aGFubmVsIGZvciB2ZW5kb3Igc3BlY2lmaWMgZm9ybWF0CiAgICAgICAgLSBSZW1vdmVkIHJlZHVu ZGFudCB2Mi4wIGZyb20gY29tcGF0IHN0cmluZwogICAgICAgIC0gRml4IHJhbmdlcyBmaWVsZAoK djIKICAgICAgICAtIE1pbm9yIGZvcm1hdHRpbmcgaXNzdWVzCgogLi4uL2RldmljZXRyZWUvYmlu ZGluZ3MvbmV0L2JyY20sYXNwLXYyLjAueWFtbCAgICAgfCAxNTUgKysrKysrKysrKysrKysrKys9 CisrKysKIDEgZmlsZSBjaGFuZ2VkLCAxNTUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAw NjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYnJjbSxhc3AtdjIuMC55 YW1sCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9i cmNtLGFzcC12Mi4wLnlhbWwgYi9Eb2M9CnVtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9u ZXQvYnJjbSxhc3AtdjIuMC55YW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uYWEzMTYyYzc0ODMzCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZp Y2V0cmVlL2JpbmRpbmdzL25ldC9icmNtLGFzcC12Mi4wLnlhbWwKQEAgLTAsMCArMSwxNTUgQEAK KyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IChHUEwtMi4wLW9ubHkgT1IgQlNELTItQ2xhdXNl KQorJVlBTUwgMS4yCistLS0KKyRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0 L2JyY20sYXNwLXYyLjAueWFtbCMKKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRh LXNjaGVtYXMvY29yZS55YW1sIworCit0aXRsZTogQnJvYWRjb20gQVNQIDIuMCBFdGhlcm5ldCBj b250cm9sbGVyCisKK21haW50YWluZXJzOgorICAtIEp1c3RpbiBDaGVuIDxqdXN0aW4uY2hlbkBi cm9hZGNvbS5jb20+CisgIC0gRmxvcmlhbiBGYWluZWxsaSA8Zmxvcmlhbi5mYWluZWxsaUBicm9h ZGNvbS5jb20+CisKK2Rlc2NyaXB0aW9uOiBCcm9hZGNvbSBFdGhlcm5ldCBjb250cm9sbGVyIGZp cnN0IGludHJvZHVjZWQgd2l0aCA3MjE2NQorCitwcm9wZXJ0aWVzOgorICBjb21wYXRpYmxlOgor ICAgIG9uZU9mOgorICAgICAgLSBpdGVtczoKKyAgICAgICAgICAtIGVudW06CisgICAgICAgICAg ICAgIC0gYnJjbSxiY203NDE2NS1hc3AKKyAgICAgICAgICAtIGNvbnN0OiBicmNtLGFzcC12Mi4x CisgICAgICAtIGl0ZW1zOgorICAgICAgICAgIC0gZW51bToKKyAgICAgICAgICAgICAgLSBicmNt LGJjbTcyMTY1LWFzcAorICAgICAgICAgIC0gY29uc3Q6IGJyY20sYXNwLXYyLjAKKworICAiI2Fk ZHJlc3MtY2VsbHMiOgorICAgIGNvbnN0OiAxCisgICIjc2l6ZS1jZWxscyI6CisgICAgY29uc3Q6 IDEKKworICByZWc6CisgICAgbWF4SXRlbXM6IDEKKworICByYW5nZXM6IHRydWUKKworICBpbnRl cnJ1cHRzOgorICAgIG1pbkl0ZW1zOiAxCisgICAgaXRlbXM6CisgICAgICAtIGRlc2NyaXB0aW9u OiBSWC9UWCBpbnRlcnJ1cHQKKyAgICAgIC0gZGVzY3JpcHRpb246IFBvcnQgMCBXYWtlLW9uLUxB TgorICAgICAgLSBkZXNjcmlwdGlvbjogUG9ydCAxIFdha2Utb24tTEFOCisKKyAgY2xvY2tzOgor ICAgIG1heEl0ZW1zOiAxCisKKyAgZXRoZXJuZXQtcG9ydHM6CisgICAgdHlwZTogb2JqZWN0Cisg ICAgcHJvcGVydGllczoKKyAgICAgICIjYWRkcmVzcy1jZWxscyI6CisgICAgICAgIGNvbnN0OiAx CisgICAgICAiI3NpemUtY2VsbHMiOgorICAgICAgICBjb25zdDogMAorCisgICAgcGF0dGVyblBy b3BlcnRpZXM6CisgICAgICAiXnBvcnRAWzAtOV0rJCI6CisgICAgICAgIHR5cGU6IG9iamVjdAor CisgICAgICAgICRyZWY6IGV0aGVybmV0LWNvbnRyb2xsZXIueWFtbCMKKworICAgICAgICB1bmV2 YWx1YXRlZFByb3BlcnRpZXM6IGZhbHNlCisKKyAgICAgICAgcHJvcGVydGllczoKKyAgICAgICAg ICByZWc6CisgICAgICAgICAgICBtYXhJdGVtczogMQorICAgICAgICAgICAgZGVzY3JpcHRpb246 IFBvcnQgbnVtYmVyCisKKyAgICAgICAgICBicmNtLGNoYW5uZWw6CisgICAgICAgICAgICAkcmVm OiAvc2NoZW1hcy90eXBlcy55YW1sIy9kZWZpbml0aW9ucy91aW50MzIKKyAgICAgICAgICAgIGRl c2NyaXB0aW9uOiB8CisgICAgICAgICAgICAgIEFTUCBDaGFubmVsIE51bWJlcgorCisgICAgICAg ICAgICAgIFRoZSBkZXBhY2tldGl6ZXIgY2hhbm5lbCB0aGF0IGNvbnN1bWVzIHBhY2tldHMgZnJv bQorICAgICAgICAgICAgICB0aGUgdW5pbWFjL3BvcnQuCisKKyAgICAgICAgcmVxdWlyZWQ6Cisg ICAgICAgICAgLSByZWcKKyAgICAgICAgICAtIGJyY20sY2hhbm5lbAorCisgICAgYWRkaXRpb25h bFByb3BlcnRpZXM6IGZhbHNlCisKK3BhdHRlcm5Qcm9wZXJ0aWVzOgorICAiXm1kaW9AWzAtOWEt Zl0rJCI6CisgICAgdHlwZTogb2JqZWN0CisgICAgJHJlZjogYnJjbSx1bmltYWMtbWRpby55YW1s CisKKyAgICBkZXNjcmlwdGlvbjoKKyAgICAgIEFTUCBpbnRlcm5hbCBVbmlNQUMgTURJTyBidXMK KworcmVxdWlyZWQ6CisgIC0gY29tcGF0aWJsZQorICAtIHJlZworICAtIGludGVycnVwdHMKKyAg LSBjbG9ja3MKKyAgLSByYW5nZXMKKworYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCisKK2V4 YW1wbGVzOgorICAtIHwKKyAgICAjaW5jbHVkZSA8ZHQtYmluZGluZ3MvaW50ZXJydXB0LWNvbnRy b2xsZXIvaXJxLmg+CisgICAgI2luY2x1ZGUgPGR0LWJpbmRpbmdzL2ludGVycnVwdC1jb250cm9s bGVyL2FybS1naWMuaD4KKworICAgIGV0aGVybmV0QDljMDAwMDAgeworICAgICAgICBjb21wYXRp YmxlID0zRCAiYnJjbSxiY203MjE2NS1hc3AiLCAiYnJjbSxhc3AtdjIuMCI7CisgICAgICAgIHJl ZyA9M0QgPDB4OWMwMDAwMCAweDFmZmYxND47CisgICAgICAgIGludGVycnVwdHMgPTNEIDxHSUNf U1BJIDUxIElSUV9UWVBFX0xFVkVMX0hJR0g+OworICAgICAgICByYW5nZXMgPTNEIDwweDAgMHg5 YzAwMDAwIDB4MWZmZjE0PjsKKyAgICAgICAgY2xvY2tzID0zRCA8JnNjbWkgMTQ+OworICAgICAg ICAjYWRkcmVzcy1jZWxscyA9M0QgPDE+OworICAgICAgICAjc2l6ZS1jZWxscyA9M0QgPDE+Owor CisgICAgICAgIG1kaW9AYzYxNCB7CisgICAgICAgICAgICBjb21wYXRpYmxlID0zRCAiYnJjbSxh c3AtdjIuMC1tZGlvIjsKKyAgICAgICAgICAgIHJlZyA9M0QgPDB4YzYxNCAweDg+OworICAgICAg ICAgICAgcmVnLW5hbWVzID0zRCAibWRpbyI7CisgICAgICAgICAgICAjYWRkcmVzcy1jZWxscyA9 M0QgPDE+OworICAgICAgICAgICAgI3NpemUtY2VsbHMgPTNEIDwwPjsKKworICAgICAgICAgICAg cGh5MDogZXRoZXJuZXQtcGh5QDEgeworICAgICAgICAgICAgICAgIHJlZyA9M0QgPDE+OworICAg ICAgICAgICAgfTsKKyAgICAgICB9OworCisgICAgICAgIG1kaW9AY2UxNCB7CisgICAgICAgICAg ICBjb21wYXRpYmxlID0zRCAiYnJjbSxhc3AtdjIuMC1tZGlvIjsKKyAgICAgICAgICAgIHJlZyA9 M0QgPDB4Y2UxNCAweDg+OworICAgICAgICAgICAgcmVnLW5hbWVzID0zRCAibWRpbyI7CisgICAg ICAgICAgICAjYWRkcmVzcy1jZWxscyA9M0QgPDE+OworICAgICAgICAgICAgI3NpemUtY2VsbHMg PTNEIDwwPjsKKworICAgICAgICAgICAgcGh5MTogZXRoZXJuZXQtcGh5QDEgeworICAgICAgICAg ICAgICAgIHJlZyA9M0QgPDE+OworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAg ICBldGhlcm5ldC1wb3J0cyB7CisgICAgICAgICAgICAjYWRkcmVzcy1jZWxscyA9M0QgPDE+Owor ICAgICAgICAgICAgI3NpemUtY2VsbHMgPTNEIDwwPjsKKworICAgICAgICAgICAgcG9ydEAwIHsK KyAgICAgICAgICAgICAgICByZWcgPTNEIDwwPjsKKyAgICAgICAgICAgICAgICBicmNtLGNoYW5u ZWwgPTNEIDw4PjsKKyAgICAgICAgICAgICAgICBwaHktbW9kZSA9M0QgInJnbWlpIjsKKyAgICAg ICAgICAgICAgICBwaHktaGFuZGxlID0zRCA8JnBoeTA+OworICAgICAgICAgICAgfTsKKworICAg ICAgICAgICAgcG9ydEAxIHsKKyAgICAgICAgICAgICAgICByZWcgPTNEIDwxPjsKKyAgICAgICAg ICAgICAgICBicmNtLGNoYW5uZWwgPTNEIDw5PjsKKyAgICAgICAgICAgICAgICBwaHktbW9kZSA9 M0QgInJnbWlpIjsKKyAgICAgICAgICAgICAgICBwaHktaGFuZGxlID0zRCA8JnBoeTE+OworICAg ICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICB9OwotLT0yMAoyLjcuNAo= --000000000000f6240405fe1e7fad Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIKOegA0YxXA/8wWNvS6nAeuueXoPtEI1WN+J 1esFfaZvMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNDIy MzAzMlowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQBjRYfHL6wpwus141R70PwoaQShL+Pr5o26RXCGhCsoyW7GgLj1jsTd IBmyZs1kL8J+ThnANS4tqqx0JqyMEF3mt7bMNeJfVGzOnMWUEpjbLWpLeOhyB3YnRFJKnLBLnmt4 9mID7Ci20HWR7wNo2wjMCE6mVpgyCA04b5XCQFJ2LPrkgjjYR8OrFAR8qDnPW2lxahLLGCKy82vM BEbHyeRNEzGs7ua5tkvHTxBnJL2TUPoTGxosih1pmNwv3C26FSm4DEbLFQbk1UrrXUyZXLoZaqsH dFj9mQIv0tJLo76Q3Jq4lauartND6bQ8h63NRLBY1Y71Kq4bFEVtQ2079XC2 --000000000000f6240405fe1e7fad-- From nobody Sat Feb 7 11:05:16 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 58A2AEB64D8 for ; Wed, 14 Jun 2023 22:30:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236842AbjFNWav (ORCPT ); Wed, 14 Jun 2023 18:30:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32936 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236798AbjFNWar (ORCPT ); Wed, 14 Jun 2023 18:30:47 -0400 Received: from mail-qt1-x830.google.com (mail-qt1-x830.google.com [IPv6:2607:f8b0:4864:20::830]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0FE1726A0 for ; Wed, 14 Jun 2023 15:30:37 -0700 (PDT) Received: by mail-qt1-x830.google.com with SMTP id d75a77b69052e-3f9dc03029eso22368641cf.3 for ; Wed, 14 Jun 2023 15:30:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686781836; x=1689373836; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=hHSBs3FMpCBNVeNRkUCS7JYiiBPkON59xtbdhwEZH5s=; b=Ykrbq+5CGFKE0i6UgR3D5JAMwHbfX42T5f+OMgmymlctIfjoFZjeSJXG0pG60v8hK+ HWHA3Wz4PrLRQnxA1FBkl6LM8R1Kt0oW5XRqi3xkXwLJErlRODt66iP1bqvBIMrPppDr LyzqtdAx2fHNdcdCZxuQ2GZYMWXBJjiIat0E4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686781836; x=1689373836; h=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=hHSBs3FMpCBNVeNRkUCS7JYiiBPkON59xtbdhwEZH5s=; b=Di+qaI1cizCtezHIAfLkURtxvVanaXXvJXUMT1tlv1t+EWBQe0GT0kXob0mOpqrguG SLlQ6BtoWwUUI4Ecpg1ybHwHK8/sUdxwoaIZ3COarChW8JMNOO3kcBNWZLVHHSujmB92 pNExH/o6cukGi4Q2GKtHR0z35HVfU19ABymLaSNEk1SQUYSeT7+oX1a76gK7O5nVdJzJ +M2eZAZMro2etvok9LbLJe9vInbjLnuZPDl653iUqjBPu7wd7vtRd3k7XzUY5QQD0DPA i80yHdEyaBvdjkpgN1tpFKRZUClHX2K1H5V0foaSc6VjobS4xDtWWU+vKgyNDskWPdXN tKyg== X-Gm-Message-State: AC+VfDxLedDx/rMpL5zMzhAVhq3Zi346k5cAOZU6UyX5VqLP0AaaTHvp HGPQAXEZN57MnlXvYMUe8Nbeow== X-Google-Smtp-Source: ACHHUZ50YUPEuYEEIjm3QKNLwO1JLJTSNslBoHcY8z5xi58wGZHSHplLwLE82k2p8rQkATZFYF7FRg== X-Received: by 2002:ac8:7f81:0:b0:3ec:47d5:ec65 with SMTP id z1-20020ac87f81000000b003ec47d5ec65mr3102082qtj.60.1686781835604; Wed, 14 Jun 2023 15:30:35 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d3-20020ac85443000000b003ef2db16e72sm5419360qtq.94.2023.06.14.15.30.32 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Jun 2023 15:30:35 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, christian.koenig@amd.com, simon.horman@corigine.com, Justin Chen Subject: [PATCH net-next v7 03/11] net: bcmasp: Add support for ASP2.0 Ethernet controller Date: Wed, 14 Jun 2023 15:30:12 -0700 Message-Id: <1686781820-832-4-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> References: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000002c488705fe1e8038" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --0000000000002c488705fe1e8038 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIHRoZSBCcm9hZGNvbSBBU1AgMi4wIEV0aGVybmV0IGNvbnRyb2xsZXIg d2hpY2ggaXMgZmlyc3QKaW50cm9kdWNlZCB3aXRoIDcyMTY1LiBUaGlzIGNvbnRyb2xsZXIgZmVh dHVyZXMgdHdvIGRpc3RpbmN0IEV0aGVybmV0CnBvcnRzIHRoYXQgY2FuIGJlIGluZGVwZW5kZW50 bHkgb3BlcmF0ZWQuCgpSZXZpZXdlZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3JtYW5AY29y aWdpbmUuY29tPgpTaWduZWQtb2ZmLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmbG9yaWFuLmZhaW5l bGxpQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogSnVzdGluIENoZW4gPGp1c3Rpbi5jaGVu QGJyb2FkY29tLmNvbT4KLS0tCnY3CgktIEZpeGVkIGxlYWtpbmcgcG9ydHNfbm9kZSBkZXZpY2Ug bm9kZS4KCS0gU3BsaXQgb3V0IHRvIHNtYWxsZXIgY29tbWl0cwoKdjYKCS0gRml4ZWQgYSByZXNl cnZlZCBtYWMgZmlsdGVyIGluZGV4aW5nIGVycm9yCgktIFJlbW92ZWQgdHhfbG9jawoJLSBTaW1w bGlmaWVkIHR4X3RpbWVvdXQgaG9vawoJLSBSZW1vdmVkIGdldF9zdGF0cwoJLSBGaXhlZCBwaHkg aW9jdGwKCS0gRml4ZWQgZGV2IC0+IG5kZXYgdHlwbwoJLSBGaXhlZCBzZXRfd29sIGRvdWJsZSBk aXNhYmxlCgp2NQoJLSBSZW1vdmUgdW5uZWNlc3NhcnkgcGFyZW50aGVzaXMKCS0gVXNlIGJvb2wg Zm9yIGJjbWFzcF9uZXRmaWx0X2NoZWNrX2R1cCgpCgp2NAogICAgICAgIC0gQWRkcmVzcyBzcGFy c2Ugd2FybmluZ3MKICAgICAgICAtIEZpeCBvbmUgbW9yZSByZXZlcnNlIHhtYXMgdHJlZSB2aW9s YXRpb24KICAgICAgICAtIEltcHJvdmUgZXJyb3IgbG9naWMgZm9yIGJjbWFzcF9uZXRmaWx0X2dl dF9yZWdfb2Zmc2V0KCkKCS0gUmVtb3ZlIGlubGluZXMKCnYzCiAgICAgICAgLSBGaXggbG9naWMg ZXJyb3Igd2l0aCBuZXQgc3RhdHMgd2hlcmUgc29tZSBzdGF0cyB3ZXJlIG1pc3NpbmcKICAgICAg ICAtIEdlbmVyYWwgY2xlYW4gdXAgYWRkcmVzc2luZyBmb3JtYXR0aW5nL3NwZWxsaW5nL2NvbnNp c3RlbmN5CiAgICAgICAgLSBVc2UgZGV2X2Vycl9wcm9iZSB0byBzYXZlIGEgZmV3IExvQ3MKICAg ICAgICAtIFVzZSBwdXRfdW5hbGlnbmVkIHdoZW4gdXBkYXRpbmcgbmV0IHN0YXRzCgp2MgogICAg ICAgIC0gUmVwbGFjZSBhIGNvdXBsZSBmdW5jdGlvbnMgd2l0aCBoZWxwZXIgZnVuY3Rpb25zCiAg ICAgICAgLSBGaXggYSBmZXcgV29MIGlzc3VlcwoKIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL0tjb25maWcgICAgICAgICAgICAgIHwgICAxMSArCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9NYWtlZmlsZSAgICAgICAgICAgICB8ICAgIDEgKwogZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYXNwMi9NYWtlZmlsZSAgICAgICAgfCAgICAyICsKIGRyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMgICAgICAgIHwgIDcyNyArKysrKysrKysrKwog ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3AuaCAgICAgICAgfCAgNTA0 ICsrKysrKysrCiAuLi4vbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2V0aHRvb2wu YyAgICB8ICAgNDAgKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3Bf aW50Zi5jICAgfCAxMzYzICsrKysrKysrKysrKysrKys9CisrKysKIC4uLi9uZXQvZXRoZXJuZXQv YnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zl9kZWZzLmggIHwgIDE5NiArKysKIDggZmlsZXMgY2hh bmdlZCwgMjg0NCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQv ZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5oCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfZXRodG9v bC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNw Mi9iY21hc3BfaW50Zi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zl9kZWZzLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYj0Kcm9h ZGNvbS9LY29uZmlnCmluZGV4IDk0ODU4NmJmMWI1Yi4uZDQxNjYxNDExNDVkIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2Jyb2FkY29tL0tjb25maWcKQEAgLTI1NSw0ICsyNTUsMTUgQEAgY29uZmlnIEJO WFRfSFdNT04KIAkgIFNheSBZIGlmIHlvdSB3YW50IHRvIGV4cG9zZSB0aGUgdGhlcm1hbCBzZW5z b3IgZGF0YSBvbiBOZXRYdHJlbWUtQy9FCiAJICBkZXZpY2VzLCB2aWEgdGhlIGh3bW9uIHN5c2Zz IGludGVyZmFjZS4KPTIwCitjb25maWcgQkNNQVNQCisJdHJpc3RhdGUgIkJyb2FkY29tIEFTUCAy LjAgRXRoZXJuZXQgc3VwcG9ydCIKKwlkZWZhdWx0IEFSQ0hfQlJDTVNUQgorCWRlcGVuZHMgb24g T0YKKwlzZWxlY3QgTUlJCisJc2VsZWN0IFBIWUxJQgorCXNlbGVjdCBNRElPX0JDTV9VTklNQUMK KwloZWxwCisJICBUaGlzIGNvbmZpZ3VyYXRpb24gZW5hYmxlcyB0aGUgQnJvYWRjb20gQVNQIDIu MCBFdGhlcm5ldCBjb250cm9sbGVyCisJICBkcml2ZXIgd2hpY2ggaXMgcHJlc2VudCBpbiBCcm9h ZGNvbSBTVEIgU29DcyBzdWNoIGFzIDcyMTY1LgorCiBlbmRpZiAjIE5FVF9WRU5ET1JfQlJPQURD T00KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL01ha2VmaWxlIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvPQpicm9hZGNvbS9NYWtlZmlsZQppbmRleCAwZGRmYjViNWQ1 M2MuLmJhYzVjYjZhZDBjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vTWFrZWZpbGUK QEAgLTE3LDMgKzE3LDQgQEAgb2JqLSQoQ09ORklHX0JHTUFDX0JDTUEpICs9M0QgYmdtYWMtYmNt YS5vIGJnbWFjLWJjbWEtbWRpPQpvLm8KIG9iai0kKENPTkZJR19CR01BQ19QTEFURk9STSkgKz0z RCBiZ21hYy1wbGF0Zm9ybS5vCiBvYmotJChDT05GSUdfU1lTVEVNUE9SVCkgKz0zRCBiY21zeXNw b3J0Lm8KIG9iai0kKENPTkZJR19CTlhUKSArPTNEIGJueHQvCitvYmotJChDT05GSUdfQkNNQVNQ KSArPTNEIGFzcDIvCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9h c3AyL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvZXRoZT0Kcm5ldC9icm9hZGNvbS9hc3AyL01ha2Vm aWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZTA3NTUwMzE1Zjgz Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9N YWtlZmlsZQpAQCAtMCwwICsxLDIgQEAKK29iai0kKENPTkZJR19CQ01BU1ApICs9M0QgYmNtLWFz cC5vCitiY20tYXNwLW9ianMgOj0zRCBiY21hc3AubyBiY21hc3BfaW50Zi5vIGJjbWFzcF9ldGh0 b29sLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNt YXNwLmMgYi9kcml2ZXJzL25ldC9ldGhlPQpybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41ZGJkOWZjZGQyM2YKLS0tIC9k ZXYvbnVsbAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5j CkBAIC0wLDAgKzEsNzI3IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAor LyoKKyAqIEJyb2FkY29tIFNUQiBBU1AgMi4wIERyaXZlcgorICoKKyAqIENvcHlyaWdodCAoYykg MjAyMyBCcm9hZGNvbQorICovCisjaW5jbHVkZSA8bGludXgvZXRoZXJkZXZpY2UuaD4KKyNpbmNs dWRlIDxsaW51eC9pZl92bGFuLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUg PGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUg PGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2lu Y2x1ZGUgPGxpbnV4L29mLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfYWRkcmVzcy5oPgorI2luY2x1 ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisKKyNpbmNs dWRlICJiY21hc3AuaCIKKyNpbmNsdWRlICJiY21hc3BfaW50Zl9kZWZzLmgiCisKK3N0YXRpYyB2 b2lkIF9pbnRyMl9tYXNrX2NsZWFyKHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiwgdTMyIG1hc2sp Cit7CisJaW50cjJfY29yZV93bChwcml2LCBtYXNrLCBBU1BfSU5UUjJfTUFTS19DTEVBUik7CisJ cHJpdi0+aXJxX21hc2sgJj0zRCB+bWFzazsKK30KKworc3RhdGljIHZvaWQgX2ludHIyX21hc2tf c2V0KHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiwgdTMyIG1hc2spCit7CisJaW50cjJfY29yZV93 bChwcml2LCBtYXNrLCBBU1BfSU5UUjJfTUFTS19TRVQpOworCXByaXYtPmlycV9tYXNrIHw9M0Qg bWFzazsKK30KKwordm9pZCBiY21hc3BfZW5hYmxlX3R4X2lycShzdHJ1Y3QgYmNtYXNwX2ludGYg KmludGYsIGludCBlbikKK3sKKwlzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYgPTNEIGludGYtPnBh cmVudDsKKworCWlmIChlbikKKwkJX2ludHIyX21hc2tfY2xlYXIocHJpdiwgQVNQX0lOVFIyX1RY X0RFU0MoaW50Zi0+Y2hhbm5lbCkpOworCWVsc2UKKwkJX2ludHIyX21hc2tfc2V0KHByaXYsIEFT UF9JTlRSMl9UWF9ERVNDKGludGYtPmNoYW5uZWwpKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGJj bWFzcF9lbmFibGVfdHhfaXJxKTsKKwordm9pZCBiY21hc3BfZW5hYmxlX3J4X2lycShzdHJ1Y3Qg YmNtYXNwX2ludGYgKmludGYsIGludCBlbikKK3sKKwlzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYg PTNEIGludGYtPnBhcmVudDsKKworCWlmIChlbikKKwkJX2ludHIyX21hc2tfY2xlYXIocHJpdiwg QVNQX0lOVFIyX1JYX0VDSChpbnRmLT5jaGFubmVsKSk7CisJZWxzZQorCQlfaW50cjJfbWFza19z ZXQocHJpdiwgQVNQX0lOVFIyX1JYX0VDSChpbnRmLT5jaGFubmVsKSk7Cit9CitFWFBPUlRfU1lN Qk9MX0dQTChiY21hc3BfZW5hYmxlX3J4X2lycSk7CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9pbnRy Ml9tYXNrX3NldF9hbGwoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2KQoreworCV9pbnRyMl9tYXNr X3NldChwcml2LCAweGZmZmZmZmZmKTsKKwlwcml2LT5pcnFfbWFzayA9M0QgMHhmZmZmZmZmZjsK K30KKworc3RhdGljIHZvaWQgYmNtYXNwX2ludHIyX2NsZWFyX2FsbChzdHJ1Y3QgYmNtYXNwX3By aXYgKnByaXYpCit7CisJaW50cjJfY29yZV93bChwcml2LCAweGZmZmZmZmZmLCBBU1BfSU5UUjJf Q0xFQVIpOworfQorCitzdGF0aWMgdm9pZCBiY21hc3BfaW50cjJfaGFuZGxpbmcoc3RydWN0IGJj bWFzcF9pbnRmICppbnRmLCB1MzIgc3RhdHVzKQoreworCWlmIChzdGF0dXMgJiBBU1BfSU5UUjJf UlhfRUNIKGludGYtPmNoYW5uZWwpKSB7CisJCWlmIChsaWtlbHkobmFwaV9zY2hlZHVsZV9wcmVw KCZpbnRmLT5yeF9uYXBpKSkpIHsKKwkJCWJjbWFzcF9lbmFibGVfcnhfaXJxKGludGYsIDApOwor CQkJX19uYXBpX3NjaGVkdWxlX2lycW9mZigmaW50Zi0+cnhfbmFwaSk7CisJCX0KKwl9CisKKwlp ZiAoc3RhdHVzICYgQVNQX0lOVFIyX1RYX0RFU0MoaW50Zi0+Y2hhbm5lbCkpIHsKKwkJaWYgKGxp a2VseShuYXBpX3NjaGVkdWxlX3ByZXAoJmludGYtPnR4X25hcGkpKSkgeworCQkJYmNtYXNwX2Vu YWJsZV90eF9pcnEoaW50ZiwgMCk7CisJCQlfX25hcGlfc2NoZWR1bGVfaXJxb2ZmKCZpbnRmLT50 eF9uYXBpKTsKKwkJfQorCX0KK30KKworc3RhdGljIGlycXJldHVybl90IGJjbWFzcF9pc3IoaW50 IGlycSwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYgPTNEIGRhdGE7 CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmOworCXUzMiBzdGF0dXM7CisJaW50IGk7CisKKwlz dGF0dXMgPTNEIGludHIyX2NvcmVfcmwocHJpdiwgQVNQX0lOVFIyX1NUQVRVUykgJgorCQl+aW50 cjJfY29yZV9ybChwcml2LCBBU1BfSU5UUjJfTUFTS19TVEFUVVMpOworCisJaW50cjJfY29yZV93 bChwcml2LCBzdGF0dXMsIEFTUF9JTlRSMl9DTEVBUik7CisKKwlpZiAodW5saWtlbHkoc3RhdHVz ID0zRD0zRCAwKSkgeworCQlkZXZfd2FybigmcHJpdi0+cGRldi0+ZGV2LCAibDIgc3B1cmlvdXMg aW50ZXJydXB0XG4iKTsKKwkJcmV0dXJuIElSUV9OT05FOworCX0KKworCS8qIEhhbmRsZSBpbnRm ZXJmYWNlcyAqLworCWZvciAoaSA9M0QgMDsgaSA8IHByaXYtPmludGZfY291bnQ7IGkrKykgewor CQlpbnRmID0zRCBwcml2LT5pbnRmc1tpXTsKKwkJYmNtYXNwX2ludHIyX2hhbmRsaW5nKGludGYs IHN0YXR1cyk7CisJfQorCisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCit2b2lkIGJjbWFzcF9m bHVzaF9yeF9wb3J0KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZikKK3sKKwlzdHJ1Y3QgYmNtYXNw X3ByaXYgKnByaXYgPTNEIGludGYtPnBhcmVudDsKKwl1MzIgbWFzazsKKworCXN3aXRjaCAoaW50 Zi0+cG9ydCkgeworCWNhc2UgMDoKKwkJbWFzayA9M0QgQVNQX0NUUkxfVU1BQzBfRkxVU0hfTUFT SzsKKwkJYnJlYWs7CisJY2FzZSAxOgorCQltYXNrID0zRCBBU1BfQ1RSTF9VTUFDMV9GTFVTSF9N QVNLOworCQlicmVhazsKKwljYXNlIDI6CisJCW1hc2sgPTNEIEFTUF9DVFJMX1NQQl9GTFVTSF9N QVNLOworCQlicmVhazsKKwlkZWZhdWx0OgorCQkvKiBOb3QgdmFsaWQgcG9ydCAqLworCQlyZXR1 cm47CisJfQorCisJcnhfY3RybF9jb3JlX3dsKHByaXYsIG1hc2ssIHByaXYtPmh3X2luZm8tPnJ4 X2N0cmxfZmx1c2gpOworfQorCitzdGF0aWMgdm9pZCBiY21hc3BfYWRkcl90b191aW50KHVuc2ln bmVkIGNoYXIgKmFkZHIsIHUzMiAqaGlnaCwgdTMyICpsb3cpCit7CisJKmhpZ2ggPTNEICh1MzIp KGFkZHJbMF0gPDwgOCB8IGFkZHJbMV0pOworCSpsb3cgPTNEICh1MzIpKGFkZHJbMl0gPDwgMjQg fCBhZGRyWzNdIDw8IDE2IHwgYWRkcls0XSA8PCA4IHwKKwkJICAgICBhZGRyWzVdKTsKK30KKwor c3RhdGljIHZvaWQgYmNtYXNwX3NldF9tZGFfZmlsdGVyKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50 ZiwKKwkJCQkgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZHIsCisJCQkJICB1bnNpZ25lZCBjaGFy ICptYXNrLAorCQkJCSAgdW5zaWduZWQgaW50IGkpCit7CisJc3RydWN0IGJjbWFzcF9wcml2ICpw cml2ID0zRCBpbnRmLT5wYXJlbnQ7CisJdTMyIGFkZHJfaCwgYWRkcl9sLCBtYXNrX2gsIG1hc2tf bDsKKworCS8qIFNldCBsb2NhbCBjb3B5ICovCisJZXRoZXJfYWRkcl9jb3B5KHByaXYtPm1kYV9m aWx0ZXJzW2ldLm1hc2ssIG1hc2spOworCWV0aGVyX2FkZHJfY29weShwcml2LT5tZGFfZmlsdGVy c1tpXS5hZGRyLCBhZGRyKTsKKworCS8qIFdyaXRlIHRvIEhXICovCisJYmNtYXNwX2FkZHJfdG9f dWludChwcml2LT5tZGFfZmlsdGVyc1tpXS5tYXNrLCAmbWFza19oLCAmbWFza19sKTsKKwliY21h c3BfYWRkcl90b191aW50KHByaXYtPm1kYV9maWx0ZXJzW2ldLmFkZHIsICZhZGRyX2gsICZhZGRy X2wpOworCXJ4X2ZpbHRlcl9jb3JlX3dsKHByaXYsIGFkZHJfaCwgQVNQX1JYX0ZJTFRFUl9NREFf UEFUX0goaSkpOworCXJ4X2ZpbHRlcl9jb3JlX3dsKHByaXYsIGFkZHJfbCwgQVNQX1JYX0ZJTFRF Ul9NREFfUEFUX0woaSkpOworCXJ4X2ZpbHRlcl9jb3JlX3dsKHByaXYsIG1hc2tfaCwgQVNQX1JY X0ZJTFRFUl9NREFfTVNLX0goaSkpOworCXJ4X2ZpbHRlcl9jb3JlX3dsKHByaXYsIG1hc2tfbCwg QVNQX1JYX0ZJTFRFUl9NREFfTVNLX0woaSkpOworfQorCitzdGF0aWMgdm9pZCBiY21hc3BfZW5f bWRhX2ZpbHRlcihzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGJvb2wgZW4sCisJCQkJIHVuc2ln bmVkIGludCBpKQoreworCXN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiA9M0QgaW50Zi0+cGFyZW50 OworCisJaWYgKHByaXYtPm1kYV9maWx0ZXJzW2ldLmVuID0zRD0zRCBlbikKKwkJcmV0dXJuOwor CisJcHJpdi0+bWRhX2ZpbHRlcnNbaV0uZW4gPTNEIGVuOworCXByaXYtPm1kYV9maWx0ZXJzW2ld LnBvcnQgPTNEIGludGYtPnBvcnQ7CisKKwlyeF9maWx0ZXJfY29yZV93bChwcml2LCAoKGludGYt PmNoYW5uZWwgKyA4KSB8CisJCQkgIChlbiA8PCBBU1BfUlhfRklMVEVSX01EQV9DRkdfRU5fU0hJ RlQpIHwKKwkJCSAgQVNQX1JYX0ZJTFRFUl9NREFfQ0ZHX1VNQ19TRUwoaW50Zi0+cG9ydCkpLAor CQkJICBBU1BfUlhfRklMVEVSX01EQV9DRkcoaSkpOworfQorCisvKiBUaGVyZSBhcmUgMzIgTURB IGZpbHRlcnMgc2hhcmVkIGJldHdlZW4gYWxsIHBvcnRzLCB3ZSByZXNlcnZlIDQgZmlsdGVycz0K IHBlcgorICogcG9ydCBmb3IgdGhlIGZvbGxvd2luZy4KKyAqIC0gUHJvbWlzYzogRmlsdGVyIHRv IGFsbG93IGFsbCBwYWNrZXRzIHdoZW4gcHJvbWlzYyBpcyBlbmFibGVkCisgKiAtIEFsbCBNdWx0 aWNhc3QKKyAqIC0gQnJvYWRjYXN0CisgKiAtIE93biBhZGRyZXNzCisgKgorICogVGhlIHJlc2Vy dmVkIGZpbHRlcnMgYXJlIGlkZW50aWZpZWQgYXMgc28uCisgKiAtIFByb21pc2M6IChpbmRleCAq IDQpICsgMAorICogLSBBbGwgTXVsdGljYXN0OiAoaW5kZXggKiA0KSArIDEKKyAqIC0gQnJvYWRj YXN0OiAoaW5kZXggKiA0KSArIDIKKyAqIC0gT3duIGFkZHJlc3M6IChpbmRleCAqIDQpICsgMwor ICovCitlbnVtIGFzcF9yeF9maWx0ZXJfaWQgeworCUFTUF9SWF9GSUxURVJfTURBX1BST01JU0Mg PTNEIDAsCisJQVNQX1JYX0ZJTFRFUl9NREFfQUxMTVVMVEksCisJQVNQX1JYX0ZJTFRFUl9NREFf QlJPQURDQVNULAorCUFTUF9SWF9GSUxURVJfTURBX09XTl9BRERSLAorCUFTUF9SWF9GSUxURVJf TURBX1JFU19DT1VOVCwKK307CisKKyNkZWZpbmUgQVNQX1JYX0ZJTFRfTURBX1JFU19DT1VOVChp bnRmKQkoKGludGYpLT5wYXJlbnQtPmludGZfY291bnQgXAorCQkJCQkgKiBBU1BfUlhfRklMVEVS X01EQV9SRVNfQ09VTlQpCisKKyNkZWZpbmUgQVNQX1JYX0ZJTFRfTURBKGludGYsIG5hbWUpCSgo KGludGYpLT5pbmRleCAqIFwKKwkJCQkJICBBU1BfUlhfRklMVEVSX01EQV9SRVNfQ09VTlQpIFwK KwkJCQkJICsgQVNQX1JYX0ZJTFRFUl9NREFfIyNuYW1lKQorCit2b2lkIGJjbWFzcF9zZXRfcHJv bWlzYyhzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGJvb2wgZW4pCit7CisJdW5zaWduZWQgaW50 IGkgPTNEIEFTUF9SWF9GSUxUX01EQShpbnRmLCBQUk9NSVNDKTsKKwl1bnNpZ25lZCBjaGFyIHBy b21pc2NbRVRIX0FMRU5dOworCisJZXRoX3plcm9fYWRkcihwcm9taXNjKTsKKwkvKiBTZXQgbWFz ayB0byAwMDowMDowMDowMDowMDowMCB0byBtYXRjaCBhbGwgcGFja2V0cyAqLworCWJjbWFzcF9z ZXRfbWRhX2ZpbHRlcihpbnRmLCBwcm9taXNjLCBwcm9taXNjLCBpKTsKKwliY21hc3BfZW5fbWRh X2ZpbHRlcihpbnRmLCBlbiwgaSk7Cit9CisKK3ZvaWQgYmNtYXNwX3NldF9hbGxtdWx0aShzdHJ1 Y3QgYmNtYXNwX2ludGYgKmludGYsIGJvb2wgZW4pCit7CisJdW5zaWduZWQgY2hhciBhbGxtdWx0 aVtdID0zRCB7MHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH07CisJdW5zaWduZWQg aW50IGkgPTNEIEFTUF9SWF9GSUxUX01EQShpbnRmLCBBTExNVUxUSSk7CisKKwkvKiBTZXQgbWFz ayB0byAwMTowMDowMDowMDowMDowMCB0byBtYXRjaCBhbGwgbXVsdGljYXN0ICovCisJYmNtYXNw X3NldF9tZGFfZmlsdGVyKGludGYsIGFsbG11bHRpLCBhbGxtdWx0aSwgaSk7CisJYmNtYXNwX2Vu X21kYV9maWx0ZXIoaW50ZiwgZW4sIGkpOworfQorCit2b2lkIGJjbWFzcF9zZXRfYnJvYWQoc3Ry dWN0IGJjbWFzcF9pbnRmICppbnRmLCBib29sIGVuKQoreworCXVuc2lnbmVkIGludCBpID0zRCBB U1BfUlhfRklMVF9NREEoaW50ZiwgQlJPQURDQVNUKTsKKwl1bnNpZ25lZCBjaGFyIGFkZHJbRVRI X0FMRU5dOworCisJZXRoX2Jyb2FkY2FzdF9hZGRyKGFkZHIpOworCWJjbWFzcF9zZXRfbWRhX2Zp bHRlcihpbnRmLCBhZGRyLCBhZGRyLCBpKTsKKwliY21hc3BfZW5fbWRhX2ZpbHRlcihpbnRmLCBl biwgaSk7Cit9CisKK3ZvaWQgYmNtYXNwX3NldF9vYWRkcihzdHJ1Y3QgYmNtYXNwX2ludGYgKmlu dGYsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZHIsCisJCSAgICAgIGJvb2wgZW4pCit7CisJdW5z aWduZWQgY2hhciBtYXNrW10gPTNEIHsweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZm fTsKKwl1bnNpZ25lZCBpbnQgaSA9M0QgQVNQX1JYX0ZJTFRfTURBKGludGYsIE9XTl9BRERSKTsK KworCWJjbWFzcF9zZXRfbWRhX2ZpbHRlcihpbnRmLCBhZGRyLCBtYXNrLCBpKTsKKwliY21hc3Bf ZW5fbWRhX2ZpbHRlcihpbnRmLCBlbiwgaSk7Cit9CisKK3ZvaWQgYmNtYXNwX2Rpc2FibGVfYWxs X2ZpbHRlcnMoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmKQoreworCXN0cnVjdCBiY21hc3BfcHJp diAqcHJpdiA9M0QgaW50Zi0+cGFyZW50OworCXVuc2lnbmVkIGludCBpOworCisJLyogRGlzYWJs ZSBhbGwgZmlsdGVycyBoZWxkIGJ5IHRoaXMgcG9ydCAqLworCWZvciAoaSA9M0QgQVNQX1JYX0ZJ TFRfTURBX1JFU19DT1VOVChpbnRmKTsgaSA8IE5VTV9NREFfRklMVEVSUzsgaSsrKSB7CisJCWlm IChwcml2LT5tZGFfZmlsdGVyc1tpXS5lbiAmJgorCQkgICAgcHJpdi0+bWRhX2ZpbHRlcnNbaV0u cG9ydCA9M0Q9M0QgaW50Zi0+cG9ydCkKKwkJCWJjbWFzcF9lbl9tZGFfZmlsdGVyKGludGYsIDAs IGkpOworCX0KK30KKworc3RhdGljIGludCBiY21hc3BfY29tYmluZV9zZXRfZmlsdGVyKHN0cnVj dCBiY21hc3BfaW50ZiAqaW50ZiwKKwkJCQkgICAgIHVuc2lnbmVkIGNoYXIgKmFkZHIsIHVuc2ln bmVkIGNoYXIgKm1hc2ssCisJCQkJICAgICBpbnQgaSkKK3sKKwlzdHJ1Y3QgYmNtYXNwX3ByaXYg KnByaXYgPTNEIGludGYtPnBhcmVudDsKKwl1NjQgYWRkcjEsIGFkZHIyLCBtYXNrMSwgbWFzazIs IG1hc2szOworCisJLyogU3dpdGNoIHRvIHU2NCB0byBoZWxwIHdpdGggdGhlIGNhbGN1bGF0aW9u cyAqLworCWFkZHIxID0zRCBldGhlcl9hZGRyX3RvX3U2NChwcml2LT5tZGFfZmlsdGVyc1tpXS5h ZGRyKTsKKwltYXNrMSA9M0QgZXRoZXJfYWRkcl90b191NjQocHJpdi0+bWRhX2ZpbHRlcnNbaV0u bWFzayk7CisJYWRkcjIgPTNEIGV0aGVyX2FkZHJfdG9fdTY0KGFkZHIpOworCW1hc2syID0zRCBl dGhlcl9hZGRyX3RvX3U2NChtYXNrKTsKKworCS8qIENoZWNrIGlmIG9uZSBmaWx0ZXIgcmVzaWRl cyB3aXRoaW4gdGhlIG90aGVyICovCisJbWFzazMgPTNEIG1hc2sxICYgbWFzazI7CisJaWYgKG1h c2szID0zRD0zRCBtYXNrMSAmJiAoKGFkZHIxICYgbWFzazEpID0zRD0zRCAoYWRkcjIgJiBtYXNr MSkpKSB7CisJCS8qIEZpbHRlciAyIHJlc2lkZXMgd2l0aGluIGZpbHRlciAxLCBzbyBldmVyeXRo aW5nIGlzIGdvb2QgKi8KKwkJcmV0dXJuIDA7CisJfSBlbHNlIGlmIChtYXNrMyA9M0Q9M0QgbWFz azIgJiYgKChhZGRyMSAmIG1hc2syKSA9M0Q9M0QgKGFkZHIyICYgbWFzazIpKT0KKSB7CisJCS8q IEZpbHRlciAxIHJlc2lkZXMgd2l0aGluIGZpbHRlciAyLCBzbyBzd2FwIGZpbHRlcnMgKi8KKwkJ YmNtYXNwX3NldF9tZGFfZmlsdGVyKGludGYsIGFkZHIsIG1hc2ssIGkpOworCQlyZXR1cm4gMDsK Kwl9CisKKwkvKiBVbmFibGUgdG8gY29tYmluZSAqLworCXJldHVybiAtRUlOVkFMOworfQorCitp bnQgYmNtYXNwX3NldF9lbl9tZGFfZmlsdGVyKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgdW5z aWduZWQgY2hhciAqYWRkciwKKwkJCSAgICAgdW5zaWduZWQgY2hhciAqbWFzaykKK3sKKwlzdHJ1 Y3QgYmNtYXNwX3ByaXYgKnByaXYgPTNEIGludGYtPnBhcmVudDsKKwlpbnQgaSwgcmV0OworCisJ Zm9yIChpID0zRCBBU1BfUlhfRklMVF9NREFfUkVTX0NPVU5UKGludGYpOyBpIDwgTlVNX01EQV9G SUxURVJTOyBpKyspIHsKKwkJLyogSWYgZmlsdGVyIG5vdCBlbmFibGVkIG9yIGJlbG9uZ3MgdG8g YW5vdGhlciBwb3J0IHNraXAgKi8KKwkJaWYgKCFwcml2LT5tZGFfZmlsdGVyc1tpXS5lbiB8fAor CQkgICAgcHJpdi0+bWRhX2ZpbHRlcnNbaV0ucG9ydCAhPTNEIGludGYtPnBvcnQpCisJCQljb250 aW51ZTsKKworCQkvKiBBdHRlbXB0IHRvIGNvbWJpbmUgZmlsdGVycyAqLworCQlyZXQgPTNEIGJj bWFzcF9jb21iaW5lX3NldF9maWx0ZXIoaW50ZiwgYWRkciwgbWFzaywgaSk7CisJCWlmICghcmV0 KSB7CisJCQlyZXR1cm4gMDsKKwkJfQorCX0KKworCS8qIENyZWF0ZSBuZXcgZmlsdGVyIGlmIHBv c3NpYmxlICovCisJZm9yIChpID0zRCBBU1BfUlhfRklMVF9NREFfUkVTX0NPVU5UKGludGYpOyBp IDwgTlVNX01EQV9GSUxURVJTOyBpKyspIHsKKwkJaWYgKHByaXYtPm1kYV9maWx0ZXJzW2ldLmVu KQorCQkJY29udGludWU7CisKKwkJYmNtYXNwX3NldF9tZGFfZmlsdGVyKGludGYsIGFkZHIsIG1h c2ssIGkpOworCQliY21hc3BfZW5fbWRhX2ZpbHRlcihpbnRmLCAxLCBpKTsKKwkJcmV0dXJuIDA7 CisJfQorCisJLyogTm8gcm9vbSBmb3IgbmV3IGZpbHRlciAqLworCXJldHVybiAtRUlOVkFMOwor fQorCitzdGF0aWMgdm9pZCBiY21hc3BfY29yZV9pbml0X2ZpbHRlcnMoc3RydWN0IGJjbWFzcF9w cml2ICpwcml2KQoreworCWludCBpOworCisJLyogRGlzYWJsZSBhbGwgZmlsdGVycyBhbmQgcmVz ZXQgc29mdHdhcmUgdmlldyBzaW5jZSB0aGUgSFcKKwkgKiBjYW4gbG9zZSBjb250ZXh0IHdoaWxl IGluIGRlZXAgc2xlZXAgc3VzcGVuZCBzdGF0ZXMKKwkgKi8KKwlmb3IgKGkgPTNEIDA7IGkgPCBO VU1fTURBX0ZJTFRFUlM7IGkrKykgeworCQlyeF9maWx0ZXJfY29yZV93bChwcml2LCAweDAsIEFT UF9SWF9GSUxURVJfTURBX0NGRyhpKSk7CisJCXByaXYtPm1kYV9maWx0ZXJzW2ldLmVuID0zRCAw OworCX0KKworCS8qIFRvcCBsZXZlbCBmaWx0ZXIgZW5hYmxlIGJpdCBzaG91bGQgYmUgZW5hYmxl ZCBhdCBhbGwgdGltZXMsIHNldAorCSAqIEdFTl9XQUtFX0NMRUFSIHRvIGNsZWFyIHRoZSBuZXR3 b3JrIGZpbHRlciB3YWtlLXVwIHdoaWNoIHdvdWxkCisJICogb3RoZXJ3aXNlIGJlIHN0aWNreQor CSAqLworCXJ4X2ZpbHRlcl9jb3JlX3dsKHByaXYsIChBU1BfUlhfRklMVEVSX09QVVRfRU4gfAor CQkJICBBU1BfUlhfRklMVEVSX01EQV9FTiB8CisJCQkgIEFTUF9SWF9GSUxURVJfR0VOX1dLX0NM UiB8CisJCQkgIEFTUF9SWF9GSUxURVJfTlRfRkxUX0VOKSwKKwkJCSAgQVNQX1JYX0ZJTFRFUl9C TEtfQ1RSTCk7Cit9CisKKy8qIEFTUCBjb3JlIGluaXRpYWxpemF0aW9uICovCitzdGF0aWMgdm9p ZCBiY21hc3BfY29yZV9pbml0KHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdikKK3sKKwl0eF9hbmFs eXRpY3NfY29yZV93bChwcml2LCAweDAsIEFTUF9UWF9BTkFMWVRJQ1NfQ1RSTCk7CisJcnhfYW5h bHl0aWNzX2NvcmVfd2wocHJpdiwgMHg0LCBBU1BfUlhfQU5BTFlUSUNTX0NUUkwpOworCisJcnhf ZWRwa3RfY29yZV93bChwcml2LCAoQVNQX0VEUEtUX0hEUl9TWl8xMjggPDwgQVNQX0VEUEtUX0hE Ul9TWl9TSElGVCksCisJCQkgQVNQX0VEUEtUX0hEUl9DRkcpOworCXJ4X2VkcGt0X2NvcmVfd2wo cHJpdiwKKwkJCSAoQVNQX0VEUEtUX0VORElfQlRfU1dQX1dEIDw8IEFTUF9FRFBLVF9FTkRJX0RF U0NfU0hJRlQpLAorCQkJIEFTUF9FRFBLVF9FTkRJKTsKKworCXJ4X2VkcGt0X2NvcmVfd2wocHJp diwgMHgxYiwgQVNQX0VEUEtUX0JVUlNUX0JVRl9QU0NBTF9UT1VUKTsKKwlyeF9lZHBrdF9jb3Jl X3dsKHByaXYsIDB4M2U4LCBBU1BfRURQS1RfQlVSU1RfQlVGX1dSSVRFX1RPVVQpOworCXJ4X2Vk cGt0X2NvcmVfd2wocHJpdiwgMHgzZTgsIEFTUF9FRFBLVF9CVVJTVF9CVUZfUkVBRF9UT1VUKTsK KworCXJ4X2VkcGt0X2NvcmVfd2wocHJpdiwgQVNQX0VEUEtUX0VOQUJMRV9FTiwgQVNQX0VEUEtU X0VOQUJMRSk7CisKKwkvKiBEaXNhYmxlIGFuZCBjbGVhciBib3RoIFVuaU1BQydzIHdha2UtdXAg aW50ZXJydXB0cyB0byBhdm9pZAorCSAqIHN0aWNreSBpbnRlcnJ1cHRzLgorCSAqLworCV9pbnRy Ml9tYXNrX3NldChwcml2LCBBU1BfSU5UUjJfVU1DMF9XQUtFIHwgQVNQX0lOVFIyX1VNQzFfV0FL RSk7CisJaW50cjJfY29yZV93bChwcml2LCBBU1BfSU5UUjJfVU1DMF9XQUtFIHwgQVNQX0lOVFIy X1VNQzFfV0FLRSwKKwkJICAgICAgQVNQX0lOVFIyX0NMRUFSKTsKK30KKworc3RhdGljIHZvaWQg YmNtYXNwX2NvcmVfY2xvY2tfc2VsZWN0KHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiwgYm9vbCBz bG93KQoreworCXUzMiByZWc7CisKKwlyZWcgPTNEIGN0cmxfY29yZV9ybChwcml2LCBBU1BfQ1RS TF9DT1JFX0NMT0NLX1NFTEVDVCk7CisJaWYgKHNsb3cpCisJCXJlZyAmPTNEIH5BU1BfQ1RSTF9D T1JFX0NMT0NLX1NFTEVDVF9NQUlOOworCWVsc2UKKwkJcmVnIHw9M0QgQVNQX0NUUkxfQ09SRV9D TE9DS19TRUxFQ1RfTUFJTjsKKwljdHJsX2NvcmVfd2wocHJpdiwgcmVnLCBBU1BfQ1RSTF9DT1JF X0NMT0NLX1NFTEVDVCk7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9jb3JlX2Nsb2NrX3NldF9s bChzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYsIHUzMiBjbHIsIHUzPQoyIHNldCkKK3sKKwl1MzIg cmVnOworCisJcmVnID0zRCBjdHJsX2NvcmVfcmwocHJpdiwgQVNQX0NUUkxfQ0xPQ0tfQ1RSTCk7 CisJcmVnICY9M0QgfmNscjsKKwlyZWcgfD0zRCBzZXQ7CisJY3RybF9jb3JlX3dsKHByaXYsIHJl ZywgQVNQX0NUUkxfQ0xPQ0tfQ1RSTCk7CisKKwlyZWcgPTNEIGN0cmxfY29yZV9ybChwcml2LCBB U1BfQ1RSTF9TQ1JBVENIXzApOworCXJlZyAmPTNEIH5jbHI7CisJcmVnIHw9M0Qgc2V0OworCWN0 cmxfY29yZV93bChwcml2LCByZWcsIEFTUF9DVFJMX1NDUkFUQ0hfMCk7Cit9CisKK3N0YXRpYyB2 b2lkIGJjbWFzcF9jb3JlX2Nsb2NrX3NldChzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYsIHUzMiBj bHIsIHUzMiBzPQpldCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2ly cXNhdmUoJnByaXYtPmNsa19sb2NrLCBmbGFncyk7CisJYmNtYXNwX2NvcmVfY2xvY2tfc2V0X2xs KHByaXYsIGNsciwgc2V0KTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5jbGtfbG9j aywgZmxhZ3MpOworfQorCit2b2lkIGJjbWFzcF9jb3JlX2Nsb2NrX3NldF9pbnRmKHN0cnVjdCBi Y21hc3BfaW50ZiAqaW50ZiwgYm9vbCBlbikKK3sKKwl1MzIgaW50Zl9tYXNrID0zRCBBU1BfQ1RS TF9DTE9DS19DVFJMX0FTUF9SR01JSV9ESVMoaW50Zi0+cG9ydCk7CisJc3RydWN0IGJjbWFzcF9w cml2ICpwcml2ID0zRCBpbnRmLT5wYXJlbnQ7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1MzIg cmVnOworCisJLyogV2hlbiBlbmFibGluZyBhbiBpbnRlcmZhY2UsIGlmIHRoZSBSWCBvciBUWCBj bG9ja3Mgd2VyZSBub3QgZW5hYmxlZCwKKwkgKiBlbmFibGUgdGhlbS4gQ29udmVyc2VseSwgd2hp bGUgZGlzYWJsaW5nIGFuIGludGVyZmFjZSwgaWYgdGhpcyBpcworCSAqIHRoZSBsYXN0IG9uZSBl bmFibGVkLCB3ZSBjYW4gdHVybiBvZmYgdGhlIHNoYXJlZCBSWCBhbmQgVFggY2xvY2tzIGFzCisJ ICogd2VsbC4gV2UgY29udHJvbCBlbmFibGUgYml0cyB3aGljaCBpcyB3aHkgd2UgdGVzdCBmb3Ig ZXF1YWxpdHkgb24KKwkgKiB0aGUgUkdNSUkgY2xvY2sgYml0IG1hc2suCisJICovCisJc3Bpbl9s b2NrX2lycXNhdmUoJnByaXYtPmNsa19sb2NrLCBmbGFncyk7CisJaWYgKGVuKSB7CisJCWludGZf bWFzayB8PTNEIEFTUF9DVFJMX0NMT0NLX0NUUkxfQVNQX1RYX0RJU0FCTEUgfAorCQkJICAgICBB U1BfQ1RSTF9DTE9DS19DVFJMX0FTUF9SWF9ESVNBQkxFOworCQliY21hc3BfY29yZV9jbG9ja19z ZXRfbGwocHJpdiwgaW50Zl9tYXNrLCAwKTsKKwl9IGVsc2UgeworCQlyZWcgPTNEIGN0cmxfY29y ZV9ybChwcml2LCBBU1BfQ1RSTF9TQ1JBVENIXzApIHwgaW50Zl9tYXNrOworCQlpZiAoKHJlZyAm IEFTUF9DVFJMX0NMT0NLX0NUUkxfQVNQX1JHTUlJX01BU0spID0zRD0zRAorCQkgICAgQVNQX0NU UkxfQ0xPQ0tfQ1RSTF9BU1BfUkdNSUlfTUFTSykKKwkJCWludGZfbWFzayB8PTNEIEFTUF9DVFJM X0NMT0NLX0NUUkxfQVNQX1RYX0RJU0FCTEUgfAorCQkJCSAgICAgQVNQX0NUUkxfQ0xPQ0tfQ1RS TF9BU1BfUlhfRElTQUJMRTsKKwkJYmNtYXNwX2NvcmVfY2xvY2tfc2V0X2xsKHByaXYsIDAsIGlu dGZfbWFzayk7CisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmNsa19sb2NrLCBm bGFncyk7Cit9CisKK3N0YXRpYyBpbnQgYmNtYXNwX2lzX3BvcnRfdmFsaWQoc3RydWN0IGJjbWFz cF9wcml2ICpwcml2LCBpbnQgcG9ydCkKK3sKKwkvKiBRdWljayBzYW5pdHkgY2hlY2sKKwkgKiAg IFBvcnRzIDAvMSByZXNlcnZlZCBmb3IgdW5pbWFjCisJICogICBNYXggc3VwcG9ydGVkIHBvcnRz IGlzIDIKKwkgKi8KKwlyZXR1cm4gcG9ydCA9M0Q9M0QgMCB8fCBwb3J0ID0zRD0zRCAxOworfQor CitzdGF0aWMgc3RydWN0IGJjbWFzcF9od19pbmZvIHYyMF9od19pbmZvID0zRCB7CisJLnJ4X2N0 cmxfZmx1c2ggPTNEIEFTUF9SWF9DVFJMX0ZMVVNILAorCS51bWFjMmZiID0zRCBVTUFDMkZCX09G RlNFVCwKKwkucnhfY3RybF9mYl9vdXRfZnJhbWVfY291bnQgPTNEIEFTUF9SWF9DVFJMX0ZCX09V VF9GUkFNRV9DT1VOVCwKKwkucnhfY3RybF9mYl9maWx0X291dF9mcmFtZV9jb3VudCA9M0QgQVNQ X1JYX0NUUkxfRkJfRklMVF9PVVRfRlJBTUVfQ09VTlQsCisJLnJ4X2N0cmxfZmJfcnhfZmlmb19k ZXB0aCA9M0QgQVNQX1JYX0NUUkxfRkJfUlhfRklGT19ERVBUSCwKK307CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgYmNtYXNwX3BsYXRfZGF0YSB2MjBfcGxhdF9kYXRhID0zRCB7CisJLmh3X2luZm8g PTNEICZ2MjBfaHdfaW5mbywKK307CisKK3N0YXRpYyBzdHJ1Y3QgYmNtYXNwX2h3X2luZm8gdjIx X2h3X2luZm8gPTNEIHsKKwkucnhfY3RybF9mbHVzaCA9M0QgQVNQX1JYX0NUUkxfRkxVU0hfMl8x LAorCS51bWFjMmZiID0zRCBVTUFDMkZCX09GRlNFVF8yXzEsCisJLnJ4X2N0cmxfZmJfb3V0X2Zy YW1lX2NvdW50ID0zRCBBU1BfUlhfQ1RSTF9GQl9PVVRfRlJBTUVfQ09VTlRfMl8xLAorCS5yeF9j dHJsX2ZiX2ZpbHRfb3V0X2ZyYW1lX2NvdW50ID0zRAorCQlBU1BfUlhfQ1RSTF9GQl9GSUxUX09V VF9GUkFNRV9DT1VOVF8yXzEsCisJLnJ4X2N0cmxfZmJfcnhfZmlmb19kZXB0aCA9M0QgQVNQX1JY X0NUUkxfRkJfUlhfRklGT19ERVBUSF8yXzEsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGJj bWFzcF9wbGF0X2RhdGEgdjIxX3BsYXRfZGF0YSA9M0QgeworCS5od19pbmZvID0zRCAmdjIxX2h3 X2luZm8sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBiY21hc3Bfb2Zf bWF0Y2hbXSA9M0QgeworCXsgLmNvbXBhdGlibGUgPTNEICJicmNtLGFzcC12Mi4wIiwgLmRhdGEg PTNEICZ2MjBfcGxhdF9kYXRhIH0sCisJeyAuY29tcGF0aWJsZSA9M0QgImJyY20sYXNwLXYyLjEi LCAuZGF0YSA9M0QgJnYyMV9wbGF0X2RhdGEgfSwKKwl7IC8qIHNlbnRpbmVsICovIH0sCit9Owor TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgYmNtYXNwX29mX21hdGNoKTsKKworc3RhdGljIGNvbnN0 IHN0cnVjdCBvZl9kZXZpY2VfaWQgYmNtYXNwX21kaW9fb2ZfbWF0Y2hbXSA9M0QgeworCXsgLmNv bXBhdGlibGUgPTNEICJicmNtLGFzcC12Mi4xLW1kaW8iLCB9LAorCXsgLmNvbXBhdGlibGUgPTNE ICJicmNtLGFzcC12Mi4wLW1kaW8iLCB9LAorCXsgLyogc2VudGluZWwgKi8gfSwKK307CitNT0RV TEVfREVWSUNFX1RBQkxFKG9mLCBiY21hc3BfbWRpb19vZl9tYXRjaCk7CisKK3N0YXRpYyBpbnQg YmNtYXNwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGRl dmljZV9ub2RlICpwb3J0c19ub2RlLCAqaW50Zl9ub2RlOworCWNvbnN0IHN0cnVjdCBiY21hc3Bf cGxhdF9kYXRhICpwZGF0YTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPTNEICZwZGV2LT5kZXY7CisJ aW50IHJldCA9M0QgMCwgaSwgY291bnQgPTNEIDAsIHBvcnQ7CisJc3RydWN0IGJjbWFzcF9wcml2 ICpwcml2OworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZjsKKworCXByaXYgPTNEIGRldm1fa3ph bGxvYyhkZXYsIHNpemVvZigqcHJpdiksIEdGUF9LRVJORUwpOworCWlmICghcHJpdikKKwkJcmV0 dXJuIC1FTk9NRU07CisKKwlwcml2LT5pcnEgPTNEIHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7 CisJaWYgKHByaXYtPmlycSA8PTNEIDApCisJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgLUVJ TlZBTCwgImludmFsaWQgaW50ZXJydXB0XG4iKTsKKworCXByaXYtPmNsayA9M0QgZGV2bV9jbGtf Z2V0X29wdGlvbmFsX2VuYWJsZWQoZGV2LCAic3dfYXNwIik7CisJaWYgKElTX0VSUihwcml2LT5j bGspKQorCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIocHJpdi0+Y2xrKSwKKwkJ CQkJCQkgImZhaWxlZCB0byByZXF1ZXN0IGNsb2NrXG4iKTsKKworCS8qIEJhc2UgZnJvbSBwYXJl bnQgbm9kZSAqLworCXByaXYtPmJhc2UgPTNEIGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJj ZShwZGV2LCAwKTsKKwlpZiAoSVNfRVJSKHByaXYtPmJhc2UpKQorCQlyZXR1cm4gZGV2X2Vycl9w cm9iZShkZXYsIFBUUl9FUlIocHJpdi0+YmFzZSksICJmYWlsZWQgdG8gaW9tYXBcbiIpOworCisJ cmV0ID0zRCBkbWFfc2V0X21hc2tfYW5kX2NvaGVyZW50KCZwZGV2LT5kZXYsIERNQV9CSVRfTUFT Syg0MCkpOworCWlmIChyZXQpCisJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAidW5h YmxlIHRvIHNldCBETUEgbWFzazogJWRcbiIsIHJldCk7CisKKwlkZXZfc2V0X2RydmRhdGEoJnBk ZXYtPmRldiwgcHJpdik7CisJcHJpdi0+cGRldiA9M0QgcGRldjsKKwlzcGluX2xvY2tfaW5pdCgm cHJpdi0+bWRhX2xvY2spOworCXNwaW5fbG9ja19pbml0KCZwcml2LT5jbGtfbG9jayk7CisKKwlw ZGF0YSA9M0QgZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYpOworCWlmICghcGRhdGEp CisJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgLUVJTlZBTCwgInVuYWJsZSB0byBmaW5kIHBs YXRmb3JtIGRhdGFcbiIpOworCisJcHJpdi0+aHdfaW5mbyA9M0QgcGRhdGEtPmh3X2luZm87CisK KwkvKiBFbmFibGUgYWxsIGNsb2NrcyB0byBlbnN1cmUgc3VjY2Vzc2Z1bCBwcm9iaW5nICovCisJ YmNtYXNwX2NvcmVfY2xvY2tfc2V0KHByaXYsIEFTUF9DVFJMX0NMT0NLX0NUUkxfQVNQX0FMTF9E SVNBQkxFLCAwKTsKKworCS8qIFN3aXRjaCB0byB0aGUgbWFpbiBjbG9jayAqLworCWJjbWFzcF9j b3JlX2Nsb2NrX3NlbGVjdChwcml2LCBmYWxzZSk7CisKKwliY21hc3BfaW50cjJfbWFza19zZXRf YWxsKHByaXYpOworCWJjbWFzcF9pbnRyMl9jbGVhcl9hbGwocHJpdik7CisKKwlyZXQgPTNEIGRl dm1fcmVxdWVzdF9pcnEoJnBkZXYtPmRldiwgcHJpdi0+aXJxLCBiY21hc3BfaXNyLCAwLAorCQkJ ICAgICAgIHBkZXYtPm5hbWUsIHByaXYpOworCWlmIChyZXQpCisJCXJldHVybiBkZXZfZXJyX3By b2JlKGRldiwgcmV0LCAiZmFpbGVkIHRvIHJlcXVlc3QgQVNQIGludGVycnVwdDogJWQiLCByZT0K dCk7CisKKwkvKiBSZWdpc3RlciBtZGlvIGNoaWxkIG5vZGVzICovCisJb2ZfcGxhdGZvcm1fcG9w dWxhdGUoZGV2LT5vZl9ub2RlLCBiY21hc3BfbWRpb19vZl9tYXRjaCwgTlVMTCwgZGV2KTsKKwor CS8qIEFTUCBzcGVjaWZpYyBpbml0aWFsaXphdGlvbiwgTmVlZHMgdG8gYmUgZG9uZSByZWdhcmRs ZXNzIG9mCisJICogaG93IG1hbnkgaW50ZXJmYWNlcyBjb21lIHVwLgorCSAqLworCWJjbWFzcF9j b3JlX2luaXQocHJpdik7CisJYmNtYXNwX2NvcmVfaW5pdF9maWx0ZXJzKHByaXYpOworCisJcG9y dHNfbm9kZSA9M0Qgb2ZfZmluZF9ub2RlX2J5X25hbWUoZGV2LT5vZl9ub2RlLCAiZXRoZXJuZXQt cG9ydHMiKTsKKwlpZiAoIXBvcnRzX25vZGUpIHsKKwkJZGV2X3dhcm4oZGV2LCAiTm8gcG9ydHMg Zm91bmRcbiIpOworCQlyZXR1cm4gMDsKKwl9CisKKwlmb3JfZWFjaF9hdmFpbGFibGVfY2hpbGRf b2Zfbm9kZShwb3J0c19ub2RlLCBpbnRmX25vZGUpIHsKKwkJb2ZfcHJvcGVydHlfcmVhZF91MzIo aW50Zl9ub2RlLCAicmVnIiwgJnBvcnQpOworCQlpZiAoIWJjbWFzcF9pc19wb3J0X3ZhbGlkKHBy aXYsIHBvcnQpKSB7CisJCQlkZXZfd2FybihkZXYsICIlcE9GOiAlZCBpcyBhbiBpbnZhbGlkIHBv cnRcbiIsCisJCQkJIGludGZfbm9kZSwgcG9ydCk7CisJCQljb250aW51ZTsKKwkJfQorCisJCXBy aXYtPmludGZfY291bnQrKzsKKwl9CisKKwlwcml2LT5pbnRmcyA9M0QgZGV2bV9rY2FsbG9jKGRl diwgcHJpdi0+aW50Zl9jb3VudCwKKwkJCQkgICBzaXplb2Yoc3RydWN0IGJjbWFzcF9pbnRmICop LAorCQkJCSAgIEdGUF9LRVJORUwpOworCWlmICghcHJpdi0+aW50ZnMpIHsKKwkJcmV0ID0zRCAt RU5PTUVNOworCQlnb3RvIG9mX3B1dF9leGl0OworCX0KKworCS8qIFByb2JlIGVhY2ggaW50ZXJm YWNlIChJbml0aWFsaXphdGlvbiBzaG91bGQgY29udGludWUgZXZlbiBpZgorCSAqIGludGVyZmFj ZXMgYXJlIHVuYWJsZSB0byBjb21lIHVwKQorCSAqLworCWkgPTNEIDA7CisJZm9yX2VhY2hfYXZh aWxhYmxlX2NoaWxkX29mX25vZGUocG9ydHNfbm9kZSwgaW50Zl9ub2RlKSB7CisJCXByaXYtPmlu dGZzW2ldID0zRCBiY21hc3BfaW50ZXJmYWNlX2NyZWF0ZShwcml2LCBpbnRmX25vZGUsIGkpOwor CQlpKys7CisJfQorCisJLyogRHJvcCB0aGUgY2xvY2sgcmVmZXJlbmNlIGNvdW50IG5vdyBhbmQg bGV0IG5kb19vcGVuKCkvbmRvX2Nsb3NlKCkKKwkgKiBtYW5hZ2UgaXQgZm9yIHVzIGZyb20gbm93 IG9uLgorCSAqLworCWJjbWFzcF9jb3JlX2Nsb2NrX3NldChwcml2LCAwLCBBU1BfQ1RSTF9DTE9D S19DVFJMX0FTUF9BTExfRElTQUJMRSk7CisKKwljbGtfZGlzYWJsZV91bnByZXBhcmUocHJpdi0+ Y2xrKTsKKworCS8qIE5vdyBkbyB0aGUgcmVnaXN0cmF0aW9uIG9mIHRoZSBuZXR3b3JrIHBvcnRz IHdoaWNoIHdpbGwgdGFrZSBjYXJlCisJICogb2YgbWFuYWdpbmcgdGhlIGNsb2NrIHByb3Blcmx5 LgorCSAqLworCWZvciAoaSA9M0QgMDsgaSA8IHByaXYtPmludGZfY291bnQ7IGkrKykgeworCQlp bnRmID0zRCBwcml2LT5pbnRmc1tpXTsKKwkJaWYgKCFpbnRmKQorCQkJY29udGludWU7CisKKwkJ cmV0ID0zRCByZWdpc3Rlcl9uZXRkZXYoaW50Zi0+bmRldik7CisJCWlmIChyZXQpIHsKKwkJCW5l dGRldl9lcnIoaW50Zi0+bmRldiwKKwkJCQkgICAiZmFpbGVkIHRvIHJlZ2lzdGVyIG5ldF9kZXZp Y2U6ICVkXG4iLCByZXQpOworCQkJYmNtYXNwX2ludGVyZmFjZV9kZXN0cm95KGludGYsIGZhbHNl KTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWNvdW50Kys7CisJfQorCisJZGV2X2luZm8oZGV2LCAi SW5pdGlhbGl6ZWQgJWQgcG9ydChzKVxuIiwgY291bnQpOworCitvZl9wdXRfZXhpdDoKKwlvZl9u b2RlX3B1dChwb3J0c19ub2RlKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGJjbWFz cF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgYmNtYXNw X3ByaXYgKnByaXYgPTNEIGRldl9nZXRfZHJ2ZGF0YSgmcGRldi0+ZGV2KTsKKwlzdHJ1Y3QgYmNt YXNwX2ludGYgKmludGY7CisJaW50IGk7CisKKwlmb3IgKGkgPTNEIDA7IGkgPCBwcml2LT5pbnRm X2NvdW50OyBpKyspIHsKKwkJaW50ZiA9M0QgcHJpdi0+aW50ZnNbaV07CisJCWlmICghaW50ZikK KwkJCWNvbnRpbnVlOworCisJCWJjbWFzcF9pbnRlcmZhY2VfZGVzdHJveShpbnRmLCB0cnVlKTsK Kwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgYmNtYXNwX3NodXRkb3duKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJaW50IHJldDsKKworCXJldCA9M0QgYmNtYXNw X3JlbW92ZShwZGV2KTsKKwlpZiAocmV0KQorCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQg dG8gcmVtb3ZlOiAlZFxuIiwgcmV0KTsKK30KKworc3RhdGljIGludCBfX21heWJlX3VudXNlZCBi Y21hc3Bfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkKQoreworCXN0cnVjdCBiY21hc3BfcHJpdiAq cHJpdiA9M0QgZGV2X2dldF9kcnZkYXRhKGQpOworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZjsK KwlpbnQgaSwgcmV0OworCisJZm9yIChpID0zRCAwOyBpIDwgcHJpdi0+aW50Zl9jb3VudDsgaSsr KSB7CisJCWludGYgPTNEIHByaXYtPmludGZzW2ldOworCQlpZiAoIWludGYpCisJCQljb250aW51 ZTsKKworCQlyZXQgPTNEIGJjbWFzcF9pbnRlcmZhY2Vfc3VzcGVuZChpbnRmKTsKKwkJaWYgKHJl dCkKKwkJCWJyZWFrOworCX0KKworCXJldCA9M0QgY2xrX3ByZXBhcmVfZW5hYmxlKHByaXYtPmNs ayk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCS8qIFdoZXRoZXIgV2FrZS1vbi1MQU4g aXMgZW5hYmxlZCBvciBub3QsIHdlIGNhbiBhbHdheXMgZGlzYWJsZQorCSAqIHRoZSBzaGFyZWQg VFggY2xvY2sKKwkgKi8KKwliY21hc3BfY29yZV9jbG9ja19zZXQocHJpdiwgMCwgQVNQX0NUUkxf Q0xPQ0tfQ1RSTF9BU1BfVFhfRElTQUJMRSk7CisKKwliY21hc3BfY29yZV9jbG9ja19zZWxlY3Qo cHJpdiwgdHJ1ZSk7CisKKwljbGtfZGlzYWJsZV91bnByZXBhcmUocHJpdi0+Y2xrKTsKKworCXJl dHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgYmNtYXNwX3Jlc3VtZShz dHJ1Y3QgZGV2aWNlICpkKQoreworCXN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiA9M0QgZGV2X2dl dF9kcnZkYXRhKGQpOworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZjsKKwlpbnQgaSwgcmV0Owor CisJcmV0ID0zRCBjbGtfcHJlcGFyZV9lbmFibGUocHJpdi0+Y2xrKTsKKwlpZiAocmV0KQorCQly ZXR1cm4gcmV0OworCisJLyogU3dpdGNoIHRvIHRoZSBtYWluIGNsb2NrIGRvbWFpbiAqLworCWJj bWFzcF9jb3JlX2Nsb2NrX3NlbGVjdChwcml2LCBmYWxzZSk7CisKKwkvKiBSZS1lbmFibGUgYWxs IGNsb2NrcyBmb3IgcmUtaW5pdGlhbGl6YXRpb24gKi8KKwliY21hc3BfY29yZV9jbG9ja19zZXQo cHJpdiwgQVNQX0NUUkxfQ0xPQ0tfQ1RSTF9BU1BfQUxMX0RJU0FCTEUsIDApOworCisJYmNtYXNw X2NvcmVfaW5pdChwcml2KTsKKwliY21hc3BfY29yZV9pbml0X2ZpbHRlcnMocHJpdik7CisKKwkv KiBBbmQgZGlzYWJsZSB0aGVtIHRvIGxldCB0aGUgbmV0d29yayBkZXZpY2VzIHRha2UgY2FyZSBv ZiB0aGVtICovCisJYmNtYXNwX2NvcmVfY2xvY2tfc2V0KHByaXYsIDAsIEFTUF9DVFJMX0NMT0NL X0NUUkxfQVNQX0FMTF9ESVNBQkxFKTsKKworCWNsa19kaXNhYmxlX3VucHJlcGFyZShwcml2LT5j bGspOworCisJZm9yIChpID0zRCAwOyBpIDwgcHJpdi0+aW50Zl9jb3VudDsgaSsrKSB7CisJCWlu dGYgPTNEIHByaXYtPmludGZzW2ldOworCQlpZiAoIWludGYpCisJCQljb250aW51ZTsKKworCQly ZXQgPTNEIGJjbWFzcF9pbnRlcmZhY2VfcmVzdW1lKGludGYpOworCQlpZiAocmV0KQorCQkJYnJl YWs7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKGJj bWFzcF9wbV9vcHMsCisJCQkgYmNtYXNwX3N1c3BlbmQsIGJjbWFzcF9yZXN1bWUpOworCitzdGF0 aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBiY21hc3BfZHJpdmVyID0zRCB7CisJLnByb2JlID0z RCBiY21hc3BfcHJvYmUsCisJLnJlbW92ZSA9M0QgYmNtYXNwX3JlbW92ZSwKKwkuc2h1dGRvd24g PTNEIGJjbWFzcF9zaHV0ZG93biwKKwkuZHJpdmVyID0zRCB7CisJCS5uYW1lID0zRCAiYnJjbSxh c3AtdjIiLAorCQkub2ZfbWF0Y2hfdGFibGUgPTNEIGJjbWFzcF9vZl9tYXRjaCwKKwkJLnBtID0z RCAmYmNtYXNwX3BtX29wcywKKwl9LAorfTsKK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoYmNtYXNw X2RyaXZlcik7CisKK01PRFVMRV9BVVRIT1IoIkJyb2FkY29tIik7CitNT0RVTEVfREVTQ1JJUFRJ T04oIkJyb2FkY29tIEFTUCAyLjAgRXRoZXJuZXQgY29udHJvbGxlciBkcml2ZXIiKTsKK01PRFVM RV9BTElBUygicGxhdGZvcm06YnJjbSxhc3AtdjIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmgg Yi9kcml2ZXJzL25ldC9ldGhlPQpybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yNmJjZjA5YTYzZGYKLS0tIC9kZXYvbnVs bAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5oCkBAIC0w LDAgKzEsNTA0IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworI2lm bmRlZiBfX0JDTUFTUF9ICisjZGVmaW5lIF9fQkNNQVNQX0gKKworI2luY2x1ZGUgPGxpbnV4L25l dGRldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BoeS5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLTY0 LW5vbmF0b21pYy1oaS1sby5oPgorI2luY2x1ZGUgPHVhcGkvbGludXgvZXRodG9vbC5oPgorCisj ZGVmaW5lIEFTUF9JTlRSMl9PRkZTRVQJCQkweDEwMDAKKyNkZWZpbmUgIEFTUF9JTlRSMl9TVEFU VVMJCQkweDAKKyNkZWZpbmUgIEFTUF9JTlRSMl9TRVQJCQkJMHg0CisjZGVmaW5lICBBU1BfSU5U UjJfQ0xFQVIJCQkweDgKKyNkZWZpbmUgIEFTUF9JTlRSMl9NQVNLX1NUQVRVUwkJCTB4YworI2Rl ZmluZSAgQVNQX0lOVFIyX01BU0tfU0VUCQkJMHgxMAorI2RlZmluZSAgQVNQX0lOVFIyX01BU0tf Q0xFQVIJCQkweDE0CisKKyNkZWZpbmUgQVNQX0lOVFIyX1JYX0VDSChpbnRyKQkJCUJJVChpbnRy KQorI2RlZmluZSBBU1BfSU5UUjJfVFhfREVTQyhpbnRyKQkJCUJJVCgoaW50cikgKyAxNCkKKyNk ZWZpbmUgQVNQX0lOVFIyX1VNQzBfV0FLRQkJCUJJVCgyMikKKyNkZWZpbmUgQVNQX0lOVFIyX1VN QzFfV0FLRQkJCUJJVCgyOCkKKworI2RlZmluZSBBU1BfV0FLRVVQX0lOVFIyX09GRlNFVAkJCTB4 MTIwMAorI2RlZmluZSAgQVNQX1dBS0VVUF9JTlRSMl9TVEFUVVMJCTB4MAorI2RlZmluZSAgQVNQ X1dBS0VVUF9JTlRSMl9TRVQJCQkweDQKKyNkZWZpbmUgIEFTUF9XQUtFVVBfSU5UUjJfQ0xFQVIJ CQkweDgKKyNkZWZpbmUgIEFTUF9XQUtFVVBfSU5UUjJfTUFTS19TVEFUVVMJCTB4YworI2RlZmlu ZSAgQVNQX1dBS0VVUF9JTlRSMl9NQVNLX1NFVAkJMHgxMAorI2RlZmluZSAgQVNQX1dBS0VVUF9J TlRSMl9NQVNLX0NMRUFSCQkweDE0CisjZGVmaW5lIEFTUF9XQUtFVVBfSU5UUjJfTVBEXzAJCQlC SVQoMCkKKyNkZWZpbmUgQVNQX1dBS0VVUF9JTlRSMl9NUERfMQkJCUJJVCgxKQorI2RlZmluZSBB U1BfV0FLRVVQX0lOVFIyX0ZJTFRfMAkJCUJJVCgyKQorI2RlZmluZSBBU1BfV0FLRVVQX0lOVFIy X0ZJTFRfMQkJCUJJVCgzKQorI2RlZmluZSBBU1BfV0FLRVVQX0lOVFIyX0ZXCQkJQklUKDQpCisK KyNkZWZpbmUgQVNQX1RYX0FOQUxZVElDU19PRkZTRVQJCQkweDRjMDAwCisjZGVmaW5lICBBU1Bf VFhfQU5BTFlUSUNTX0NUUkwJCQkweDAKKworI2RlZmluZSBBU1BfUlhfQU5BTFlUSUNTX09GRlNF VAkJCTB4OTgwMDAKKyNkZWZpbmUgIEFTUF9SWF9BTkFMWVRJQ1NfQ1RSTAkJCTB4MAorCisjZGVm aW5lIEFTUF9SWF9DVFJMX09GRlNFVAkJCTB4OWYwMDAKKyNkZWZpbmUgQVNQX1JYX0NUUkxfVU1B Q18wX0ZSQU1FX0NPVU5UCQkweDgKKyNkZWZpbmUgQVNQX1JYX0NUUkxfVU1BQ18xX0ZSQU1FX0NP VU5UCQkweGMKKyNkZWZpbmUgQVNQX1JYX0NUUkxfRkJfMF9GUkFNRV9DT1VOVAkJMHgxNAorI2Rl ZmluZSBBU1BfUlhfQ1RSTF9GQl8xX0ZSQU1FX0NPVU5UCQkweDE4CisjZGVmaW5lIEFTUF9SWF9D VFJMX0ZCXzhfRlJBTUVfQ09VTlQJCTB4MWMKKy8qIGFzcDIuMSBkaXZlcmdlcyBvZmZzZXRzIGhl cmUgKi8KKy8qIEFTUDIuMCAqLworI2RlZmluZSBBU1BfUlhfQ1RSTF9GQl9PVVRfRlJBTUVfQ09V TlQJCTB4MjAKKyNkZWZpbmUgQVNQX1JYX0NUUkxfRkJfRklMVF9PVVRfRlJBTUVfQ09VTlQJMHgy NAorI2RlZmluZSBBU1BfUlhfQ1RSTF9GTFVTSAkJCTB4MjgKKyNkZWZpbmUgIEFTUF9DVFJMX1VN QUMwX0ZMVVNIX01BU0sJCShCSVQoMCkgfCBCSVQoMTIpKQorI2RlZmluZSAgQVNQX0NUUkxfVU1B QzFfRkxVU0hfTUFTSwkJKEJJVCgxKSB8IEJJVCgxMykpCisjZGVmaW5lICBBU1BfQ1RSTF9TUEJf RkxVU0hfTUFTSwkJKEJJVCg4KSB8IEJJVCgyMCkpCisjZGVmaW5lIEFTUF9SWF9DVFJMX0ZCX1JY X0ZJRk9fREVQVEgJCTB4MzAKKy8qIEFTUDIuMSAqLworI2RlZmluZSBBU1BfUlhfQ1RSTF9GQl85 X0ZSQU1FX0NPVU5UXzJfMQkweDIwCisjZGVmaW5lIEFTUF9SWF9DVFJMX0ZCXzEwX0ZSQU1FX0NP VU5UXzJfMQkweDI0CisjZGVmaW5lIEFTUF9SWF9DVFJMX0ZCX09VVF9GUkFNRV9DT1VOVF8yXzEJ MHgyOAorI2RlZmluZSBBU1BfUlhfQ1RSTF9GQl9GSUxUX09VVF9GUkFNRV9DT1VOVF8yXzEJMHgy YworI2RlZmluZSBBU1BfUlhfQ1RSTF9GTFVTSF8yXzEJCQkweDMwCisjZGVmaW5lIEFTUF9SWF9D VFJMX0ZCX1JYX0ZJRk9fREVQVEhfMl8xCTB4MzgKKworI2RlZmluZSBBU1BfUlhfRklMVEVSX09G RlNFVAkJCTB4ODAwMDAKKyNkZWZpbmUgIEFTUF9SWF9GSUxURVJfQkxLX0NUUkwJCQkweDAKKyNk ZWZpbmUgICBBU1BfUlhfRklMVEVSX09QVVRfRU4JCQlCSVQoMCkKKyNkZWZpbmUgICBBU1BfUlhf RklMVEVSX01EQV9FTgkJCUJJVCgxKQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTE5SX01ECQkJ QklUKDIpCisjZGVmaW5lICAgQVNQX1JYX0ZJTFRFUl9HRU5fV0tfRU4JCUJJVCgzKQorI2RlZmlu ZSAgIEFTUF9SWF9GSUxURVJfR0VOX1dLX0NMUgkJQklUKDQpCisjZGVmaW5lICAgQVNQX1JYX0ZJ TFRFUl9OVF9GTFRfRU4JCUJJVCg1KQorI2RlZmluZSAgQVNQX1JYX0ZJTFRFUl9NREFfQ0ZHKHNl bCkJCSgoKHNlbCkgKiAweDE0KSArIDB4MTAwKQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTURB X0NGR19FTl9TSElGVAk4CisjZGVmaW5lICAgQVNQX1JYX0ZJTFRFUl9NREFfQ0ZHX1VNQ19TRUwo c2VsKQkoKHNlbCkgPiAxID8gQklUKDE3KSA6IFwKKwkJCQkJCSBCSVQoKHNlbCkgKyA5KSkKKyNk ZWZpbmUgIEFTUF9SWF9GSUxURVJfTURBX1BBVF9IKHNlbCkJCSgoKHNlbCkgKiAweDE0KSArIDB4 MTA0KQorI2RlZmluZSAgQVNQX1JYX0ZJTFRFUl9NREFfUEFUX0woc2VsKQkJKCgoc2VsKSAqIDB4 MTQpICsgMHgxMDgpCisjZGVmaW5lICBBU1BfUlhfRklMVEVSX01EQV9NU0tfSChzZWwpCQkoKChz ZWwpICogMHgxNCkgKyAweDEwYykKKyNkZWZpbmUgIEFTUF9SWF9GSUxURVJfTURBX01TS19MKHNl bCkJCSgoKHNlbCkgKiAweDE0KSArIDB4MTEwKQorI2RlZmluZSAgQVNQX1JYX0ZJTFRFUl9NREFf Q0ZHKHNlbCkJCSgoKHNlbCkgKiAweDE0KSArIDB4MTAwKQorI2RlZmluZSAgQVNQX1JYX0ZJTFRF Ul9NREFfUEFUX0goc2VsKQkJKCgoc2VsKSAqIDB4MTQpICsgMHgxMDQpCisjZGVmaW5lICBBU1Bf UlhfRklMVEVSX01EQV9QQVRfTChzZWwpCQkoKChzZWwpICogMHgxNCkgKyAweDEwOCkKKyNkZWZp bmUgIEFTUF9SWF9GSUxURVJfTURBX01TS19IKHNlbCkJCSgoKHNlbCkgKiAweDE0KSArIDB4MTBj KQorI2RlZmluZSAgQVNQX1JYX0ZJTFRFUl9NREFfTVNLX0woc2VsKQkJKCgoc2VsKSAqIDB4MTQp ICsgMHgxMTApCisjZGVmaW5lICBBU1BfUlhfRklMVEVSX05FVF9DRkcoc2VsKQkJKCgoc2VsKSAq IDB4YTA0KSArIDB4NDAwKQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX0NGR19DSChzZWwp CQkoKHNlbCkgPDwgMCkKKyNkZWZpbmUgICBBU1BfUlhfRklMVEVSX05FVF9DRkdfRU4JCUJJVCg5 KQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX0NGR19MMl9FTgkJQklUKDEwKQorI2RlZmlu ZSAgIEFTUF9SWF9GSUxURVJfTkVUX0NGR19MM19FTgkJQklUKDExKQorI2RlZmluZSAgIEFTUF9S WF9GSUxURVJfTkVUX0NGR19MNF9FTgkJQklUKDEyKQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJf TkVUX0NGR19MM19GUk0oc2VsKQkoKHNlbCkgPDwgMTMpCisjZGVmaW5lICAgQVNQX1JYX0ZJTFRF Ul9ORVRfQ0ZHX0w0X0ZSTShzZWwpCSgoc2VsKSA8PCAxNSkKKyNkZWZpbmUgICBBU1BfUlhfRklM VEVSX05FVF9DRkdfVU1DKHNlbCkJQklUKChzZWwpICsgMTkpCisjZGVmaW5lICAgQVNQX1JYX0ZJ TFRFUl9ORVRfQ0ZHX0RNQV9FTgkJQklUKDI3KQorCisjZGVmaW5lICBBU1BfUlhfRklMVEVSX05F VF9PRkZTRVRfTUFYCQkzMgorI2RlZmluZSAgQVNQX1JYX0ZJTFRFUl9ORVRfUEFUKHNlbCwgYmxv Y2ssIG9mZikgXAorCQkoKChzZWwpICogMHhhMDQpICsgKChibG9jaykgKiAweDIwMCkgKyAob2Zm KSArIDB4NjAwKQorI2RlZmluZSAgQVNQX1JYX0ZJTFRFUl9ORVRfTUFTSyhzZWwsIGJsb2NrLCBv ZmYpIFwKKwkJKCgoc2VsKSAqIDB4YTA0KSArICgoYmxvY2spICogMHgyMDApICsgKG9mZikgKyAw eDcwMCkKKworI2RlZmluZSAgQVNQX1JYX0ZJTFRFUl9ORVRfT0ZGU0VUKHNlbCkJCSgoKHNlbCkg KiAweGEwNCkgKyAweGUwMCkKKyNkZWZpbmUgICBBU1BfUlhfRklMVEVSX05FVF9PRkZTRVRfTDIo dmFsKQkoKHZhbCkgPDwgMCkKKyNkZWZpbmUgICBBU1BfUlhfRklMVEVSX05FVF9PRkZTRVRfTDNf MCh2YWwpCSgodmFsKSA8PCA4KQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX09GRlNFVF9M M18xKHZhbCkJKCh2YWwpIDw8IDE2KQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX09GRlNF VF9MNCh2YWwpCSgodmFsKSA8PCAyNCkKKworI2RlZmluZSBBU1BfRURQS1RfT0ZGU0VUCQkJMHg5 YzAwMAorI2RlZmluZSAgQVNQX0VEUEtUX0VOQUJMRQkJCTB4NAorI2RlZmluZSAgIEFTUF9FRFBL VF9FTkFCTEVfRU4JCQlCSVQoMCkKKyNkZWZpbmUgIEFTUF9FRFBLVF9IRFJfQ0ZHCQkJMHhjCisj ZGVmaW5lICAgQVNQX0VEUEtUX0hEUl9TWl9TSElGVAkJMgorI2RlZmluZSAgIEFTUF9FRFBLVF9I RFJfU1pfMzIJCQkwCisjZGVmaW5lICAgQVNQX0VEUEtUX0hEUl9TWl82NAkJCTEKKyNkZWZpbmUg ICBBU1BfRURQS1RfSERSX1NaXzk2CQkJMgorI2RlZmluZSAgIEFTUF9FRFBLVF9IRFJfU1pfMTI4 CQkJMworI2RlZmluZSBBU1BfRURQS1RfQlVSU1RfQlVGX1BTQ0FMX1RPVVQJCTB4MTAKKyNkZWZp bmUgQVNQX0VEUEtUX0JVUlNUX0JVRl9XUklURV9UT1VUCQkweDE0CisjZGVmaW5lIEFTUF9FRFBL VF9CVVJTVF9CVUZfUkVBRF9UT1VUCQkweDE4CisjZGVmaW5lIEFTUF9FRFBLVF9SWF9UU19DT1VO VEVSCQkJMHgzOAorI2RlZmluZSAgQVNQX0VEUEtUX0VOREkJCQkJMHg0OAorI2RlZmluZSAgIEFT UF9FRFBLVF9FTkRJX0RFU0NfU0hJRlQJCTgKKyNkZWZpbmUgICBBU1BfRURQS1RfRU5ESV9OT19C VF9TV1AJCTAKKyNkZWZpbmUgICBBU1BfRURQS1RfRU5ESV9CVF9TV1BfV0QJCTEKKyNkZWZpbmUg QVNQX0VEUEtUX1JYX1BLVF9DTlQJCQkweDEzOAorI2RlZmluZSBBU1BfRURQS1RfSERSX0VYVFJf Q05UCQkJMHgxM2MKKyNkZWZpbmUgQVNQX0VEUEtUX0hEUl9PVVRfQ05UCQkJMHgxNDAKKworI2Rl ZmluZSBBU1BfQ1RSTAkJCQkweDEwMTAwMAorI2RlZmluZSAgQVNQX0NUUkxfQVNQX1NXX0lOSVQJ CQkweDA0CisjZGVmaW5lICAgQVNQX0NUUkxfQVNQX1NXX0lOSVRfQUNQVVNTX0NPUkUJQklUKDAp CisjZGVmaW5lICAgQVNQX0NUUkxfQVNQX1NXX0lOSVRfQVNQX1RYCQlCSVQoMSkKKyNkZWZpbmUg ICBBU1BfQ1RSTF9BU1BfU1dfSU5JVF9BU19SWAkJQklUKDIpCisjZGVmaW5lICAgQVNQX0NUUkxf QVNQX1NXX0lOSVRfQVNQX1JHTUlJX1VNQUMwCUJJVCgzKQorI2RlZmluZSAgIEFTUF9DVFJMX0FT UF9TV19JTklUX0FTUF9SR01JSV9VTUFDMQlCSVQoNCkKKyNkZWZpbmUgICBBU1BfQ1RSTF9BU1Bf U1dfSU5JVF9BU1BfWE1FTUlGCUJJVCg1KQorI2RlZmluZSAgQVNQX0NUUkxfQ0xPQ0tfQ1RSTAkJ CTB4MDQKKyNkZWZpbmUgICBBU1BfQ1RSTF9DTE9DS19DVFJMX0FTUF9UWF9ESVNBQkxFCUJJVCgw KQorI2RlZmluZSAgIEFTUF9DVFJMX0NMT0NLX0NUUkxfQVNQX1JYX0RJU0FCTEUJQklUKDEpCisj ZGVmaW5lICAgQVNQX0NUUkxfQ0xPQ0tfQ1RSTF9BU1BfUkdNSUlfU0hJRlQJMgorI2RlZmluZSAg IEFTUF9DVFJMX0NMT0NLX0NUUkxfQVNQX1JHTUlJX01BU0sJKDB4NyA8PCBBU1BfQ1RSTF9DTE9D S19DVFJMX0E9ClNQX1JHTUlJX1NISUZUKQorI2RlZmluZSAgIEFTUF9DVFJMX0NMT0NLX0NUUkxf QVNQX1JHTUlJX0RJUyh4KQlCSVQoQVNQX0NUUkxfQ0xPQ0tfQ1RSTF9BU1A9Cl9SR01JSV9TSElG VCArICh4KSkKKyNkZWZpbmUgICBBU1BfQ1RSTF9DTE9DS19DVFJMX0FTUF9BTExfRElTQUJMRQlH RU5NQVNLKDQsIDApCisjZGVmaW5lICBBU1BfQ1RSTF9DT1JFX0NMT0NLX1NFTEVDVAkJMHgwOAor I2RlZmluZSAgIEFTUF9DVFJMX0NPUkVfQ0xPQ0tfU0VMRUNUX01BSU4JQklUKDApCisjZGVmaW5l ICBBU1BfQ1RSTF9TQ1JBVENIXzAJCQkweDBjCisKK3N0cnVjdCBiY21hc3BfdHhfY2IgeworCXN0 cnVjdCBza19idWZmCQkqc2tiOworCXVuc2lnbmVkIGludAkJYnl0ZXNfc2VudDsKKwlib29sCQkJ bGFzdDsKKworCURFRklORV9ETUFfVU5NQVBfQUREUihkbWFfYWRkcik7CisJREVGSU5FX0RNQV9V Tk1BUF9MRU4oZG1hX2xlbik7Cit9OworCitzdHJ1Y3QgYmNtYXNwX3JlcyB7CisJLyogUGVyIGlu dGVyZmFjZSByZXNvdXJjZXMgKi8KKwkvKiBQb3J0ICovCisJdm9pZCBfX2lvbWVtCQkqdW1hYzsK Kwl2b2lkIF9faW9tZW0JCSp1bWFjMmZiOworCXZvaWQgX19pb21lbQkJKnJnbWlpOworCisJLyog VFggc2xvd3BhdGgvY29uZmlndXJhdGlvbiAqLworCXZvaWQgX19pb21lbQkJKnR4X3NwYl9jdHJs OworCXZvaWQgX19pb21lbQkJKnR4X3NwYl90b3A7CisJdm9pZCBfX2lvbWVtCQkqdHhfZXBrdF9j b3JlOworCXZvaWQgX19pb21lbQkJKnR4X3BhdXNlX2N0cmw7Cit9OworCisjZGVmaW5lIERFU0Nf QUREUih4KQkJKCh4KSAmIEdFTk1BU0tfVUxMKDM5LCAwKSkKKyNkZWZpbmUgREVTQ19GTEFHUyh4 KQkJKCh4KSAmIEdFTk1BU0tfVUxMKDYzLCA0MCkpCisKK3N0cnVjdCBiY21hc3BfZGVzYyB7CisJ dTY0CQlidWY7CisJI2RlZmluZSBERVNDX0NIS1NVTQlCSVRfVUxMKDQwKQorCSNkZWZpbmUgREVT Q19DUkNfRVJSCUJJVF9VTEwoNDEpCisJI2RlZmluZSBERVNDX1JYX1NZTV9FUlIJQklUX1VMTCg0 MikKKwkjZGVmaW5lIERFU0NfTk9fT0NUX0FMTiBCSVRfVUxMKDQzKQorCSNkZWZpbmUgREVTQ19Q S1RfVFJVQwlCSVRfVUxMKDQ0KQorCS8qICAzOTowIChUWC9SWCkgYml0cyAwLTM5IG9mIGJ1ZiBh ZGRyCisJICogICAgNDAgKFJYKSBjaGVja3N1bQorCSAqICAgIDQxIChSWCkgY3JjX2Vycm9yCisJ ICogICAgNDIgKFJYKSByeF9zeW1ib2xfZXJyb3IKKwkgKiAgICA0MyAoUlgpIG5vbl9vY3RldF9h bGlnbmVkCisJICogICAgNDQgKFJYKSBwa3RfdHJ1bmNhdGVkCisJICogICAgNDUgUmVzZXJ2ZWQK KwkgKiA1Njo0NiAoUlgpIG1hY19maWx0ZXJfaWQKKwkgKiA2MDo1NyAoUlgpIHJ4X3BvcnRfbnVt ICgwLXVuaWNtYWMwLCAxLXVuaW1hYzEpCisJICogICAgNjEgUmVzZXJ2ZWQKKwkgKiA2Mzo2MiAo VFgpIGZvcndhcmQgQ1JDLCBvdmVyd3JpdGUgQ1JDCisJICovCisJdTMyCQlzaXplOworCXUzMgkJ ZmxhZ3M7CisJI2RlZmluZSBERVNDX0lOVF9FTiAgICAgQklUKDApCisJI2RlZmluZSBERVNDX1NP RglCSVQoMSkKKwkjZGVmaW5lIERFU0NfRU9GCUJJVCgyKQorCSNkZWZpbmUgREVTQ19FUEtUX0NN RCAgIEJJVCgzKQorCSNkZWZpbmUgREVTQ19TQ1JBTV9TVCAgIEJJVCg4KQorCSNkZWZpbmUgREVT Q19TQ1JBTV9FTkQgIEJJVCg5KQorCSNkZWZpbmUgREVTQ19QQ1BQICAgICAgIEJJVCgxMCkKKwkj ZGVmaW5lIERFU0NfUFBQUCAgICAgICBCSVQoMTEpCisJLyogICAgIDAgKFRYKSB0eF9pbnRfZW4K KwkgKiAgICAgMSAoVFgvUlgpIFNPRgorCSAqICAgICAyIChUWC9SWCkgRU9GCisJICogICAgIDMg KFRYKSBlcGt0X2NvbW1hbmQKKwkgKiAgIDY6NCAoVFgpIFBBCisJICogICAgIDcgKFRYKSBwYXVz ZSBhdCBkZXNjIGVuZAorCSAqICAgICA4IChUWCkgc2NyYW1fc3RhcnQKKwkgKiAgICAgOSAoVFgp IHNjcmFtX2VuZAorCSAqICAgIDEwIChUWCkgUENQUAorCSAqICAgIDExIChUWCkgUFBQUAorCSAq IDE0OjEyIFJlc2VydmVkCisJICogICAgMTUgKFRYKSBwaWQgY2ggVmFsaWQKKwkgKiAxOToxNiAo VFgpIGRhdGFfcGt0X3R5cGUKKwkgKiAzMjoyMCAoVFgpIHBpZF9jaGFubmVsIChSWCkgbndfZmls dGVyX2lkCisJICovCit9OworCitzdHJ1Y3QgYmNtYXNwX2ludGY7CisKK3N0cnVjdCBiY21hc3Bf aW50Zl9zdGF0czY0eworCS8qIFJ4IFN0YXRzICovCisJdTY0X3N0YXRzX3QJcnhfcGFja2V0czsK Kwl1NjRfc3RhdHNfdAlyeF9ieXRlczsKKwl1NjRfc3RhdHNfdAlyeF9lcnJvcnM7CisJdTY0X3N0 YXRzX3QJcnhfZHJvcHBlZDsKKwl1NjRfc3RhdHNfdAlyeF9jcmNfZXJyczsKKwl1NjRfc3RhdHNf dAlyeF9zeW1fZXJyczsKKworCS8qIFR4IFN0YXRzKi8KKwl1NjRfc3RhdHNfdAl0eF9wYWNrZXRz OworCXU2NF9zdGF0c190CXR4X2J5dGVzOworCXU2NF9zdGF0c190CXR4X2Vycm9yczsKKworCXN0 cnVjdCB1NjRfc3RhdHNfc3luYwkJc3luY3A7Cit9OworCitzdHJ1Y3QgYmNtYXNwX2ludGZfb3Bz IHsKKwl1bnNpZ25lZCBsb25nICgqcnhfZGVzY19yZWFkKShzdHJ1Y3QgYmNtYXNwX2ludGYgKmlu dGYpOworCXZvaWQgKCpyeF9idWZmZXJfd3JpdGUpKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50Ziwg ZG1hX2FkZHJfdCBhZGRyKTsKKwl2b2lkICgqcnhfZGVzY193cml0ZSkoc3RydWN0IGJjbWFzcF9p bnRmICppbnRmLCBkbWFfYWRkcl90IGFkZHIpOworCXVuc2lnbmVkIGxvbmcgKCp0eF9yZWFkKShz dHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpOworCXZvaWQgKCp0eF93cml0ZSkoc3RydWN0IGJjbWFz cF9pbnRmICppbnRmLCBkbWFfYWRkcl90IGFkZHIpOworfTsKKworc3RydWN0IGJjbWFzcF9pbnRm IHsKKwlzdHJ1Y3QgbmV0X2RldmljZQkJKm5kZXY7CisJc3RydWN0IGJjbWFzcF9wcml2CQkqcGFy ZW50OworCisJLyogQVNQIENoICovCisJaW50CQkJCWNoYW5uZWw7CisJaW50CQkJCXBvcnQ7CisJ Y29uc3Qgc3RydWN0IGJjbWFzcF9pbnRmX29wcwkqb3BzOworCisJLyogVXNlZCBmb3Igc3BsaXR0 aW5nIHNoYXJlZCByZXNvdXJjZXMgKi8KKwlpbnQJCQkJaW5kZXg7CisKKwlzdHJ1Y3QgbmFwaV9z dHJ1Y3QJdHhfbmFwaTsKKwkvKiBUWCByaW5nLCBzdGFydHMgb24gYSBuZXcgY2FjaGVsaW5lIGJv dW5kYXJ5ICovCisJdm9pZCBfX2lvbWVtCQkJKnR4X3NwYl9kbWE7CisJaW50CQkJCXR4X3NwYl9p bmRleDsKKwlpbnQJCQkJdHhfc3BiX2NsZWFuX2luZGV4OworCXN0cnVjdCBiY21hc3BfZGVzYwkJ KnR4X3NwYl9jcHU7CisJZG1hX2FkZHJfdAkJCXR4X3NwYl9kbWFfYWRkcjsKKwlkbWFfYWRkcl90 CQkJdHhfc3BiX2RtYV92YWxpZDsKKwlkbWFfYWRkcl90CQkJdHhfc3BiX2RtYV9yZWFkOworCXN0 cnVjdCBiY21hc3BfdHhfY2IJCSp0eF9jYnM7CisKKwkvKiBSWCByaW5nLCBzdGFydHMgb24gYSBu ZXcgY2FjaGVsaW5lIGJvdW5kYXJ5ICovCisJdm9pZCBfX2lvbWVtCQkJKnJ4X2VkcGt0X2NmZzsK Kwl2b2lkIF9faW9tZW0JCQkqcnhfZWRwa3RfZG1hOworCWludAkJCQlyeF9lZHBrdF9pbmRleDsK KwlpbnQJCQkJcnhfYnVmX29yZGVyOworCXN0cnVjdCBiY21hc3BfZGVzYwkJKnJ4X2VkcGt0X2Nw dTsKKwlkbWFfYWRkcl90CQkJcnhfZWRwa3RfZG1hX2FkZHI7CisJZG1hX2FkZHJfdAkJCXJ4X2Vk cGt0X2RtYV9yZWFkOworCisJLyogUlggYnVmZmVyIHByZWZldGNoZXIgcmluZyovCisJdm9pZAkJ CQkqcnhfcmluZ19jcHU7CisJZG1hX2FkZHJfdAkJCXJ4X3JpbmdfZG1hOworCWRtYV9hZGRyX3QJ CQlyeF9yaW5nX2RtYV92YWxpZDsKKwlzdHJ1Y3QgbmFwaV9zdHJ1Y3QJCXJ4X25hcGk7CisKKwlz dHJ1Y3QgYmNtYXNwX3JlcwkJcmVzOworCXVuc2lnbmVkIGludAkJCWNyY19md2Q7CisKKwkvKiBQ SFkgZGV2aWNlICovCisJc3RydWN0IGRldmljZV9ub2RlCQkqcGh5X2RuOworCXN0cnVjdCBkZXZp Y2Vfbm9kZQkJKm5kZXZfZG47CisJcGh5X2ludGVyZmFjZV90CQkJcGh5X2ludGVyZmFjZTsKKwli b29sCQkJCWludGVybmFsX3BoeTsKKwlpbnQJCQkJb2xkX3BhdXNlOworCWludAkJCQlvbGRfbGlu azsKKwlpbnQJCQkJb2xkX2R1cGxleDsKKworCXUzMgkJCQltc2dfZW5hYmxlOworCisJLyogU3Rh dGlzdGljcyAqLworCXN0cnVjdCBiY21hc3BfaW50Zl9zdGF0czY0CXN0YXRzNjQ7Cit9OworCisj ZGVmaW5lIE5VTV9NREFfRklMVEVSUwkJCQkzMgorc3RydWN0IGJjbWFzcF9tZGFfZmlsdGVyIHsK KwkvKiBDdXJyZW50IG93bmVyIG9mIHRoaXMgZmlsdGVyICovCisJaW50CQlwb3J0OworCWJvb2wJ CWVuOworCXU4CQlhZGRyW0VUSF9BTEVOXTsKKwl1OAkJbWFza1tFVEhfQUxFTl07Cit9OworCitz dHJ1Y3QgYmNtYXNwX3ByaXY7CisKK3N0cnVjdCBiY21hc3BfaHdfaW5mbyB7CisJdTMyCQlyeF9j dHJsX2ZsdXNoOworCXUzMgkJdW1hYzJmYjsKKwl1MzIJCXJ4X2N0cmxfZmJfb3V0X2ZyYW1lX2Nv dW50OworCXUzMgkJcnhfY3RybF9mYl9maWx0X291dF9mcmFtZV9jb3VudDsKKwl1MzIJCXJ4X2N0 cmxfZmJfcnhfZmlmb19kZXB0aDsKK307CisKK3N0cnVjdCBiY21hc3BfcGxhdF9kYXRhIHsKKwlz dHJ1Y3QgYmNtYXNwX2h3X2luZm8JCSpod19pbmZvOworfTsKKworc3RydWN0IGJjbWFzcF9wcml2 IHsKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlCQkqcGRldjsKKwlzdHJ1Y3QgY2xrCQkJKmNsazsK KworCWludAkJCQlpcnE7CisJdTMyCQkJCWlycV9tYXNrOworCisJdm9pZCBfX2lvbWVtCQkJKmJh c2U7CisJc3RydWN0CWJjbWFzcF9od19pbmZvCQkqaHdfaW5mbzsKKworCXVuc2lnbmVkIGludAkJ CWludGZfY291bnQ7CisJc3RydWN0IGJjbWFzcF9pbnRmCQkqKmludGZzOworCisJc3RydWN0IGJj bWFzcF9tZGFfZmlsdGVyCW1kYV9maWx0ZXJzW05VTV9NREFfRklMVEVSU107CisKKwkvKiBNQUMg ZGVzdGluYXRpb24gYWRkcmVzcyBmaWx0ZXJzIGxvY2sgKi8KKwlzcGlubG9ja190CQkJbWRhX2xv Y2s7CisKKwkvKiBQcm90ZWN0cyBhY2Nlc3NlcyB0byBBU1BfQ1RSTF9DTE9DS19DVFJMICovCisJ c3BpbmxvY2tfdAkJCWNsa19sb2NrOworfTsKKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25n IGJjbWFzcF9pbnRmX3J4X2Rlc2NfcmVhZChzdHJ1Y3QgYmNtYXNwX2ludGYgKmk9Cm50ZikKK3sK KwlyZXR1cm4gaW50Zi0+b3BzLT5yeF9kZXNjX3JlYWQoaW50Zik7Cit9CisKK3N0YXRpYyBpbmxp bmUgdm9pZCBiY21hc3BfaW50Zl9yeF9idWZmZXJfd3JpdGUoc3RydWN0IGJjbWFzcF9pbnRmICpp bnRmLAorCQkJCQkgICAgICAgZG1hX2FkZHJfdCBhZGRyKQoreworCWludGYtPm9wcy0+cnhfYnVm ZmVyX3dyaXRlKGludGYsIGFkZHIpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYmNtYXNwX2lu dGZfcnhfZGVzY193cml0ZShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsCisJCQkJCSAgICAgZG1h X2FkZHJfdCBhZGRyKQoreworCWludGYtPm9wcy0+cnhfZGVzY193cml0ZShpbnRmLCBhZGRyKTsK K30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGJjbWFzcF9pbnRmX3R4X3JlYWQoc3Ry dWN0IGJjbWFzcF9pbnRmICppbnRmKQoreworCXJldHVybiBpbnRmLT5vcHMtPnR4X3JlYWQoaW50 Zik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBiY21hc3BfaW50Zl90eF93cml0ZShzdHJ1Y3Qg YmNtYXNwX2ludGYgKmludGYsCisJCQkJCWRtYV9hZGRyX3QgYWRkcikKK3sKKwlpbnRmLT5vcHMt PnR4X3dyaXRlKGludGYsIGFkZHIpOworfQorCisjZGVmaW5lIF9fQkNNQVNQX0lPX01BQ1JPKG5h bWUsIG0pCQkJCQlcCitzdGF0aWMgaW5saW5lIHUzMiBuYW1lIyNfcmwoc3RydWN0IGJjbWFzcF9p bnRmICppbnRmLCB1MzIgb2ZmKQkJXAorewkJCQkJCQkJCVwKKwl1MzIgcmVnID0zRCByZWFkbF9y ZWxheGVkKGludGYtPm0gKyBvZmYpOwkJCQlcCisJcmV0dXJuIHJlZzsJCQkJCQkJXAorfQkJCQkJ CQkJCVwKK3N0YXRpYyBpbmxpbmUgdm9pZCBuYW1lIyNfd2woc3RydWN0IGJjbWFzcF9pbnRmICpp bnRmLCB1MzIgdmFsLCB1MzIgb2ZmKVwKK3sJCQkJCQkJCQlcCisJd3JpdGVsX3JlbGF4ZWQodmFs LCBpbnRmLT5tICsgb2ZmKTsJCQkJXAorfQorCisjZGVmaW5lIEJDTUFTUF9JT19NQUNSTyhuYW1l KQkJX19CQ01BU1BfSU9fTUFDUk8obmFtZSwgcmVzLm5hbWUpCisjZGVmaW5lIEJDTUFTUF9GUF9J T19NQUNSTyhuYW1lKQlfX0JDTUFTUF9JT19NQUNSTyhuYW1lLCBuYW1lKQorCitCQ01BU1BfSU9f TUFDUk8odW1hYyk7CitCQ01BU1BfSU9fTUFDUk8odW1hYzJmYik7CitCQ01BU1BfSU9fTUFDUk8o cmdtaWkpOworQkNNQVNQX0ZQX0lPX01BQ1JPKHR4X3NwYl9kbWEpOworQkNNQVNQX0lPX01BQ1JP KHR4X3NwYl9jdHJsKTsKK0JDTUFTUF9JT19NQUNSTyh0eF9zcGJfdG9wKTsKK0JDTUFTUF9JT19N QUNSTyh0eF9lcGt0X2NvcmUpOworQkNNQVNQX0lPX01BQ1JPKHR4X3BhdXNlX2N0cmwpOworQkNN QVNQX0ZQX0lPX01BQ1JPKHJ4X2VkcGt0X2RtYSk7CitCQ01BU1BfRlBfSU9fTUFDUk8ocnhfZWRw a3RfY2ZnKTsKKworI2RlZmluZSBfX0JDTUFTUF9GUF9JT19NQUNST19RKG5hbWUsIG0pCQkJCQlc CitzdGF0aWMgaW5saW5lIHU2NCBuYW1lIyNfcnEoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCB1 MzIgb2ZmKQkJXAorewkJCQkJCQkJCVwKKwl1NjQgcmVnID0zRCByZWFkcV9yZWxheGVkKGludGYt Pm0gKyBvZmYpOwkJCQlcCisJcmV0dXJuIHJlZzsJCQkJCQkJXAorfQkJCQkJCQkJCVwKK3N0YXRp YyBpbmxpbmUgdm9pZCBuYW1lIyNfd3Eoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCB1NjQgdmFs LCB1MzIgb2ZmKVwKK3sJCQkJCQkJCQlcCisJd3JpdGVxX3JlbGF4ZWQodmFsLCBpbnRmLT5tICsg b2ZmKTsJCQkJXAorfQorCisjZGVmaW5lIEJDTUFTUF9GUF9JT19NQUNST19RKG5hbWUpCV9fQkNN QVNQX0ZQX0lPX01BQ1JPX1EobmFtZSwgbmFtZSkKKworQkNNQVNQX0ZQX0lPX01BQ1JPX1EodHhf c3BiX2RtYSk7CitCQ01BU1BfRlBfSU9fTUFDUk9fUShyeF9lZHBrdF9kbWEpOworQkNNQVNQX0ZQ X0lPX01BQ1JPX1EocnhfZWRwa3RfY2ZnKTsKKworI2RlZmluZSBQS1RfT0ZGTE9BRF9OT1AJCQko MCA8PCAyOCkKKyNkZWZpbmUgUEtUX09GRkxPQURfSERSX09QCQkoMSA8PCAyOCkKKyNkZWZpbmUg IFBLVF9PRkZMT0FEX0hEUl9XUkJBQ0sJCUJJVCgxOSkKKyNkZWZpbmUgIFBLVF9PRkZMT0FEX0hE Ul9DT1VOVCh4KQkoKHgpIDw8IDE2KQorI2RlZmluZSAgUEtUX09GRkxPQURfSERSX1NJWkVfMSh4 KQkoKHgpIDw8IDQpCisjZGVmaW5lICBQS1RfT0ZGTE9BRF9IRFJfU0laRV8yKHgpCSh4KQorI2Rl ZmluZSAgUEtUX09GRkxPQURfSERSMl9TSVpFXzIoeCkJKCh4KSA8PCAyNCkKKyNkZWZpbmUgIFBL VF9PRkZMT0FEX0hEUjJfU0laRV8zKHgpCSgoeCkgPDwgMTIpCisjZGVmaW5lICBQS1RfT0ZGTE9B RF9IRFIyX1NJWkVfNCh4KQkoeCkKKyNkZWZpbmUgUEtUX09GRkxPQURfRVBLVF9PUAkJKDIgPDwg MjgpCisjZGVmaW5lICBQS1RfT0ZGTE9BRF9FUEtUX1dSQkFDSwlCSVQoMjMpCisjZGVmaW5lICBQ S1RfT0ZGTE9BRF9FUEtUX0lQKHgpCQkoKHgpIDw8IDIxKQorI2RlZmluZSAgUEtUX09GRkxPQURf RVBLVF9UUCh4KQkJKCh4KSA8PCAxOSkKKyNkZWZpbmUgIFBLVF9PRkZMT0FEX0VQS1RfTEVOKHgp CSgoeCkgPDwgMTYpCisjZGVmaW5lICBQS1RfT0ZGTE9BRF9FUEtUX0NTVU1fTDMJQklUKDE1KQor I2RlZmluZSAgUEtUX09GRkxPQURfRVBLVF9DU1VNX0wyCUJJVCgxNCkKKyNkZWZpbmUgIFBLVF9P RkZMT0FEX0VQS1RfSUQoeCkJCSgoeCkgPDwgMTIpCisjZGVmaW5lICBQS1RfT0ZGTE9BRF9FUEtU X1NFUSh4KQkoKHgpIDw8IDEwKQorI2RlZmluZSAgUEtUX09GRkxPQURfRVBLVF9UUyh4KQkJKCh4 KSA8PCA4KQorI2RlZmluZSAgUEtUX09GRkxPQURfRVBLVF9CTE9DKHgpCSh4KQorI2RlZmluZSBQ S1RfT0ZGTE9BRF9FTkRfT1AJCSg3IDw8IDI4KQorCitzdHJ1Y3QgYmNtYXNwX3BrdF9vZmZsb2Fk IHsKKwlfX2JlMzIJCW5vcDsKKwlfX2JlMzIJCWhlYWRlcjsKKwlfX2JlMzIJCWhlYWRlcjI7CisJ X19iZTMyCQllcGt0OworCV9fYmUzMgkJZW5kOworfTsKKworI2RlZmluZSBCQ01BU1BfQ09SRV9J T19NQUNSTyhuYW1lLCBvZmZzZXQpCQkJCVwKK3N0YXRpYyBpbmxpbmUgdTMyIG5hbWUjI19jb3Jl X3JsKHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiwJCVwKKwkJCQkgdTMyIG9mZikJCQkJXAorewkJ CQkJCQkJCVwKKwl1MzIgcmVnID0zRCByZWFkbF9yZWxheGVkKHByaXYtPmJhc2UgKyAob2Zmc2V0 KSArIG9mZik7CQlcCisJcmV0dXJuIHJlZzsJCQkJCQkJXAorfQkJCQkJCQkJCVwKK3N0YXRpYyBp bmxpbmUgdm9pZCBuYW1lIyNfY29yZV93bChzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYsCQlcCisJ CQkJICB1MzIgdmFsLCB1MzIgb2ZmKQkJCVwKK3sJCQkJCQkJCQlcCisJd3JpdGVsX3JlbGF4ZWQo dmFsLCBwcml2LT5iYXNlICsgKG9mZnNldCkgKyBvZmYpOwkJXAorfQorCitCQ01BU1BfQ09SRV9J T19NQUNSTyhpbnRyMiwgQVNQX0lOVFIyX09GRlNFVCk7CitCQ01BU1BfQ09SRV9JT19NQUNSTyh3 YWtldXBfaW50cjIsIEFTUF9XQUtFVVBfSU5UUjJfT0ZGU0VUKTsKK0JDTUFTUF9DT1JFX0lPX01B Q1JPKHR4X2FuYWx5dGljcywgQVNQX1RYX0FOQUxZVElDU19PRkZTRVQpOworQkNNQVNQX0NPUkVf SU9fTUFDUk8ocnhfYW5hbHl0aWNzLCBBU1BfUlhfQU5BTFlUSUNTX09GRlNFVCk7CitCQ01BU1Bf Q09SRV9JT19NQUNSTyhyeF9jdHJsLCBBU1BfUlhfQ1RSTF9PRkZTRVQpOworQkNNQVNQX0NPUkVf SU9fTUFDUk8ocnhfZmlsdGVyLCBBU1BfUlhfRklMVEVSX09GRlNFVCk7CitCQ01BU1BfQ09SRV9J T19NQUNSTyhyeF9lZHBrdCwgQVNQX0VEUEtUX09GRlNFVCk7CitCQ01BU1BfQ09SRV9JT19NQUNS TyhjdHJsLCBBU1BfQ1RSTCk7CisKK3N0cnVjdCBiY21hc3BfaW50ZiAqYmNtYXNwX2ludGVyZmFj ZV9jcmVhdGUoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2LAorCQkJCQkgICAgc3RydWN0IGRldmlj ZV9ub2RlICpuZGV2X2RuLCBpbnQgaSk7CisKK3ZvaWQgYmNtYXNwX2ludGVyZmFjZV9kZXN0cm95 KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgYm9vbCB1bnJlZ2lzdGVyKTsKKwordm9pZCBiY21h c3BfZW5hYmxlX3R4X2lycShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGludCBlbik7CisKK3Zv aWQgYmNtYXNwX2VuYWJsZV9yeF9pcnEoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBpbnQgZW4p OworCit2b2lkIGJjbWFzcF9mbHVzaF9yeF9wb3J0KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50Zik7 CisKK2V4dGVybiBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgYmNtYXNwX2V0aHRvb2xfb3BzOwor CitpbnQgYmNtYXNwX2ludGVyZmFjZV9zdXNwZW5kKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50Zik7 CisKK2ludCBiY21hc3BfaW50ZXJmYWNlX3Jlc3VtZShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYp OworCit2b2lkIGJjbWFzcF9zZXRfcHJvbWlzYyhzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGJv b2wgZW4pOworCit2b2lkIGJjbWFzcF9zZXRfYWxsbXVsdGkoc3RydWN0IGJjbWFzcF9pbnRmICpp bnRmLCBib29sIGVuKTsKKwordm9pZCBiY21hc3Bfc2V0X2Jyb2FkKHN0cnVjdCBiY21hc3BfaW50 ZiAqaW50ZiwgYm9vbCBlbik7CisKK3ZvaWQgYmNtYXNwX3NldF9vYWRkcihzdHJ1Y3QgYmNtYXNw X2ludGYgKmludGYsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZHIsCisJCSAgICAgIGJvb2wgZW4p OworCitpbnQgYmNtYXNwX3NldF9lbl9tZGFfZmlsdGVyKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50 ZiwgdW5zaWduZWQgY2hhciAqYWRkciwKKwkJCSAgICAgdW5zaWduZWQgY2hhciAqbWFzayk7CisK K3ZvaWQgYmNtYXNwX2Rpc2FibGVfYWxsX2ZpbHRlcnMoc3RydWN0IGJjbWFzcF9pbnRmICppbnRm KTsKKwordm9pZCBiY21hc3BfY29yZV9jbG9ja19zZXRfaW50ZihzdHJ1Y3QgYmNtYXNwX2ludGYg KmludGYsIGJvb2wgZW4pOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2V0aHRvb2wuYyBiL2RyaXZlcnMvPQpuZXQvZXRoZXJu ZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfZXRodG9vbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uMzk0YzBlMWNiMDI2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfZXRodG9vbC5jCkBAIC0wLDAgKzEs NDAgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisjZGVmaW5lIHByX2Zt dChmbXQpCQkJCSJiY21hc3BfZXRodG9vbDogIiBmbXQKKworI2luY2x1ZGUgPGxpbnV4L2V0aHRv b2wuaD4KKyNpbmNsdWRlIDxsaW51eC9uZXRkZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0 Zm9ybV9kZXZpY2UuaD4KKworI2luY2x1ZGUgImJjbWFzcC5oIgorI2luY2x1ZGUgImJjbWFzcF9p bnRmX2RlZnMuaCIKKworc3RhdGljIHZvaWQgYmNtYXNwX2dldF9kcnZpbmZvKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsCisJCQkgICAgICAgc3RydWN0IGV0aHRvb2xfZHJ2aW5mbyAqaW5mbykKK3sK KwlzdHJzY3B5KGluZm8tPmRyaXZlciwgImJjbWFzcCIsIHNpemVvZihpbmZvLT5kcml2ZXIpKTsK KwlzdHJzY3B5KGluZm8tPmJ1c19pbmZvLCBkZXZfbmFtZShkZXYtPmRldi5wYXJlbnQpLAorCQlz aXplb2YoaW5mby0+YnVzX2luZm8pKTsKK30KKworc3RhdGljIHUzMiBiY21hc3BfZ2V0X21zZ2xl dmVsKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRm ID0zRCBuZXRkZXZfcHJpdihkZXYpOworCisJcmV0dXJuIGludGYtPm1zZ19lbmFibGU7Cit9CisK K3N0YXRpYyB2b2lkIGJjbWFzcF9zZXRfbXNnbGV2ZWwoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg dTMyIGxldmVsKQoreworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0QgbmV0ZGV2X3ByaXYo ZGV2KTsKKworCWludGYtPm1zZ19lbmFibGUgPTNEIGxldmVsOworfQorCitjb25zdCBzdHJ1Y3Qg ZXRodG9vbF9vcHMgYmNtYXNwX2V0aHRvb2xfb3BzID0zRCB7CisJLmdldF9kcnZpbmZvCQk9M0Qg YmNtYXNwX2dldF9kcnZpbmZvLAorCS5nZXRfbGluawkJPTNEIGV0aHRvb2xfb3BfZ2V0X2xpbmss CisJLmdldF9saW5rX2tzZXR0aW5ncwk9M0QgcGh5X2V0aHRvb2xfZ2V0X2xpbmtfa3NldHRpbmdz LAorCS5zZXRfbGlua19rc2V0dGluZ3MJPTNEIHBoeV9ldGh0b29sX3NldF9saW5rX2tzZXR0aW5n cywKKwkuZ2V0X21zZ2xldmVsCQk9M0QgYmNtYXNwX2dldF9tc2dsZXZlbCwKKwkuc2V0X21zZ2xl dmVsCQk9M0QgYmNtYXNwX3NldF9tc2dsZXZlbCwKK307CmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmLmMgYi9kcml2ZXJzL25ldD0KL2V0 aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2ludGYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjlkNTk5MDY2Mzc2OAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2ludGYuYwpAQCAtMCwwICsxLDEz NjMgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisjZGVmaW5lIHByX2Zt dChmbXQpCQkJImJjbWFzcF9pbnRmOiAiIGZtdAorCisjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5o PgorI2luY2x1ZGUgPGxpbnV4L2JyY21waHkuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNp bmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2V0aGVyZGV2aWNlLmg+Cisj aW5jbHVkZSA8bGludXgvbmV0ZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfbmV0Lmg+Cisj aW5jbHVkZSA8bGludXgvb2ZfbWRpby5oPgorI2luY2x1ZGUgPGxpbnV4L3BoeS5oPgorI2luY2x1 ZGUgPGxpbnV4L3BoeV9maXhlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3B0cF9jbGFzc2lmeS5oPgor I2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPG5ldC9pcC5oPgor I2luY2x1ZGUgPG5ldC9pcHY2Lmg+CisKKyNpbmNsdWRlICJiY21hc3AuaCIKKyNpbmNsdWRlICJi Y21hc3BfaW50Zl9kZWZzLmgiCisKK3N0YXRpYyBpbnQgaW5jcl9yaW5nKGludCBpbmRleCwgaW50 IHJpbmdfY291bnQpCit7CisJaW5kZXgrKzsKKwlpZiAoaW5kZXggPTNEPTNEIHJpbmdfY291bnQp CisJCXJldHVybiAwOworCisJcmV0dXJuIGluZGV4OworfQorCisvKiBQb2ludHMgdG8gbGFzdCBi eXRlIG9mIGRlc2NyaXB0b3IgKi8KK3N0YXRpYyBkbWFfYWRkcl90IGluY3JfbGFzdF9ieXRlKGRt YV9hZGRyX3QgYWRkciwgZG1hX2FkZHJfdCBiZWcsCisJCQkJIGludCByaW5nX2NvdW50KQorewor CWRtYV9hZGRyX3QgZW5kID0zRCBiZWcgKyAocmluZ19jb3VudCAqIERFU0NfU0laRSk7CisKKwlh ZGRyICs9M0QgREVTQ19TSVpFOworCWlmIChhZGRyID4gZW5kKQorCQlyZXR1cm4gYmVnICsgREVT Q19TSVpFIC0gMTsKKworCXJldHVybiBhZGRyOworfQorCisvKiBQb2ludHMgdG8gZmlyc3QgYnl0 ZSBvZiBkZXNjcmlwdG9yICovCitzdGF0aWMgZG1hX2FkZHJfdCBpbmNyX2ZpcnN0X2J5dGUoZG1h X2FkZHJfdCBhZGRyLCBkbWFfYWRkcl90IGJlZywKKwkJCQkgIGludCByaW5nX2NvdW50KQorewor CWRtYV9hZGRyX3QgZW5kID0zRCBiZWcgKyAocmluZ19jb3VudCAqIERFU0NfU0laRSk7CisKKwlh ZGRyICs9M0QgREVTQ19TSVpFOworCWlmIChhZGRyID49M0QgZW5kKQorCQlyZXR1cm4gYmVnOwor CisJcmV0dXJuIGFkZHI7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9lbmFibGVfdHgoc3RydWN0 IGJjbWFzcF9pbnRmICppbnRmLCBpbnQgZW4pCit7CisJaWYgKGVuKSB7CisJCXR4X3NwYl9jdHJs X3dsKGludGYsIFRYX1NQQl9DVFJMX0VOQUJMRV9FTiwgVFhfU1BCX0NUUkxfRU5BQkxFKTsKKwkJ dHhfZXBrdF9jb3JlX3dsKGludGYsIChUWF9FUEtUX0NfQ0ZHX01JU0NfRU4gfAorCQkJCVRYX0VQ S1RfQ19DRkdfTUlTQ19QVCB8CisJCQkJKGludGYtPnBvcnQgPDwgVFhfRVBLVF9DX0NGR19NSVND X1BTX1NISUZUKSksCisJCQkJVFhfRVBLVF9DX0NGR19NSVNDKTsKKwl9IGVsc2UgeworCQl0eF9z cGJfY3RybF93bChpbnRmLCAweDAsIFRYX1NQQl9DVFJMX0VOQUJMRSk7CisJCXR4X2Vwa3RfY29y ZV93bChpbnRmLCAweDAsIFRYX0VQS1RfQ19DRkdfTUlTQyk7CisJfQorfQorCitzdGF0aWMgdm9p ZCBiY21hc3BfZW5hYmxlX3J4KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgaW50IGVuKQorewor CWlmIChlbikKKwkJcnhfZWRwa3RfY2ZnX3dsKGludGYsIFJYX0VEUEtUX0NGR19FTkFCTEVfRU4s CisJCQkJUlhfRURQS1RfQ0ZHX0VOQUJMRSk7CisJZWxzZQorCQlyeF9lZHBrdF9jZmdfd2woaW50 ZiwgMHgwLCBSWF9FRFBLVF9DRkdfRU5BQkxFKTsKK30KKworc3RhdGljIHZvaWQgYmNtYXNwX3Nl dF9yeF9tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCit7CisJdW5zaWduZWQgY2hhciBtYXNr W10gPTNEIHsweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmfTsKKwlzdHJ1Y3QgYmNt YXNwX2ludGYgKmludGYgPTNEIG5ldGRldl9wcml2KGRldik7CisJc3RydWN0IG5ldGRldl9od19h ZGRyICpoYTsKKwlpbnQgcmV0OworCisJc3Bpbl9sb2NrX2JoKCZpbnRmLT5wYXJlbnQtPm1kYV9s b2NrKTsKKworCWJjbWFzcF9kaXNhYmxlX2FsbF9maWx0ZXJzKGludGYpOworCisJaWYgKGRldi0+ ZmxhZ3MgJiBJRkZfUFJPTUlTQykKKwkJZ290byBzZXRfcHJvbWlzYzsKKworCWJjbWFzcF9zZXRf cHJvbWlzYyhpbnRmLCAwKTsKKworCWJjbWFzcF9zZXRfYnJvYWQoaW50ZiwgMSk7CisKKwliY21h c3Bfc2V0X29hZGRyKGludGYsIGRldi0+ZGV2X2FkZHIsIDEpOworCisJaWYgKGRldi0+ZmxhZ3Mg JiBJRkZfQUxMTVVMVEkpIHsKKwkJYmNtYXNwX3NldF9hbGxtdWx0aShpbnRmLCAxKTsKKwl9IGVs c2UgeworCQliY21hc3Bfc2V0X2FsbG11bHRpKGludGYsIDApOworCisJCW5ldGRldl9mb3JfZWFj aF9tY19hZGRyKGhhLCBkZXYpIHsKKwkJCXJldCA9M0QgYmNtYXNwX3NldF9lbl9tZGFfZmlsdGVy KGludGYsIGhhLT5hZGRyLCBtYXNrKTsKKwkJCWlmIChyZXQpIHsKKwkJCQlnb3RvIHNldF9wcm9t aXNjOworCQkJfQorCQl9CisJfQorCisJbmV0ZGV2X2Zvcl9lYWNoX3VjX2FkZHIoaGEsIGRldikg eworCQlyZXQgPTNEIGJjbWFzcF9zZXRfZW5fbWRhX2ZpbHRlcihpbnRmLCBoYS0+YWRkciwgbWFz ayk7CisJCWlmIChyZXQpIHsKKwkJCWdvdG8gc2V0X3Byb21pc2M7CisJCX0KKwl9CisKKwlzcGlu X3VubG9ja19iaCgmaW50Zi0+cGFyZW50LT5tZGFfbG9jayk7CisJcmV0dXJuOworCitzZXRfcHJv bWlzYzoKKwliY21hc3Bfc2V0X3Byb21pc2MoaW50ZiwgMSk7CisKKwkvKiBkaXNhYmxlIGFsbCBm aWx0ZXJzIHVzZWQgYnkgdGhpcyBwb3J0ICovCisJYmNtYXNwX2Rpc2FibGVfYWxsX2ZpbHRlcnMo aW50Zik7CisKKwlzcGluX3VubG9ja19iaCgmaW50Zi0+cGFyZW50LT5tZGFfbG9jayk7Cit9CisK K3N0YXRpYyB2b2lkIGJjbWFzcF9jbGVhbl90eGNiKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50Ziwg aW50IGluZGV4KQoreworCXN0cnVjdCBiY21hc3BfdHhfY2IgKnR4Y2IgPTNEICZpbnRmLT50eF9j YnNbaW5kZXhdOworCisJdHhjYi0+c2tiID0zRCBOVUxMOworCWRtYV91bm1hcF9hZGRyX3NldCh0 eGNiLCBkbWFfYWRkciwgMCk7CisJZG1hX3VubWFwX2xlbl9zZXQodHhjYiwgZG1hX2xlbiwgMCk7 CisJdHhjYi0+bGFzdCA9M0QgZmFsc2U7Cit9CisKK3N0YXRpYyBpbnQgdHhfc3BiX3JpbmdfZnVs bChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGludCBjbnQpCit7CisJaW50IG5leHRfaW5kZXgs IGk7CisKKwkvKiBDaGVjayBpZiB3ZSBoYXZlIGVub3VnaCByb29tIGZvciBjbnQgZGVzY3JpcHRv cnMgKi8KKwlmb3IgKGkgPTNEIDA7IGkgPCBjbnQ7IGkrKykgeworCQluZXh0X2luZGV4ID0zRCBp bmNyX3JpbmcoaW50Zi0+dHhfc3BiX2luZGV4LCBERVNDX1JJTkdfQ09VTlQpOworCQlpZiAobmV4 dF9pbmRleCA9M0Q9M0QgaW50Zi0+dHhfc3BiX2NsZWFuX2luZGV4KQorCQkJcmV0dXJuIDE7CisJ fQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqYmNtYXNwX2NzdW1f b2ZmbG9hZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAorCQkJCQkgICBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLAorCQkJCQkgICBib29sICpjc3VtX2h3KQoreworCXUzMiBoZWFkZXIgPTNEIDAsIGhlYWRl cjIgPTNEIDAsIGVwa3QgPTNEIDA7CisJc3RydWN0IGJjbWFzcF9wa3Rfb2ZmbG9hZCAqb2ZmbG9h ZDsKKwl1bnNpZ25lZCBpbnQgaGVhZGVyX2NudCA9M0QgMDsKKwlzdHJ1Y3Qgc2tfYnVmZiAqbmV3 X3NrYjsKKwl1OCBpcF9wcm90bzsKKworCWlmIChza2ItPmlwX3N1bW1lZCAhPTNEIENIRUNLU1VN X1BBUlRJQUwpCisJCXJldHVybiBza2I7CisKKwlpZiAodW5saWtlbHkoc2tiX2hlYWRyb29tKHNr YikgPCBzaXplb2YoKm9mZmxvYWQpKSkgeworCQluZXdfc2tiID0zRCBza2JfcmVhbGxvY19oZWFk cm9vbShza2IsIHNpemVvZigqb2ZmbG9hZCkpOworCQlpZiAoIW5ld19za2IpIHsKKwkJCWdvdG8g aGVscDsKKwkJfQorCisJCWRldl9jb25zdW1lX3NrYl9hbnkoc2tiKTsKKwkJc2tiID0zRCBuZXdf c2tiOworCX0KKworCXN3aXRjaCAoc2tiLT5wcm90b2NvbCkgeworCWNhc2UgaHRvbnMoRVRIX1Bf SVApOgorCQloZWFkZXIgfD0zRCBQS1RfT0ZGTE9BRF9IRFJfU0laRV8yKChpcF9oZHJsZW4oc2ti KSA+PiA4KSAmIDB4Zik7CisJCWhlYWRlcjIgfD0zRCBQS1RfT0ZGTE9BRF9IRFIyX1NJWkVfMihp cF9oZHJsZW4oc2tiKSAmIDB4ZmYpOworCQllcGt0IHw9M0QgUEtUX09GRkxPQURfRVBLVF9JUCgw KSB8IFBLVF9PRkZMT0FEX0VQS1RfQ1NVTV9MMjsKKwkJaXBfcHJvdG8gPTNEIGlwX2hkcihza2Ip LT5wcm90b2NvbDsKKwkJaGVhZGVyX2NudCArPTNEIDI7CisJCWJyZWFrOworCWNhc2UgaHRvbnMo RVRIX1BfSVBWNik6CisJCWhlYWRlciB8PTNEIFBLVF9PRkZMT0FEX0hEUl9TSVpFXzIoKElQNl9I TEVOID4+IDgpICYgMHhmKTsKKwkJaGVhZGVyMiB8PTNEIFBLVF9PRkZMT0FEX0hEUjJfU0laRV8y KElQNl9ITEVOICYgMHhmZik7CisJCWVwa3QgfD0zRCBQS1RfT0ZGTE9BRF9FUEtUX0lQKDEpIHwg UEtUX09GRkxPQURfRVBLVF9DU1VNX0wyOworCQlpcF9wcm90byA9M0QgaXB2Nl9oZHIoc2tiKS0+ bmV4dGhkcjsKKwkJaGVhZGVyX2NudCArPTNEIDI7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWdv dG8gaGVscDsKKwl9CisKKwlzd2l0Y2ggKGlwX3Byb3RvKSB7CisJY2FzZSBJUFBST1RPX1RDUDoK KwkJaGVhZGVyMiB8PTNEIFBLVF9PRkZMT0FEX0hEUjJfU0laRV8zKHRjcF9oZHJsZW4oc2tiKSk7 CisJCWVwa3QgfD0zRCBQS1RfT0ZGTE9BRF9FUEtUX1RQKDApIHwgUEtUX09GRkxPQURfRVBLVF9D U1VNX0wzOworCQloZWFkZXJfY250Kys7CisJCWJyZWFrOworCWNhc2UgSVBQUk9UT19VRFA6CisJ CWhlYWRlcjIgfD0zRCBQS1RfT0ZGTE9BRF9IRFIyX1NJWkVfMyhVRFBfSExFTik7CisJCWVwa3Qg fD0zRCBQS1RfT0ZGTE9BRF9FUEtUX1RQKDEpIHwgUEtUX09GRkxPQURfRVBLVF9DU1VNX0wzOwor CQloZWFkZXJfY250Kys7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWdvdG8gaGVscDsKKwl9CisK KwlvZmZsb2FkID0zRCAoc3RydWN0IGJjbWFzcF9wa3Rfb2ZmbG9hZCAqKXNrYl9wdXNoKHNrYiwg c2l6ZW9mKCpvZmZsb2FkKSk7CisKKwloZWFkZXIgfD0zRCBQS1RfT0ZGTE9BRF9IRFJfT1AgfCBQ S1RfT0ZGTE9BRF9IRFJfQ09VTlQoaGVhZGVyX2NudCkgfAorCQkgIFBLVF9PRkZMT0FEX0hEUl9T SVpFXzEoRVRIX0hMRU4pOworCWVwa3QgfD0zRCBQS1RfT0ZGTE9BRF9FUEtUX09QOworCisJb2Zm bG9hZC0+bm9wID0zRCBodG9ubChQS1RfT0ZGTE9BRF9OT1ApOworCW9mZmxvYWQtPmhlYWRlciA9 M0QgaHRvbmwoaGVhZGVyKTsKKwlvZmZsb2FkLT5oZWFkZXIyID0zRCBodG9ubChoZWFkZXIyKTsK KwlvZmZsb2FkLT5lcGt0ID0zRCBodG9ubChlcGt0KTsKKwlvZmZsb2FkLT5lbmQgPTNEIGh0b25s KFBLVF9PRkZMT0FEX0VORF9PUCk7CisJKmNzdW1faHcgPTNEIHRydWU7CisKKwlyZXR1cm4gc2ti OworCitoZWxwOgorCXNrYl9jaGVja3N1bV9oZWxwKHNrYik7CisKKwlyZXR1cm4gc2tiOworfQor CitzdGF0aWMgdW5zaWduZWQgbG9uZyBiY21hc3BfcnhfZWRwa3RfZG1hX3JxKHN0cnVjdCBiY21h c3BfaW50ZiAqaW50ZikKK3sKKwlyZXR1cm4gcnhfZWRwa3RfZG1hX3JxKGludGYsIFJYX0VEUEtU X0RNQV9WQUxJRCk7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9yeF9lZHBrdF9jZmdfd3Eoc3Ry dWN0IGJjbWFzcF9pbnRmICppbnRmLCBkbWFfYWRkcl90IGFkPQpkcikKK3sKKwlyeF9lZHBrdF9j Zmdfd3EoaW50ZiwgYWRkciwgUlhfRURQS1RfUklOR19CVUZGRVJfUkVBRCk7Cit9CisKK3N0YXRp YyB2b2lkIGJjbWFzcF9yeF9lZHBrdF9kbWFfd3Eoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBk bWFfYWRkcl90IGFkPQpkcikKK3sKKwlyeF9lZHBrdF9kbWFfd3EoaW50ZiwgYWRkciwgUlhfRURQ S1RfRE1BX1JFQUQpOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBiY21hc3BfdHhfc3BiX2Rt YV9ycShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpCit7CisJcmV0dXJuIHR4X3NwYl9kbWFfcnEo aW50ZiwgVFhfU1BCX0RNQV9SRUFEKTsKK30KKworc3RhdGljIHZvaWQgYmNtYXNwX3R4X3NwYl9k bWFfd3Eoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBkbWFfYWRkcl90IGFkZHIpCit7CisJdHhf c3BiX2RtYV93cShpbnRmLCBhZGRyLCBUWF9TUEJfRE1BX1ZBTElEKTsKK30KKworc3RhdGljIGNv bnN0IHN0cnVjdCBiY21hc3BfaW50Zl9vcHMgYmNtYXNwX2ludGZfb3BzID0zRCB7CisJLnJ4X2Rl c2NfcmVhZCA9M0QgYmNtYXNwX3J4X2VkcGt0X2RtYV9ycSwKKwkucnhfYnVmZmVyX3dyaXRlID0z RCBiY21hc3BfcnhfZWRwa3RfY2ZnX3dxLAorCS5yeF9kZXNjX3dyaXRlID0zRCBiY21hc3Bfcnhf ZWRwa3RfZG1hX3dxLAorCS50eF9yZWFkID0zRCBiY21hc3BfdHhfc3BiX2RtYV9ycSwKKwkudHhf d3JpdGUgPTNEIGJjbWFzcF90eF9zcGJfZG1hX3dxLAorfTsKKworc3RhdGljIG5ldGRldl90eF90 IGJjbWFzcF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYp Cit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOworCXVu c2lnbmVkIGludCB0b3RhbF9ieXRlcywgc2l6ZTsKKwlpbnQgc3BiX2luZGV4LCBucl9mcmFncywg aSwgajsKKwlzdHJ1Y3QgYmNtYXNwX3R4X2NiICp0eGNiOworCWRtYV9hZGRyX3QgbWFwcGluZywg dmFsaWQ7CisJc3RydWN0IGJjbWFzcF9kZXNjICpkZXNjOworCWJvb2wgY3N1bV9odyA9M0QgZmFs c2U7CisJc3RydWN0IGRldmljZSAqa2RldjsKKwlza2JfZnJhZ190ICpmcmFnOworCisJa2RldiA9 M0QgJmludGYtPnBhcmVudC0+cGRldi0+ZGV2OworCisJbnJfZnJhZ3MgPTNEIHNrYl9zaGluZm8o c2tiKS0+bnJfZnJhZ3M7CisKKwlpZiAodHhfc3BiX3JpbmdfZnVsbChpbnRmLCBucl9mcmFncyAr IDEpKSB7CisJCW5ldGlmX3N0b3BfcXVldWUoZGV2KTsKKwkJbmV0ZGV2X2VycihkZXYsICJUeCBS aW5nIEZ1bGwhXG4iKTsKKwkJcmV0dXJuIE5FVERFVl9UWF9CVVNZOworCX0KKworCS8qIFNhdmUg c2tiIGxlbiBiZWZvcmUgYWRkaW5nIGNzdW0gb2ZmbG9hZCBoZWFkZXIgKi8KKwl0b3RhbF9ieXRl cyA9M0Qgc2tiLT5sZW47CisJc2tiID0zRCBiY21hc3BfY3N1bV9vZmZsb2FkKGRldiwgc2tiLCAm Y3N1bV9odyk7CisJaWYgKCFza2IpCisJCXJldHVybiBORVRERVZfVFhfT0s7CisKKwlzcGJfaW5k ZXggPTNEIGludGYtPnR4X3NwYl9pbmRleDsKKwl2YWxpZCA9M0QgaW50Zi0+dHhfc3BiX2RtYV92 YWxpZDsKKwlmb3IgKGkgPTNEIDA7IGkgPD0zRCBucl9mcmFnczsgaSsrKSB7CisJCWlmICghaSkg eworCQkJc2l6ZSA9M0Qgc2tiX2hlYWRsZW4oc2tiKTsKKwkJCWlmICghbnJfZnJhZ3MgJiYgc2l6 ZSA8IChFVEhfWkxFTiArIEVUSF9GQ1NfTEVOKSkgeworCQkJCWlmIChza2JfcHV0X3BhZHRvKHNr YiwgRVRIX1pMRU4gKyBFVEhfRkNTX0xFTikpCisJCQkJCXJldHVybiBORVRERVZfVFhfT0s7CisJ CQkJc2l6ZSA9M0Qgc2tiLT5sZW47CisJCQl9CisJCQltYXBwaW5nID0zRCBkbWFfbWFwX3Npbmds ZShrZGV2LCBza2ItPmRhdGEsIHNpemUsCisJCQkJCQkgRE1BX1RPX0RFVklDRSk7CisJCX0gZWxz ZSB7CisJCQlmcmFnID0zRCAmc2tiX3NoaW5mbyhza2IpLT5mcmFnc1tpIC0gMV07CisJCQlzaXpl ID0zRCBza2JfZnJhZ19zaXplKGZyYWcpOworCQkJbWFwcGluZyA9M0Qgc2tiX2ZyYWdfZG1hX21h cChrZGV2LCBmcmFnLCAwLCBzaXplLAorCQkJCQkJICAgRE1BX1RPX0RFVklDRSk7CisJCX0KKwor CQlpZiAoZG1hX21hcHBpbmdfZXJyb3Ioa2RldiwgbWFwcGluZykpIHsKKwkJCXNwYl9pbmRleCA9 M0QgaW50Zi0+dHhfc3BiX2luZGV4OworCQkJZm9yIChqID0zRCAwOyBqIDwgaTsgaisrKSB7CisJ CQkJYmNtYXNwX2NsZWFuX3R4Y2IoaW50Ziwgc3BiX2luZGV4KTsKKwkJCQlzcGJfaW5kZXggPTNE IGluY3JfcmluZyhzcGJfaW5kZXgsCisJCQkJCQkgICAgICBERVNDX1JJTkdfQ09VTlQpOworCQkJ fQorCQkJLyogUmV3aW5kIHNvIHdlIGRvIG5vdCBoYXZlIGEgaG9sZSAqLworCQkJc3BiX2luZGV4 ID0zRCBpbnRmLT50eF9zcGJfaW5kZXg7CisJCQlyZXR1cm4gTkVUREVWX1RYX09LOworCQl9CisK KwkJdHhjYiA9M0QgJmludGYtPnR4X2Nic1tzcGJfaW5kZXhdOworCQlkZXNjID0zRCAmaW50Zi0+ dHhfc3BiX2NwdVtzcGJfaW5kZXhdOworCQltZW1zZXQoZGVzYywgMCwgc2l6ZW9mKCpkZXNjKSk7 CisJCXR4Y2ItPnNrYiA9M0Qgc2tiOworCQl0eGNiLT5ieXRlc19zZW50ID0zRCB0b3RhbF9ieXRl czsKKwkJZG1hX3VubWFwX2FkZHJfc2V0KHR4Y2IsIGRtYV9hZGRyLCBtYXBwaW5nKTsKKwkJZG1h X3VubWFwX2xlbl9zZXQodHhjYiwgZG1hX2xlbiwgc2l6ZSk7CisJCWlmICghaSkgeworCQkJZGVz Yy0+ZmxhZ3MgfD0zRCBERVNDX1NPRjsKKwkJCWlmIChjc3VtX2h3KQorCQkJCWRlc2MtPmZsYWdz IHw9M0QgREVTQ19FUEtUX0NNRDsKKwkJfQorCisJCWlmIChpID0zRD0zRCBucl9mcmFncykgewor CQkJZGVzYy0+ZmxhZ3MgfD0zRCBERVNDX0VPRjsKKwkJCXR4Y2ItPmxhc3QgPTNEIHRydWU7CisJ CX0KKworCQlkZXNjLT5idWYgPTNEIG1hcHBpbmc7CisJCWRlc2MtPnNpemUgPTNEIHNpemU7CisJ CWRlc2MtPmZsYWdzIHw9M0QgREVTQ19JTlRfRU47CisKKwkJbmV0aWZfZGJnKGludGYsIHR4X3F1 ZXVlZCwgZGV2LAorCQkJICAiJXMgZG1hX2J1Zj0zRCVwYWQgZG1hX2xlbj0zRDB4JXggZmxhZ3M9 M0QweCV4IGluZGV4PTNEMHgleFxuIiwKKwkJCSAgX19mdW5jX18sICZtYXBwaW5nLCBkZXNjLT5z aXplLCBkZXNjLT5mbGFncywKKwkJCSAgc3BiX2luZGV4KTsKKworCQlzcGJfaW5kZXggPTNEIGlu Y3JfcmluZyhzcGJfaW5kZXgsIERFU0NfUklOR19DT1VOVCk7CisJCXZhbGlkID0zRCBpbmNyX2xh c3RfYnl0ZSh2YWxpZCwgaW50Zi0+dHhfc3BiX2RtYV9hZGRyLAorCQkJCSAgICAgICBERVNDX1JJ TkdfQ09VTlQpOworCX0KKworCS8qIEVuc3VyZSBhbGwgZGVzY3JpcHRvcnMgaGF2ZSBiZWVuIHdy aXR0ZW4gdG8gRFJBTSBmb3IgdGhlCisJICogaGFyZHdhcmUgdG8gc2VlIHVwLXRvLWRhdGUgY29u dGVudHMuCisJICovCisJd21iKCk7CisKKwlpbnRmLT50eF9zcGJfaW5kZXggPTNEIHNwYl9pbmRl eDsKKwlpbnRmLT50eF9zcGJfZG1hX3ZhbGlkID0zRCB2YWxpZDsKKwliY21hc3BfaW50Zl90eF93 cml0ZShpbnRmLCBpbnRmLT50eF9zcGJfZG1hX3ZhbGlkKTsKKworCWlmICh0eF9zcGJfcmluZ19m dWxsKGludGYsIE1BWF9TS0JfRlJBR1MgKyAxKSkKKwkJbmV0aWZfc3RvcF9xdWV1ZShkZXYpOwor CisJcmV0dXJuIE5FVERFVl9UWF9PSzsKK30KKworc3RhdGljIHZvaWQgYmNtYXNwX25ldGlmX3N0 YXJ0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRm ID0zRCBuZXRkZXZfcHJpdihkZXYpOworCisJYmNtYXNwX3NldF9yeF9tb2RlKGRldik7CisJbmFw aV9lbmFibGUoJmludGYtPnR4X25hcGkpOworCW5hcGlfZW5hYmxlKCZpbnRmLT5yeF9uYXBpKTsK KworCWJjbWFzcF9lbmFibGVfcnhfaXJxKGludGYsIDEpOworCWJjbWFzcF9lbmFibGVfdHhfaXJx KGludGYsIDEpOworCisJcGh5X3N0YXJ0KGRldi0+cGh5ZGV2KTsKK30KKworc3RhdGljIHZvaWQg dW1hY19yZXNldChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpCit7CisJdW1hY193bChpbnRmLCAw eDAsIFVNQ19DTUQpOworCXVtYWNfd2woaW50ZiwgVU1DX0NNRF9TV19SRVNFVCwgVU1DX0NNRCk7 CisJdXNsZWVwX3JhbmdlKDEwLCAxMDApOworCXVtYWNfd2woaW50ZiwgMHgwLCBVTUNfQ01EKTsK K30KKworc3RhdGljIHZvaWQgdW1hY19zZXRfaHdfYWRkcihzdHJ1Y3QgYmNtYXNwX2ludGYgKmlu dGYsCisJCQkgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZHIpCit7CisJdTMyIG1hYzAgPTNE IChhZGRyWzBdIDw8IDI0KSB8IChhZGRyWzFdIDw8IDE2KSB8IChhZGRyWzJdIDw8IDgpIHwKKwkJ ICAgIGFkZHJbM107CisJdTMyIG1hYzEgPTNEIChhZGRyWzRdIDw8IDgpIHwgYWRkcls1XTsKKwor CXVtYWNfd2woaW50ZiwgbWFjMCwgVU1DX01BQzApOworCXVtYWNfd2woaW50ZiwgbWFjMSwgVU1D X01BQzEpOworfQorCitzdGF0aWMgdm9pZCB1bWFjX2VuYWJsZV9zZXQoc3RydWN0IGJjbWFzcF9p bnRmICppbnRmLCB1MzIgbWFzaywKKwkJCSAgICB1bnNpZ25lZCBpbnQgZW5hYmxlKQoreworCXUz MiByZWc7CisKKwlyZWcgPTNEIHVtYWNfcmwoaW50ZiwgVU1DX0NNRCk7CisJaWYgKGVuYWJsZSkK KwkJcmVnIHw9M0QgbWFzazsKKwllbHNlCisJCXJlZyAmPTNEIH5tYXNrOworCXVtYWNfd2woaW50 ZiwgcmVnLCBVTUNfQ01EKTsKKworCS8qIFVuaU1BQyBzdG9wcyBvbiBhIHBhY2tldCBib3VuZGFy eSwgd2FpdCBmb3IgYSBmdWxsLXNpemVkIHBhY2tldAorCSAqIHRvIGJlIHByb2Nlc3NlZCAoMSBt c2VjKS4KKwkgKi8KKwlpZiAoZW5hYmxlID0zRD0zRCAwKQorCQl1c2xlZXBfcmFuZ2UoMTAwMCwg MjAwMCk7Cit9CisKK3N0YXRpYyB2b2lkIHVtYWNfaW5pdChzdHJ1Y3QgYmNtYXNwX2ludGYgKmlu dGYpCit7CisJdW1hY193bChpbnRmLCAweDgwMCwgVU1DX0ZSTV9MRU4pOworCXVtYWNfd2woaW50 ZiwgMHhmZmZmLCBVTUNfUEFVU0VfQ05UUkwpOworCXVtYWNfd2woaW50ZiwgMHg4MDAsIFVNQ19S WF9NQVhfUEtUX1NaKTsKKwl1bWFjX2VuYWJsZV9zZXQoaW50ZiwgVU1DX0NNRF9QUk9NSVNDLCAx KTsKK30KKworc3RhdGljIGludCBiY21hc3BfdHhfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5h cGksIGludCBidWRnZXQpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRAorCQljb250 YWluZXJfb2YobmFwaSwgc3RydWN0IGJjbWFzcF9pbnRmLCB0eF9uYXBpKTsKKwlzdHJ1Y3QgYmNt YXNwX2ludGZfc3RhdHM2NCAqc3RhdHMgPTNEICZpbnRmLT5zdGF0czY0OworCXN0cnVjdCBkZXZp Y2UgKmtkZXYgPTNEICZpbnRmLT5wYXJlbnQtPnBkZXYtPmRldjsKKwl1bnNpZ25lZCBsb25nIHJl YWQsIHJlbGVhc2VkID0zRCAwOworCXN0cnVjdCBiY21hc3BfdHhfY2IgKnR4Y2I7CisJc3RydWN0 IGJjbWFzcF9kZXNjICpkZXNjOworCWRtYV9hZGRyX3QgbWFwcGluZzsKKworCXJlYWQgPTNEIGJj bWFzcF9pbnRmX3R4X3JlYWQoaW50Zik7CisJd2hpbGUgKGludGYtPnR4X3NwYl9kbWFfcmVhZCAh PTNEIHJlYWQpIHsKKwkJdHhjYiA9M0QgJmludGYtPnR4X2Nic1tpbnRmLT50eF9zcGJfY2xlYW5f aW5kZXhdOworCQltYXBwaW5nID0zRCBkbWFfdW5tYXBfYWRkcih0eGNiLCBkbWFfYWRkcik7CisK KwkJZG1hX3VubWFwX3NpbmdsZShrZGV2LCBtYXBwaW5nLAorCQkJCSBkbWFfdW5tYXBfbGVuKHR4 Y2IsIGRtYV9sZW4pLAorCQkJCSBETUFfVE9fREVWSUNFKTsKKworCQlpZiAodHhjYi0+bGFzdCkg eworCQkJZGV2X2NvbnN1bWVfc2tiX2FueSh0eGNiLT5za2IpOworCisJCQl1NjRfc3RhdHNfdXBk YXRlX2JlZ2luKCZzdGF0cy0+c3luY3ApOworCQkJdTY0X3N0YXRzX2luYygmc3RhdHMtPnR4X3Bh Y2tldHMpOworCQkJdTY0X3N0YXRzX2FkZCgmc3RhdHMtPnR4X2J5dGVzLCB0eGNiLT5ieXRlc19z ZW50KTsKKwkJCXU2NF9zdGF0c191cGRhdGVfZW5kKCZzdGF0cy0+c3luY3ApOworCQl9CisKKwkJ ZGVzYyA9M0QgJmludGYtPnR4X3NwYl9jcHVbaW50Zi0+dHhfc3BiX2NsZWFuX2luZGV4XTsKKwor CQluZXRpZl9kYmcoaW50ZiwgdHhfZG9uZSwgaW50Zi0+bmRldiwKKwkJCSAgIiVzIGRtYV9idWY9 M0QlcGFkIGRtYV9sZW49M0QweCV4IGZsYWdzPTNEMHgleCBjX2luZGV4PTNEMHgleFxuIiwKKwkJ CSAgX19mdW5jX18sICZtYXBwaW5nLCBkZXNjLT5zaXplLCBkZXNjLT5mbGFncywKKwkJCSAgaW50 Zi0+dHhfc3BiX2NsZWFuX2luZGV4KTsKKworCQliY21hc3BfY2xlYW5fdHhjYihpbnRmLCBpbnRm LT50eF9zcGJfY2xlYW5faW5kZXgpOworCQlyZWxlYXNlZCsrOworCisJCWludGYtPnR4X3NwYl9j bGVhbl9pbmRleCA9M0QgaW5jcl9yaW5nKGludGYtPnR4X3NwYl9jbGVhbl9pbmRleCwKKwkJCQkJ CSAgICAgREVTQ19SSU5HX0NPVU5UKTsKKwkJaW50Zi0+dHhfc3BiX2RtYV9yZWFkID0zRCBpbmNy X2ZpcnN0X2J5dGUoaW50Zi0+dHhfc3BiX2RtYV9yZWFkLAorCQkJCQkJCWludGYtPnR4X3NwYl9k bWFfYWRkciwKKwkJCQkJCQlERVNDX1JJTkdfQ09VTlQpOworCX0KKworCS8qIEVuc3VyZSBhbGwg ZGVzY3JpcHRvcnMgaGF2ZSBiZWVuIHdyaXR0ZW4gdG8gRFJBTSBmb3IgdGhlIGhhcmR3YXJlCisJ ICogdG8gc2VlIHVwZGF0ZWQgY29udGVudHMuCisJICovCisJd21iKCk7CisKKwluYXBpX2NvbXBs ZXRlKCZpbnRmLT50eF9uYXBpKTsKKworCWJjbWFzcF9lbmFibGVfdHhfaXJxKGludGYsIDEpOwor CisJaWYgKHJlbGVhc2VkKQorCQluZXRpZl93YWtlX3F1ZXVlKGludGYtPm5kZXYpOworCisJcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYmNtYXNwX3J4X3BvbGwoc3RydWN0IG5hcGlfc3RydWN0 ICpuYXBpLCBpbnQgYnVkZ2V0KQoreworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0QKKwkJ Y29udGFpbmVyX29mKG5hcGksIHN0cnVjdCBiY21hc3BfaW50ZiwgcnhfbmFwaSk7CisJc3RydWN0 IGJjbWFzcF9pbnRmX3N0YXRzNjQgKnN0YXRzID0zRCAmaW50Zi0+c3RhdHM2NDsKKwlzdHJ1Y3Qg ZGV2aWNlICprZGV2ID0zRCAmaW50Zi0+cGFyZW50LT5wZGV2LT5kZXY7CisJdW5zaWduZWQgbG9u ZyBwcm9jZXNzZWQgPTNEIDA7CisJc3RydWN0IGJjbWFzcF9kZXNjICpkZXNjOworCXN0cnVjdCBz a19idWZmICpza2I7CisJZG1hX2FkZHJfdCB2YWxpZDsKKwl2b2lkICpkYXRhOworCXU2NCBmbGFn czsKKwl1MzIgbGVuOworCisJdmFsaWQgPTNEIGJjbWFzcF9pbnRmX3J4X2Rlc2NfcmVhZChpbnRm KSArIDE7CisJaWYgKHZhbGlkID0zRD0zRCBpbnRmLT5yeF9lZHBrdF9kbWFfYWRkciArIERFU0Nf UklOR19TSVpFKQorCQl2YWxpZCA9M0QgaW50Zi0+cnhfZWRwa3RfZG1hX2FkZHI7CisKKwl3aGls ZSAoKHByb2Nlc3NlZCA8IGJ1ZGdldCkgJiYgKHZhbGlkICE9M0QgaW50Zi0+cnhfZWRwa3RfZG1h X3JlYWQpKSB7CisJCWRlc2MgPTNEICZpbnRmLT5yeF9lZHBrdF9jcHVbaW50Zi0+cnhfZWRwa3Rf aW5kZXhdOworCisJCS8qIEVuc3VyZSB0aGF0IGRlc2NyaXB0b3IgaGFzIGJlZW4gZnVsbHkgd3Jp dHRlbiB0byBEUkFNIGJ5CisJCSAqIGhhcmR3YXJlIGJlZm9yZSByZWFkaW5nIGJ5IHRoZSBDUFUK KwkJICovCisJCXJtYigpOworCisJCS8qIENhbGN1bGF0ZSB2aXJ0IGFkZHIgYnkgb2Zmc2V0dGlu ZyBmcm9tIHBoeXNpY2FsIGFkZHIgKi8KKwkJZGF0YSA9M0QgaW50Zi0+cnhfcmluZ19jcHUgKwor CQkJKERFU0NfQUREUihkZXNjLT5idWYpIC0gaW50Zi0+cnhfcmluZ19kbWEpOworCisJCWZsYWdz ID0zRCBERVNDX0ZMQUdTKGRlc2MtPmJ1Zik7CisJCWlmICh1bmxpa2VseShmbGFncyAmIChERVND X0NSQ19FUlIgfCBERVNDX1JYX1NZTV9FUlIpKSkgeworCQkJbmV0aWZfZXJyKGludGYsIHJ4X3N0 YXR1cywgaW50Zi0+bmRldiwgImZsYWdzPTNEMHglbGx4XG4iLAorCQkJCSAgZmxhZ3MpOworCisJ CQl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZzdGF0cy0+c3luY3ApOworCQkJaWYgKGZsYWdzICYg REVTQ19DUkNfRVJSKQorCQkJCXU2NF9zdGF0c19pbmMoJnN0YXRzLT5yeF9jcmNfZXJycyk7CisJ CQlpZiAoZmxhZ3MgJiBERVNDX1JYX1NZTV9FUlIpCisJCQkJdTY0X3N0YXRzX2luYygmc3RhdHMt PnJ4X3N5bV9lcnJzKTsKKwkJCXU2NF9zdGF0c19pbmMoJnN0YXRzLT5yeF9kcm9wcGVkKTsKKwkJ CXU2NF9zdGF0c191cGRhdGVfZW5kKCZzdGF0cy0+c3luY3ApOworCisJCQlnb3RvIG5leHQ7CisJ CX0KKworCQlkbWFfc3luY19zaW5nbGVfZm9yX2NwdShrZGV2LCBERVNDX0FERFIoZGVzYy0+YnVm KSwgZGVzYy0+c2l6ZSwKKwkJCQkJRE1BX0ZST01fREVWSUNFKTsKKworCQlsZW4gPTNEIGRlc2Mt PnNpemU7CisKKwkJc2tiID0zRCBfX25ldGRldl9hbGxvY19za2IoaW50Zi0+bmRldiwgbGVuLAor CQkJCQkgR0ZQX0FUT01JQyB8IF9fR0ZQX05PV0FSTik7CisJCWlmICghc2tiKSB7CisJCQl1NjRf c3RhdHNfdXBkYXRlX2JlZ2luKCZzdGF0cy0+c3luY3ApOworCQkJdTY0X3N0YXRzX2luYygmc3Rh dHMtPnJ4X2Vycm9ycyk7CisJCQl1NjRfc3RhdHNfdXBkYXRlX2VuZCgmc3RhdHMtPnN5bmNwKTsK KworCQkJbmV0aWZfd2FybihpbnRmLCByeF9lcnIsIGludGYtPm5kZXYsCisJCQkJICAgIlNLQiBh bGxvYyBmYWlsZWRcbiIpOworCQkJZ290byBuZXh0OworCQl9CisKKwkJc2tiX3B1dChza2IsIGxl bik7CisJCW1lbWNweShza2ItPmRhdGEsIGRhdGEsIGxlbik7CisKKwkJc2tiX3B1bGwoc2tiLCAy KTsKKwkJbGVuIC09M0QgMjsKKwkJaWYgKGxpa2VseShpbnRmLT5jcmNfZndkKSkgeworCQkJc2ti X3RyaW0oc2tiLCBsZW4gLSBFVEhfRkNTX0xFTik7CisJCQlsZW4gLT0zRCBFVEhfRkNTX0xFTjsK KwkJfQorCisJCWlmICgoaW50Zi0+bmRldi0+ZmVhdHVyZXMgJiBORVRJRl9GX1JYQ1NVTSkgJiYK KwkJICAgIChkZXNjLT5idWYgJiBERVNDX0NIS1NVTSkpCisJCQlza2ItPmlwX3N1bW1lZCA9M0Qg Q0hFQ0tTVU1fVU5ORUNFU1NBUlk7CisKKwkJc2tiLT5wcm90b2NvbCA9M0QgZXRoX3R5cGVfdHJh bnMoc2tiLCBpbnRmLT5uZGV2KTsKKworCQluYXBpX2dyb19yZWNlaXZlKG5hcGksIHNrYik7CisK KwkJdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbigmc3RhdHMtPnN5bmNwKTsKKwkJdTY0X3N0YXRzX2lu Yygmc3RhdHMtPnJ4X3BhY2tldHMpOworCQl1NjRfc3RhdHNfYWRkKCZzdGF0cy0+cnhfYnl0ZXMs IGxlbik7CisJCXU2NF9zdGF0c191cGRhdGVfZW5kKCZzdGF0cy0+c3luY3ApOworCituZXh0Ogor CQliY21hc3BfaW50Zl9yeF9idWZmZXJfd3JpdGUoaW50ZiwgKERFU0NfQUREUihkZXNjLT5idWYp ICsKKwkJCQkJICAgIGRlc2MtPnNpemUpKTsKKworCQlwcm9jZXNzZWQrKzsKKwkJaW50Zi0+cnhf ZWRwa3RfZG1hX3JlYWQgPTNECisJCQlpbmNyX2ZpcnN0X2J5dGUoaW50Zi0+cnhfZWRwa3RfZG1h X3JlYWQsCisJCQkJCWludGYtPnJ4X2VkcGt0X2RtYV9hZGRyLAorCQkJCQlERVNDX1JJTkdfQ09V TlQpOworCQlpbnRmLT5yeF9lZHBrdF9pbmRleCA9M0QgaW5jcl9yaW5nKGludGYtPnJ4X2VkcGt0 X2luZGV4LAorCQkJCQkJIERFU0NfUklOR19DT1VOVCk7CisJfQorCisJYmNtYXNwX2ludGZfcnhf ZGVzY193cml0ZShpbnRmLCBpbnRmLT5yeF9lZHBrdF9kbWFfcmVhZCk7CisKKwlpZiAocHJvY2Vz c2VkIDwgYnVkZ2V0KSB7CisJCW5hcGlfY29tcGxldGVfZG9uZSgmaW50Zi0+cnhfbmFwaSwgcHJv Y2Vzc2VkKTsKKwkJYmNtYXNwX2VuYWJsZV9yeF9pcnEoaW50ZiwgMSk7CisJfQorCisJcmV0dXJu IHByb2Nlc3NlZDsKK30KKworc3RhdGljIHZvaWQgYmNtYXNwX2Fkal9saW5rKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJp dihkZXYpOworCXN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPTNEIGRldi0+cGh5ZGV2OworCXUz MiBjbWRfYml0cyA9M0QgMCwgcmVnOworCWludCBjaGFuZ2VkID0zRCAwOworCisJaWYgKGludGYt Pm9sZF9saW5rICE9M0QgcGh5ZGV2LT5saW5rKSB7CisJCWNoYW5nZWQgPTNEIDE7CisJCWludGYt Pm9sZF9saW5rID0zRCBwaHlkZXYtPmxpbms7CisJfQorCisJaWYgKGludGYtPm9sZF9kdXBsZXgg IT0zRCBwaHlkZXYtPmR1cGxleCkgeworCQljaGFuZ2VkID0zRCAxOworCQlpbnRmLT5vbGRfZHVw bGV4ID0zRCBwaHlkZXYtPmR1cGxleDsKKwl9CisKKwlzd2l0Y2ggKHBoeWRldi0+c3BlZWQpIHsK KwljYXNlIFNQRUVEXzI1MDA6CisJCWNtZF9iaXRzID0zRCBVTUNfQ01EX1NQRUVEXzI1MDA7CisJ CWJyZWFrOworCWNhc2UgU1BFRURfMTAwMDoKKwkJY21kX2JpdHMgPTNEIFVNQ19DTURfU1BFRURf MTAwMDsKKwkJYnJlYWs7CisJY2FzZSBTUEVFRF8xMDA6CisJCWNtZF9iaXRzID0zRCBVTUNfQ01E X1NQRUVEXzEwMDsKKwkJYnJlYWs7CisJY2FzZSBTUEVFRF8xMDoKKwkJY21kX2JpdHMgPTNEIFVN Q19DTURfU1BFRURfMTA7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKwljbWRf Yml0cyA8PD0zRCBVTUNfQ01EX1NQRUVEX1NISUZUOworCisJaWYgKHBoeWRldi0+ZHVwbGV4ID0z RD0zRCBEVVBMRVhfSEFMRikKKwkJY21kX2JpdHMgfD0zRCBVTUNfQ01EX0hEX0VOOworCisJaWYg KGludGYtPm9sZF9wYXVzZSAhPTNEIHBoeWRldi0+cGF1c2UpIHsKKwkJY2hhbmdlZCA9M0QgMTsK KwkJaW50Zi0+b2xkX3BhdXNlID0zRCBwaHlkZXYtPnBhdXNlOworCX0KKworCWlmICghcGh5ZGV2 LT5wYXVzZSkKKwkJY21kX2JpdHMgfD0zRCBVTUNfQ01EX1JYX1BBVVNFX0lHTk9SRSB8IFVNQ19D TURfVFhfUEFVU0VfSUdOT1JFOworCisJaWYgKCFjaGFuZ2VkKQorCQlyZXR1cm47CisKKwlpZiAo cGh5ZGV2LT5saW5rKSB7CisJCXJlZyA9M0QgdW1hY19ybChpbnRmLCBVTUNfQ01EKTsKKwkJcmVn ICY9M0QgfigoVU1DX0NNRF9TUEVFRF9NQVNLIDw8IFVNQ19DTURfU1BFRURfU0hJRlQpIHwKKwkJ CVVNQ19DTURfSERfRU4gfCBVTUNfQ01EX1JYX1BBVVNFX0lHTk9SRSB8CisJCQlVTUNfQ01EX1RY X1BBVVNFX0lHTk9SRSk7CisJCXJlZyB8PTNEIGNtZF9iaXRzOworCQl1bWFjX3dsKGludGYsIHJl ZywgVU1DX0NNRCk7CisJfQorCisJcmVnID0zRCByZ21paV9ybChpbnRmLCBSR01JSV9PT0JfQ05U UkwpOworCWlmIChwaHlkZXYtPmxpbmspCisJCXJlZyB8PTNEIFJHTUlJX0xJTks7CisJZWxzZQor CQlyZWcgJj0zRCB+UkdNSUlfTElOSzsKKwlyZ21paV93bChpbnRmLCByZWcsIFJHTUlJX09PQl9D TlRSTCk7CisKKwlpZiAoY2hhbmdlZCkKKwkJcGh5X3ByaW50X3N0YXR1cyhwaHlkZXYpOworfQor CitzdGF0aWMgaW50IGJjbWFzcF9pbml0X3J4KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZikKK3sK KwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0zRCAmaW50Zi0+cGFyZW50LT5wZGV2LT5kZXY7CisJc3Ry dWN0IHBhZ2UgKmJ1ZmZlcl9wZzsKKwlkbWFfYWRkcl90IGRtYTsKKwl2b2lkICpwOworCXUzMiBy ZWc7CisJaW50IHJldDsKKworCWludGYtPnJ4X2J1Zl9vcmRlciA9M0QgZ2V0X29yZGVyKFJJTkdf QlVGRkVSX1NJWkUpOworCWJ1ZmZlcl9wZyA9M0QgYWxsb2NfcGFnZXMoR0ZQX0tFUk5FTCwgaW50 Zi0+cnhfYnVmX29yZGVyKTsKKworCWRtYSA9M0QgZG1hX21hcF9wYWdlKGtkZXYsIGJ1ZmZlcl9w ZywgMCwgUklOR19CVUZGRVJfU0laRSwKKwkJCSAgIERNQV9GUk9NX0RFVklDRSk7CisJaWYgKGRt YV9tYXBwaW5nX2Vycm9yKGtkZXYsIGRtYSkpIHsKKwkJX19mcmVlX3BhZ2VzKGJ1ZmZlcl9wZywg aW50Zi0+cnhfYnVmX29yZGVyKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCWludGYtPnJ4X3Jp bmdfY3B1ID0zRCBwYWdlX3RvX3ZpcnQoYnVmZmVyX3BnKTsKKwlpbnRmLT5yeF9yaW5nX2RtYSA9 M0QgZG1hOworCWludGYtPnJ4X3JpbmdfZG1hX3ZhbGlkID0zRCBpbnRmLT5yeF9yaW5nX2RtYSAr IFJJTkdfQlVGRkVSX1NJWkUgLSAxOworCisJcCA9M0QgZG1hX2FsbG9jX2NvaGVyZW50KGtkZXYs IERFU0NfUklOR19TSVpFLCAmaW50Zi0+cnhfZWRwa3RfZG1hX2FkZHIsCisJCQkgICAgICAgR0ZQ X0tFUk5FTCk7CisJaWYgKCFwKSB7CisJCXJldCA9M0QgLUVOT01FTTsKKwkJZ290byBmcmVlX3J4 X3Jpbmc7CisJfQorCWludGYtPnJ4X2VkcGt0X2NwdSA9M0QgcDsKKworCW5ldGlmX25hcGlfYWRk KGludGYtPm5kZXYsICZpbnRmLT5yeF9uYXBpLCBiY21hc3BfcnhfcG9sbCk7CisKKwlpbnRmLT5y eF9lZHBrdF9kbWFfcmVhZCA9M0QgaW50Zi0+cnhfZWRwa3RfZG1hX2FkZHI7CisJaW50Zi0+cnhf ZWRwa3RfaW5kZXggPTNEIDA7CisKKwkvKiBNYWtlIHN1cmUgY2hhbm5lbHMgYXJlIGRpc2FibGVk ICovCisJcnhfZWRwa3RfY2ZnX3dsKGludGYsIDB4MCwgUlhfRURQS1RfQ0ZHX0VOQUJMRSk7CisK KwkvKiBSeCBTUEIgKi8KKwlyeF9lZHBrdF9jZmdfd3EoaW50ZiwgaW50Zi0+cnhfcmluZ19kbWEs IFJYX0VEUEtUX1JJTkdfQlVGRkVSX1JFQUQpOworCXJ4X2VkcGt0X2NmZ193cShpbnRmLCBpbnRm LT5yeF9yaW5nX2RtYSwgUlhfRURQS1RfUklOR19CVUZGRVJfV1JJVEUpOworCXJ4X2VkcGt0X2Nm Z193cShpbnRmLCBpbnRmLT5yeF9yaW5nX2RtYSwgUlhfRURQS1RfUklOR19CVUZGRVJfQkFTRSk7 CisJcnhfZWRwa3RfY2ZnX3dxKGludGYsIGludGYtPnJ4X3JpbmdfZG1hX3ZhbGlkLAorCQkJUlhf RURQS1RfUklOR19CVUZGRVJfRU5EKTsKKwlyeF9lZHBrdF9jZmdfd3EoaW50ZiwgaW50Zi0+cnhf cmluZ19kbWFfdmFsaWQsCisJCQlSWF9FRFBLVF9SSU5HX0JVRkZFUl9WQUxJRCk7CisKKwkvKiBF RFBLVCAqLworCXJ4X2VkcGt0X2NmZ193bChpbnRmLCAoUlhfRURQS1RfQ0ZHX0NGRzBfUkJVRl80 SyA8PAorCQkJUlhfRURQS1RfQ0ZHX0NGRzBfREJVRl9TSElGVCkgfAorCQkgICAgICAgKFJYX0VE UEtUX0NGR19DRkcwXzY0X0FMTiA8PAorCQkJUlhfRURQS1RfQ0ZHX0NGRzBfQkFMTl9TSElGVCkg fAorCQkgICAgICAgKFJYX0VEUEtUX0NGR19DRkcwX0VGUk1fU1RVRiksCisJCQlSWF9FRFBLVF9D RkdfQ0ZHMCk7CisJcnhfZWRwa3RfZG1hX3dxKGludGYsIGludGYtPnJ4X2VkcGt0X2RtYV9hZGRy LCBSWF9FRFBLVF9ETUFfV1JJVEUpOworCXJ4X2VkcGt0X2RtYV93cShpbnRmLCBpbnRmLT5yeF9l ZHBrdF9kbWFfYWRkciwgUlhfRURQS1RfRE1BX1JFQUQpOworCXJ4X2VkcGt0X2RtYV93cShpbnRm LCBpbnRmLT5yeF9lZHBrdF9kbWFfYWRkciwgUlhfRURQS1RfRE1BX0JBU0UpOworCXJ4X2VkcGt0 X2RtYV93cShpbnRmLCBpbnRmLT5yeF9lZHBrdF9kbWFfYWRkciArIChERVNDX1JJTkdfU0laRSAt IDEpLAorCQkJUlhfRURQS1RfRE1BX0VORCk7CisJcnhfZWRwa3RfZG1hX3dxKGludGYsIGludGYt PnJ4X2VkcGt0X2RtYV9hZGRyICsgKERFU0NfUklOR19TSVpFIC0gMSksCisJCQlSWF9FRFBLVF9E TUFfVkFMSUQpOworCisJcmVnID0zRCBVTUFDMkZCX0NGR19ERUZBVUxUX0VOIHwKKwkgICAgICAo KGludGYtPmNoYW5uZWwgKyAxMSkgPDwgVU1BQzJGQl9DRkdfQ0hJRF9TSElGVCk7CisJcmVnIHw9 M0QgKDB4ZCA8PCBVTUFDMkZCX0NGR19PS19TRU5EX1NISUZUKTsKKwl1bWFjMmZiX3dsKGludGYs IHJlZywgVU1BQzJGQl9DRkcpOworCisJcmV0dXJuIDA7CisKK2ZyZWVfcnhfcmluZzoKKwlkbWFf dW5tYXBfcGFnZShrZGV2LCBpbnRmLT5yeF9yaW5nX2RtYSwgUklOR19CVUZGRVJfU0laRSwKKwkJ ICAgICAgIERNQV9GUk9NX0RFVklDRSk7CisJX19mcmVlX3BhZ2VzKHZpcnRfdG9fcGFnZShpbnRm LT5yeF9yaW5nX2NwdSksIGludGYtPnJ4X2J1Zl9vcmRlcik7CisKKwlyZXR1cm4gcmV0OworfQor CitzdGF0aWMgdm9pZCBiY21hc3BfcmVjbGFpbV9mcmVlX2FsbF9yeChzdHJ1Y3QgYmNtYXNwX2lu dGYgKmludGYpCit7CisJc3RydWN0IGRldmljZSAqa2RldiA9M0QgJmludGYtPnBhcmVudC0+cGRl di0+ZGV2OworCisJZG1hX2ZyZWVfY29oZXJlbnQoa2RldiwgREVTQ19SSU5HX1NJWkUsIGludGYt PnJ4X2VkcGt0X2NwdSwKKwkJCSAgaW50Zi0+cnhfZWRwa3RfZG1hX2FkZHIpOworCWRtYV91bm1h cF9wYWdlKGtkZXYsIGludGYtPnJ4X3JpbmdfZG1hLCBSSU5HX0JVRkZFUl9TSVpFLAorCQkgICAg ICAgRE1BX0ZST01fREVWSUNFKTsKKwlfX2ZyZWVfcGFnZXModmlydF90b19wYWdlKGludGYtPnJ4 X3JpbmdfY3B1KSwgaW50Zi0+cnhfYnVmX29yZGVyKTsKK30KKworc3RhdGljIGludCBiY21hc3Bf aW5pdF90eChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpCit7CisJc3RydWN0IGRldmljZSAqa2Rl diA9M0QgJmludGYtPnBhcmVudC0+cGRldi0+ZGV2OworCXZvaWQgKnA7CisJaW50IHJldDsKKwor CXAgPTNEIGRtYV9hbGxvY19jb2hlcmVudChrZGV2LCBERVNDX1JJTkdfU0laRSwgJmludGYtPnR4 X3NwYl9kbWFfYWRkciwKKwkJCSAgICAgICBHRlBfS0VSTkVMKTsKKwlpZiAoIXApCisJCXJldHVy biAtRU5PTUVNOworCisJaW50Zi0+dHhfc3BiX2NwdSA9M0QgcDsKKwlpbnRmLT50eF9zcGJfZG1h X3ZhbGlkID0zRCBpbnRmLT50eF9zcGJfZG1hX2FkZHIgKyBERVNDX1JJTkdfU0laRSAtIDE7CisJ aW50Zi0+dHhfc3BiX2RtYV9yZWFkID0zRCBpbnRmLT50eF9zcGJfZG1hX2FkZHI7CisKKwlpbnRm LT50eF9jYnMgPTNEIGtjYWxsb2MoREVTQ19SSU5HX0NPVU5ULCBzaXplb2Yoc3RydWN0IGJjbWFz cF90eF9jYiksCisJCQkgICAgICAgR0ZQX0tFUk5FTCk7CisJaWYgKCFpbnRmLT50eF9jYnMpIHsK KwkJcmV0ID0zRCAtRU5PTUVNOworCQlnb3RvIGZyZWVfdHhfc3BiOworCX0KKworCWludGYtPnR4 X3NwYl9pbmRleCA9M0QgMDsKKwlpbnRmLT50eF9zcGJfY2xlYW5faW5kZXggPTNEIDA7CisKKwlu ZXRpZl9uYXBpX2FkZF90eChpbnRmLT5uZGV2LCAmaW50Zi0+dHhfbmFwaSwgYmNtYXNwX3R4X3Bv bGwpOworCisJLyogTWFrZSBzdXJlIGNoYW5uZWxzIGFyZSBkaXNhYmxlZCAqLworCXR4X3NwYl9j dHJsX3dsKGludGYsIDB4MCwgVFhfU1BCX0NUUkxfRU5BQkxFKTsKKwl0eF9lcGt0X2NvcmVfd2wo aW50ZiwgMHgwLCBUWF9FUEtUX0NfQ0ZHX01JU0MpOworCisJLyogVHggU1BCICovCisJdHhfc3Bi X2N0cmxfd2woaW50ZiwgKChpbnRmLT5jaGFubmVsICsgOCkgPDwgVFhfU1BCX0NUUkxfWEZfQklE X1NISUZUKSwKKwkJICAgICAgIFRYX1NQQl9DVFJMX1hGX0NUUkwyKTsKKwl0eF9wYXVzZV9jdHJs X3dsKGludGYsICgxIDw8IChpbnRmLT5jaGFubmVsICsgOCkpLCBUWF9QQVVTRV9NQVBfVkVDVE9S KTsKKwl0eF9zcGJfdG9wX3dsKGludGYsIDB4MWUsIFRYX1NQQl9UT1BfQkxLT1VUKTsKKwl0eF9z cGJfdG9wX3dsKGludGYsIDB4MCwgVFhfU1BCX1RPUF9TUFJFX0JXX0NUUkwpOworCisJdHhfc3Bi X2RtYV93cShpbnRmLCBpbnRmLT50eF9zcGJfZG1hX2FkZHIsIFRYX1NQQl9ETUFfUkVBRCk7CisJ dHhfc3BiX2RtYV93cShpbnRmLCBpbnRmLT50eF9zcGJfZG1hX2FkZHIsIFRYX1NQQl9ETUFfQkFT RSk7CisJdHhfc3BiX2RtYV93cShpbnRmLCBpbnRmLT50eF9zcGJfZG1hX3ZhbGlkLCBUWF9TUEJf RE1BX0VORCk7CisJdHhfc3BiX2RtYV93cShpbnRmLCBpbnRmLT50eF9zcGJfZG1hX3ZhbGlkLCBU WF9TUEJfRE1BX1ZBTElEKTsKKworCXJldHVybiAwOworCitmcmVlX3R4X3NwYjoKKwlkbWFfZnJl ZV9jb2hlcmVudChrZGV2LCBERVNDX1JJTkdfU0laRSwgaW50Zi0+dHhfc3BiX2NwdSwKKwkJCSAg aW50Zi0+dHhfc3BiX2RtYV9hZGRyKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lk IGJjbWFzcF9yZWNsYWltX2ZyZWVfYWxsX3R4KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZikKK3sK KwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0zRCAmaW50Zi0+cGFyZW50LT5wZGV2LT5kZXY7CisKKwkv KiBGcmVlIGRlc2NyaXB0b3JzICovCisJZG1hX2ZyZWVfY29oZXJlbnQoa2RldiwgREVTQ19SSU5H X1NJWkUsIGludGYtPnR4X3NwYl9jcHUsCisJCQkgIGludGYtPnR4X3NwYl9kbWFfYWRkcik7CisK KwkvKiBGcmVlIGNicyAqLworCWtmcmVlKGludGYtPnR4X2Nicyk7Cit9CisKK3N0YXRpYyB2b2lk IGJjbWFzcF9lcGh5X2VuYWJsZV9zZXQoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBib29sIGVu YWJsZSkKK3sKKwl1MzIgbWFzayA9M0QgUkdNSUlfRVBIWV9DRkdfSUREUV9CSUFTIHwgUkdNSUlf RVBIWV9DRkdfRVhUX1BXUkRPV04gfAorCQkgICBSR01JSV9FUEhZX0NGR19JRERRX0dMT0JBTDsK Kwl1MzIgcmVnOworCisJcmVnID0zRCByZ21paV9ybChpbnRmLCBSR01JSV9FUEhZX0NOVFJMKTsK KwlpZiAoZW5hYmxlKSB7CisJCXJlZyAmPTNEIH5SR01JSV9FUEhZX0NLMjVfRElTOworCQlyZ21p aV93bChpbnRmLCByZWcsIFJHTUlJX0VQSFlfQ05UUkwpOworCQltZGVsYXkoMSk7CisKKwkJcmVn ICY9M0Qgfm1hc2s7CisJCXJlZyB8PTNEIFJHTUlJX0VQSFlfUkVTRVQ7CisJCXJnbWlpX3dsKGlu dGYsIHJlZywgUkdNSUlfRVBIWV9DTlRSTCk7CisJCW1kZWxheSgxKTsKKworCQlyZWcgJj0zRCB+ UkdNSUlfRVBIWV9SRVNFVDsKKwl9IGVsc2UgeworCQlyZWcgfD0zRCBtYXNrIHwgUkdNSUlfRVBI WV9SRVNFVDsKKwkJcmdtaWlfd2woaW50ZiwgcmVnLCBSR01JSV9FUEhZX0NOVFJMKTsKKwkJbWRl bGF5KDEpOworCQlyZWcgfD0zRCBSR01JSV9FUEhZX0NLMjVfRElTOworCX0KKwlyZ21paV93bChp bnRmLCByZWcsIFJHTUlJX0VQSFlfQ05UUkwpOworCW1kZWxheSgxKTsKKworCS8qIFNldCBvciBj bGVhciB0aGUgTEVEIGNvbnRyb2wgb3ZlcnJpZGUgdG8gYXZvaWQgbGlnaHRpbmcgdXAgTEVEcwor CSAqIHdoaWxlIHRoZSBFUEhZIGlzIHBvd2VyZWQgb2ZmIGFuZCBkcmF3aW5nIHVubmVjZXNzYXJ5 IGN1cnJlbnQuCisJICovCisJcmVnID0zRCByZ21paV9ybChpbnRmLCBSR01JSV9TWVNfTEVEX0NO VFJMKTsKKwlpZiAoZW5hYmxlKQorCQlyZWcgJj0zRCB+UkdNSUlfU1lTX0xFRF9DTlRSTF9MSU5L X09WUkQ7CisJZWxzZQorCQlyZWcgfD0zRCBSR01JSV9TWVNfTEVEX0NOVFJMX0xJTktfT1ZSRDsK KwlyZ21paV93bChpbnRmLCByZWcsIFJHTUlJX1NZU19MRURfQ05UUkwpOworfQorCitzdGF0aWMg dm9pZCBiY21hc3BfcmdtaWlfbW9kZV9lbl9zZXQoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBi b29sIGVuYWJsZSkKK3sKKwl1MzIgcmVnOworCisJcmVnID0zRCByZ21paV9ybChpbnRmLCBSR01J SV9PT0JfQ05UUkwpOworCXJlZyAmPTNEIH5SR01JSV9PT0JfRElTOworCWlmIChlbmFibGUpCisJ CXJlZyB8PTNEIFJHTUlJX01PREVfRU47CisJZWxzZQorCQlyZWcgJj0zRCB+UkdNSUlfTU9ERV9F TjsKKwlyZ21paV93bChpbnRmLCByZWcsIFJHTUlJX09PQl9DTlRSTCk7Cit9CisKK3N0YXRpYyB2 b2lkIGJjbWFzcF9uZXRpZl9kZWluaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKK3sKKwlzdHJ1 Y3QgYmNtYXNwX2ludGYgKmludGYgPTNEIG5ldGRldl9wcml2KGRldik7CisJdTMyIHJlZywgdGlt ZW91dCA9M0QgMTAwMDsKKworCW5hcGlfZGlzYWJsZSgmaW50Zi0+dHhfbmFwaSk7CisKKwliY21h c3BfZW5hYmxlX3R4KGludGYsIDApOworCisJLyogRmx1c2ggYW55IFRYIHBhY2tldHMgaW4gdGhl IHBpcGUgKi8KKwl0eF9zcGJfZG1hX3dsKGludGYsIFRYX1NQQl9ETUFfRklGT19GTFVTSCwgVFhf U1BCX0RNQV9GSUZPX0NUUkwpOworCWRvIHsKKwkJcmVnID0zRCB0eF9zcGJfZG1hX3JsKGludGYs IFRYX1NQQl9ETUFfRklGT19TVEFUVVMpOworCQlpZiAoIShyZWcgJiBUWF9TUEJfRE1BX0ZJRk9f RkxVU0gpKQorCQkJYnJlYWs7CisJCXVzbGVlcF9yYW5nZSgxMDAwLCAyMDAwKTsKKwl9IHdoaWxl ICh0aW1lb3V0LS0gPiAwKTsKKwl0eF9zcGJfZG1hX3dsKGludGYsIDB4MCwgVFhfU1BCX0RNQV9G SUZPX0NUUkwpOworCisJdW1hY19lbmFibGVfc2V0KGludGYsIFVNQ19DTURfVFhfRU4sIDApOwor CisJcGh5X3N0b3AoZGV2LT5waHlkZXYpOworCisJdW1hY19lbmFibGVfc2V0KGludGYsIFVNQ19D TURfUlhfRU4sIDApOworCisJYmNtYXNwX2ZsdXNoX3J4X3BvcnQoaW50Zik7CisJdXNsZWVwX3Jh bmdlKDEwMDAsIDIwMDApOworCWJjbWFzcF9lbmFibGVfcngoaW50ZiwgMCk7CisKKwluYXBpX2Rp c2FibGUoJmludGYtPnJ4X25hcGkpOworCisJLyogRGlzYWJsZSBpbnRlcnJ1cHRzICovCisJYmNt YXNwX2VuYWJsZV90eF9pcnEoaW50ZiwgMCk7CisJYmNtYXNwX2VuYWJsZV9yeF9pcnEoaW50Ziwg MCk7CisKKwluZXRpZl9uYXBpX2RlbCgmaW50Zi0+dHhfbmFwaSk7CisJYmNtYXNwX3JlY2xhaW1f ZnJlZV9hbGxfdHgoaW50Zik7CisKKwluZXRpZl9uYXBpX2RlbCgmaW50Zi0+cnhfbmFwaSk7CisJ YmNtYXNwX3JlY2xhaW1fZnJlZV9hbGxfcngoaW50Zik7Cit9CisKK3N0YXRpYyBpbnQgYmNtYXNw X3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgYmNtYXNwX2ludGYgKmlu dGYgPTNEIG5ldGRldl9wcml2KGRldik7CisKKwluZXRpZl9kYmcoaW50ZiwgaWZkb3duLCBkZXYs ICJiY21hc3Agc3RvcFxuIik7CisKKwkvKiBTdG9wIHR4IGZyb20gdXBkYXRpbmcgSFcgKi8KKwlu ZXRpZl90eF9kaXNhYmxlKGRldik7CisKKwliY21hc3BfbmV0aWZfZGVpbml0KGRldik7CisKKwlw aHlfZGlzY29ubmVjdChkZXYtPnBoeWRldik7CisKKwkvKiBEaXNhYmxlIGludGVybmFsIEVQSFkg b3IgZXh0ZXJuYWwgUEhZICovCisJaWYgKGludGYtPmludGVybmFsX3BoeSkKKwkJYmNtYXNwX2Vw aHlfZW5hYmxlX3NldChpbnRmLCBmYWxzZSk7CisJZWxzZQorCQliY21hc3BfcmdtaWlfbW9kZV9l bl9zZXQoaW50ZiwgZmFsc2UpOworCisJLyogRGlzYWJsZSB0aGUgaW50ZXJmYWNlIGNsb2NrcyAq LworCWJjbWFzcF9jb3JlX2Nsb2NrX3NldF9pbnRmKGludGYsIGZhbHNlKTsKKworCWNsa19kaXNh YmxlX3VucHJlcGFyZShpbnRmLT5wYXJlbnQtPmNsayk7CisKKwlyZXR1cm4gMDsKK30KKworc3Rh dGljIHZvaWQgYmNtYXNwX2NvbmZpZ3VyZV9wb3J0KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZikK K3sKKwl1MzIgcmVnLCBpZF9tb2RlX2RpcyA9M0QgMDsKKworCXJlZyA9M0QgcmdtaWlfcmwoaW50 ZiwgUkdNSUlfUE9SVF9DTlRSTCk7CisJcmVnICY9M0QgflJHTUlJX1BPUlRfTU9ERV9NQVNLOwor CisJc3dpdGNoIChpbnRmLT5waHlfaW50ZXJmYWNlKSB7CisJY2FzZSBQSFlfSU5URVJGQUNFX01P REVfUkdNSUk6CisJCS8qIFJHTUlJX05PX0lEOiBUWEMgdHJhbnNpdGlvbnMgYXQgdGhlIHNhbWUg dGltZSBhcyBUWEQKKwkJICoJCShyZXF1aXJlcyBQQ0Igb3IgcmVjZWl2ZXItc2lkZSBkZWxheSkK KwkJICogUkdNSUk6CUFkZCAybnMgZGVsYXkgb24gVFhDICg5MCBkZWdyZWUgc2hpZnQpCisJCSAq CisJCSAqIElEIGlzIGltcGxpY2l0bHkgZGlzYWJsZWQgZm9yIDEwME1icHMgKFJHKU1JSSBvcGVy YXRpb24uCisJCSAqLworCQlpZF9tb2RlX2RpcyA9M0QgUkdNSUlfSURfTU9ERV9ESVM7CisJCWZh bGx0aHJvdWdoOworCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX1RYSUQ6CisJCXJlZyB8 PTNEIFJHTUlJX1BPUlRfTU9ERV9FWFRfR1BIWTsKKwkJYnJlYWs7CisJY2FzZSBQSFlfSU5URVJG QUNFX01PREVfTUlJOgorCQlyZWcgfD0zRCBSR01JSV9QT1JUX01PREVfRVhUX0VQSFk7CisJCWJy ZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKworCWlmIChpbnRmLT5pbnRlcm5hbF9waHkp CisJCXJlZyB8PTNEIFJHTUlJX1BPUlRfTU9ERV9FUEhZOworCisJcmdtaWlfd2woaW50ZiwgcmVn LCBSR01JSV9QT1JUX0NOVFJMKTsKKworCXJlZyA9M0QgcmdtaWlfcmwoaW50ZiwgUkdNSUlfT09C X0NOVFJMKTsKKwlyZWcgJj0zRCB+UkdNSUlfSURfTU9ERV9ESVM7CisJcmVnIHw9M0QgaWRfbW9k ZV9kaXM7CisJcmdtaWlfd2woaW50ZiwgcmVnLCBSR01JSV9PT0JfQ05UUkwpOworfQorCitzdGF0 aWMgaW50IGJjbWFzcF9uZXRpZl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGJvb2wgcGh5 X2Nvbm5lY3QpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihk ZXYpOworCXBoeV9pbnRlcmZhY2VfdCBwaHlfaWZhY2UgPTNEIGludGYtPnBoeV9pbnRlcmZhY2U7 CisJdTMyIHBoeV9mbGFncyA9M0QgUEhZX0JSQ01fQVVUT19QV1JEV05fRU5BQkxFIHwKKwkJCVBI WV9CUkNNX0RJU19UWENSWENfTk9FTlJHWSB8CisJCQlQSFlfQlJDTV9JRERRX1NVU1BFTkQ7CisJ c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiA9M0QgTlVMTDsKKwlpbnQgcmV0OworCisJLyogQWx3 YXlzIGVuYWJsZSBpbnRlcmZhY2UgY2xvY2tzICovCisJYmNtYXNwX2NvcmVfY2xvY2tfc2V0X2lu dGYoaW50ZiwgdHJ1ZSk7CisKKwkvKiBFbmFibGUgaW50ZXJuYWwgUEhZIG9yIGV4dGVybmFsIFBI WSBiZWZvcmUgYW55IE1BQyBhY3Rpdml0eSAqLworCWlmIChpbnRmLT5pbnRlcm5hbF9waHkpCisJ CWJjbWFzcF9lcGh5X2VuYWJsZV9zZXQoaW50ZiwgdHJ1ZSk7CisJZWxzZQorCQliY21hc3Bfcmdt aWlfbW9kZV9lbl9zZXQoaW50ZiwgdHJ1ZSk7CisJYmNtYXNwX2NvbmZpZ3VyZV9wb3J0KGludGYp OworCisJLyogVGhpcyBpcyBhbiB1Z2x5IHF1aXJrIGJ1dCB3ZSBoYXZlIG5vdCBiZWVuIGNvcnJl Y3RseQorCSAqIGludGVycHJldGluZyB0aGUgcGh5X2ludGVyZmFjZSB2YWx1ZXMgYW5kIHdlIGhh dmUgZG9uZSB0aGF0CisJICogYWNyb3NzIGRpZmZlcmVudCBkcml2ZXJzLCBzbyBhdCBsZWFzdCB3 ZSBhcmUgY29uc2lzdGVudCBpbgorCSAqIG91ciBtaXN0YWtlcy4KKwkgKgorCSAqIFdoZW4gdGhl IEdlbmVyaWMgUEhZIGRyaXZlciBpcyBpbiB1c2UgZWl0aGVyIHRoZSBQSFkgaGFzCisJICogYmVl biBzdHJhcHBlZCBvciBwcm9ncmFtbWVkIGNvcnJlY3RseSBieSB0aGUgYm9vdCBsb2FkZXIgc28K KwkgKiB3ZSBzaG91bGQgc3RpY2sgdG8gb3VyIGluY29ycmVjdCBpbnRlcnByZXRhdGlvbiBzaW5j ZSB3ZQorCSAqIGhhdmUgdmFsaWRhdGVkIGl0LgorCSAqCisJICogTm93IHdoZW4gYSBkZWRpY2F0 ZWQgUEhZIGRyaXZlciBpcyBpbiB1c2UsIHdlIG5lZWQgdG8KKwkgKiByZXZlcnNlIHRoZSBtZWFu aW5nIG9mIHRoZSBwaHlfaW50ZXJmYWNlX21vZGUgdmFsdWVzIHRvCisJICogc29tZXRoaW5nIHRo YXQgdGhlIFBIWSBkcml2ZXIgd2lsbCBpbnRlcnByZXQgYW5kIGFjdCBvbiBzdWNoCisJICogdGhh dCB3ZSBoYXZlIHR3byBtaXN0YWtlcyBjYW5jZWxpbmcgdGhlbXNlbHZlcyBzbyB0byBzcGVhay4K KwkgKiBXZSBvbmx5IGRvIHRoaXMgZm9yIHRoZSB0d28gbW9kZXMgdGhhdCBHRU5FVCBkcml2ZXIK KwkgKiBvZmZpY2lhbGx5IHN1cHBvcnRzIG9uIEJyb2FkY29tIFNUQiBjaGlwczoKKwkgKiBQSFlf SU5URVJGQUNFX01PREVfUkdNSUkgYW5kIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSV9UWElELgor CSAqIE90aGVyIG1vZGVzIGFyZSBub3QgKm9mZmljaWFsbHkqIHN1cHBvcnRlZCB3aXRoIHRoZSBi b290CisJICogbG9hZGVyIGFuZCB0aGUgc2NyaXB0ZWQgZW52aXJvbm1lbnQgZ2VuZXJhdGluZyBE ZXZpY2UgVHJlZQorCSAqIGJsb2JzIGZvciB0aG9zZSBwbGF0Zm9ybXMuCisJICoKKwkgKiBOb3Rl IHRoYXQgaW50ZXJuYWwgUEhZIGFuZCBmaXhlZC1saW5rIGNvbmZpZ3VyYXRpb25zIGFyZSBub3QK KwkgKiBhZmZlY3RlZCBiZWNhdXNlIHRoZXkgdXNlIGRpZmZlcmVudCBwaHlfaW50ZXJmYWNlX3Qg dmFsdWVzCisJICogb3IgdGhlIEdlbmVyaWMgUEhZIGRyaXZlci4KKwkgKi8KKwlzd2l0Y2ggKHBo eV9pZmFjZSkgeworCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJOgorCQlwaHlfaWZhY2Ug PTNEIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSV9JRDsKKwkJYnJlYWs7CisJY2FzZSBQSFlfSU5U RVJGQUNFX01PREVfUkdNSUlfVFhJRDoKKwkJcGh5X2lmYWNlID0zRCBQSFlfSU5URVJGQUNFX01P REVfUkdNSUlfUlhJRDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJaWYg KHBoeV9jb25uZWN0KSB7CisJCXBoeWRldiA9M0Qgb2ZfcGh5X2Nvbm5lY3QoZGV2LCBpbnRmLT5w aHlfZG4sCisJCQkJCWJjbWFzcF9hZGpfbGluaywgcGh5X2ZsYWdzLAorCQkJCQlwaHlfaWZhY2Up OworCQlpZiAoIXBoeWRldikgeworCQkJcmV0ID0zRCAtRU5PREVWOworCQkJbmV0ZGV2X2Vycihk ZXYsICJjb3VsZCBub3QgYXR0YWNoIHRvIFBIWVxuIik7CisJCQlnb3RvIGVycl9waHlfZGlzYWJs ZTsKKwkJfQorCX0gZWxzZSB7CisJCXJldCA9M0QgcGh5X3Jlc3VtZShkZXYtPnBoeWRldik7CisJ CWlmIChyZXQpCisJCQlnb3RvIGVycl9waHlfZGlzYWJsZTsKKwl9CisKKwl1bWFjX3Jlc2V0KGlu dGYpOworCisJdW1hY19pbml0KGludGYpOworCisJLyogRGlzYWJsZSB0aGUgVW5pTUFDIFJYL1RY ICovCisJdW1hY19lbmFibGVfc2V0KGludGYsIChVTUNfQ01EX1JYX0VOIHwgVU1DX0NNRF9UWF9F TiksIDApOworCisJdW1hY19zZXRfaHdfYWRkcihpbnRmLCBkZXYtPmRldl9hZGRyKTsKKworCWlu dGYtPm9sZF9kdXBsZXggPTNEIC0xOworCWludGYtPm9sZF9saW5rID0zRCAtMTsKKwlpbnRmLT5v bGRfcGF1c2UgPTNEIC0xOworCisJcmV0ID0zRCBiY21hc3BfaW5pdF90eChpbnRmKTsKKwlpZiAo cmV0KQorCQlnb3RvIGVycl9waHlfZGlzY29ubmVjdDsKKworCS8qIFR1cm4gb24gYXNwICovCisJ YmNtYXNwX2VuYWJsZV90eChpbnRmLCAxKTsKKworCXJldCA9M0QgYmNtYXNwX2luaXRfcngoaW50 Zik7CisJaWYgKHJldCkKKwkJZ290byBlcnJfcmVjbGFpbV90eDsKKworCWJjbWFzcF9lbmFibGVf cngoaW50ZiwgMSk7CisKKwkvKiBUdXJuIG9uIFVuaU1BQyBUWC9SWCAqLworCXVtYWNfZW5hYmxl X3NldChpbnRmLCAoVU1DX0NNRF9SWF9FTiB8IFVNQ19DTURfVFhfRU4pLCAxKTsKKworCWludGYt PmNyY19md2QgPTNEICEhKHVtYWNfcmwoaW50ZiwgVU1DX0NNRCkgJiBVTUNfQ01EX0NSQ19GV0Qp OworCisJYmNtYXNwX25ldGlmX3N0YXJ0KGRldik7CisKKwluZXRpZl9zdGFydF9xdWV1ZShkZXYp OworCisJcmV0dXJuIDA7CisKK2Vycl9yZWNsYWltX3R4OgorCWJjbWFzcF9yZWNsYWltX2ZyZWVf YWxsX3R4KGludGYpOworZXJyX3BoeV9kaXNjb25uZWN0OgorCWlmIChwaHlkZXYpCisJCXBoeV9k aXNjb25uZWN0KHBoeWRldik7CitlcnJfcGh5X2Rpc2FibGU6CisJaWYgKGludGYtPmludGVybmFs X3BoeSkKKwkJYmNtYXNwX2VwaHlfZW5hYmxlX3NldChpbnRmLCBmYWxzZSk7CisJZWxzZQorCQli Y21hc3BfcmdtaWlfbW9kZV9lbl9zZXQoaW50ZiwgZmFsc2UpOworCXJldHVybiByZXQ7Cit9CisK K3N0YXRpYyBpbnQgYmNtYXNwX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldikKK3sKKwlzdHJ1 Y3QgYmNtYXNwX2ludGYgKmludGYgPTNEIG5ldGRldl9wcml2KGRldik7CisJaW50IHJldDsKKwor CW5ldGlmX2RiZyhpbnRmLCBpZnVwLCBkZXYsICJiY21hc3Agb3BlblxuIik7CisKKwlyZXQgPTNE IGNsa19wcmVwYXJlX2VuYWJsZShpbnRmLT5wYXJlbnQtPmNsayk7CisJaWYgKHJldCkKKwkJcmV0 dXJuIHJldDsKKworCXJldCA9M0QgYmNtYXNwX25ldGlmX2luaXQoZGV2LCB0cnVlKTsKKwlpZiAo cmV0KQorCQljbGtfZGlzYWJsZV91bnByZXBhcmUoaW50Zi0+cGFyZW50LT5jbGspOworCisJcmV0 dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgYmNtYXNwX3R4X3RpbWVvdXQoc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHR4cXVldWUpCit7CisJc3RydWN0IGJjbWFzcF9pbnRm ICppbnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOworCXN0cnVjdCBiY21hc3BfaW50Zl9zdGF0czY0 ICpzdGF0czsKKworCXN0YXRzID0zRCAmaW50Zi0+c3RhdHM2NDsKKworCW5ldGlmX2RiZyhpbnRm LCB0eF9lcnIsIGRldiwgInRyYW5zbWl0IHRpbWVvdXQhXG4iKTsKKworCXU2NF9zdGF0c191cGRh dGVfYmVnaW4oJnN0YXRzLT5zeW5jcCk7CisJdTY0X3N0YXRzX2luYygmc3RhdHMtPnJ4X2Vycm9y cyk7CisJdTY0X3N0YXRzX3VwZGF0ZV9lbmQoJnN0YXRzLT5zeW5jcCk7Cit9CisKK3N0YXRpYyBp bnQgYmNtYXNwX2dldF9waHlzX3BvcnRfbmFtZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAorCQkJ CSAgICAgY2hhciAqbmFtZSwgc2l6ZV90IGxlbikKK3sKKwlzdHJ1Y3QgYmNtYXNwX2ludGYgKmlu dGYgPTNEIG5ldGRldl9wcml2KGRldik7CisKKwlpZiAoc25wcmludGYobmFtZSwgbGVuLCAicCVk IiwgaW50Zi0+cG9ydCkgPj0zRCBsZW4pCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIDA7 Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9nZXRfc3RhdHM2NChzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2LAorCQkJICAgICAgIHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NCAqc3RhdHMpCit7CisJc3Ry dWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOworCXN0cnVjdCBiY21h c3BfaW50Zl9zdGF0czY0ICpsc3RhdHM7CisJdW5zaWduZWQgaW50IHN0YXJ0OworCisJbHN0YXRz ID0zRCAmaW50Zi0+c3RhdHM2NDsKKworCWRvIHsKKwkJc3RhcnQgPTNEIHU2NF9zdGF0c19mZXRj aF9iZWdpbigmbHN0YXRzLT5zeW5jcCk7CisJCXN0YXRzLT5yeF9wYWNrZXRzID0zRCB1NjRfc3Rh dHNfcmVhZCgmbHN0YXRzLT5yeF9wYWNrZXRzKTsKKwkJc3RhdHMtPnJ4X2J5dGVzID0zRCB1NjRf c3RhdHNfcmVhZCgmbHN0YXRzLT5yeF9ieXRlcyk7CisJCXN0YXRzLT5yeF9kcm9wcGVkID0zRCB1 NjRfc3RhdHNfcmVhZCgmbHN0YXRzLT5yeF9kcm9wcGVkKTsKKwkJc3RhdHMtPnJ4X2NyY19lcnJv cnMgPTNEIHU2NF9zdGF0c19yZWFkKCZsc3RhdHMtPnJ4X2NyY19lcnJzKTsKKwkJc3RhdHMtPnJ4 X2ZyYW1lX2Vycm9ycyA9M0QgdTY0X3N0YXRzX3JlYWQoJmxzdGF0cy0+cnhfc3ltX2VycnMpOwor CQlzdGF0cy0+cnhfZXJyb3JzID0zRCB1NjRfc3RhdHNfcmVhZCgmbHN0YXRzLT5yeF9lcnJvcnMp ICsKKwkJCQkgICBzdGF0cy0+cnhfY3JjX2Vycm9ycyArIHN0YXRzLT5yeF9mcmFtZV9lcnJvcnM7 CisKKwkJc3RhdHMtPnR4X3BhY2tldHMgPTNEIHU2NF9zdGF0c19yZWFkKCZsc3RhdHMtPnR4X3Bh Y2tldHMpOworCQlzdGF0cy0+dHhfYnl0ZXMgPTNEIHU2NF9zdGF0c19yZWFkKCZsc3RhdHMtPnR4 X2J5dGVzKTsKKwkJc3RhdHMtPnR4X2Vycm9ycyA9M0QgdTY0X3N0YXRzX3JlYWQoJmxzdGF0cy0+ dHhfZXJyb3JzKTsKKwl9IHdoaWxlICh1NjRfc3RhdHNfZmV0Y2hfcmV0cnkoJmxzdGF0cy0+c3lu Y3AsIHN0YXJ0KSk7CisKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBi Y21hc3BfbmV0ZGV2X29wcyA9M0QgeworCS5uZG9fb3BlbgkJPTNEIGJjbWFzcF9vcGVuLAorCS5u ZG9fc3RvcAkJPTNEIGJjbWFzcF9zdG9wLAorCS5uZG9fc3RhcnRfeG1pdAkJPTNEIGJjbWFzcF94 bWl0LAorCS5uZG9fdHhfdGltZW91dAkJPTNEIGJjbWFzcF90eF90aW1lb3V0LAorCS5uZG9fc2V0 X3J4X21vZGUJPTNEIGJjbWFzcF9zZXRfcnhfbW9kZSwKKwkubmRvX2dldF9waHlzX3BvcnRfbmFt ZQk9M0QgYmNtYXNwX2dldF9waHlzX3BvcnRfbmFtZSwKKwkubmRvX2V0aF9pb2N0bAkJPTNEIHBo eV9kb19pb2N0bF9ydW5uaW5nLAorCS5uZG9fc2V0X21hY19hZGRyZXNzCT0zRCBldGhfbWFjX2Fk ZHIsCisJLm5kb19nZXRfc3RhdHM2NAk9M0QgYmNtYXNwX2dldF9zdGF0czY0LAorfTsKKworc3Rh dGljIHZvaWQgYmNtYXNwX21hcF9yZXMoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2LCBzdHJ1Y3Qg YmNtYXNwX2ludGYgKmk9Cm50ZikKK3sKKwkvKiBQZXIgcG9ydCAqLworCWludGYtPnJlcy51bWFj ID0zRCBwcml2LT5iYXNlICsgVU1DX09GRlNFVChpbnRmKTsKKwlpbnRmLT5yZXMudW1hYzJmYiA9 M0QgcHJpdi0+YmFzZSArIChwcml2LT5od19pbmZvLT51bWFjMmZiICsKKwkJCQkJICAoaW50Zi0+ cG9ydCAqIDB4NCkpOworCWludGYtPnJlcy5yZ21paSA9M0QgcHJpdi0+YmFzZSArIFJHTUlJX09G RlNFVChpbnRmKTsKKworCS8qIFBlciBjaCAqLworCWludGYtPnR4X3NwYl9kbWEgPTNEIHByaXYt PmJhc2UgKyBUWF9TUEJfRE1BX09GRlNFVChpbnRmKTsKKwlpbnRmLT5yZXMudHhfc3BiX2N0cmwg PTNEIHByaXYtPmJhc2UgKyBUWF9TUEJfQ1RSTF9PRkZTRVQoaW50Zik7CisJaW50Zi0+cmVzLnR4 X3NwYl90b3AgPTNEIHByaXYtPmJhc2UgKyBUWF9TUEJfVE9QX09GRlNFVChpbnRmKTsKKwlpbnRm LT5yZXMudHhfZXBrdF9jb3JlID0zRCBwcml2LT5iYXNlICsgVFhfRVBLVF9DX09GRlNFVChpbnRm KTsKKwlpbnRmLT5yZXMudHhfcGF1c2VfY3RybCA9M0QgcHJpdi0+YmFzZSArIFRYX1BBVVNFX0NU UkxfT0ZGU0VUKGludGYpOworCisJaW50Zi0+cnhfZWRwa3RfZG1hID0zRCBwcml2LT5iYXNlICsg UlhfRURQS1RfRE1BX09GRlNFVChpbnRmKTsKKwlpbnRmLT5yeF9lZHBrdF9jZmcgPTNEIHByaXYt PmJhc2UgKyBSWF9FRFBLVF9DRkdfT0ZGU0VUKGludGYpOworfQorCisjZGVmaW5lIE1BWF9JUlFf U1RSX0xFTgkJNjQKK3N0cnVjdCBiY21hc3BfaW50ZiAqYmNtYXNwX2ludGVyZmFjZV9jcmVhdGUo c3RydWN0IGJjbWFzcF9wcml2ICpwcml2LAorCQkJCQkgICAgc3RydWN0IGRldmljZV9ub2RlICpu ZGV2X2RuLCBpbnQgaSkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPTNEICZwcml2LT5wZGV2LT5k ZXY7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmOworCXN0cnVjdCBuZXRfZGV2aWNlICpuZGV2 OworCWludCBjaCwgcG9ydCwgcmV0OworCisJaWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5kZXZf ZG4sICJyZWciLCAmcG9ydCkpIHsKKwkJZGV2X3dhcm4oZGV2LCAiJXM6IGludmFsaWQgY2ggbnVt YmVyXG4iLCBuZGV2X2RuLT5uYW1lKTsKKwkJZ290byBlcnI7CisJfQorCisJaWYgKG9mX3Byb3Bl cnR5X3JlYWRfdTMyKG5kZXZfZG4sICJicmNtLGNoYW5uZWwiLCAmY2gpKSB7CisJCWRldl93YXJu KGRldiwgIiVzOiBpbnZhbGlkIGNoIG51bWJlclxuIiwgbmRldl9kbi0+bmFtZSk7CisJCWdvdG8g ZXJyOworCX0KKworCW5kZXYgPTNEIGFsbG9jX2V0aGVyZGV2KHNpemVvZihzdHJ1Y3QgYmNtYXNw X2ludGYpKTsKKwlpZiAoIW5kZXYpIHsKKwkJZGV2X3dhcm4oZGV2LCAiJXM6IHVuYWJsZSB0byBh bGxvYyBuZGV2XG4iLCBuZGV2X2RuLT5uYW1lKTsKKwkJZ290byBlcnI7CisJfQorCWludGYgPTNE IG5ldGRldl9wcml2KG5kZXYpOworCisJaW50Zi0+cGFyZW50ID0zRCBwcml2OworCWludGYtPm5k ZXYgPTNEIG5kZXY7CisJaW50Zi0+Y2hhbm5lbCA9M0QgY2g7CisJaW50Zi0+cG9ydCA9M0QgcG9y dDsKKwlpbnRmLT5uZGV2X2RuID0zRCBuZGV2X2RuOworCWludGYtPmluZGV4ID0zRCBpOworCisJ cmV0ID0zRCBvZl9nZXRfcGh5X21vZGUobmRldl9kbiwgJmludGYtPnBoeV9pbnRlcmZhY2UpOwor CWlmIChyZXQgPCAwKSB7CisJCWRldl9lcnIoZGV2LCAiaW52YWxpZCBQSFkgbW9kZSBwcm9wZXJ0 eVxuIik7CisJCWdvdG8gZXJyX2ZyZWVfbmV0ZGV2OworCX0KKworCWlmIChpbnRmLT5waHlfaW50 ZXJmYWNlID0zRD0zRCBQSFlfSU5URVJGQUNFX01PREVfSU5URVJOQUwpCisJCWludGYtPmludGVy bmFsX3BoeSA9M0QgdHJ1ZTsKKworCWludGYtPnBoeV9kbiA9M0Qgb2ZfcGFyc2VfcGhhbmRsZShu ZGV2X2RuLCAicGh5LWhhbmRsZSIsIDApOworCWlmICghaW50Zi0+cGh5X2RuICYmIG9mX3BoeV9p c19maXhlZF9saW5rKG5kZXZfZG4pKSB7CisJCXJldCA9M0Qgb2ZfcGh5X3JlZ2lzdGVyX2ZpeGVk X2xpbmsobmRldl9kbik7CisJCWlmIChyZXQpIHsKKwkJCWRldl93YXJuKGRldiwgIiVzOiBmYWls ZWQgdG8gcmVnaXN0ZXIgZml4ZWQgUEhZXG4iLAorCQkJCSBuZGV2X2RuLT5uYW1lKTsKKwkJCWdv dG8gZXJyX2ZyZWVfbmV0ZGV2OworCQl9CisJCWludGYtPnBoeV9kbiA9M0QgbmRldl9kbjsKKwl9 CisKKwkvKiBNYXAgcmVzb3VyY2UgKi8KKwliY21hc3BfbWFwX3Jlcyhwcml2LCBpbnRmKTsKKwor CWlmICgoIXBoeV9pbnRlcmZhY2VfbW9kZV9pc19yZ21paShpbnRmLT5waHlfaW50ZXJmYWNlKSAm JgorCSAgICAgaW50Zi0+cGh5X2ludGVyZmFjZSAhPTNEIFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUkg JiYKKwkgICAgIGludGYtPnBoeV9pbnRlcmZhY2UgIT0zRCBQSFlfSU5URVJGQUNFX01PREVfSU5U RVJOQUwpIHx8CisJICAgIChpbnRmLT5wb3J0ICE9M0QgMSAmJiBpbnRmLT5pbnRlcm5hbF9waHkp KSB7CisJCW5ldGRldl9lcnIoaW50Zi0+bmRldiwgImludmFsaWQgUEhZIG1vZGU6ICVzIGZvciBw b3J0ICVkXG4iLAorCQkJICAgcGh5X21vZGVzKGludGYtPnBoeV9pbnRlcmZhY2UpLCBpbnRmLT5w b3J0KTsKKwkJcmV0ID0zRCAtRUlOVkFMOworCQlnb3RvIGVycl9mcmVlX25ldGRldjsKKwl9CisK KwlyZXQgPTNEIG9mX2dldF9ldGhkZXZfYWRkcmVzcyhuZGV2X2RuLCBuZGV2KTsKKwlpZiAocmV0 KSB7CisJCW5ldGRldl93YXJuKG5kZXYsICJ1c2luZyByYW5kb20gRXRoZXJuZXQgTUFDXG4iKTsK KwkJZXRoX2h3X2FkZHJfcmFuZG9tKG5kZXYpOworCX0KKworCVNFVF9ORVRERVZfREVWKG5kZXYs IGRldik7CisJaW50Zi0+b3BzID0zRCAmYmNtYXNwX2ludGZfb3BzOworCW5kZXYtPm5ldGRldl9v cHMgPTNEICZiY21hc3BfbmV0ZGV2X29wczsKKwluZGV2LT5ldGh0b29sX29wcyA9M0QgJmJjbWFz cF9ldGh0b29sX29wczsKKwlpbnRmLT5tc2dfZW5hYmxlID0zRCBuZXRpZl9tc2dfaW5pdCgtMSwg TkVUSUZfTVNHX0RSViB8CisJCQkJCSAgTkVUSUZfTVNHX1BST0JFIHwKKwkJCQkJICBORVRJRl9N U0dfTElOSyk7CisJbmRldi0+ZmVhdHVyZXMgfD0zRCBORVRJRl9GX0lQX0NTVU0gfCBORVRJRl9G X0lQVjZfQ1NVTSB8IE5FVElGX0ZfU0cgfAorCQkJICBORVRJRl9GX1JYQ1NVTTsKKwluZGV2LT5o d19mZWF0dXJlcyB8PTNEIG5kZXYtPmZlYXR1cmVzOworCW5kZXYtPm5lZWRlZF9oZWFkcm9vbSAr PTNEIHNpemVvZihzdHJ1Y3QgYmNtYXNwX3BrdF9vZmZsb2FkKTsKKworCXJldHVybiBpbnRmOwor CitlcnJfZnJlZV9uZXRkZXY6CisJZnJlZV9uZXRkZXYobmRldik7CitlcnI6CisJcmV0dXJuIE5V TEw7Cit9CisKK3ZvaWQgYmNtYXNwX2ludGVyZmFjZV9kZXN0cm95KHN0cnVjdCBiY21hc3BfaW50 ZiAqaW50ZiwgYm9vbCB1bnJlZ2lzdGVyKQoreworCWlmICh1bnJlZ2lzdGVyKQorCQl1bnJlZ2lz dGVyX25ldGRldihpbnRmLT5uZGV2KTsKKwlpZiAob2ZfcGh5X2lzX2ZpeGVkX2xpbmsoaW50Zi0+ bmRldl9kbikpCisJCW9mX3BoeV9kZXJlZ2lzdGVyX2ZpeGVkX2xpbmsoaW50Zi0+bmRldl9kbik7 CisJZnJlZV9uZXRkZXYoaW50Zi0+bmRldik7Cit9CisKK2ludCBiY21hc3BfaW50ZXJmYWNlX3N1 c3BlbmQoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmKQoreworCXN0cnVjdCBuZXRfZGV2aWNlICpk ZXYgPTNEIGludGYtPm5kZXY7CisJaW50IHJldCA9M0QgMDsKKworCWlmICghbmV0aWZfcnVubmlu ZyhkZXYpKQorCQlyZXR1cm4gMDsKKworCW5ldGlmX2RldmljZV9kZXRhY2goZGV2KTsKKworCWJj bWFzcF9uZXRpZl9kZWluaXQoZGV2KTsKKworCXJldCA9M0QgcGh5X3N1c3BlbmQoZGV2LT5waHlk ZXYpOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCisJaWYgKGludGYtPmludGVybmFsX3BoeSkK KwkJYmNtYXNwX2VwaHlfZW5hYmxlX3NldChpbnRmLCBmYWxzZSk7CisJZWxzZQorCQliY21hc3Bf cmdtaWlfbW9kZV9lbl9zZXQoaW50ZiwgZmFsc2UpOworCisJLyoKKwkgKiBJZiBXYWtlLW9uLUxB TiBpcyBkaXNhYmxlZCwgd2UgY2FuIHNhZmVseQorCSAqIGRpc2FibGUgdGhlIG5ldHdvcmsgaW50 ZXJmYWNlIGNsb2Nrcy4KKwkgKi8KKwliY21hc3BfY29yZV9jbG9ja19zZXRfaW50ZihpbnRmLCBm YWxzZSk7CisKKwljbGtfZGlzYWJsZV91bnByZXBhcmUoaW50Zi0+cGFyZW50LT5jbGspOworCisJ cmV0dXJuIHJldDsKKworb3V0OgorCWJjbWFzcF9uZXRpZl9pbml0KGRldiwgZmFsc2UpOworCXJl dHVybiByZXQ7Cit9CisKK2ludCBiY21hc3BfaW50ZXJmYWNlX3Jlc3VtZShzdHJ1Y3QgYmNtYXNw X2ludGYgKmludGYpCit7CisJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9M0QgaW50Zi0+bmRldjsK KwlpbnQgcmV0OworCisJaWYgKCFuZXRpZl9ydW5uaW5nKGRldikpCisJCXJldHVybiAwOworCisJ cmV0ID0zRCBjbGtfcHJlcGFyZV9lbmFibGUoaW50Zi0+cGFyZW50LT5jbGspOworCWlmIChyZXQp CisJCXJldHVybiByZXQ7CisKKwlyZXQgPTNEIGJjbWFzcF9uZXRpZl9pbml0KGRldiwgZmFsc2Up OworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCisJbmV0aWZfZGV2aWNlX2F0dGFjaChkZXYpOwor CisJcmV0dXJuIDA7CisKK291dDoKKwljbGtfZGlzYWJsZV91bnByZXBhcmUoaW50Zi0+cGFyZW50 LT5jbGspOworCXJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmX2RlZnMuaCBiL2RyaXZlcj0Kcy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zl9kZWZzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi5iMjU5YTQ3NTIwN2YKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmX2RlZnMuaApAQCAtMCww ICsxLDE5NiBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKyNpZm5k ZWYgX19CQ01BU1BfSU5URl9ERUZTX0gKKyNkZWZpbmUgX19CQ01BU1BfSU5URl9ERUZTX0gKKwor I2RlZmluZSBVTUNfT0ZGU0VUKGludGYpCQlcCisJKCgoKGludGYpLT5wb3J0KSAqIDB4ODAwKSAr IDB4YzAwMCkKKyNkZWZpbmUgIFVNQ19DTUQJCQkweDAwOAorI2RlZmluZSAgIFVNQ19DTURfVFhf RU4JCQlCSVQoMCkKKyNkZWZpbmUgICBVTUNfQ01EX1JYX0VOCQkJQklUKDEpCisjZGVmaW5lICAg VU1DX0NNRF9TUEVFRF9TSElGVAkJMHgyCisjZGVmaW5lICAgIFVNQ19DTURfU1BFRURfTUFTSwkJ MHgzCisjZGVmaW5lICAgIFVNQ19DTURfU1BFRURfMTAJCTB4MAorI2RlZmluZSAgICBVTUNfQ01E X1NQRUVEXzEwMAkJMHgxCisjZGVmaW5lICAgIFVNQ19DTURfU1BFRURfMTAwMAkJMHgyCisjZGVm aW5lICAgIFVNQ19DTURfU1BFRURfMjUwMAkJMHgzCisjZGVmaW5lICAgVU1DX0NNRF9QUk9NSVND CQlCSVQoNCkKKyNkZWZpbmUgICBVTUNfQ01EX1BBRF9FTgkJQklUKDUpCisjZGVmaW5lICAgVU1D X0NNRF9DUkNfRldECQlCSVQoNikKKyNkZWZpbmUgICBVTUNfQ01EX1BBVVNFX0ZXRAkJQklUKDcp CisjZGVmaW5lICAgVU1DX0NNRF9SWF9QQVVTRV9JR05PUkUJQklUKDgpCisjZGVmaW5lICAgVU1D X0NNRF9UWF9BRERSX0lOUwkJQklUKDkpCisjZGVmaW5lICAgVU1DX0NNRF9IRF9FTgkJCUJJVCgx MCkKKyNkZWZpbmUgICBVTUNfQ01EX1NXX1JFU0VUCQlCSVQoMTMpCisjZGVmaW5lICAgVU1DX0NN RF9MQ0xfTE9PUF9FTgkJQklUKDE1KQorI2RlZmluZSAgIFVNQ19DTURfQVVUT19DT05GSUcJCUJJ VCgyMikKKyNkZWZpbmUgICBVTUNfQ01EX0NOVExfRlJNX0VOCQlCSVQoMjMpCisjZGVmaW5lICAg VU1DX0NNRF9OT19MRU5fQ0hLCQlCSVQoMjQpCisjZGVmaW5lICAgVU1DX0NNRF9STVRfTE9PUF9F TgkJQklUKDI1KQorI2RlZmluZSAgIFVNQ19DTURfUFJCTF9FTgkJQklUKDI3KQorI2RlZmluZSAg IFVNQ19DTURfVFhfUEFVU0VfSUdOT1JFCUJJVCgyOCkKKyNkZWZpbmUgICBVTUNfQ01EX1RYX1JY X0VOCQlCSVQoMjkpCisjZGVmaW5lICAgVU1DX0NNRF9SVU5UX0ZJTFRFUl9ESVMJQklUKDMwKQor I2RlZmluZSAgVU1DX01BQzAJCQkweDBjCisjZGVmaW5lICBVTUNfTUFDMQkJCTB4MTAKKyNkZWZp bmUgIFVNQ19GUk1fTEVOCQkJMHgxNAorI2RlZmluZSAgVU1DX0VFRV9DVFJMCQkJMHg2NAorI2Rl ZmluZSAgIEVOX0xQSV9SWF9QQVVTRQkJQklUKDApCisjZGVmaW5lICAgRU5fTFBJX1RYX1BGQwkJ CUJJVCgxKQorI2RlZmluZSAgIEVOX0xQSV9UWF9QQVVTRQkJQklUKDIpCisjZGVmaW5lICAgRUVF X0VOCQkJQklUKDMpCisjZGVmaW5lICAgUlhfRklGT19DSEVDSwkJCUJJVCg0KQorI2RlZmluZSAg IEVFRV9UWF9DTEtfRElTCQlCSVQoNSkKKyNkZWZpbmUgICBESVNfRUVFXzEwTQkJCUJJVCg2KQor I2RlZmluZSAgIExQX0lETEVfUFJFRElDVElPTl9NT0RFCUJJVCg3KQorI2RlZmluZSAgVU1DX0VF RV9MUElfVElNRVIJCTB4NjgKKyNkZWZpbmUgIFVNQ19QQVVTRV9DTlRSTAkJMHgzMzAKKyNkZWZp bmUgIFVNQ19UWF9GTFVTSAkJCTB4MzM0CisjZGVmaW5lICBVTUNfTUlCX1NUQVJUCQkJMHg0MDAK KyNkZWZpbmUgIFVNQ19NSUJfQ05UUkwJCQkweDU4MAorI2RlZmluZSAgIFVNQ19NSUJfQ05UUkxf UlhfQ05UX1JTVAlCSVQoMCkKKyNkZWZpbmUgICBVTUNfTUlCX0NOVFJMX1JVTlRfQ05UX1JTVAlC SVQoMSkKKyNkZWZpbmUgICBVTUNfTUlCX0NOVFJMX1RYX0NOVF9SU1QJQklUKDIpCisjZGVmaW5l ICBVTUNfUlhfTUFYX1BLVF9TWgkJMHg2MDgKKyNkZWZpbmUgIFVNQ19NUERfQ1RSTAkJCTB4NjIw CisjZGVmaW5lICAgVU1DX01QRF9DVFJMX01QRF9FTgkJQklUKDApCisjZGVmaW5lICAgVU1DX01Q RF9DVFJMX1BTV19FTgkJQklUKDI3KQorI2RlZmluZSAgVU1DX1BTV19NUwkJCTB4NjI0CisjZGVm aW5lICBVTUNfUFNXX0xTCQkJMHg2MjgKKworI2RlZmluZSBVTUFDMkZCX09GRlNFVF8yXzEJCTB4 OWYwNDQKKyNkZWZpbmUgVU1BQzJGQl9PRkZTRVQJCQkweDlmMDNjCisjZGVmaW5lICBVTUFDMkZC X0NGRwkJCTB4MAorI2RlZmluZSAgIFVNQUMyRkJfQ0ZHX09QVVRfRU4JCUJJVCgwKQorI2RlZmlu ZSAgIFVNQUMyRkJfQ0ZHX1ZMQU5fRU4JCUJJVCgxKQorI2RlZmluZSAgIFVNQUMyRkJfQ0ZHX1NO QVBfRU4JCUJJVCgyKQorI2RlZmluZSAgIFVNQUMyRkJfQ0ZHX0JDTV9UR19FTgkJQklUKDMpCisj ZGVmaW5lICAgVU1BQzJGQl9DRkdfSVBVVF9FTgkJQklUKDQpCisjZGVmaW5lICAgVU1BQzJGQl9D RkdfQ0hJRF9TSElGVAk4CisjZGVmaW5lICAgVU1BQzJGQl9DRkdfT0tfU0VORF9TSElGVAkyNAor I2RlZmluZSAgIFVNQUMyRkJfQ0ZHX0RFRkFVTFRfRU4JXAorCQkoVU1BQzJGQl9DRkdfT1BVVF9F TiB8IFVNQUMyRkJfQ0ZHX1ZMQU5fRU4gXAorCQl8IFVNQUMyRkJfQ0ZHX1NOQVBfRU4gfCBVTUFD MkZCX0NGR19JUFVUX0VOKQorCisjZGVmaW5lIFJHTUlJX09GRlNFVChpbnRmKQlcCisJKCgoKGlu dGYpLT5wb3J0KSAqIDB4MTAwKSArIDB4ZDAwMCkKKyNkZWZpbmUgIFJHTUlJX0VQSFlfQ05UUkwJ CTB4MDAKKyNkZWZpbmUgICAgUkdNSUlfRVBIWV9DRkdfSUREUV9CSUFTCUJJVCgwKQorI2RlZmlu ZSAgICBSR01JSV9FUEhZX0NGR19FWFRfUFdSRE9XTglCSVQoMSkKKyNkZWZpbmUgICAgUkdNSUlf RVBIWV9DRkdfRk9SQ0VfRExMX0VOCUJJVCgyKQorI2RlZmluZSAgICBSR01JSV9FUEhZX0NGR19J RERRX0dMT0JBTAlCSVQoMykKKyNkZWZpbmUgICAgUkdNSUlfRVBIWV9DSzI1X0RJUwkJQklUKDQp CisjZGVmaW5lICAgIFJHTUlJX0VQSFlfUkVTRVQJCUJJVCg3KQorI2RlZmluZSAgUkdNSUlfT09C X0NOVFJMCQkweDBjCisjZGVmaW5lICAgUkdNSUlfTElOSwkJCUJJVCg0KQorI2RlZmluZSAgIFJH TUlJX09PQl9ESVMJCQlCSVQoNSkKKyNkZWZpbmUgICBSR01JSV9NT0RFX0VOCQkJQklUKDYpCisj ZGVmaW5lICAgUkdNSUlfSURfTU9ERV9ESVMJCUJJVCgxNikKKworI2RlZmluZSBSR01JSV9QT1JU X0NOVFJMCQkweDYwCisjZGVmaW5lICAgUkdNSUlfUE9SVF9NT0RFX0VQSFkJCTAKKyNkZWZpbmUg ICBSR01JSV9QT1JUX01PREVfR1BIWQkJMQorI2RlZmluZSAgIFJHTUlJX1BPUlRfTU9ERV9FWFRf RVBIWQkyCisjZGVmaW5lICAgUkdNSUlfUE9SVF9NT0RFX0VYVF9HUEhZCTMKKyNkZWZpbmUgICBS R01JSV9QT1JUX01PREVfRVhUX1JWTUlJCTQKKyNkZWZpbmUgICBSR01JSV9QT1JUX01PREVfTUFT SwkJR0VOTUFTSygyLCAwKQorCisjZGVmaW5lIFJHTUlJX1NZU19MRURfQ05UUkwJCTB4NzQKKyNk ZWZpbmUgIFJHTUlJX1NZU19MRURfQ05UUkxfTElOS19PVlJECUJJVCgxNSkKKworI2RlZmluZSBU WF9TUEJfRE1BX09GRlNFVChpbnRmKSBcCisJKCgoKGludGYpLT5jaGFubmVsKSAqIDB4MzApICsg MHg0ODE4MCkKKyNkZWZpbmUgIFRYX1NQQl9ETUFfUkVBRAkJMHgwMAorI2RlZmluZSAgVFhfU1BC X0RNQV9CQVNFCQkweDA4CisjZGVmaW5lICBUWF9TUEJfRE1BX0VORAkJCTB4MTAKKyNkZWZpbmUg IFRYX1NQQl9ETUFfVkFMSUQJCTB4MTgKKyNkZWZpbmUgIFRYX1NQQl9ETUFfRklGT19DVFJMCQkw eDIwCisjZGVmaW5lICAgVFhfU1BCX0RNQV9GSUZPX0ZMVVNICQlCSVQoMCkKKyNkZWZpbmUgIFRY X1NQQl9ETUFfRklGT19TVEFUVVMJCTB4MjQKKworI2RlZmluZSBUWF9TUEJfQ1RSTF9PRkZTRVQo aW50ZikgXAorCSgoKChpbnRmKS0+Y2hhbm5lbCkgKiAweDY4KSArIDB4NDkzNDApCisjZGVmaW5l ICBUWF9TUEJfQ1RSTF9FTkFCTEUJCTB4MAorI2RlZmluZSAgIFRYX1NQQl9DVFJMX0VOQUJMRV9F TgkJQklUKDApCisjZGVmaW5lICBUWF9TUEJfQ1RSTF9YRl9DVFJMMgkJMHgyMAorI2RlZmluZSAg IFRYX1NQQl9DVFJMX1hGX0JJRF9TSElGVAkxNgorCisjZGVmaW5lIFRYX1NQQl9UT1BfT0ZGU0VU KGludGYpIFwKKwkoKCgoaW50ZiktPmNoYW5uZWwpICogMHgxYykgKyAweDRhMGUwKQorI2RlZmlu ZSBUWF9TUEJfVE9QX0JMS09VVAkJMHgwCisjZGVmaW5lIFRYX1NQQl9UT1BfU1BSRV9CV19DVFJM CQkweDQKKworI2RlZmluZSBUWF9FUEtUX0NfT0ZGU0VUKGludGYpIFwKKwkoKCgoaW50ZiktPmNo YW5uZWwpICogMHgxMjApICsgMHg0MDkwMCkKKyNkZWZpbmUgIFRYX0VQS1RfQ19DRkdfTUlTQwkJ MHgwCisjZGVmaW5lICAgVFhfRVBLVF9DX0NGR19NSVNDX0VOCQlCSVQoMCkKKyNkZWZpbmUgICBU WF9FUEtUX0NfQ0ZHX01JU0NfUFQJCUJJVCgxKQorI2RlZmluZSAgIFRYX0VQS1RfQ19DRkdfTUlT Q19QU19TSElGVAkxNAorI2RlZmluZSAgIFRYX0VQS1RfQ19DRkdfTUlTQ19GRF9TSElGVAkyMAor CisjZGVmaW5lIFRYX1BBVVNFX0NUUkxfT0ZGU0VUKGludGYpIFwKKwkoKCgoaW50ZiktPmNoYW5u ZWwgKiAweGMpICsgMHg0OWEyMCkpCisjZGVmaW5lICBUWF9QQVVTRV9NQVBfVkVDVE9SCQkweDgK KworI2RlZmluZSBSWF9FRFBLVF9ETUFfT0ZGU0VUKGludGYpIFwKKwkoKCgoaW50ZiktPmNoYW5u ZWwpICogMHgzOCkgKyAweDljYTAwKQorI2RlZmluZSAgUlhfRURQS1RfRE1BX1dSSVRFCQkweDAw CisjZGVmaW5lICBSWF9FRFBLVF9ETUFfUkVBRAkJMHgwOAorI2RlZmluZSAgUlhfRURQS1RfRE1B X0JBU0UJCTB4MTAKKyNkZWZpbmUgIFJYX0VEUEtUX0RNQV9FTkQJCTB4MTgKKyNkZWZpbmUgIFJY X0VEUEtUX0RNQV9WQUxJRAkJMHgyMAorI2RlZmluZSAgUlhfRURQS1RfRE1BX0ZVTExORVNTCQkw eDI4CisjZGVmaW5lICBSWF9FRFBLVF9ETUFfTUlOX1RIUkVTCQkweDJjCisjZGVmaW5lICBSWF9F RFBLVF9ETUFfQ0hfWE9OT0ZGCQkweDMwCisKKyNkZWZpbmUgUlhfRURQS1RfQ0ZHX09GRlNFVChp bnRmKSBcCisJKCgoKGludGYpLT5jaGFubmVsKSAqIDB4NzApICsgMHg5YzYwMCkKKyNkZWZpbmUg IFJYX0VEUEtUX0NGR19DRkcwCQkweDAKKyNkZWZpbmUgICBSWF9FRFBLVF9DRkdfQ0ZHMF9EQlVG X1NISUZUCTkKKyNkZWZpbmUgICAgUlhfRURQS1RfQ0ZHX0NGRzBfUkJVRgkweDAKKyNkZWZpbmUg ICAgUlhfRURQS1RfQ0ZHX0NGRzBfUkJVRl80SwkweDEKKyNkZWZpbmUgICAgUlhfRURQS1RfQ0ZH X0NGRzBfQlVGXzRLCTB4MgorLyogRUZSTSBTVFVGRiwgMCA9M0Qgbm8gYnl0ZSBzdHVmZiwgMSA9 M0QgdHdvIGJ5dGUgc3R1ZmYgKi8KKyNkZWZpbmUgICBSWF9FRFBLVF9DRkdfQ0ZHMF9FRlJNX1NU VUYJQklUKDExKQorI2RlZmluZSAgIFJYX0VEUEtUX0NGR19DRkcwX0JBTE5fU0hJRlQJMTIKKyNk ZWZpbmUgICAgUlhfRURQS1RfQ0ZHX0NGRzBfTk9fQUxOCTAKKyNkZWZpbmUgICAgUlhfRURQS1Rf Q0ZHX0NGRzBfNF9BTE4JMgorI2RlZmluZSAgICBSWF9FRFBLVF9DRkdfQ0ZHMF82NF9BTE4JNgor I2RlZmluZSAgUlhfRURQS1RfUklOR19CVUZGRVJfV1JJVEUJMHgzOAorI2RlZmluZSAgUlhfRURQ S1RfUklOR19CVUZGRVJfUkVBRAkweDQwCisjZGVmaW5lICBSWF9FRFBLVF9SSU5HX0JVRkZFUl9C QVNFCTB4NDgKKyNkZWZpbmUgIFJYX0VEUEtUX1JJTkdfQlVGRkVSX0VORAkweDUwCisjZGVmaW5l ICBSWF9FRFBLVF9SSU5HX0JVRkZFUl9WQUxJRAkweDU4CisjZGVmaW5lICBSWF9FRFBLVF9DRkdf RU5BQkxFCQkweDZjCisjZGVmaW5lICAgUlhfRURQS1RfQ0ZHX0VOQUJMRV9FTglCSVQoMCkKKwor I2RlZmluZSBSWF9TUEJfRE1BX09GRlNFVChpbnRmKSBcCisJKCgoKGludGYpLT5jaGFubmVsKSAq IDB4MzApICsgMHhhMDAwMCkKKyNkZWZpbmUgIFJYX1NQQl9ETUFfUkVBRAkJMHgwMAorI2RlZmlu ZSAgUlhfU1BCX0RNQV9CQVNFCQkweDA4CisjZGVmaW5lICBSWF9TUEJfRE1BX0VORAkJCTB4MTAK KyNkZWZpbmUgIFJYX1NQQl9ETUFfVkFMSUQJCTB4MTgKKyNkZWZpbmUgIFJYX1NQQl9ETUFfRklG T19DVFJMCQkweDIwCisjZGVmaW5lICAgUlhfU1BCX0RNQV9GSUZPX0ZMVVNICQlCSVQoMCkKKyNk ZWZpbmUgIFJYX1NQQl9ETUFfRklGT19TVEFUVVMJCTB4MjQKKworI2RlZmluZSBSWF9TUEJfQ1RS TF9PRkZTRVQoaW50ZikgXAorCSgoKChpbnRmKS0+Y2hhbm5lbCAtIDYpICogMHg2OCkgKyAweGEx MDAwKQorI2RlZmluZSAgUlhfU1BCX0NUUkxfRU5BQkxFCQkweDAwCisjZGVmaW5lICAgUlhfU1BC X0NUUkxfRU5BQkxFX0VOCQlCSVQoMCkKKworI2RlZmluZSBSWF9QQVVTRV9DVFJMX09GRlNFVChp bnRmKSBcCisJKCgoKGludGYpLT5jaGFubmVsIC0gNikgKiAweDQpICsgMHhhMTEzOCkKKyNkZWZp bmUgIFJYX1BBVVNFX01BUF9WRUNUT1IJCTB4MDAKKworI2RlZmluZSBSWF9TUEJfVE9QX0NUUkxf T0ZGU0VUKGludGYpIFwKKwkoKCgoaW50ZiktPmNoYW5uZWwgLSA2KSAqIDB4MTQpICsgMHhhMjAw MCkKKyNkZWZpbmUgIFJYX1NQQl9UT1BfQkxLT1VUCQkweDAwCisKKyNkZWZpbmUgTlVNXzRLX0JV RkZFUlMJCQkzMgorI2RlZmluZSBSSU5HX0JVRkZFUl9TSVpFCQkoUEFHRV9TSVpFICogTlVNXzRL X0JVRkZFUlMpCisKKyNkZWZpbmUgREVTQ19SSU5HX0NPVU5UCQkJKDY0ICogTlVNXzRLX0JVRkZF UlMpCisjZGVmaW5lIERFU0NfU0laRQkJCTE2CisjZGVmaW5lIERFU0NfUklOR19TSVpFCQkJKERF U0NfUklOR19DT1VOVCAqIERFU0NfU0laRSkKKworI2VuZGlmCi0tPTIwCjIuNy40Cg== --0000000000002c488705fe1e8038 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEINCWMliSfyA1oDMD5uEbDAR7l0ggirtJSvN3 FWh1CC9SMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNDIy MzAzNlowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQC6QjCrHBza+ZPjKK9UsiGZ1XHJw0xd3T3MVl+qmoRdIx/mpSAjUWnm KWtPWDraIjtJxrBIXv34FVOwFkildnWhtuunN9F9NCSYcH0LdQpyc4WHSTkM64wU93JW/bIsarU2 FJ/JlwkI11jMDMDtesdCKyDabv6qP+/q1OJIk3eRMT0fVSJVg2h9ypwsejDwlbtfKuhaJF3Dm8GH B9/ZTnm0xql6Ev8raSc06R3dm/3hqreDKhaWsXTZo+LullOk8LSKyJiHYk3KMIC5uPbFpa+ckq62 g+FTAfCSN9GybAv4541BgA7QZc9Ue1Blt51w9Z4M/OO4p775O0FPmvoFkjLR --0000000000002c488705fe1e8038-- From nobody Sat Feb 7 11:05:16 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 86689C001B0 for ; Wed, 14 Jun 2023 22:30:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236990AbjFNWaz (ORCPT ); Wed, 14 Jun 2023 18:30:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32948 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236673AbjFNWar (ORCPT ); Wed, 14 Jun 2023 18:30:47 -0400 Received: from mail-qt1-x82d.google.com (mail-qt1-x82d.google.com [IPv6:2607:f8b0:4864:20::82d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6D67C26B5 for ; Wed, 14 Jun 2023 15:30:39 -0700 (PDT) Received: by mail-qt1-x82d.google.com with SMTP id d75a77b69052e-3f9de2605b2so1002941cf.1 for ; Wed, 14 Jun 2023 15:30:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686781838; x=1689373838; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=YelVQtn6X9Ycq1Mlau/Bc0alEuimdDbkJF/ycM+nmkw=; b=HZufVfy9ebvO1Bzzjz3TF0hZ1j7PkC2rCwR10AvvkuwQG6YoITxCbJCTMusRzXccib xjkkOdDBu9HxlRnjHnQiheYu1O0tl7lD/OY3IgNzB1b5ApN9KYnTZSMBOHEeCX4erMaB 7bOUnHLb1jXz22+2EGeh9yJI3XABetMmu0cCA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686781838; x=1689373838; h=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=YelVQtn6X9Ycq1Mlau/Bc0alEuimdDbkJF/ycM+nmkw=; b=C8rXIaKsbQKzIN4hRhu33nl7tLUK8SGKD2RtGSmNchMcomJFoqMDI8g5AbdseyMpDF xi6CJx1xcLIE+mW/YZRD1paLJ8A50c87NFsAYdDIWh9rnYqNxdOAcg+ciBa7Gf3YIXgn mWbx5leiX+dEQ/s7yhUxssOJAJ5cieHGE5ME7IvDg9dfur58EVcaMHiJdYzP5ZC/Zh9y hR6hoPpqqCUpZKAVH4NE8YQ4izIPgco7ceHjCdZsNztT/sWiH9hTpxOaYehzKHVvD8H8 P7fUqrY+47ukjA0E2v4OMJe3aufaIfQDojSdyDli7TxYGw6oxFHlPcc9Y95bLvUEwpvl G9dg== X-Gm-Message-State: AC+VfDyKHM3JBhWrnVxhXHLGHurHjArevoVtjv4ybqNXiLO9qqjYQyJN vZGWpBNy3fCscyrp4Euxeoub8Q== X-Google-Smtp-Source: ACHHUZ4shW84sK/NjglsIHbdA4txgU/WmnunxiRLyCo5e/kAKwZlvxBnMvDJadpm9fKitfFA/CnzzQ== X-Received: by 2002:ac8:7d4d:0:b0:3f8:25c:c434 with SMTP id h13-20020ac87d4d000000b003f8025cc434mr3460689qtb.19.1686781838434; Wed, 14 Jun 2023 15:30:38 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d3-20020ac85443000000b003ef2db16e72sm5419360qtq.94.2023.06.14.15.30.35 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Jun 2023 15:30:37 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, christian.koenig@amd.com, simon.horman@corigine.com, Justin Chen Subject: [PATCH net-next v7 04/11] net: bcmasp: Add support for WoL magic packet Date: Wed, 14 Jun 2023 15:30:13 -0700 Message-Id: <1686781820-832-5-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> References: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000005041a905fe1e803c" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --0000000000005041a905fe1e803c MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIFdha2UtT24tTGFuIG1hZ2ljIHBhY2tldCBhbmQgbWFnaWMgcGFja2V0 IHdpdGggcGFzc3dvcmQuCgpTaWduZWQtb2ZmLWJ5OiBKdXN0aW4gQ2hlbiA8anVzdGluLmNoZW5A YnJvYWRjb20uY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNt YXNwLmMgICAgICAgIHwgMTQ4ICsrKysrKysrKysrKysrKysrPQorKysrCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5oICAgICAgICB8ICAxOCArKysKIC4uLi9uZXQv ZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfZXRodG9vbC5jICAgIHwgIDM2ICsrKysrCiBk cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmLmMgICB8ICA3NyAr KysrKysrKystLQogNCBmaWxlcyBjaGFuZ2VkLCAyNjYgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9i Y21hc3AuYyBiL2RyaXZlcnMvbmV0L2V0aGU9CnJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3AuYwpp bmRleCA1ZGJkOWZjZGQyM2YuLjllMzk3Nzg1NmI3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3AuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9icm9hZGNvbS9hc3AyL2JjbWFzcC5jCkBAIC00NDEsNiArNDQxLDEzOSBAQCBzdGF0aWMgaW50 IGJjbWFzcF9pc19wb3J0X3ZhbGlkKHN0cnVjdCBiY21hc3BfcHJpdiAqcD0Kcml2LCBpbnQgcG9y dCkKIAlyZXR1cm4gcG9ydCA9M0Q9M0QgMCB8fCBwb3J0ID0zRD0zRCAxOwogfQo9MjAKK3N0YXRp YyBpcnFyZXR1cm5fdCBiY21hc3BfaXNyX3dvbChpbnQgaXJxLCB2b2lkICpkYXRhKQoreworCXN0 cnVjdCBiY21hc3BfcHJpdiAqcHJpdiA9M0QgZGF0YTsKKwl1MzIgc3RhdHVzOworCisJLyogTm8g TDMgSVJRLCBzbyB3ZSBnb29kICovCisJaWYgKHByaXYtPndvbF9pcnEgPD0zRCAwKQorCQlnb3Rv IGlycV9oYW5kbGVkOworCisJc3RhdHVzID0zRCB3YWtldXBfaW50cjJfY29yZV9ybChwcml2LCBB U1BfV0FLRVVQX0lOVFIyX1NUQVRVUykgJgorCQl+d2FrZXVwX2ludHIyX2NvcmVfcmwocHJpdiwg QVNQX1dBS0VVUF9JTlRSMl9NQVNLX1NUQVRVUyk7CisJd2FrZXVwX2ludHIyX2NvcmVfd2wocHJp diwgc3RhdHVzLCBBU1BfV0FLRVVQX0lOVFIyX0NMRUFSKTsKKworaXJxX2hhbmRsZWQ6CisJcG1f d2FrZXVwX2V2ZW50KCZwcml2LT5wZGV2LT5kZXYsIDApOworCXJldHVybiBJUlFfSEFORExFRDsK K30KKworc3RhdGljIGludCBiY21hc3BfZ2V0X2FuZF9yZXF1ZXN0X2lycShzdHJ1Y3QgYmNtYXNw X3ByaXYgKnByaXYsIGludCBpKQoreworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYgPTNE IHByaXYtPnBkZXY7CisJaW50IGlycSwgcmV0OworCisJaXJxID0zRCBwbGF0Zm9ybV9nZXRfaXJx X29wdGlvbmFsKHBkZXYsIGkpOworCWlmIChpcnEgPCAwKQorCQlyZXR1cm4gaXJxOworCisJcmV0 ID0zRCBkZXZtX3JlcXVlc3RfaXJxKCZwZGV2LT5kZXYsIGlycSwgYmNtYXNwX2lzcl93b2wsIDAs CisJCQkgICAgICAgcGRldi0+bmFtZSwgcHJpdik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsK KworCXJldHVybiBpcnE7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9pbml0X3dvbF9zaGFyZWQo c3RydWN0IGJjbWFzcF9wcml2ICpwcml2KQoreworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYgPTNEIHByaXYtPnBkZXY7CisJc3RydWN0IGRldmljZSAqZGV2ID0zRCAmcGRldi0+ZGV2Owor CWludCBpcnE7CisKKwlpcnEgPTNEIGJjbWFzcF9nZXRfYW5kX3JlcXVlc3RfaXJxKHByaXYsIDEp OworCWlmIChpcnEgPCAwKSB7CisJCWRldl93YXJuKGRldiwgIkZhaWxlZCB0byBpbml0IFdvTCBp cnE6ICVkXG4iLCBpcnEpOworCQlyZXR1cm47CisJfQorCisJcHJpdi0+d29sX2lycSA9M0QgaXJx OworCXByaXYtPndvbF9pcnFfZW5hYmxlZF9tYXNrID0zRCAwOworCWRldmljZV9zZXRfd2FrZXVw X2NhcGFibGUoJnBkZXYtPmRldiwgMSk7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9lbmFibGVf d29sX3NoYXJlZChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGJvb2wgZW4pCit7CisJc3RydWN0 IGJjbWFzcF9wcml2ICpwcml2ID0zRCBpbnRmLT5wYXJlbnQ7CisJc3RydWN0IGRldmljZSAqZGV2 ID0zRCAmcHJpdi0+cGRldi0+ZGV2OworCisJaWYgKGVuKSB7CisJCWlmIChwcml2LT53b2xfaXJx X2VuYWJsZWRfbWFzaykgeworCQkJc2V0X2JpdChpbnRmLT5wb3J0LCAmcHJpdi0+d29sX2lycV9l bmFibGVkX21hc2spOworCQkJcmV0dXJuOworCQl9CisKKwkJLyogRmlyc3QgZW5hYmxlICovCisJ CXNldF9iaXQoaW50Zi0+cG9ydCwgJnByaXYtPndvbF9pcnFfZW5hYmxlZF9tYXNrKTsKKwkJZW5h YmxlX2lycV93YWtlKHByaXYtPndvbF9pcnEpOworCQlkZXZpY2Vfc2V0X3dha2V1cF9lbmFibGUo ZGV2LCAxKTsKKwl9IGVsc2UgeworCQlpZiAoIXByaXYtPndvbF9pcnFfZW5hYmxlZF9tYXNrKQor CQkJcmV0dXJuOworCisJCWNsZWFyX2JpdChpbnRmLT5wb3J0LCAmcHJpdi0+d29sX2lycV9lbmFi bGVkX21hc2spOworCQlpZiAocHJpdi0+d29sX2lycV9lbmFibGVkX21hc2spCisJCQlyZXR1cm47 CisKKwkJLyogTGFzdCBkaXNhYmxlICovCisJCWRpc2FibGVfaXJxX3dha2UocHJpdi0+d29sX2ly cSk7CisJCWRldmljZV9zZXRfd2FrZXVwX2VuYWJsZShkZXYsIDApOworCX0KK30KKworc3RhdGlj IHZvaWQgYmNtYXNwX3dvbF9pcnFfZGVzdHJveV9zaGFyZWQoc3RydWN0IGJjbWFzcF9wcml2ICpw cml2KQoreworCWlmIChwcml2LT53b2xfaXJxID4gMCkKKwkJZnJlZV9pcnEocHJpdi0+d29sX2ly cSwgcHJpdik7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9pbml0X3dvbF9wZXJfaW50ZihzdHJ1 Y3QgYmNtYXNwX3ByaXYgKnByaXYpCit7CisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9 M0QgcHJpdi0+cGRldjsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPTNEICZwZGV2LT5kZXY7CisJc3Ry dWN0IGJjbWFzcF9pbnRmICppbnRmOworCWludCBpcnEsIGk7CisKKwlmb3IgKGkgPTNEIDA7IGkg PCBwcml2LT5pbnRmX2NvdW50OyBpKyspIHsKKwkJaW50ZiA9M0QgcHJpdi0+aW50ZnNbaV07CisJ CWlycSA9M0QgYmNtYXNwX2dldF9hbmRfcmVxdWVzdF9pcnEocHJpdiwgaW50Zi0+cG9ydCArIDEp OworCQlpZiAoaXJxIDwgMCkgeworCQkJZGV2X3dhcm4oZGV2LCAiRmFpbGVkIHRvIGluaXQgV29M IGlycShwb3J0ICVkKTogJWRcbiIsCisJCQkJIGludGYtPnBvcnQsIGlycSk7CisJCQljb250aW51 ZTsKKwkJfQorCisJCWludGYtPndvbF9pcnEgPTNEIGlycTsKKwkJaW50Zi0+d29sX2lycV9lbmFi bGVkID0zRCBmYWxzZTsKKwkJZGV2aWNlX3NldF93YWtldXBfY2FwYWJsZSgmcGRldi0+ZGV2LCAx KTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9lbmFibGVfd29sX3Blcl9pbnRmKHN0cnVj dCBiY21hc3BfaW50ZiAqaW50ZiwgYm9vbCBlbikKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPTNE ICZpbnRmLT5wYXJlbnQtPnBkZXYtPmRldjsKKworCWlmIChlbiBeIGludGYtPndvbF9pcnFfZW5h YmxlZCkKKwkJaXJxX3NldF9pcnFfd2FrZShpbnRmLT53b2xfaXJxLCBlbik7CisKKwlpbnRmLT53 b2xfaXJxX2VuYWJsZWQgPTNEIGVuOworCWRldmljZV9zZXRfd2FrZXVwX2VuYWJsZShkZXYsIGVu KTsKK30KKworc3RhdGljIHZvaWQgYmNtYXNwX3dvbF9pcnFfZGVzdHJveV9wZXJfaW50ZihzdHJ1 Y3QgYmNtYXNwX3ByaXYgKnByaXYpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmOworCWlu dCBpOworCisJZm9yIChpID0zRCAwOyBpIDwgcHJpdi0+aW50Zl9jb3VudDsgaSsrKSB7CisJCWlu dGYgPTNEIHByaXYtPmludGZzW2ldOworCisJCWlmIChpbnRmLT53b2xfaXJxID4gMCkKKwkJCWZy ZWVfaXJxKGludGYtPndvbF9pcnEsIHByaXYpOworCX0KK30KKwogc3RhdGljIHN0cnVjdCBiY21h c3BfaHdfaW5mbyB2MjBfaHdfaW5mbyA9M0QgewogCS5yeF9jdHJsX2ZsdXNoID0zRCBBU1BfUlhf Q1RSTF9GTFVTSCwKIAkudW1hYzJmYiA9M0QgVU1BQzJGQl9PRkZTRVQsCkBAIC00NTAsNiArNTgz LDkgQEAgc3RhdGljIHN0cnVjdCBiY21hc3BfaHdfaW5mbyB2MjBfaHdfaW5mbyA9M0QgewogfTsK PTIwCiBzdGF0aWMgY29uc3Qgc3RydWN0IGJjbWFzcF9wbGF0X2RhdGEgdjIwX3BsYXRfZGF0YSA9 M0QgeworCS5pbml0X3dvbCA9M0QgYmNtYXNwX2luaXRfd29sX3Blcl9pbnRmLAorCS5lbmFibGVf d29sID0zRCBiY21hc3BfZW5hYmxlX3dvbF9wZXJfaW50ZiwKKwkuZGVzdHJveV93b2wgPTNEIGJj bWFzcF93b2xfaXJxX2Rlc3Ryb3lfcGVyX2ludGYsCiAJLmh3X2luZm8gPTNEICZ2MjBfaHdfaW5m bywKIH07Cj0yMApAQCAtNDYzLDYgKzU5OSw5IEBAIHN0YXRpYyBzdHJ1Y3QgYmNtYXNwX2h3X2lu Zm8gdjIxX2h3X2luZm8gPTNEIHsKIH07Cj0yMAogc3RhdGljIGNvbnN0IHN0cnVjdCBiY21hc3Bf cGxhdF9kYXRhIHYyMV9wbGF0X2RhdGEgPTNEIHsKKwkuaW5pdF93b2wgPTNEIGJjbWFzcF9pbml0 X3dvbF9zaGFyZWQsCisJLmVuYWJsZV93b2wgPTNEIGJjbWFzcF9lbmFibGVfd29sX3NoYXJlZCwK KwkuZGVzdHJveV93b2wgPTNEIGJjbWFzcF93b2xfaXJxX2Rlc3Ryb3lfc2hhcmVkLAogCS5od19p bmZvID0zRCAmdjIxX2h3X2luZm8sCiB9Owo9MjAKQEAgLTUxNSwxMSArNjU0LDE1IEBAIHN0YXRp YyBpbnQgYmNtYXNwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcHJpdi0+ cGRldiA9M0QgcGRldjsKIAlzcGluX2xvY2tfaW5pdCgmcHJpdi0+bWRhX2xvY2spOwogCXNwaW5f bG9ja19pbml0KCZwcml2LT5jbGtfbG9jayk7CisJbXV0ZXhfaW5pdCgmcHJpdi0+d29sX2xvY2sp Owo9MjAKIAlwZGF0YSA9M0QgZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYpOwogCWlm ICghcGRhdGEpCiAJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgLUVJTlZBTCwgInVuYWJsZSB0 byBmaW5kIHBsYXRmb3JtIGRhdGFcbiIpOwo9MjAKKwlwcml2LT5pbml0X3dvbCA9M0QgcGRhdGEt PmluaXRfd29sOworCXByaXYtPmVuYWJsZV93b2wgPTNEIHBkYXRhLT5lbmFibGVfd29sOworCXBy aXYtPmRlc3Ryb3lfd29sID0zRCBwZGF0YS0+ZGVzdHJveV93b2w7CiAJcHJpdi0+aHdfaW5mbyA9 M0QgcGRhdGEtPmh3X2luZm87Cj0yMAogCS8qIEVuYWJsZSBhbGwgY2xvY2tzIHRvIGVuc3VyZSBz dWNjZXNzZnVsIHByb2JpbmcgKi8KQEAgLTU3OSw2ICs3MjIsOSBAQCBzdGF0aWMgaW50IGJjbWFz cF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlpKys7CiAJfQo9MjAKKwkv KiBDaGVjayBhbmQgZW5hYmxlIFdvTCAqLworCXByaXYtPmluaXRfd29sKHByaXYpOworCiAJLyog RHJvcCB0aGUgY2xvY2sgcmVmZXJlbmNlIGNvdW50IG5vdyBhbmQgbGV0IG5kb19vcGVuKCkvbmRv X2Nsb3NlKCkKIAkgKiBtYW5hZ2UgaXQgZm9yIHVzIGZyb20gbm93IG9uLgogCSAqLwpAQCAtNjE3 LDYgKzc2Myw4IEBAIHN0YXRpYyBpbnQgYmNtYXNwX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQogCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZjsKIAlpbnQgaTsKPTIwCisJcHJp di0+ZGVzdHJveV93b2wocHJpdik7CisKIAlmb3IgKGkgPTNEIDA7IGkgPCBwcml2LT5pbnRmX2Nv dW50OyBpKyspIHsKIAkJaW50ZiA9M0QgcHJpdi0+aW50ZnNbaV07CiAJCWlmICghaW50ZikKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmggYi9k cml2ZXJzL25ldC9ldGhlPQpybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmgKaW5kZXggMjZiY2Yw OWE2M2RmLi43MDM0NDE4MTAxYTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jy b2FkY29tL2FzcDIvYmNtYXNwLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20v YXNwMi9iY21hc3AuaApAQCAtMjk5LDYgKzI5OSwxMiBAQCBzdHJ1Y3QgYmNtYXNwX2ludGYgewo9 MjAKIAkvKiBTdGF0aXN0aWNzICovCiAJc3RydWN0IGJjbWFzcF9pbnRmX3N0YXRzNjQJc3RhdHM2 NDsKKworCXUzMgkJCXdvbG9wdHM7CisJdTgJCQlzb3Bhc3NbU09QQVNTX01BWF07CisJLyogVXNl ZCBpZiBwZXIgaW50ZiB3b2wgaXJxICovCisJaW50CQkJd29sX2lycTsKKwl1bnNpZ25lZCBpbnQJ CXdvbF9pcnFfZW5hYmxlZDoxOwogfTsKPTIwCiAjZGVmaW5lIE5VTV9NREFfRklMVEVSUwkJCQkz MgpAQCAtMzIxLDYgKzMyNyw5IEBAIHN0cnVjdCBiY21hc3BfaHdfaW5mbyB7CiB9Owo9MjAKIHN0 cnVjdCBiY21hc3BfcGxhdF9kYXRhIHsKKwl2b2lkICgqaW5pdF93b2wpKHN0cnVjdCBiY21hc3Bf cHJpdiAqcHJpdik7CisJdm9pZCAoKmVuYWJsZV93b2wpKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50 ZiwgYm9vbCBlbik7CisJdm9pZCAoKmRlc3Ryb3lfd29sKShzdHJ1Y3QgYmNtYXNwX3ByaXYgKnBy aXYpOwogCXN0cnVjdCBiY21hc3BfaHdfaW5mbwkJKmh3X2luZm87CiB9Owo9MjAKQEAgLTMzMSw2 ICszNDAsMTUgQEAgc3RydWN0IGJjbWFzcF9wcml2IHsKIAlpbnQJCQkJaXJxOwogCXUzMgkJCQlp cnFfbWFzazsKPTIwCisJLyogVXNlZCBpZiBzaGFyZWQgd29sIGlycSAqLworCXN0cnVjdCBtdXRl eAkJCXdvbF9sb2NrOworCWludAkJCQl3b2xfaXJxOworCXVuc2lnbmVkIGxvbmcJCQl3b2xfaXJx X2VuYWJsZWRfbWFzazsKKworCXZvaWQgKCppbml0X3dvbCkoc3RydWN0IGJjbWFzcF9wcml2ICpw cml2KTsKKwl2b2lkICgqZW5hYmxlX3dvbCkoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBib29s IGVuKTsKKwl2b2lkICgqZGVzdHJveV93b2wpKHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdik7CisK IAl2b2lkIF9faW9tZW0JCQkqYmFzZTsKIAlzdHJ1Y3QJYmNtYXNwX2h3X2luZm8JCSpod19pbmZv Owo9MjAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNt YXNwX2V0aHRvb2wuYyBiL2RyaXZlcnMvPQpuZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21h c3BfZXRodG9vbC5jCmluZGV4IDM5NGMwZTFjYjAyNi4uYWUyNGExZjc0ZDQ5IDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29sLmMKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfZXRodG9vbC5jCkBA IC0zMCw2ICszMCw0MCBAQCBzdGF0aWMgdm9pZCBiY21hc3Bfc2V0X21zZ2xldmVsKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsID0KdTMyIGxldmVsKQogCWludGYtPm1zZ19lbmFibGUgPTNEIGxldmVs OwogfQo9MjAKKyNkZWZpbmUgQkNNQVNQX1NVUFBPUlRFRF9XQUtFICAgKFdBS0VfTUFHSUMgfCBX QUtFX01BR0lDU0VDVVJFKQorc3RhdGljIHZvaWQgYmNtYXNwX2dldF93b2woc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwgc3RydWN0IGV0aHRvb2xfd29saW5mbyA9Cip3b2wpCit7CisJc3RydWN0IGJj bWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOworCisJd29sLT5zdXBwb3J0ZWQg PTNEIEJDTUFTUF9TVVBQT1JURURfV0FLRTsKKwl3b2wtPndvbG9wdHMgPTNEIGludGYtPndvbG9w dHM7CisJbWVtc2V0KHdvbC0+c29wYXNzLCAwLCBzaXplb2Yod29sLT5zb3Bhc3MpKTsKKworCWlm ICh3b2wtPndvbG9wdHMgJiBXQUtFX01BR0lDU0VDVVJFKQorCQltZW1jcHkod29sLT5zb3Bhc3Ms IGludGYtPnNvcGFzcywgc2l6ZW9mKGludGYtPnNvcGFzcykpOworfQorCitzdGF0aWMgaW50IGJj bWFzcF9zZXRfd29sKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBldGh0b29sX3dvbGlu Zm8gKj0Kd29sKQoreworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0QgbmV0ZGV2X3ByaXYo ZGV2KTsKKwlzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYgPTNEIGludGYtPnBhcmVudDsKKwlzdHJ1 Y3QgZGV2aWNlICprZGV2ID0zRCAmcHJpdi0+cGRldi0+ZGV2OworCisJaWYgKCFkZXZpY2VfY2Fu X3dha2V1cChrZGV2KSkKKwkJcmV0dXJuIC1FT1BOT1RTVVBQOworCisJLyogSW50ZXJmYWNlIFNw ZWNpZmljICovCisJaW50Zi0+d29sb3B0cyA9M0Qgd29sLT53b2xvcHRzOworCWlmIChpbnRmLT53 b2xvcHRzICYgV0FLRV9NQUdJQ1NFQ1VSRSkKKwkJbWVtY3B5KGludGYtPnNvcGFzcywgd29sLT5z b3Bhc3MsIHNpemVvZih3b2wtPnNvcGFzcykpOworCisJbXV0ZXhfbG9jaygmcHJpdi0+d29sX2xv Y2spOworCXByaXYtPmVuYWJsZV93b2woaW50ZiwgISFpbnRmLT53b2xvcHRzKTsKKwltdXRleF91 bmxvY2soJnByaXYtPndvbF9sb2NrKTsKKworCXJldHVybiAwOworfQorCiBjb25zdCBzdHJ1Y3Qg ZXRodG9vbF9vcHMgYmNtYXNwX2V0aHRvb2xfb3BzID0zRCB7CiAJLmdldF9kcnZpbmZvCQk9M0Qg YmNtYXNwX2dldF9kcnZpbmZvLAogCS5nZXRfbGluawkJPTNEIGV0aHRvb2xfb3BfZ2V0X2xpbmss CkBAIC0zNyw0ICs3MSw2IEBAIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBiY21hc3BfZXRodG9v bF9vcHMgPTNEIHsKIAkuc2V0X2xpbmtfa3NldHRpbmdzCT0zRCBwaHlfZXRodG9vbF9zZXRfbGlu a19rc2V0dGluZ3MsCiAJLmdldF9tc2dsZXZlbAkJPTNEIGJjbWFzcF9nZXRfbXNnbGV2ZWwsCiAJ LnNldF9tc2dsZXZlbAkJPTNEIGJjbWFzcF9zZXRfbXNnbGV2ZWwsCisJLmdldF93b2wJCT0zRCBi Y21hc3BfZ2V0X3dvbCwKKwkuc2V0X3dvbAkJPTNEIGJjbWFzcF9zZXRfd29sLAogfTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2ludGYuYyBi L2RyaXZlcnMvbmV0PQovZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zi5jCmluZGV4 IDlkNTk5MDY2Mzc2OC4uMzViOWQ2MzkwZGIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zi5jCkBAIC0xMDQ0LDcgKzEwNDQsNyBAQCBzdGF0 aWMgaW50IGJjbWFzcF9uZXRpZl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsID0KYm9vbCBw aHlfY29ubmVjdCkKIAkJCW5ldGRldl9lcnIoZGV2LCAiY291bGQgbm90IGF0dGFjaCB0byBQSFlc biIpOwogCQkJZ290byBlcnJfcGh5X2Rpc2FibGU7CiAJCX0KLQl9IGVsc2UgeworCX0gZWxzZSBp ZiAoIWludGYtPndvbG9wdHMpIHsKIAkJcmV0ID0zRCBwaHlfcmVzdW1lKGRldi0+cGh5ZGV2KTsK IAkJaWYgKHJldCkKIAkJCWdvdG8gZXJyX3BoeV9kaXNhYmxlOwpAQCAtMTMwMSw4ICsxMzAxLDM5 IEBAIHZvaWQgYmNtYXNwX2ludGVyZmFjZV9kZXN0cm95KHN0cnVjdCBiY21hc3BfaW50ZiAqaW49 CnRmLCBib29sIHVucmVnaXN0ZXIpCiAJZnJlZV9uZXRkZXYoaW50Zi0+bmRldik7CiB9Cj0yMAor c3RhdGljIHZvaWQgYmNtYXNwX3N1c3BlbmRfdG9fd29sKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50 ZikKK3sKKwlzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiA9M0QgaW50Zi0+bmRldjsKKwl1MzIgcmVn OworCisJcmVnID0zRCB1bWFjX3JsKGludGYsIFVNQ19NUERfQ1RSTCk7CisJaWYgKGludGYtPndv bG9wdHMgJiAoV0FLRV9NQUdJQyB8IFdBS0VfTUFHSUNTRUNVUkUpKQorCQlyZWcgfD0zRCBVTUNf TVBEX0NUUkxfTVBEX0VOOworCXJlZyAmPTNEIH5VTUNfTVBEX0NUUkxfUFNXX0VOOworCWlmIChp bnRmLT53b2xvcHRzICYgV0FLRV9NQUdJQ1NFQ1VSRSkgeworCQkvKiBQcm9ncmFtIHRoZSBTZWN1 cmVPbiBwYXNzd29yZCAqLworCQl1bWFjX3dsKGludGYsIGdldF91bmFsaWduZWRfYmUxNigmaW50 Zi0+c29wYXNzWzBdKSwKKwkJCVVNQ19QU1dfTVMpOworCQl1bWFjX3dsKGludGYsIGdldF91bmFs aWduZWRfYmUzMigmaW50Zi0+c29wYXNzWzJdKSwKKwkJCVVNQ19QU1dfTFMpOworCQlyZWcgfD0z RCBVTUNfTVBEX0NUUkxfUFNXX0VOOworCX0KKwl1bWFjX3dsKGludGYsIHJlZywgVU1DX01QRF9D VFJMKTsKKworCS8qIFVuaU1BQyByZWNlaXZlIG5lZWRzIHRvIGJlIHR1cm5lZCBvbiAqLworCXVt YWNfZW5hYmxlX3NldChpbnRmLCBVTUNfQ01EX1JYX0VOLCAxKTsKKworCWlmIChpbnRmLT5wYXJl bnQtPndvbF9pcnEgPiAwKSB7CisJCXdha2V1cF9pbnRyMl9jb3JlX3dsKGludGYtPnBhcmVudCwg MHhmZmZmZmZmZiwKKwkJCQkgICAgIEFTUF9XQUtFVVBfSU5UUjJfTUFTS19DTEVBUik7CisJfQor CisJbmV0aWZfZGJnKGludGYsIHdvbCwgbmRldiwgImVudGVyZWQgV09MIG1vZGVcbiIpOworfQor CiBpbnQgYmNtYXNwX2ludGVyZmFjZV9zdXNwZW5kKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZikK IHsKKwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0zRCAmaW50Zi0+cGFyZW50LT5wZGV2LT5kZXY7CiAJ c3RydWN0IG5ldF9kZXZpY2UgKmRldiA9M0QgaW50Zi0+bmRldjsKIAlpbnQgcmV0ID0zRCAwOwo9 MjAKQEAgLTEzMTMsMjAgKzEzNDQsMjQgQEAgaW50IGJjbWFzcF9pbnRlcmZhY2Vfc3VzcGVuZChz dHJ1Y3QgYmNtYXNwX2ludGYgKmluPQp0ZikKPTIwCiAJYmNtYXNwX25ldGlmX2RlaW5pdChkZXYp Owo9MjAKLQlyZXQgPTNEIHBoeV9zdXNwZW5kKGRldi0+cGh5ZGV2KTsKLQlpZiAocmV0KQotCQln b3RvIG91dDsKKwlpZiAoIWludGYtPndvbG9wdHMpIHsKKwkJcmV0ID0zRCBwaHlfc3VzcGVuZChk ZXYtPnBoeWRldik7CisJCWlmIChyZXQpCisJCQlnb3RvIG91dDsKPTIwCi0JaWYgKGludGYtPmlu dGVybmFsX3BoeSkKLQkJYmNtYXNwX2VwaHlfZW5hYmxlX3NldChpbnRmLCBmYWxzZSk7Ci0JZWxz ZQotCQliY21hc3BfcmdtaWlfbW9kZV9lbl9zZXQoaW50ZiwgZmFsc2UpOworCQlpZiAoaW50Zi0+ aW50ZXJuYWxfcGh5KQorCQkJYmNtYXNwX2VwaHlfZW5hYmxlX3NldChpbnRmLCBmYWxzZSk7CisJ CWVsc2UKKwkJCWJjbWFzcF9yZ21paV9tb2RlX2VuX3NldChpbnRmLCBmYWxzZSk7Cj0yMAotCS8q Ci0JICogSWYgV2FrZS1vbi1MQU4gaXMgZGlzYWJsZWQsIHdlIGNhbiBzYWZlbHkKLQkgKiBkaXNh YmxlIHRoZSBuZXR3b3JrIGludGVyZmFjZSBjbG9ja3MuCi0JICovCi0JYmNtYXNwX2NvcmVfY2xv Y2tfc2V0X2ludGYoaW50ZiwgZmFsc2UpOworCQkvKiBJZiBXYWtlLW9uLUxBTiBpcyBkaXNhYmxl ZCwgd2UgY2FuIHNhZmVseQorCQkgKiBkaXNhYmxlIHRoZSBuZXR3b3JrIGludGVyZmFjZSBjbG9j a3MuCisJCSAqLworCQliY21hc3BfY29yZV9jbG9ja19zZXRfaW50ZihpbnRmLCBmYWxzZSk7CisJ fQorCisJaWYgKGRldmljZV9tYXlfd2FrZXVwKGtkZXYpICYmIGludGYtPndvbG9wdHMpCisJCWJj bWFzcF9zdXNwZW5kX3RvX3dvbChpbnRmKTsKPTIwCiAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGlu dGYtPnBhcmVudC0+Y2xrKTsKPTIwCkBAIC0xMzM3LDYgKzEzNzIsMjAgQEAgaW50IGJjbWFzcF9p bnRlcmZhY2Vfc3VzcGVuZChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludD0KZikKIAlyZXR1cm4gcmV0 OwogfQo9MjAKK3N0YXRpYyB2b2lkIGJjbWFzcF9yZXN1bWVfZnJvbV93b2woc3RydWN0IGJjbWFz cF9pbnRmICppbnRmKQoreworCXUzMiByZWc7CisKKwlyZWcgPTNEIHVtYWNfcmwoaW50ZiwgVU1D X01QRF9DVFJMKTsKKwlyZWcgJj0zRCB+VU1DX01QRF9DVFJMX01QRF9FTjsKKwl1bWFjX3dsKGlu dGYsIHJlZywgVU1DX01QRF9DVFJMKTsKKworCWlmIChpbnRmLT5wYXJlbnQtPndvbF9pcnEgPiAw KSB7CisJCXdha2V1cF9pbnRyMl9jb3JlX3dsKGludGYtPnBhcmVudCwgMHhmZmZmZmZmZiwKKwkJ CQkgICAgIEFTUF9XQUtFVVBfSU5UUjJfTUFTS19TRVQpOworCX0KK30KKwogaW50IGJjbWFzcF9p bnRlcmZhY2VfcmVzdW1lKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZikKIHsKIAlzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2ID0zRCBpbnRmLT5uZGV2OwpAQCAtMTM1Myw2ICsxNDAyLDggQEAgaW50IGJj bWFzcF9pbnRlcmZhY2VfcmVzdW1lKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZikKIAlpZiAocmV0 KQogCQlnb3RvIG91dDsKPTIwCisJYmNtYXNwX3Jlc3VtZV9mcm9tX3dvbChpbnRmKTsKKwogCW5l dGlmX2RldmljZV9hdHRhY2goZGV2KTsKPTIwCiAJcmV0dXJuIDA7Ci0tPTIwCjIuNy40Cg== --0000000000005041a905fe1e803c Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIHRy6/DfzTKpxo4ddX5X82RIxh1l90vAmt0c MAi93ciHMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNDIy MzAzOFowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQAR+a9x0iGrN/lLUT41rXJnyEnT66oh5wmXa0HmjtR0OMsaHGcYN21R H/nQuJ2+yfxtzBgthfyJzzgghx4L9DWrm2LOeu+jew2H3jgG7P/wO3ru/XAbUdBdTPuNHgU9q8MT lNVrdYcDhg/XGsYaJ8QuKN+TPsPR4NbQskNdOVncwtA0obC9/Fl2UZSvlnTxsJmgRH98VTa7fVCj 14970Wn6nYW57I/bNzFGcrEOAMlJChPQW3RDpZ7ZBnvlJUDN931vWGA+jG4i2RbznQmQjLhWdxtv HGJzddQ+TXiHza+el55/rbIKPoZ61ukZVfDxTVg8XLJXm4JnkOaxcmjI2Ep0 --0000000000005041a905fe1e803c-- From nobody Sat Feb 7 11:05:16 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 31BEAEB64D8 for ; Wed, 14 Jun 2023 22:31:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237091AbjFNWa7 (ORCPT ); Wed, 14 Jun 2023 18:30:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33046 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236950AbjFNWau (ORCPT ); Wed, 14 Jun 2023 18:30:50 -0400 Received: from mail-qt1-x831.google.com (mail-qt1-x831.google.com [IPv6:2607:f8b0:4864:20::831]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A80892709 for ; Wed, 14 Jun 2023 15:30:42 -0700 (PDT) Received: by mail-qt1-x831.google.com with SMTP id d75a77b69052e-3f9b8f1c2fdso22268161cf.2 for ; Wed, 14 Jun 2023 15:30:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686781841; x=1689373841; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=sXrMtG+jCpgCYkfQ9v7ybjokU7FONyaHyWpT5Ox0Ar4=; b=LM/sbh7lzJ3f1a5TNoMKiUG10owxBHMF570kiOxk0jTACYkTTymkPWze5AlVe6OY0L /gp9fy4flRg/crowgd7awulRxqO1kJhwF2f6oc+9lLKP0mYqQHgqDPTlO2C47iKSTjZd CrBw4zfSOG1xxlx1CyWSVnkJ/9FgLhCnMVJvg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686781841; x=1689373841; h=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=sXrMtG+jCpgCYkfQ9v7ybjokU7FONyaHyWpT5Ox0Ar4=; b=SQlnnYziW1DDvNm3KPOoAm71jho2xcM2dWUMp0xeZVdWNoSbYIz2/hZRdC79FDmuU5 XAtyKC4GpLsHT1dQr+DSi5l1q3uTHCjen2XtEMsxuj/vzZEhesi9gk34bkWmUXm3yJC2 FQczChD9WlhIzTxm62dcOgh1vXpM0J2G79o5gNz/lIgTFDyLnI5rgZ875ErfATtHveH9 AxVfBr2UjTukTcIM7NO97ELIjSfIZyCHP+bZn3+EY+EFFJN++VN3b3L5qLnujgkWGzlj USbVvAQNA+/Yo4m8ky3HCcpH8ewowC8lDfAntU3DfmzKQECJx7J5hcuHNJX56f6O1+lD tL3Q== X-Gm-Message-State: AC+VfDyvdVMsiqzQhYFfgvpYXa21KuvIITmwPqqL6G62z/DmiX876HGw 9MPMgrg5j9AINLR1Xq5rsnALVQ== X-Google-Smtp-Source: ACHHUZ5amvMIKbeZDZNl17o5i9tc+uPX2B54l9UaAt2fSAB2NW1Nxu1BVcKpYY5w4aRT3qip0QRyQQ== X-Received: by 2002:ac8:57ce:0:b0:3f5:1f9c:5b28 with SMTP id w14-20020ac857ce000000b003f51f9c5b28mr4260874qta.42.1686781841192; Wed, 14 Jun 2023 15:30:41 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d3-20020ac85443000000b003ef2db16e72sm5419360qtq.94.2023.06.14.15.30.38 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Jun 2023 15:30:40 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, christian.koenig@amd.com, simon.horman@corigine.com, Justin Chen Subject: [PATCH net-next v7 05/11] net: bcmasp: Add support for wake on net filters Date: Wed, 14 Jun 2023 15:30:14 -0700 Message-Id: <1686781820-832-6-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> References: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000007b71c905fe1e808a" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --0000000000007b71c905fe1e808a MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIHdha2Ugb24gbmV0d29yayBmaWx0ZXJzLiBUaGUgbWF4IG1hdGNoIGlz IDI1NiBieXRlcy4KClNpZ25lZC1vZmYtYnk6IEp1c3RpbiBDaGVuIDxqdXN0aW4uY2hlbkBicm9h ZGNvbS5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3Au YyAgICAgICAgfCA1OTUgKysrKysrKysrKysrKysrKys9CisrKysKIGRyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmggICAgICAgIHwgIDQwICsrCiAuLi4vbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2V0aHRvb2wuYyAgICB8IDEzMSArKysrLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zi5jICAgfCAgIDMgKwogNCBm aWxlcyBjaGFuZ2VkLCA3NjggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMgYi9kcml2ZXJz L25ldC9ldGhlPQpybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMKaW5kZXggOWUzOTc3ODU2Yjcx Li5iYTk4NDJjNzYwZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2FzcDIvYmNtYXNwLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9i Y21hc3AuYwpAQCAtMTMwLDYgKzEzMCw1OTcgQEAgdm9pZCBiY21hc3BfZmx1c2hfcnhfcG9ydChz dHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpCiAJcnhfY3RybF9jb3JlX3dsKHByaXYsIG1hc2ssIHBy aXYtPmh3X2luZm8tPnJ4X2N0cmxfZmx1c2gpOwogfQo9MjAKK3N0YXRpYyB2b2lkIGJjbWFzcF9u ZXRmaWx0X2h3X2VuX3dha2Uoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2LAorCQkJCSAgICAgIHN0 cnVjdCBiY21hc3BfbmV0X2ZpbHRlciAqbmZpbHQpCit7CisJcnhfZmlsdGVyX2NvcmVfd2wocHJp diwgQVNQX1JYX0ZJTFRFUl9ORVRfT0ZGU0VUX0wzXzEoNjQpLAorCQkJICBBU1BfUlhfRklMVEVS X05FVF9PRkZTRVQobmZpbHQtPmh3X2luZGV4KSk7CisKKwlyeF9maWx0ZXJfY29yZV93bChwcml2 LCBBU1BfUlhfRklMVEVSX05FVF9PRkZTRVRfTDIoMzIpIHwKKwkJCSAgQVNQX1JYX0ZJTFRFUl9O RVRfT0ZGU0VUX0wzXzAoMzIpIHwKKwkJCSAgQVNQX1JYX0ZJTFRFUl9ORVRfT0ZGU0VUX0wzXzEo OTYpIHwKKwkJCSAgQVNQX1JYX0ZJTFRFUl9ORVRfT0ZGU0VUX0w0KDMyKSwKKwkJCSAgQVNQX1JY X0ZJTFRFUl9ORVRfT0ZGU0VUKG5maWx0LT5od19pbmRleCArIDEpKTsKKworCXJ4X2ZpbHRlcl9j b3JlX3dsKHByaXYsIEFTUF9SWF9GSUxURVJfTkVUX0NGR19DSChuZmlsdC0+cG9ydCArIDgpIHwK KwkJCSAgQVNQX1JYX0ZJTFRFUl9ORVRfQ0ZHX0VOIHwKKwkJCSAgQVNQX1JYX0ZJTFRFUl9ORVRf Q0ZHX0wyX0VOIHwKKwkJCSAgQVNQX1JYX0ZJTFRFUl9ORVRfQ0ZHX0wzX0VOIHwKKwkJCSAgQVNQ X1JYX0ZJTFRFUl9ORVRfQ0ZHX0w0X0VOIHwKKwkJCSAgQVNQX1JYX0ZJTFRFUl9ORVRfQ0ZHX0wz X0ZSTSgyKSB8CisJCQkgIEFTUF9SWF9GSUxURVJfTkVUX0NGR19MNF9GUk0oMikgfAorCQkJICBB U1BfUlhfRklMVEVSX05FVF9DRkdfVU1DKG5maWx0LT5wb3J0KSwKKwkJCSAgQVNQX1JYX0ZJTFRF Ul9ORVRfQ0ZHKG5maWx0LT5od19pbmRleCkpOworCisJcnhfZmlsdGVyX2NvcmVfd2wocHJpdiwg QVNQX1JYX0ZJTFRFUl9ORVRfQ0ZHX0NIKG5maWx0LT5wb3J0ICsgOCkgfAorCQkJICBBU1BfUlhf RklMVEVSX05FVF9DRkdfRU4gfAorCQkJICBBU1BfUlhfRklMVEVSX05FVF9DRkdfTDJfRU4gfAor CQkJICBBU1BfUlhfRklMVEVSX05FVF9DRkdfTDNfRU4gfAorCQkJICBBU1BfUlhfRklMVEVSX05F VF9DRkdfTDRfRU4gfAorCQkJICBBU1BfUlhfRklMVEVSX05FVF9DRkdfTDNfRlJNKDIpIHwKKwkJ CSAgQVNQX1JYX0ZJTFRFUl9ORVRfQ0ZHX0w0X0ZSTSgyKSB8CisJCQkgIEFTUF9SWF9GSUxURVJf TkVUX0NGR19VTUMobmZpbHQtPnBvcnQpLAorCQkJICBBU1BfUlhfRklMVEVSX05FVF9DRkcobmZp bHQtPmh3X2luZGV4ICsgMSkpOworfQorCisjZGVmaW5lIE1BWF9XQUtFX0ZJTFRFUl9TSVpFCQky NTYKK2VudW0gYXNwX25ldGZpbHRfcmVnX3R5cGUgeworCUFTUF9ORVRGSUxUX01BVENIID0zRCAw LAorCUFTUF9ORVRGSUxUX01BU0ssCisJQVNQX05FVEZJTFRfTUFYCit9OworCitzdGF0aWMgaW50 IGJjbWFzcF9uZXRmaWx0X2dldF9yZWdfb2Zmc2V0KHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiwK KwkJCQkJIHN0cnVjdCBiY21hc3BfbmV0X2ZpbHRlciAqbmZpbHQsCisJCQkJCSBlbnVtIGFzcF9u ZXRmaWx0X3JlZ190eXBlIHJlZ190eXBlLAorCQkJCQkgdTMyIG9mZnNldCkKK3sKKwl1MzIgYmxv Y2tfaW5kZXgsIGZpbHRlcl9zZWw7CisKKwlpZiAob2Zmc2V0IDwgMzIpIHsKKwkJYmxvY2tfaW5k ZXggPTNEIEFTUF9SWF9GSUxURVJfTkVUX0wyOworCQlmaWx0ZXJfc2VsID0zRCBuZmlsdC0+aHdf aW5kZXg7CisJfSBlbHNlIGlmIChvZmZzZXQgPCA2NCkgeworCQlibG9ja19pbmRleCA9M0QgQVNQ X1JYX0ZJTFRFUl9ORVRfTDI7CisJCWZpbHRlcl9zZWwgPTNEIG5maWx0LT5od19pbmRleCArIDE7 CisJfSBlbHNlIGlmIChvZmZzZXQgPCA5NikgeworCQlibG9ja19pbmRleCA9M0QgQVNQX1JYX0ZJ TFRFUl9ORVRfTDNfMDsKKwkJZmlsdGVyX3NlbCA9M0QgbmZpbHQtPmh3X2luZGV4OworCX0gZWxz ZSBpZiAob2Zmc2V0IDwgMTI4KSB7CisJCWJsb2NrX2luZGV4ID0zRCBBU1BfUlhfRklMVEVSX05F VF9MM18wOworCQlmaWx0ZXJfc2VsID0zRCBuZmlsdC0+aHdfaW5kZXggKyAxOworCX0gZWxzZSBp ZiAob2Zmc2V0IDwgMTYwKSB7CisJCWJsb2NrX2luZGV4ID0zRCBBU1BfUlhfRklMVEVSX05FVF9M M18xOworCQlmaWx0ZXJfc2VsID0zRCBuZmlsdC0+aHdfaW5kZXg7CisJfSBlbHNlIGlmIChvZmZz ZXQgPCAxOTIpIHsKKwkJYmxvY2tfaW5kZXggPTNEIEFTUF9SWF9GSUxURVJfTkVUX0wzXzE7CisJ CWZpbHRlcl9zZWwgPTNEIG5maWx0LT5od19pbmRleCArIDE7CisJfSBlbHNlIGlmIChvZmZzZXQg PCAyMjQpIHsKKwkJYmxvY2tfaW5kZXggPTNEIEFTUF9SWF9GSUxURVJfTkVUX0w0OworCQlmaWx0 ZXJfc2VsID0zRCBuZmlsdC0+aHdfaW5kZXg7CisJfSBlbHNlIGlmIChvZmZzZXQgPCAyNTYpIHsK KwkJYmxvY2tfaW5kZXggPTNEIEFTUF9SWF9GSUxURVJfTkVUX0w0OworCQlmaWx0ZXJfc2VsID0z RCBuZmlsdC0+aHdfaW5kZXggKyAxOworCX0gZWxzZSB7CisJCXJldHVybiAtRUlOVkFMOworCX0K KworCXN3aXRjaCAocmVnX3R5cGUpIHsKKwljYXNlIEFTUF9ORVRGSUxUX01BVENIOgorCQlyZXR1 cm4gQVNQX1JYX0ZJTFRFUl9ORVRfUEFUKGZpbHRlcl9zZWwsIGJsb2NrX2luZGV4LAorCQkJCQkg ICAgIChvZmZzZXQgJSAzMikpOworCWNhc2UgQVNQX05FVEZJTFRfTUFTSzoKKwkJcmV0dXJuIEFT UF9SWF9GSUxURVJfTkVUX01BU0soZmlsdGVyX3NlbCwgYmxvY2tfaW5kZXgsCisJCQkJCSAgICAg IChvZmZzZXQgJSAzMikpOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KK30KKwor c3RhdGljIHZvaWQgYmNtYXNwX25ldGZpbHRfd3Ioc3RydWN0IGJjbWFzcF9wcml2ICpwcml2LAor CQkJICAgICAgc3RydWN0IGJjbWFzcF9uZXRfZmlsdGVyICpuZmlsdCwKKwkJCSAgICAgIGVudW0g YXNwX25ldGZpbHRfcmVnX3R5cGUgcmVnX3R5cGUsCisJCQkgICAgICB1MzIgdmFsLCB1MzIgb2Zm c2V0KQoreworCWludCByZWdfb2Zmc2V0OworCisJLyogSFcgb25seSBhY2NlcHRzIDQgYnl0ZSBh bGlnbmVkIHdyaXRlcyAqLworCWlmICghSVNfQUxJR05FRChvZmZzZXQsIDQpIHx8IG9mZnNldCA+ IE1BWF9XQUtFX0ZJTFRFUl9TSVpFKQorCQlyZXR1cm47CisKKwlyZWdfb2Zmc2V0ID0zRCBiY21h c3BfbmV0ZmlsdF9nZXRfcmVnX29mZnNldChwcml2LCBuZmlsdCwgcmVnX3R5cGUsCisJCQkJCQkg ICBvZmZzZXQpOworCisJcnhfZmlsdGVyX2NvcmVfd2wocHJpdiwgdmFsLCByZWdfb2Zmc2V0KTsK K30KKworc3RhdGljIHUzMiBiY21hc3BfbmV0ZmlsdF9yZChzdHJ1Y3QgYmNtYXNwX3ByaXYgKnBy aXYsCisJCQkgICAgIHN0cnVjdCBiY21hc3BfbmV0X2ZpbHRlciAqbmZpbHQsCisJCQkgICAgIGVu dW0gYXNwX25ldGZpbHRfcmVnX3R5cGUgcmVnX3R5cGUsCisJCQkgICAgIHUzMiBvZmZzZXQpCit7 CisJaW50IHJlZ19vZmZzZXQ7CisKKwkvKiBIVyBvbmx5IGFjY2VwdHMgNCBieXRlIGFsaWduZWQg d3JpdGVzICovCisJaWYgKCFJU19BTElHTkVEKG9mZnNldCwgNCkgfHwgb2Zmc2V0ID4gTUFYX1dB S0VfRklMVEVSX1NJWkUpCisJCXJldHVybiAwOworCisJcmVnX29mZnNldCA9M0QgYmNtYXNwX25l dGZpbHRfZ2V0X3JlZ19vZmZzZXQocHJpdiwgbmZpbHQsIHJlZ190eXBlLAorCQkJCQkJICAgb2Zm c2V0KTsKKworCXJldHVybiByeF9maWx0ZXJfY29yZV9ybChwcml2LCByZWdfb2Zmc2V0KTsKK30K Kworc3RhdGljIGludCBiY21hc3BfbmV0ZmlsdF93cl9tX3dha2Uoc3RydWN0IGJjbWFzcF9wcml2 ICpwcml2LAorCQkJCSAgICBzdHJ1Y3QgYmNtYXNwX25ldF9maWx0ZXIgKm5maWx0LAorCQkJCSAg ICB1MzIgb2Zmc2V0LCB2b2lkICptYXRjaCwgdm9pZCAqbWFzaywKKwkJCQkgICAgc2l6ZV90IHNp emUpCit7CisJdTMyIHNoaWZ0LCBtYXNrX3ZhbCA9M0QgMCwgbWF0Y2hfdmFsID0zRCAwOworCWJv b2wgZmlyc3RfYnl0ZSA9M0QgdHJ1ZTsKKworCWlmICgob2Zmc2V0ICsgc2l6ZSkgPiBNQVhfV0FL RV9GSUxURVJfU0laRSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwl3aGlsZSAoc2l6ZS0tKSB7CisJ CS8qIFRoZSBIVyBvbmx5IGFjY2VwdHMgNCBieXRlIGFsaWduZWQgd3JpdGVzLCBzbyBpZiB3ZQor CQkgKiBiZWdpbiB1bmFsaWduZWQgb3IgaWYgcmVtYWluaW5nIGJ5dGVzIGxlc3MgdGhhbiA0LAor CQkgKiB3ZSBuZWVkIHRvIHJlYWQgdGhlbiB3cml0ZSB0byBhdm9pZCBsb3NpbmcgY3VycmVudAor CQkgKiByZWdpc3RlciBzdGF0ZQorCQkgKi8KKwkJaWYgKGZpcnN0X2J5dGUgJiYgKCFJU19BTElH TkVEKG9mZnNldCwgNCkgfHwgc2l6ZSA8IDMpKSB7CisJCQltYXRjaF92YWwgPTNEIGJjbWFzcF9u ZXRmaWx0X3JkKHByaXYsIG5maWx0LAorCQkJCQkJICAgICAgQVNQX05FVEZJTFRfTUFUQ0gsCisJ CQkJCQkgICAgICBBTElHTl9ET1dOKG9mZnNldCwgNCkpOworCQkJbWFza192YWwgPTNEIGJjbWFz cF9uZXRmaWx0X3JkKHByaXYsIG5maWx0LAorCQkJCQkJICAgICBBU1BfTkVURklMVF9NQVNLLAor CQkJCQkJICAgICBBTElHTl9ET1dOKG9mZnNldCwgNCkpOworCQl9CisKKwkJc2hpZnQgPTNEICgz IC0gKG9mZnNldCAlIDQpKSAqIDg7CisJCW1hdGNoX3ZhbCAmPTNEIH5HRU5NQVNLKHNoaWZ0ICsg Nywgc2hpZnQpOworCQltYXNrX3ZhbCAmPTNEIH5HRU5NQVNLKHNoaWZ0ICsgNywgc2hpZnQpOwor CQltYXRjaF92YWwgfD0zRCAodTMyKSgqKCh1OCAqKW1hdGNoKSA8PCBzaGlmdCk7CisJCW1hc2tf dmFsIHw9M0QgKHUzMikoKigodTggKiltYXNrKSA8PCBzaGlmdCk7CisKKwkJLyogSWYgbGFzdCBi eXRlIG9yIGxhc3QgYnl0ZSBvZiB3b3JkLCB3cml0ZSB0byByZWcgKi8KKwkJaWYgKCFzaXplIHx8 ICgob2Zmc2V0ICUgNCkgPTNEPTNEIDMpKSB7CisJCQliY21hc3BfbmV0ZmlsdF93cihwcml2LCBu ZmlsdCwgQVNQX05FVEZJTFRfTUFUQ0gsCisJCQkJCSAgbWF0Y2hfdmFsLCBBTElHTl9ET1dOKG9m ZnNldCwgNCkpOworCQkJYmNtYXNwX25ldGZpbHRfd3IocHJpdiwgbmZpbHQsIEFTUF9ORVRGSUxU X01BU0ssCisJCQkJCSAgbWFza192YWwsIEFMSUdOX0RPV04ob2Zmc2V0LCA0KSk7CisJCQlmaXJz dF9ieXRlID0zRCB0cnVlOworCQl9IGVsc2UgeworCQkJZmlyc3RfYnl0ZSA9M0QgZmFsc2U7CisJ CX0KKworCQlvZmZzZXQrKzsKKwkJbWF0Y2grKzsKKwkJbWFzaysrOworCX0KKworCXJldHVybiAw OworfQorCitzdGF0aWMgdm9pZCBiY21hc3BfbmV0ZmlsdF9yZXNldF9odyhzdHJ1Y3QgYmNtYXNw X3ByaXYgKnByaXYsCisJCQkJICAgIHN0cnVjdCBiY21hc3BfbmV0X2ZpbHRlciAqbmZpbHQpCit7 CisJaW50IGk7CisKKwlmb3IgKGkgPTNEIDA7IGkgPCBNQVhfV0FLRV9GSUxURVJfU0laRTsgaSAr PTNEIDQpIHsKKwkJYmNtYXNwX25ldGZpbHRfd3IocHJpdiwgbmZpbHQsIEFTUF9ORVRGSUxUX01B VENILCAwLCBpKTsKKwkJYmNtYXNwX25ldGZpbHRfd3IocHJpdiwgbmZpbHQsIEFTUF9ORVRGSUxU X01BU0ssIDAsIGkpOworCX0KK30KKworc3RhdGljIHZvaWQgYmNtYXNwX25ldGZpbHRfdGNwaXA0 X3dyKHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiwKKwkJCQkgICAgIHN0cnVjdCBiY21hc3BfbmV0 X2ZpbHRlciAqbmZpbHQsCisJCQkJICAgICBzdHJ1Y3QgZXRodG9vbF90Y3BpcDRfc3BlYyAqbWF0 Y2gsCisJCQkJICAgICBzdHJ1Y3QgZXRodG9vbF90Y3BpcDRfc3BlYyAqbWFzaywKKwkJCQkgICAg IHUzMiBvZmZzZXQpCit7CisJX19iZTE2IHZhbF8xNiwgbWFza18xNjsKKworCXZhbF8xNiA9M0Qg aHRvbnMoRVRIX1BfSVApOworCW1hc2tfMTYgPTNEIGh0b25zKDB4RkZGRik7CisJYmNtYXNwX25l dGZpbHRfd3JfbV93YWtlKHByaXYsIG5maWx0LCAoRVRIX0FMRU4gKiAyKSArIG9mZnNldCwKKwkJ CQkgJnZhbF8xNiwgJm1hc2tfMTYsIHNpemVvZih2YWxfMTYpKTsKKwliY21hc3BfbmV0ZmlsdF93 cl9tX3dha2UocHJpdiwgbmZpbHQsIEVUSF9ITEVOICsgb2Zmc2V0ICsgMSwKKwkJCQkgJm1hdGNo LT50b3MsICZtYXNrLT50b3MsCisJCQkJIHNpemVvZihtYXRjaC0+dG9zKSk7CisJYmNtYXNwX25l dGZpbHRfd3JfbV93YWtlKHByaXYsIG5maWx0LCBFVEhfSExFTiArIG9mZnNldCArIDEyLAorCQkJ CSAmbWF0Y2gtPmlwNHNyYywgJm1hc2stPmlwNHNyYywKKwkJCQkgc2l6ZW9mKG1hdGNoLT5pcDRz cmMpKTsKKwliY21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJpdiwgbmZpbHQsIEVUSF9ITEVOICsg b2Zmc2V0ICsgMTYsCisJCQkJICZtYXRjaC0+aXA0ZHN0LCAmbWFzay0+aXA0ZHN0LAorCQkJCSBz aXplb2YobWF0Y2gtPmlwNGRzdCkpOworCWJjbWFzcF9uZXRmaWx0X3dyX21fd2FrZShwcml2LCBu ZmlsdCwgRVRIX0hMRU4gKyBvZmZzZXQgKyAyMCwKKwkJCQkgJm1hdGNoLT5wc3JjLCAmbWFzay0+ cHNyYywKKwkJCQkgc2l6ZW9mKG1hdGNoLT5wc3JjKSk7CisJYmNtYXNwX25ldGZpbHRfd3JfbV93 YWtlKHByaXYsIG5maWx0LCBFVEhfSExFTiArIG9mZnNldCArIDIyLAorCQkJCSAmbWF0Y2gtPnBk c3QsICZtYXNrLT5wZHN0LAorCQkJCSBzaXplb2YobWF0Y2gtPnBkc3QpKTsKK30KKworc3RhdGlj IHZvaWQgYmNtYXNwX25ldGZpbHRfdGNwaXA2X3dyKHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiwK KwkJCQkgICAgIHN0cnVjdCBiY21hc3BfbmV0X2ZpbHRlciAqbmZpbHQsCisJCQkJICAgICBzdHJ1 Y3QgZXRodG9vbF90Y3BpcDZfc3BlYyAqbWF0Y2gsCisJCQkJICAgICBzdHJ1Y3QgZXRodG9vbF90 Y3BpcDZfc3BlYyAqbWFzaywKKwkJCQkgICAgIHUzMiBvZmZzZXQpCit7CisJX19iZTE2IHZhbF8x NiwgbWFza18xNjsKKworCXZhbF8xNiA9M0QgaHRvbnMoRVRIX1BfSVBWNik7CisJbWFza18xNiA9 M0QgaHRvbnMoMHhGRkZGKTsKKwliY21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJpdiwgbmZpbHQs IChFVEhfQUxFTiAqIDIpICsgb2Zmc2V0LAorCQkJCSAmdmFsXzE2LCAmbWFza18xNiwgc2l6ZW9m KHZhbF8xNikpOworCXZhbF8xNiA9M0QgaHRvbnMobWF0Y2gtPnRjbGFzcyA8PCA0KTsKKwltYXNr XzE2ID0zRCBodG9ucyhtYXNrLT50Y2xhc3MgPDwgNCk7CisJYmNtYXNwX25ldGZpbHRfd3JfbV93 YWtlKHByaXYsIG5maWx0LCBFVEhfSExFTiArIG9mZnNldCwKKwkJCQkgJnZhbF8xNiwgJm1hc2tf MTYsIHNpemVvZih2YWxfMTYpKTsKKwliY21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJpdiwgbmZp bHQsIEVUSF9ITEVOICsgb2Zmc2V0ICsgOCwKKwkJCQkgJm1hdGNoLT5pcDZzcmMsICZtYXNrLT5p cDZzcmMsCisJCQkJIHNpemVvZihtYXRjaC0+aXA2c3JjKSk7CisJYmNtYXNwX25ldGZpbHRfd3Jf bV93YWtlKHByaXYsIG5maWx0LCBFVEhfSExFTiArIG9mZnNldCArIDI0LAorCQkJCSAmbWF0Y2gt PmlwNmRzdCwgJm1hc2stPmlwNmRzdCwKKwkJCQkgc2l6ZW9mKG1hdGNoLT5pcDZkc3QpKTsKKwli Y21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJpdiwgbmZpbHQsIEVUSF9ITEVOICsgb2Zmc2V0ICsg NDAsCisJCQkJICZtYXRjaC0+cHNyYywgJm1hc2stPnBzcmMsCisJCQkJIHNpemVvZihtYXRjaC0+ cHNyYykpOworCWJjbWFzcF9uZXRmaWx0X3dyX21fd2FrZShwcml2LCBuZmlsdCwgRVRIX0hMRU4g KyBvZmZzZXQgKyA0MiwKKwkJCQkgJm1hdGNoLT5wZHN0LCAmbWFzay0+cGRzdCwKKwkJCQkgc2l6 ZW9mKG1hdGNoLT5wZHN0KSk7Cit9CisKK3N0YXRpYyBpbnQgYmNtYXNwX25ldGZpbHRfd3JfdG9f aHcoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2LAorCQkJCSAgIHN0cnVjdCBiY21hc3BfbmV0X2Zp bHRlciAqbmZpbHQpCit7CisJc3RydWN0IGV0aHRvb2xfcnhfZmxvd19zcGVjICpmcyA9M0QgJm5m aWx0LT5mczsKKwl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0zRCAwOworCV9fYmUxNiB2YWxfMTYsIG1h c2tfMTY7CisJdTggdmFsXzgsIG1hc2tfODsKKworCS8qIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRz IHdha2UgZmlsdGVycyAqLworCWlmICghbmZpbHQtPndha2VfZmlsdGVyKQorCQlyZXR1cm4gLUVJ TlZBTDsKKworCWJjbWFzcF9uZXRmaWx0X3Jlc2V0X2h3KHByaXYsIG5maWx0KTsKKworCWlmIChm cy0+Zmxvd190eXBlICYgRkxPV19NQUNfRVhUKSB7CisJCWJjbWFzcF9uZXRmaWx0X3dyX21fd2Fr ZShwcml2LCBuZmlsdCwgMCwgJmZzLT5oX2V4dC5oX2Rlc3QsCisJCQkJCSAmZnMtPm1fZXh0Lmhf ZGVzdCwKKwkJCQkJIHNpemVvZihmcy0+aF9leHQuaF9kZXN0KSk7CisJfQorCisJaWYgKChmcy0+ Zmxvd190eXBlICYgRkxPV19FWFQpICYmCisJICAgIChmcy0+bV9leHQudmxhbl9ldHlwZSB8fCBm cy0+bV9leHQudmxhbl90Y2kpKSB7CisJCWJjbWFzcF9uZXRmaWx0X3dyX21fd2FrZShwcml2LCBu ZmlsdCwgKEVUSF9BTEVOICogMiksCisJCQkJCSAmZnMtPmhfZXh0LnZsYW5fZXR5cGUsCisJCQkJ CSAmZnMtPm1fZXh0LnZsYW5fZXR5cGUsCisJCQkJCSBzaXplb2YoZnMtPmhfZXh0LnZsYW5fZXR5 cGUpKTsKKwkJYmNtYXNwX25ldGZpbHRfd3JfbV93YWtlKHByaXYsIG5maWx0LCAoKEVUSF9BTEVO ICogMikgKyAyKSwKKwkJCQkJICZmcy0+aF9leHQudmxhbl90Y2ksCisJCQkJCSAmZnMtPm1fZXh0 LnZsYW5fdGNpLAorCQkJCQkgc2l6ZW9mKGZzLT5oX2V4dC52bGFuX3RjaSkpOworCQlvZmZzZXQg Kz0zRCBWTEFOX0hMRU47CisJfQorCisJc3dpdGNoIChmcy0+Zmxvd190eXBlICYgfihGTE9XX0VY VCB8IEZMT1dfTUFDX0VYVCkpIHsKKwljYXNlIEVUSEVSX0ZMT1c6CisJCWJjbWFzcF9uZXRmaWx0 X3dyX21fd2FrZShwcml2LCBuZmlsdCwgMCwKKwkJCQkJICZmcy0+aF91LmV0aGVyX3NwZWMuaF9k ZXN0LAorCQkJCQkgJmZzLT5tX3UuZXRoZXJfc3BlYy5oX2Rlc3QsCisJCQkJCSBzaXplb2YoZnMt PmhfdS5ldGhlcl9zcGVjLmhfZGVzdCkpOworCQliY21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJp diwgbmZpbHQsIEVUSF9BTEVOLAorCQkJCQkgJmZzLT5oX3UuZXRoZXJfc3BlYy5oX3NvdXJjZSwK KwkJCQkJICZmcy0+bV91LmV0aGVyX3NwZWMuaF9zb3VyY2UsCisJCQkJCSBzaXplb2YoZnMtPmhf dS5ldGhlcl9zcGVjLmhfc291cmNlKSk7CisJCWJjbWFzcF9uZXRmaWx0X3dyX21fd2FrZShwcml2 LCBuZmlsdCwgKEVUSF9BTEVOICogMikgKyBvZmZzZXQsCisJCQkJCSAmZnMtPmhfdS5ldGhlcl9z cGVjLmhfcHJvdG8sCisJCQkJCSAmZnMtPm1fdS5ldGhlcl9zcGVjLmhfcHJvdG8sCisJCQkJCSBz aXplb2YoZnMtPmhfdS5ldGhlcl9zcGVjLmhfcHJvdG8pKTsKKworCQlicmVhazsKKwljYXNlIElQ X1VTRVJfRkxPVzoKKwkJdmFsXzE2ID0zRCBodG9ucyhFVEhfUF9JUCk7CisJCW1hc2tfMTYgPTNE IGh0b25zKDB4RkZGRik7CisJCWJjbWFzcF9uZXRmaWx0X3dyX21fd2FrZShwcml2LCBuZmlsdCwg KEVUSF9BTEVOICogMikgKyBvZmZzZXQsCisJCQkJCSAmdmFsXzE2LCAmbWFza18xNiwgc2l6ZW9m KHZhbF8xNikpOworCQliY21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJpdiwgbmZpbHQsIEVUSF9I TEVOICsgb2Zmc2V0ICsgMSwKKwkJCQkJICZmcy0+aF91LnVzcl9pcDRfc3BlYy50b3MsCisJCQkJ CSAmZnMtPm1fdS51c3JfaXA0X3NwZWMudG9zLAorCQkJCQkgc2l6ZW9mKGZzLT5oX3UudXNyX2lw NF9zcGVjLnRvcykpOworCQliY21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJpdiwgbmZpbHQsIEVU SF9ITEVOICsgb2Zmc2V0ICsgOSwKKwkJCQkJICZmcy0+aF91LnVzcl9pcDRfc3BlYy5wcm90bywK KwkJCQkJICZmcy0+bV91LnVzcl9pcDRfc3BlYy5wcm90bywKKwkJCQkJIHNpemVvZihmcy0+aF91 LnVzcl9pcDRfc3BlYy5wcm90bykpOworCQliY21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJpdiwg bmZpbHQsIEVUSF9ITEVOICsgb2Zmc2V0ICsgMTIsCisJCQkJCSAmZnMtPmhfdS51c3JfaXA0X3Nw ZWMuaXA0c3JjLAorCQkJCQkgJmZzLT5tX3UudXNyX2lwNF9zcGVjLmlwNHNyYywKKwkJCQkJIHNp emVvZihmcy0+aF91LnVzcl9pcDRfc3BlYy5pcDRzcmMpKTsKKwkJYmNtYXNwX25ldGZpbHRfd3Jf bV93YWtlKHByaXYsIG5maWx0LCBFVEhfSExFTiArIG9mZnNldCArIDE2LAorCQkJCQkgJmZzLT5o X3UudXNyX2lwNF9zcGVjLmlwNGRzdCwKKwkJCQkJICZmcy0+bV91LnVzcl9pcDRfc3BlYy5pcDRk c3QsCisJCQkJCSBzaXplb2YoZnMtPmhfdS51c3JfaXA0X3NwZWMuaXA0ZHN0KSk7CisJCWlmICgh ZnMtPm1fdS51c3JfaXA0X3NwZWMubDRfNF9ieXRlcykKKwkJCWJyZWFrOworCisJCS8qIE9ubHkg c3VwcG9ydHMgMjAgYnl0ZSBJUHY0IGhlYWRlciAqLworCQl2YWxfOCA9M0QgMHg0NTsKKwkJbWFz a184ID0zRCAweEZGOworCQliY21hc3BfbmV0ZmlsdF93cl9tX3dha2UocHJpdiwgbmZpbHQsIEVU SF9ITEVOICsgb2Zmc2V0LAorCQkJCQkgJnZhbF84LCAmbWFza184LCBzaXplb2YodmFsXzgpKTsK KwkJYmNtYXNwX25ldGZpbHRfd3JfbV93YWtlKHByaXYsIG5maWx0LAorCQkJCQkgRVRIX0hMRU4g KyAyMCArIG9mZnNldCwKKwkJCQkJICZmcy0+aF91LnVzcl9pcDRfc3BlYy5sNF80X2J5dGVzLAor CQkJCQkgJmZzLT5tX3UudXNyX2lwNF9zcGVjLmw0XzRfYnl0ZXMsCisJCQkJCSBzaXplb2YoZnMt PmhfdS51c3JfaXA0X3NwZWMubDRfNF9ieXRlcykKKwkJCQkJICk7CisJCWJyZWFrOworCWNhc2Ug VENQX1Y0X0ZMT1c6CisJCXZhbF84ID0zRCBJUFBST1RPX1RDUDsKKwkJbWFza184ID0zRCAweEZG OworCQliY21hc3BfbmV0ZmlsdF90Y3BpcDRfd3IocHJpdiwgbmZpbHQsICZmcy0+aF91LnRjcF9p cDRfc3BlYywKKwkJCQkJICZmcy0+bV91LnRjcF9pcDRfc3BlYywgb2Zmc2V0KTsKKwkJYmNtYXNw X25ldGZpbHRfd3JfbV93YWtlKHByaXYsIG5maWx0LCBFVEhfSExFTiArIG9mZnNldCArIDksCisJ CQkJCSAmdmFsXzgsICZtYXNrXzgsIHNpemVvZih2YWxfOCkpOworCQlicmVhazsKKwljYXNlIFVE UF9WNF9GTE9XOgorCQl2YWxfOCA9M0QgSVBQUk9UT19VRFA7CisJCW1hc2tfOCA9M0QgMHhGRjsK KwkJYmNtYXNwX25ldGZpbHRfdGNwaXA0X3dyKHByaXYsIG5maWx0LCAmZnMtPmhfdS51ZHBfaXA0 X3NwZWMsCisJCQkJCSAmZnMtPm1fdS51ZHBfaXA0X3NwZWMsIG9mZnNldCk7CisKKwkJYmNtYXNw X25ldGZpbHRfd3JfbV93YWtlKHByaXYsIG5maWx0LCBFVEhfSExFTiArIG9mZnNldCArIDksCisJ CQkJCSAmdmFsXzgsICZtYXNrXzgsIHNpemVvZih2YWxfOCkpOworCQlicmVhazsKKwljYXNlIFRD UF9WNl9GTE9XOgorCQl2YWxfOCA9M0QgSVBQUk9UT19UQ1A7CisJCW1hc2tfOCA9M0QgMHhGRjsK KwkJYmNtYXNwX25ldGZpbHRfdGNwaXA2X3dyKHByaXYsIG5maWx0LCAmZnMtPmhfdS50Y3BfaXA2 X3NwZWMsCisJCQkJCSAmZnMtPm1fdS50Y3BfaXA2X3NwZWMsIG9mZnNldCk7CisJCWJjbWFzcF9u ZXRmaWx0X3dyX21fd2FrZShwcml2LCBuZmlsdCwgRVRIX0hMRU4gKyBvZmZzZXQgKyA2LAorCQkJ CQkgJnZhbF84LCAmbWFza184LCBzaXplb2YodmFsXzgpKTsKKwkJYnJlYWs7CisJY2FzZSBVRFBf VjZfRkxPVzoKKwkJdmFsXzggPTNEIElQUFJPVE9fVURQOworCQltYXNrXzggPTNEIDB4RkY7CisJ CWJjbWFzcF9uZXRmaWx0X3RjcGlwNl93cihwcml2LCBuZmlsdCwgJmZzLT5oX3UudWRwX2lwNl9z cGVjLAorCQkJCQkgJmZzLT5tX3UudWRwX2lwNl9zcGVjLCBvZmZzZXQpOworCQliY21hc3BfbmV0 ZmlsdF93cl9tX3dha2UocHJpdiwgbmZpbHQsIEVUSF9ITEVOICsgb2Zmc2V0ICsgNiwKKwkJCQkJ ICZ2YWxfOCwgJm1hc2tfOCwgc2l6ZW9mKHZhbF84KSk7CisJCWJyZWFrOworCX0KKworCWJjbWFz cF9uZXRmaWx0X2h3X2VuX3dha2UocHJpdiwgbmZpbHQpOworCisJcmV0dXJuIDA7Cit9CisKK3Zv aWQgYmNtYXNwX25ldGZpbHRfc3VzcGVuZChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpCit7CisJ c3RydWN0IGJjbWFzcF9wcml2ICpwcml2ID0zRCBpbnRmLT5wYXJlbnQ7CisJYm9vbCB3cml0ZSA9 M0QgZmFsc2U7CisJaW50IHJldCwgaTsKKworCS8qIFdyaXRlIGFsbCBmaWx0ZXJzIHRvIEhXICov CisJZm9yIChpID0zRCAwOyBpIDwgTlVNX05FVF9GSUxURVJTOyBpKyspIHsKKwkJLyogSWYgdGhl IGZpbHRlciBkb2VzIG5vdCBtYXRjaCB0aGUgcG9ydCwgc2tpcCBwcm9ncmFtbWluZy4gKi8KKwkJ aWYgKCFwcml2LT5uZXRfZmlsdGVyc1tpXS5jbGFpbWVkIHx8CisJCSAgICBwcml2LT5uZXRfZmls dGVyc1tpXS5wb3J0ICE9M0QgaW50Zi0+cG9ydCkKKwkJCWNvbnRpbnVlOworCisJCWlmIChpID4g MCAmJiAoaSAlIDIpICYmCisJCSAgICBwcml2LT5uZXRfZmlsdGVyc1tpXS53YWtlX2ZpbHRlciAm JgorCQkgICAgcHJpdi0+bmV0X2ZpbHRlcnNbaSAtIDFdLndha2VfZmlsdGVyKQorCQkJY29udGlu dWU7CisKKwkJcmV0ID0zRCBiY21hc3BfbmV0ZmlsdF93cl90b19odyhwcml2LCAmcHJpdi0+bmV0 X2ZpbHRlcnNbaV0pOworCQlpZiAoIXJldCkKKwkJCXdyaXRlID0zRCB0cnVlOworCX0KKworCS8q IFN1Y2Nlc3NmdWxseSBwcm9ncmFtbWVkIGF0IGxlYXN0IG9uZSB3YWtlIGZpbHRlcgorCSAqIHNv IGVuYWJsZSB0b3AgbGV2ZWwgd2FrZSBjb25maWcKKwkgKi8KKwlpZiAod3JpdGUpCisJCXJ4X2Zp bHRlcl9jb3JlX3dsKHByaXYsIChBU1BfUlhfRklMVEVSX09QVVRfRU4gfAorCQkJCSAgQVNQX1JY X0ZJTFRFUl9MTlJfTUQgfAorCQkJCSAgQVNQX1JYX0ZJTFRFUl9HRU5fV0tfRU4gfAorCQkJCSAg QVNQX1JYX0ZJTFRFUl9OVF9GTFRfRU4pLAorCQkJCSAgQVNQX1JYX0ZJTFRFUl9CTEtfQ1RSTCk7 Cit9CisKK3ZvaWQgYmNtYXNwX25ldGZpbHRfZ2V0X2FsbF9hY3RpdmUoc3RydWN0IGJjbWFzcF9p bnRmICppbnRmLCB1MzIgKnJ1bGVfbG9jPQpzLAorCQkJCSAgIHUzMiAqcnVsZV9jbnQpCit7CisJ c3RydWN0IGJjbWFzcF9wcml2ICpwcml2ID0zRCBpbnRmLT5wYXJlbnQ7CisJaW50IGogPTNEIDAs IGk7CisKKwlmb3IgKGkgPTNEIDA7IGkgPCBOVU1fTkVUX0ZJTFRFUlM7IGkrKykgeworCQlpZiAo IXByaXYtPm5ldF9maWx0ZXJzW2ldLmNsYWltZWQgfHwKKwkJICAgIHByaXYtPm5ldF9maWx0ZXJz W2ldLnBvcnQgIT0zRCBpbnRmLT5wb3J0KQorCQkJY29udGludWU7CisKKwkJaWYgKGkgPiAwICYm IChpICUgMikgJiYKKwkJICAgIHByaXYtPm5ldF9maWx0ZXJzW2ldLndha2VfZmlsdGVyICYmCisJ CSAgICBwcml2LT5uZXRfZmlsdGVyc1tpIC0gMV0ud2FrZV9maWx0ZXIpCisJCQljb250aW51ZTsK KworCQlydWxlX2xvY3NbaisrXSA9M0QgcHJpdi0+bmV0X2ZpbHRlcnNbaV0uZnMubG9jYXRpb247 CisJfQorCisJKnJ1bGVfY250ID0zRCBqOworfQorCitpbnQgYmNtYXNwX25ldGZpbHRfZ2V0X2Fj dGl2ZShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpCit7CisJc3RydWN0IGJjbWFzcF9wcml2ICpw cml2ID0zRCBpbnRmLT5wYXJlbnQ7CisJaW50IGNudCA9M0QgMCwgaTsKKworCWZvciAoaSA9M0Qg MDsgaSA8IE5VTV9ORVRfRklMVEVSUzsgaSsrKSB7CisJCWlmICghcHJpdi0+bmV0X2ZpbHRlcnNb aV0uY2xhaW1lZCB8fAorCQkgICAgcHJpdi0+bmV0X2ZpbHRlcnNbaV0ucG9ydCAhPTNEIGludGYt PnBvcnQpCisJCQljb250aW51ZTsKKworCQkvKiBTa2lwIG92ZXIgYSB3YWtlIGZpbHRlciBwYWly ICovCisJCWlmIChpID4gMCAmJiAoaSAlIDIpICYmCisJCSAgICBwcml2LT5uZXRfZmlsdGVyc1tp XS53YWtlX2ZpbHRlciAmJgorCQkgICAgcHJpdi0+bmV0X2ZpbHRlcnNbaSAtIDFdLndha2VfZmls dGVyKQorCQkJY29udGludWU7CisKKwkJY250Kys7CisJfQorCisJcmV0dXJuIGNudDsKK30KKwor Ym9vbCBiY21hc3BfbmV0ZmlsdF9jaGVja19kdXAoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLAor CQkJICAgICAgc3RydWN0IGV0aHRvb2xfcnhfZmxvd19zcGVjICpmcykKK3sKKwlzdHJ1Y3QgYmNt YXNwX3ByaXYgKnByaXYgPTNEIGludGYtPnBhcmVudDsKKwlzdHJ1Y3QgZXRodG9vbF9yeF9mbG93 X3NwZWMgKmN1cjsKKwlzaXplX3QgZnNfc2l6ZSA9M0QgMDsKKwlpbnQgaTsKKworCWZvciAoaSA9 M0QgMDsgaSA8IE5VTV9ORVRfRklMVEVSUzsgaSsrKSB7CisJCWlmICghcHJpdi0+bmV0X2ZpbHRl cnNbaV0uY2xhaW1lZCB8fAorCQkgICAgcHJpdi0+bmV0X2ZpbHRlcnNbaV0ucG9ydCAhPTNEIGlu dGYtPnBvcnQpCisJCQljb250aW51ZTsKKworCQljdXIgPTNEICZwcml2LT5uZXRfZmlsdGVyc1tp XS5mczsKKworCQlpZiAoY3VyLT5mbG93X3R5cGUgIT0zRCBmcy0+Zmxvd190eXBlIHx8CisJCSAg ICBjdXItPnJpbmdfY29va2llICE9M0QgZnMtPnJpbmdfY29va2llKQorCQkJY29udGludWU7CisK KwkJc3dpdGNoIChmcy0+Zmxvd190eXBlICYgfihGTE9XX0VYVCB8IEZMT1dfTUFDX0VYVCkpIHsK KwkJY2FzZSBFVEhFUl9GTE9XOgorCQkJZnNfc2l6ZSA9M0Qgc2l6ZW9mKHN0cnVjdCBldGhoZHIp OworCQkJYnJlYWs7CisJCWNhc2UgSVBfVVNFUl9GTE9XOgorCQkJZnNfc2l6ZSA9M0Qgc2l6ZW9m KHN0cnVjdCBldGh0b29sX3VzcmlwNF9zcGVjKTsKKwkJCWJyZWFrOworCQljYXNlIFRDUF9WNl9G TE9XOgorCQljYXNlIFVEUF9WNl9GTE9XOgorCQkJZnNfc2l6ZSA9M0Qgc2l6ZW9mKHN0cnVjdCBl dGh0b29sX3RjcGlwNl9zcGVjKTsKKwkJCWJyZWFrOworCQljYXNlIFRDUF9WNF9GTE9XOgorCQlj YXNlIFVEUF9WNF9GTE9XOgorCQkJZnNfc2l6ZSA9M0Qgc2l6ZW9mKHN0cnVjdCBldGh0b29sX3Rj cGlwNF9zcGVjKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJY29udGludWU7CisJCX0KKwor CQlpZiAobWVtY21wKCZjdXItPmhfdSwgJmZzLT5oX3UsIGZzX3NpemUpIHx8CisJCSAgICBtZW1j bXAoJmN1ci0+bV91LCAmZnMtPm1fdSwgZnNfc2l6ZSkpCisJCQljb250aW51ZTsKKworCQlpZiAo Y3VyLT5mbG93X3R5cGUgJiBGTE9XX0VYVCkgeworCQkJaWYgKGN1ci0+aF9leHQudmxhbl9ldHlw ZSAhPTNEIGZzLT5oX2V4dC52bGFuX2V0eXBlIHx8CisJCQkgICAgY3VyLT5tX2V4dC52bGFuX2V0 eXBlICE9M0QgZnMtPm1fZXh0LnZsYW5fZXR5cGUgfHwKKwkJCSAgICBjdXItPmhfZXh0LnZsYW5f dGNpICE9M0QgZnMtPmhfZXh0LnZsYW5fdGNpIHx8CisJCQkgICAgY3VyLT5tX2V4dC52bGFuX3Rj aSAhPTNEIGZzLT5tX2V4dC52bGFuX3RjaSB8fAorCQkJICAgIGN1ci0+aF9leHQuZGF0YVswXSAh PTNEIGZzLT5oX2V4dC5kYXRhWzBdKQorCQkJCWNvbnRpbnVlOworCQl9CisJCWlmIChjdXItPmZs b3dfdHlwZSAmIEZMT1dfTUFDX0VYVCkgeworCQkJaWYgKG1lbWNtcCgmY3VyLT5oX2V4dC5oX2Rl c3QsCisJCQkJICAgJmZzLT5oX2V4dC5oX2Rlc3QsIEVUSF9BTEVOKSB8fAorCQkJICAgIG1lbWNt cCgmY3VyLT5tX2V4dC5oX2Rlc3QsCisJCQkJICAgJmZzLT5tX2V4dC5oX2Rlc3QsIEVUSF9BTEVO KSkKKwkJCQljb250aW51ZTsKKwkJfQorCisJCXJldHVybiB0cnVlOworCX0KKworCXJldHVybiBm YWxzZTsKK30KKworLyogSWYgbm8gbmV0d29yayBmaWx0ZXIgZm91bmQsIHJldHVybiBvcGVuIGZp bHRlci4KKyAqIElmIG5vIG1vcmUgb3BlbiBmaWx0ZXJzIHJldHVybiBOVUxMCisgKi8KK3N0cnVj dCBiY21hc3BfbmV0X2ZpbHRlciAqYmNtYXNwX25ldGZpbHRfZ2V0X2luaXQoc3RydWN0IGJjbWFz cF9pbnRmICppbnRmLAorCQkJCQkJICBpbnQgbG9jLCBib29sIHdha2VfZmlsdGVyLAorCQkJCQkJ ICBib29sIGluaXQpCit7CisJc3RydWN0IGJjbWFzcF9uZXRfZmlsdGVyICpuZmlsdGVyID0zRCBO VUxMOworCXN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiA9M0QgaW50Zi0+cGFyZW50OworCWludCBp LCBvcGVuX2luZGV4ID0zRCAtMTsKKworCS8qIENoZWNrIHdoZXRoZXIgd2UgZXhjZWVkIHRoZSBm aWx0ZXIgdGFibGUgY2FwYWNpdHkgKi8KKwlpZiAobG9jICE9M0QgUlhfQ0xTX0xPQ19BTlkgJiYg bG9jID49M0QgTlVNX05FVF9GSUxURVJTKQorCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKwor CS8qIElmIHRoZSBmaWx0ZXIgbG9jYXRpb24gaXMgYnVzeSAoYWxyZWFkeSBjbGFpbWVkKSBhbmQg d2UgYXJlIGluaXRpYWxpemk9Cm5nCisJICogdGhlIGZpbHRlciAoaW5zZXJ0aW9uKSwgcmV0dXJu IGEgYnVzeSBlcnJvciBjb2RlLgorCSAqLworCWlmIChsb2MgIT0zRCBSWF9DTFNfTE9DX0FOWSAm JiBpbml0ICYmIHByaXYtPm5ldF9maWx0ZXJzW2xvY10uY2xhaW1lZCkKKwkJcmV0dXJuIEVSUl9Q VFIoLUVCVVNZKTsKKworCS8qIFdlIG5lZWQgdHdvIGZpbHRlcnMgZm9yIHdha2UtdXAsIHNvIHdl IGNhbm5vdCB1c2UgYW4gb2RkIGZpbHRlciAqLworCWlmICh3YWtlX2ZpbHRlciAmJiBsb2MgIT0z RCBSWF9DTFNfTE9DX0FOWSAmJiAobG9jICUgMikpCisJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwp OworCisJLyogSW5pdGlhbGl6ZSB0aGUgbG9vcCBpbmRleCBiYXNlZCBvbiB0aGUgZGVzaXJlZCBs b2NhdGlvbiBvciBmcm9tIDAgKi8KKwlpID0zRCBsb2MgPTNEPTNEIFJYX0NMU19MT0NfQU5ZID8g MCA6IGxvYzsKKworCWZvciAoIDsgaSA8IE5VTV9ORVRfRklMVEVSUzsgaSsrKSB7CisJCS8qIEZv dW5kIG1hdGNoaW5nIG5ldHdvcmsgZmlsdGVyICovCisJCWlmICghaW5pdCAmJgorCQkgICAgcHJp di0+bmV0X2ZpbHRlcnNbaV0uY2xhaW1lZCAmJgorCQkgICAgcHJpdi0+bmV0X2ZpbHRlcnNbaV0u aHdfaW5kZXggPTNEPTNEIGkgJiYKKwkJICAgIHByaXYtPm5ldF9maWx0ZXJzW2ldLnBvcnQgPTNE PTNEIGludGYtPnBvcnQpCisJCQlyZXR1cm4gJnByaXYtPm5ldF9maWx0ZXJzW2ldOworCisJCS8q IElmIHdlIGRvbid0IG5lZWQgYSBuZXcgZmlsdGVyIG9yIG5ldyBmaWx0ZXIgYWxyZWFkeSBmb3Vu ZCAqLworCQlpZiAoIWluaXQgfHwgb3Blbl9pbmRleCA+PTNEIDApCisJCQljb250aW51ZTsKKwor CQkvKiBXYWtlIGZpbHRlciBjb25zbGlkYXRlcyB0d28gZmlsdGVycyB0byBjb3ZlciBtb3JlIGJ5 dGVzCisJCSAqIFdha2UgZmlsdGVyIGlzIG9wZW4gaWYuLi4KKwkJICogMS4gSXQgaXMgYW4gZXZl biBmaWx0ZXIKKwkJICogMi4gVGhlIGN1cnJlbnQgYW5kIG5leHQgZmlsdGVyIGlzIG5vdCBjbGFp bWVkCisJCSAqLworCQlpZiAod2FrZV9maWx0ZXIgJiYgIShpICUgMikgJiYgIXByaXYtPm5ldF9m aWx0ZXJzW2ldLmNsYWltZWQgJiYKKwkJICAgICFwcml2LT5uZXRfZmlsdGVyc1tpICsgMV0uY2xh aW1lZCkKKwkJCW9wZW5faW5kZXggPTNEIGk7CisJCWVsc2UgaWYgKCFwcml2LT5uZXRfZmlsdGVy c1tpXS5jbGFpbWVkKQorCQkJb3Blbl9pbmRleCA9M0QgaTsKKwl9CisKKwlpZiAob3Blbl9pbmRl eCA+PTNEIDApIHsKKwkJbmZpbHRlciA9M0QgJnByaXYtPm5ldF9maWx0ZXJzW29wZW5faW5kZXhd OworCQluZmlsdGVyLT5jbGFpbWVkID0zRCB0cnVlOworCQluZmlsdGVyLT5wb3J0ID0zRCBpbnRm LT5wb3J0OworCQluZmlsdGVyLT5od19pbmRleCA9M0Qgb3Blbl9pbmRleDsKKwl9CisKKwlpZiAo d2FrZV9maWx0ZXIgJiYgb3Blbl9pbmRleCA+PTNEIDApIHsKKwkJLyogQ2xhaW0gbmV4dCBmaWx0 ZXIgKi8KKwkJcHJpdi0+bmV0X2ZpbHRlcnNbb3Blbl9pbmRleCArIDFdLmNsYWltZWQgPTNEIHRy dWU7CisJCXByaXYtPm5ldF9maWx0ZXJzW29wZW5faW5kZXggKyAxXS53YWtlX2ZpbHRlciA9M0Qg dHJ1ZTsKKwkJbmZpbHRlci0+d2FrZV9maWx0ZXIgPTNEIHRydWU7CisJfQorCisJcmV0dXJuIG5m aWx0ZXIgPyBuZmlsdGVyIDogRVJSX1BUUigtRUlOVkFMKTsKK30KKwordm9pZCBiY21hc3BfbmV0 ZmlsdF9yZWxlYXNlKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwKKwkJCSAgICBzdHJ1Y3QgYmNt YXNwX25ldF9maWx0ZXIgKm5maWx0KQoreworCXN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiA9M0Qg aW50Zi0+cGFyZW50OworCisJaWYgKG5maWx0LT53YWtlX2ZpbHRlcikgeworCQltZW1zZXQoJnBy aXYtPm5ldF9maWx0ZXJzW25maWx0LT5od19pbmRleCArIDFdLCAwLAorCQkgICAgICAgc2l6ZW9m KHN0cnVjdCBiY21hc3BfbmV0X2ZpbHRlcikpOworCX0KKworCW1lbXNldChuZmlsdCwgMCwgc2l6 ZW9mKHN0cnVjdCBiY21hc3BfbmV0X2ZpbHRlcikpOworfQorCiBzdGF0aWMgdm9pZCBiY21hc3Bf YWRkcl90b191aW50KHVuc2lnbmVkIGNoYXIgKmFkZHIsIHUzMiAqaGlnaCwgdTMyICpsb3cpCiB7 CiAJKmhpZ2ggPTNEICh1MzIpKGFkZHJbMF0gPDwgOCB8IGFkZHJbMV0pOwpAQCAtMzMwLDYgKzky MSw5IEBAIHN0YXRpYyB2b2lkIGJjbWFzcF9jb3JlX2luaXRfZmlsdGVycyhzdHJ1Y3QgYmNtYXNw X3ByaXY9CiAqcHJpdikKIAkJcHJpdi0+bWRhX2ZpbHRlcnNbaV0uZW4gPTNEIDA7CiAJfQo9MjAK Kwlmb3IgKGkgPTNEIDA7IGkgPCBOVU1fTkVUX0ZJTFRFUlM7IGkrKykKKwkJcnhfZmlsdGVyX2Nv cmVfd2wocHJpdiwgMHgwLCBBU1BfUlhfRklMVEVSX05FVF9DRkcoaSkpOworCiAJLyogVG9wIGxl dmVsIGZpbHRlciBlbmFibGUgYml0IHNob3VsZCBiZSBlbmFibGVkIGF0IGFsbCB0aW1lcywgc2V0 CiAJICogR0VOX1dBS0VfQ0xFQVIgdG8gY2xlYXIgdGhlIG5ldHdvcmsgZmlsdGVyIHdha2UtdXAg d2hpY2ggd291bGQKIAkgKiBvdGhlcndpc2UgYmUgc3RpY2t5CkBAIC02NTUsNiArMTI0OSw3IEBA IHN0YXRpYyBpbnQgYmNtYXNwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJ c3Bpbl9sb2NrX2luaXQoJnByaXYtPm1kYV9sb2NrKTsKIAlzcGluX2xvY2tfaW5pdCgmcHJpdi0+ Y2xrX2xvY2spOwogCW11dGV4X2luaXQoJnByaXYtPndvbF9sb2NrKTsKKwltdXRleF9pbml0KCZw cml2LT5uZXRfbG9jayk7Cj0yMAogCXBkYXRhID0zRCBkZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBk ZXYtPmRldik7CiAJaWYgKCFwZGF0YSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmggYi9kcml2ZXJzL25ldC9ldGhlPQpybmV0L2Jyb2FkY29t L2FzcDIvYmNtYXNwLmgKaW5kZXggNzAzNDQxODEwMWE0Li41MjFjOWI0YjcyODggMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmgKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3AuaApAQCAtMTA2LDYgKzEwNiwx NCBAQAogI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX09GRlNFVF9MM18xKHZhbCkJKCh2YWwp IDw8IDE2KQogI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX09GRlNFVF9MNCh2YWwpCSgodmFs KSA8PCAyNCkKPTIwCitlbnVtIGFzcF9yeF9uZXRfZmlsdGVyX2Jsb2NrIHsKKwlBU1BfUlhfRklM VEVSX05FVF9MMiA9M0QgMCwKKwlBU1BfUlhfRklMVEVSX05FVF9MM18wLAorCUFTUF9SWF9GSUxU RVJfTkVUX0wzXzEsCisJQVNQX1JYX0ZJTFRFUl9ORVRfTDQsCisJQVNQX1JYX0ZJTFRFUl9ORVRf QkxPQ0tfTUFYCit9OworCiAjZGVmaW5lIEFTUF9FRFBLVF9PRkZTRVQJCQkweDljMDAwCiAjZGVm aW5lICBBU1BfRURQS1RfRU5BQkxFCQkJMHg0CiAjZGVmaW5lICAgQVNQX0VEUEtUX0VOQUJMRV9F TgkJCUJJVCgwKQpAQCAtMzA3LDYgKzMxNSwxNyBAQCBzdHJ1Y3QgYmNtYXNwX2ludGYgewogCXVu c2lnbmVkIGludAkJd29sX2lycV9lbmFibGVkOjE7CiB9Owo9MjAKKyNkZWZpbmUgTlVNX05FVF9G SUxURVJTCQkJCTMyCitzdHJ1Y3QgYmNtYXNwX25ldF9maWx0ZXIgeworCXN0cnVjdCBldGh0b29s X3J4X2Zsb3dfc3BlYwlmczsKKworCWJvb2wJCQkJY2xhaW1lZDsKKwlib29sCQkJCXdha2VfZmls dGVyOworCisJaW50CQkJCXBvcnQ7CisJdW5zaWduZWQgaW50CQkJaHdfaW5kZXg7Cit9OworCiAj ZGVmaW5lIE5VTV9NREFfRklMVEVSUwkJCQkzMgogc3RydWN0IGJjbWFzcF9tZGFfZmlsdGVyIHsK IAkvKiBDdXJyZW50IG93bmVyIG9mIHRoaXMgZmlsdGVyICovCkBAIC0zNjIsNiArMzgxLDExIEBA IHN0cnVjdCBiY21hc3BfcHJpdiB7Cj0yMAogCS8qIFByb3RlY3RzIGFjY2Vzc2VzIHRvIEFTUF9D VFJMX0NMT0NLX0NUUkwgKi8KIAlzcGlubG9ja190CQkJY2xrX2xvY2s7CisKKwlzdHJ1Y3QgYmNt YXNwX25ldF9maWx0ZXIJbmV0X2ZpbHRlcnNbTlVNX05FVF9GSUxURVJTXTsKKworCS8qIE5ldHdv cmsgZmlsdGVyIGxvY2sgKi8KKwlzdHJ1Y3QgbXV0ZXgJCQluZXRfbG9jazsKIH07Cj0yMAogc3Rh dGljIGlubGluZSB1bnNpZ25lZCBsb25nIGJjbWFzcF9pbnRmX3J4X2Rlc2NfcmVhZChzdHJ1Y3Qg YmNtYXNwX2ludGYgKmk9Cm50ZikKQEAgLTUxOSw0ICs1NDMsMjAgQEAgdm9pZCBiY21hc3BfZGlz YWJsZV9hbGxfZmlsdGVycyhzdHJ1Y3QgYmNtYXNwX2ludGYgKmluPQp0Zik7Cj0yMAogdm9pZCBi Y21hc3BfY29yZV9jbG9ja19zZXRfaW50ZihzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGJvb2wg ZW4pOwo9MjAKK3N0cnVjdCBiY21hc3BfbmV0X2ZpbHRlciAqYmNtYXNwX25ldGZpbHRfZ2V0X2lu aXQoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLAorCQkJCQkJICBpbnQgbG9jLCBib29sIHdha2Vf ZmlsdGVyLAorCQkJCQkJICBib29sIGluaXQpOworCitib29sIGJjbWFzcF9uZXRmaWx0X2NoZWNr X2R1cChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsCisJCQkgICAgICBzdHJ1Y3QgZXRodG9vbF9y eF9mbG93X3NwZWMgKmZzKTsKKwordm9pZCBiY21hc3BfbmV0ZmlsdF9yZWxlYXNlKHN0cnVjdCBi Y21hc3BfaW50ZiAqaW50ZiwKKwkJCSAgICBzdHJ1Y3QgYmNtYXNwX25ldF9maWx0ZXIgKm5maWx0 KTsKKworaW50IGJjbWFzcF9uZXRmaWx0X2dldF9hY3RpdmUoc3RydWN0IGJjbWFzcF9pbnRmICpp bnRmKTsKKwordm9pZCBiY21hc3BfbmV0ZmlsdF9nZXRfYWxsX2FjdGl2ZShzdHJ1Y3QgYmNtYXNw X2ludGYgKmludGYsIHUzMiAqcnVsZV9sb2M9CnMsCisJCQkJICAgdTMyICpydWxlX2NudCk7CisK K3ZvaWQgYmNtYXNwX25ldGZpbHRfc3VzcGVuZChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpOwog I2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2Jj bWFzcF9ldGh0b29sLmMgYi9kcml2ZXJzLz0KbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNt YXNwX2V0aHRvb2wuYwppbmRleCBhZTI0YTFmNzRkNDkuLmVkZGQxYzQzZjAwZSAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfZXRodG9vbC5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2V0aHRvb2wuYwpA QCAtMzAsNyArMzAsNyBAQCBzdGF0aWMgdm9pZCBiY21hc3Bfc2V0X21zZ2xldmVsKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsIHU9CjMyIGxldmVsKQogCWludGYtPm1zZ19lbmFibGUgPTNEIGxldmVs OwogfQo9MjAKLSNkZWZpbmUgQkNNQVNQX1NVUFBPUlRFRF9XQUtFICAgKFdBS0VfTUFHSUMgfCBX QUtFX01BR0lDU0VDVVJFKQorI2RlZmluZSBCQ01BU1BfU1VQUE9SVEVEX1dBS0UgICAoV0FLRV9N QUdJQyB8IFdBS0VfTUFHSUNTRUNVUkUgfCBXQUtFX0ZJTFQ9CkVSKQogc3RhdGljIHZvaWQgYmNt YXNwX2dldF93b2woc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGV0aHRvb2xfd29saW5m byA9Cip3b2wpCiB7CiAJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihk ZXYpOwpAQCAtNjQsNiArNjQsMTMzIEBAIHN0YXRpYyBpbnQgYmNtYXNwX3NldF93b2woc3RydWN0 IG5ldF9kZXZpY2UgKmRldiwgc3RydWM9CnQgZXRodG9vbF93b2xpbmZvICp3b2wpCiAJcmV0dXJu IDA7CiB9Cj0yMAorc3RhdGljIGludCBiY21hc3BfZmxvd19pbnNlcnQoc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwgc3RydWN0IGV0aHRvb2xfcnhuZmM9CiAqY21kKQoreworCXN0cnVjdCBiY21hc3Bf aW50ZiAqaW50ZiA9M0QgbmV0ZGV2X3ByaXYoZGV2KTsKKwlzdHJ1Y3QgYmNtYXNwX25ldF9maWx0 ZXIgKm5maWx0ZXI7CisJdTMyIGxvYyA9M0QgY21kLT5mcy5sb2NhdGlvbjsKKwlib29sIHdha2Ug PTNEIGZhbHNlOworCisJaWYgKGNtZC0+ZnMucmluZ19jb29raWUgPTNEPTNEIFJYX0NMU19GTE9X X1dBS0UpCisJCXdha2UgPTNEIHRydWU7CisKKwkvKiBDdXJyZW50bHkgb25seSBzdXBwb3J0cyBX QUtFIGZpbHRlcnMgKi8KKwlpZiAoIXdha2UpCisJCXJldHVybiAtRU9QTk9UU1VQUDsKKworCXN3 aXRjaCAoY21kLT5mcy5mbG93X3R5cGUgJiB+KEZMT1dfRVhUIHwgRkxPV19NQUNfRVhUKSkgewor CWNhc2UgRVRIRVJfRkxPVzoKKwljYXNlIElQX1VTRVJfRkxPVzoKKwljYXNlIFRDUF9WNF9GTE9X OgorCWNhc2UgVURQX1Y0X0ZMT1c6CisJY2FzZSBUQ1BfVjZfRkxPVzoKKwljYXNlIFVEUF9WNl9G TE9XOgorCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJfQorCisJ LyogQ2hlY2sgaWYgZmlsdGVyIGFscmVhZHkgZXhpc3RzICovCisJaWYgKGJjbWFzcF9uZXRmaWx0 X2NoZWNrX2R1cChpbnRmLCAmY21kLT5mcykpCisJCXJldHVybiAtRUlOVkFMOworCisJbmZpbHRl ciA9M0QgYmNtYXNwX25ldGZpbHRfZ2V0X2luaXQoaW50ZiwgbG9jLCB3YWtlLCB0cnVlKTsKKwlp ZiAoSVNfRVJSKG5maWx0ZXIpKQorCQlyZXR1cm4gUFRSX0VSUihuZmlsdGVyKTsKKworCS8qIFJl dHVybiB0aGUgbG9jYXRpb24gd2hlcmUgd2UgZGlkIGluc2VydCB0aGUgZmlsdGVyICovCisJY21k LT5mcy5sb2NhdGlvbiA9M0QgbmZpbHRlci0+aHdfaW5kZXg7CisJbWVtY3B5KCZuZmlsdGVyLT5m cywgJmNtZC0+ZnMsIHNpemVvZihzdHJ1Y3QgZXRodG9vbF9yeF9mbG93X3NwZWMpKTsKKworCS8q IFNpbmNlIHdlIG9ubHkgc3VwcG9ydCB3YWtlIGZpbHRlcnMsIGRlZmVyIHJlZ2lzdGVyIHByb2dy YW1taW5nIHRpbGwKKwkgKiBzdXNwZW5kIHRpbWUuCisJICovCisJcmV0dXJuIDA7Cit9CisKK3N0 YXRpYyBpbnQgYmNtYXNwX2Zsb3dfZGVsZXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVj dCBldGh0b29sX3J4bmZjPQogKmNtZCkKK3sKKwlzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYgPTNE IG5ldGRldl9wcml2KGRldik7CisJc3RydWN0IGJjbWFzcF9uZXRfZmlsdGVyICpuZmlsdGVyOwor CisJbmZpbHRlciA9M0QgYmNtYXNwX25ldGZpbHRfZ2V0X2luaXQoaW50ZiwgY21kLT5mcy5sb2Nh dGlvbiwgZmFsc2UsIGZhbHNlKTsKKwlpZiAoSVNfRVJSKG5maWx0ZXIpKQorCQlyZXR1cm4gUFRS X0VSUihuZmlsdGVyKTsKKworCWJjbWFzcF9uZXRmaWx0X3JlbGVhc2UoaW50ZiwgbmZpbHRlcik7 CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiY21hc3BfZmxvd19nZXQoc3RydWN0IGJj bWFzcF9pbnRmICppbnRmLCBzdHJ1Y3QgZXRodG9vbF9yeG5mYyA9CipjbWQpCit7CisJc3RydWN0 IGJjbWFzcF9uZXRfZmlsdGVyICpuZmlsdGVyOworCisJbmZpbHRlciA9M0QgYmNtYXNwX25ldGZp bHRfZ2V0X2luaXQoaW50ZiwgY21kLT5mcy5sb2NhdGlvbiwgZmFsc2UsIGZhbHNlKTsKKwlpZiAo SVNfRVJSKG5maWx0ZXIpKQorCQlyZXR1cm4gUFRSX0VSUihuZmlsdGVyKTsKKworCW1lbWNweSgm Y21kLT5mcywgJm5maWx0ZXItPmZzLCBzaXplb2YobmZpbHRlci0+ZnMpKTsKKworCWNtZC0+ZGF0 YSA9M0QgTlVNX05FVF9GSUxURVJTOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYmNt YXNwX3NldF9yeG5mYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZXRodG9vbF9yeG5m YyAqPQpjbWQpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihk ZXYpOworCWludCByZXQgPTNEIC1FT1BOT1RTVVBQOworCisJbXV0ZXhfbG9jaygmaW50Zi0+cGFy ZW50LT5uZXRfbG9jayk7CisKKwlzd2l0Y2ggKGNtZC0+Y21kKSB7CisJY2FzZSBFVEhUT09MX1NS WENMU1JMSU5TOgorCQlyZXQgPTNEIGJjbWFzcF9mbG93X2luc2VydChkZXYsIGNtZCk7CisJCWJy ZWFrOworCWNhc2UgRVRIVE9PTF9TUlhDTFNSTERFTDoKKwkJcmV0ID0zRCBiY21hc3BfZmxvd19k ZWxldGUoZGV2LCBjbWQpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisKKwlt dXRleF91bmxvY2soJmludGYtPnBhcmVudC0+bmV0X2xvY2spOworCisJcmV0dXJuIHJldDsKK30K Kworc3RhdGljIGludCBiY21hc3BfZ2V0X3J4bmZjKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0 cnVjdCBldGh0b29sX3J4bmZjICo9CmNtZCwKKwkJCSAgICB1MzIgKnJ1bGVfbG9jcykKK3sKKwlz dHJ1Y3QgYmNtYXNwX2ludGYgKmludGYgPTNEIG5ldGRldl9wcml2KGRldik7CisJaW50IGVyciA9 M0QgMDsKKworCW11dGV4X2xvY2soJmludGYtPnBhcmVudC0+bmV0X2xvY2spOworCisJc3dpdGNo IChjbWQtPmNtZCkgeworCWNhc2UgRVRIVE9PTF9HUlhDTFNSTENOVDoKKwkJY21kLT5ydWxlX2Nu dCA9M0QgYmNtYXNwX25ldGZpbHRfZ2V0X2FjdGl2ZShpbnRmKTsKKwkJLyogV2Ugc3VwcG9ydCBz cGVjaWZ5aW5nIHJ1bGUgbG9jYXRpb25zICovCisJCWNtZC0+ZGF0YSB8PTNEIFJYX0NMU19MT0Nf U1BFQ0lBTDsKKwkJYnJlYWs7CisJY2FzZSBFVEhUT09MX0dSWENMU1JVTEU6CisJCWVyciA9M0Qg YmNtYXNwX2Zsb3dfZ2V0KGludGYsIGNtZCk7CisJCWJyZWFrOworCWNhc2UgRVRIVE9PTF9HUlhD TFNSTEFMTDoKKwkJYmNtYXNwX25ldGZpbHRfZ2V0X2FsbF9hY3RpdmUoaW50ZiwgcnVsZV9sb2Nz LCAmY21kLT5ydWxlX2NudCk7CisJCWNtZC0+ZGF0YSA9M0QgTlVNX05FVF9GSUxURVJTOworCQli cmVhazsKKwlkZWZhdWx0OgorCQllcnIgPTNEIC1FT1BOT1RTVVBQOworCQlicmVhazsKKwl9CisK KwltdXRleF91bmxvY2soJmludGYtPnBhcmVudC0+bmV0X2xvY2spOworCisJcmV0dXJuIGVycjsK K30KKwogY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIGJjbWFzcF9ldGh0b29sX29wcyA9M0Qgewog CS5nZXRfZHJ2aW5mbwkJPTNEIGJjbWFzcF9nZXRfZHJ2aW5mbywKIAkuZ2V0X2xpbmsJCT0zRCBl dGh0b29sX29wX2dldF9saW5rLApAQCAtNzMsNCArMjAwLDYgQEAgY29uc3Qgc3RydWN0IGV0aHRv b2xfb3BzIGJjbWFzcF9ldGh0b29sX29wcyA9M0QgewogCS5zZXRfbXNnbGV2ZWwJCT0zRCBiY21h c3Bfc2V0X21zZ2xldmVsLAogCS5nZXRfd29sCQk9M0QgYmNtYXNwX2dldF93b2wsCiAJLnNldF93 b2wJCT0zRCBiY21hc3Bfc2V0X3dvbCwKKwkuZ2V0X3J4bmZjCQk9M0QgYmNtYXNwX2dldF9yeG5m YywKKwkuc2V0X3J4bmZjCQk9M0QgYmNtYXNwX3NldF9yeG5mYywKIH07CmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmLmMgYi9kcml2ZXJz L25ldD0KL2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2ludGYuYwppbmRleCAzNWI5ZDYz OTBkYjMuLjBjNTlmNDAyNTk2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJv YWRjb20vYXNwMi9iY21hc3BfaW50Zi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2FzcDIvYmNtYXNwX2ludGYuYwpAQCAtMTMyMCw2ICsxMzIwLDkgQEAgc3RhdGljIHZvaWQg YmNtYXNwX3N1c3BlbmRfdG9fd29sKHN0cnVjdCBiY21hc3BfaW50ZiA9CippbnRmKQogCX0KIAl1 bWFjX3dsKGludGYsIHJlZywgVU1DX01QRF9DVFJMKTsKPTIwCisJaWYgKGludGYtPndvbG9wdHMg JiBXQUtFX0ZJTFRFUikKKwkJYmNtYXNwX25ldGZpbHRfc3VzcGVuZChpbnRmKTsKKwogCS8qIFVu aU1BQyByZWNlaXZlIG5lZWRzIHRvIGJlIHR1cm5lZCBvbiAqLwogCXVtYWNfZW5hYmxlX3NldChp bnRmLCBVTUNfQ01EX1JYX0VOLCAxKTsKPTIwCi0tPTIwCjIuNy40Cg== --0000000000007b71c905fe1e808a Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIGmu35/rhuvbXNhp5JaKUYiy0SpdxQUdkWus ran83m4rMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNDIy MzA0MVowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQB56ieIcE0mGD+zlG4I7AOTZXqM9ivmJPp5GH8d/EgR64fj8FjYHPIj z9lOGMcKqyqYUEDG0tRb8Rgma5DD4WUi2uEm3iDjOxd+/WNoJrysPZ4fZIilE10O2iAd3OF8aeGy lCJP7yljS4Wo95m4kqeyKmT+IVuWlQEUsk+3mVc87OftujmVDS+xY9tt4XctkKmTIVaQbhMbPFOr 4QdnmYUraMhov7IZ2SVweHyBL4UQv129X0/tAz3QuYckfjFW0cljz5IfkyZiFXfRFqILwODD+y0R KnFhLMoOOWKtJ5BepzNIjC50azYSjCLxPeVYEc0v06hkloO+LTYdN+K5DHAm --0000000000007b71c905fe1e808a-- From nobody Sat Feb 7 11:05:16 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A3933EB64D8 for ; Wed, 14 Jun 2023 22:31:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237237AbjFNWbG (ORCPT ); Wed, 14 Jun 2023 18:31:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33002 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236786AbjFNWaw (ORCPT ); Wed, 14 Jun 2023 18:30:52 -0400 Received: from mail-qt1-x82f.google.com (mail-qt1-x82f.google.com [IPv6:2607:f8b0:4864:20::82f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B1A382719 for ; Wed, 14 Jun 2023 15:30:44 -0700 (PDT) Received: by mail-qt1-x82f.google.com with SMTP id d75a77b69052e-3f9c60bc99cso24110471cf.0 for ; Wed, 14 Jun 2023 15:30:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686781844; x=1689373844; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=kJLqQ9FhFWwuk8LJBp0AXYTAl4Md/QWMcj5Kn5SR6us=; b=AkRKxImzEoi1tHpHkeV+MbZwMg1Ng53zIzAZxcLr+1iTTnoiguo86d8WnHga8usaJR TCRgmMNh1kRgywL58yDtb7SdqDyYnYng1Bqe+nPW9U2Xt4JlR+oZhl9RA0LGCpfrPNE5 Gi6iVSBAoYHidSJiQ/gqYeG4pySRHxJwoMjDM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686781844; x=1689373844; h=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=kJLqQ9FhFWwuk8LJBp0AXYTAl4Md/QWMcj5Kn5SR6us=; b=IwhHaQujYb+fqCi5n2InchW1rFcygK62zgY8ukj/2bQIavqsQMR0R49nCsMHUjr5gb Wx9+gV5NL2eUpndBoMkna8g4rH+U+U0Uv/N0Twd+4BJeInDCUAvkZgFnYTVGvnBIxisx AY31Aoe2YQC6+2ikCqwsH5R5Tb1g/axneuV1YOqVKggFoDVcULz5m3r3kW5ZdpYRZj47 VODS8VAvds1g+R/mGGAlau0mbyUIiQLLHs8cdcLUtl8dCuycMwRRZaVOk9C9rzR4vWPG l+/yDd+9oifL6rpPB6qNt+Se/f1d4arBon8P3HFb5ruVbBLpbKrEP/Cjp+8Xf0pleXtn WCMA== X-Gm-Message-State: AC+VfDzlasIiQQjZ+VMTxVSrbs8LuvPAmrkQZm3G3rX0ZVKJFwG5nppV rOuK5eWZW3jRI05oogmDlSkjMw== X-Google-Smtp-Source: ACHHUZ7SV75GkLw3wtTEZBl/RZmbx73Xslg4Ndnbxmq0XugPQHqeKusZWpsY7uDrLA0odOe4MP80OQ== X-Received: by 2002:a05:622a:289:b0:3dc:fa58:97fd with SMTP id z9-20020a05622a028900b003dcfa5897fdmr4198619qtw.25.1686781843770; Wed, 14 Jun 2023 15:30:43 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d3-20020ac85443000000b003ef2db16e72sm5419360qtq.94.2023.06.14.15.30.41 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Jun 2023 15:30:43 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, christian.koenig@amd.com, simon.horman@corigine.com, Justin Chen Subject: [PATCH net-next v7 06/11] net: bcmasp: Add support for eee mode Date: Wed, 14 Jun 2023 15:30:15 -0700 Message-Id: <1686781820-832-7-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> References: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000a0adbc05fe1e803e" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --000000000000a0adbc05fe1e803e MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIGVlZSBtb2RlLgoKU2lnbmVkLW9mZi1ieTogSnVzdGluIENoZW4gPGp1 c3Rpbi5jaGVuQGJyb2FkY29tLmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9hc3AyL2JjbWFzcC5oICAgICAgICB8ICA0ICsrCiAuLi4vbmV0L2V0aGVybmV0L2Jyb2FkY29t L2FzcDIvYmNtYXNwX2V0aHRvb2wuYyAgICB8IDYxICsrKysrKysrKysrKysrKysrKz0KKysrKwog ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zi5jICAgfCAgNiAr KysKIDMgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmggYi9kcml2ZXJzL25ldC9ldGhl PQpybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmgKaW5kZXggNTIxYzliNGI3Mjg4Li43ZGM1OTc2 NThlZDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNt YXNwLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3AuaApA QCAtMzEzLDYgKzMxMyw4IEBAIHN0cnVjdCBiY21hc3BfaW50ZiB7CiAJLyogVXNlZCBpZiBwZXIg aW50ZiB3b2wgaXJxICovCiAJaW50CQkJd29sX2lycTsKIAl1bnNpZ25lZCBpbnQJCXdvbF9pcnFf ZW5hYmxlZDoxOworCisJc3RydWN0IGV0aHRvb2xfZWVlCWVlZTsKIH07Cj0yMAogI2RlZmluZSBO VU1fTkVUX0ZJTFRFUlMJCQkJMzIKQEAgLTU1OSw0ICs1NjEsNiBAQCB2b2lkIGJjbWFzcF9uZXRm aWx0X2dldF9hbGxfYWN0aXZlKHN0cnVjdCBiY21hc3BfaW50ZiAqPQppbnRmLCB1MzIgKnJ1bGVf bG9jcywKIAkJCQkgICB1MzIgKnJ1bGVfY250KTsKPTIwCiB2b2lkIGJjbWFzcF9uZXRmaWx0X3N1 c3BlbmQoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmKTsKKwordm9pZCBiY21hc3BfZWVlX2VuYWJs ZV9zZXQoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBib29sIGVuYWJsZSk7CiAjZW5kaWYKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2V0aHRv b2wuYyBiL2RyaXZlcnMvPQpuZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfZXRodG9v bC5jCmluZGV4IGVkZGQxYzQzZjAwZS4uMWU5NmE2OTA0M2YzIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29sLmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfZXRodG9vbC5jCkBAIC0xOTEsNiAr MTkxLDY1IEBAIHN0YXRpYyBpbnQgYmNtYXNwX2dldF9yeG5mYyhzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2LCBzdD0KcnVjdCBldGh0b29sX3J4bmZjICpjbWQsCiAJcmV0dXJuIGVycjsKIH0KPTIwCit2 b2lkIGJjbWFzcF9lZWVfZW5hYmxlX3NldChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGJvb2wg ZW5hYmxlKQoreworCXUzMiByZWc7CisKKwlyZWcgPTNEIHVtYWNfcmwoaW50ZiwgVU1DX0VFRV9D VFJMKTsKKwlpZiAoZW5hYmxlKQorCQlyZWcgfD0zRCBFRUVfRU47CisJZWxzZQorCQlyZWcgJj0z RCB+RUVFX0VOOworCXVtYWNfd2woaW50ZiwgcmVnLCBVTUNfRUVFX0NUUkwpOworCisJaW50Zi0+ ZWVlLmVlZV9lbmFibGVkID0zRCBlbmFibGU7CisJaW50Zi0+ZWVlLmVlZV9hY3RpdmUgPTNEIGVu YWJsZTsKK30KKworc3RhdGljIGludCBiY21hc3BfZ2V0X2VlZShzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2LCBzdHJ1Y3QgZXRodG9vbF9lZWUgKmUpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRm ID0zRCBuZXRkZXZfcHJpdihkZXYpOworCXN0cnVjdCBldGh0b29sX2VlZSAqcCA9M0QgJmludGYt PmVlZTsKKworCWlmICghZGV2LT5waHlkZXYpCisJCXJldHVybiAtRU5PREVWOworCisJZS0+ZWVl X2VuYWJsZWQgPTNEIHAtPmVlZV9lbmFibGVkOworCWUtPmVlZV9hY3RpdmUgPTNEIHAtPmVlZV9h Y3RpdmU7CisJZS0+dHhfbHBpX2VuYWJsZWQgPTNEIHAtPnR4X2xwaV9lbmFibGVkOworCWUtPnR4 X2xwaV90aW1lciA9M0QgdW1hY19ybChpbnRmLCBVTUNfRUVFX0xQSV9USU1FUik7CisKKwlyZXR1 cm4gcGh5X2V0aHRvb2xfZ2V0X2VlZShkZXYtPnBoeWRldiwgZSk7Cit9CisKK3N0YXRpYyBpbnQg YmNtYXNwX3NldF9lZWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGV0aHRvb2xfZWVl ICplKQoreworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0QgbmV0ZGV2X3ByaXYoZGV2KTsK KwlzdHJ1Y3QgZXRodG9vbF9lZWUgKnAgPTNEICZpbnRmLT5lZWU7CisJaW50IHJldDsKKworCWlm ICghZGV2LT5waHlkZXYpCisJCXJldHVybiAtRU5PREVWOworCisJaWYgKCFwLT5lZWVfZW5hYmxl ZCkgeworCQliY21hc3BfZWVlX2VuYWJsZV9zZXQoaW50ZiwgZmFsc2UpOworCX0gZWxzZSB7CisJ CXJldCA9M0QgcGh5X2luaXRfZWVlKGRldi0+cGh5ZGV2LCAwKTsKKwkJaWYgKHJldCkgeworCQkJ bmV0aWZfZXJyKGludGYsIGh3LCBkZXYsCisJCQkJICAiRUVFIGluaXRpYWxpemF0aW9uIGZhaWxl ZDogJWRcbiIsIHJldCk7CisJCQlyZXR1cm4gcmV0OworCQl9CisKKwkJdW1hY193bChpbnRmLCBl LT50eF9scGlfdGltZXIsIFVNQ19FRUVfTFBJX1RJTUVSKTsKKwkJaW50Zi0+ZWVlLmVlZV9hY3Rp dmUgPTNEIHJldCA+PTNEIDA7CisJCWludGYtPmVlZS50eF9scGlfZW5hYmxlZCA9M0QgZS0+dHhf bHBpX2VuYWJsZWQ7CisJCWJjbWFzcF9lZWVfZW5hYmxlX3NldChpbnRmLCB0cnVlKTsKKwl9CisK KwlyZXR1cm4gcGh5X2V0aHRvb2xfc2V0X2VlZShkZXYtPnBoeWRldiwgZSk7Cit9CisKIGNvbnN0 IHN0cnVjdCBldGh0b29sX29wcyBiY21hc3BfZXRodG9vbF9vcHMgPTNEIHsKIAkuZ2V0X2Rydmlu Zm8JCT0zRCBiY21hc3BfZ2V0X2RydmluZm8sCiAJLmdldF9saW5rCQk9M0QgZXRodG9vbF9vcF9n ZXRfbGluaywKQEAgLTIwMiw0ICsyNjEsNiBAQCBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgYmNt YXNwX2V0aHRvb2xfb3BzID0zRCB7CiAJLnNldF93b2wJCT0zRCBiY21hc3Bfc2V0X3dvbCwKIAku Z2V0X3J4bmZjCQk9M0QgYmNtYXNwX2dldF9yeG5mYywKIAkuc2V0X3J4bmZjCQk9M0QgYmNtYXNw X3NldF9yeG5mYywKKwkuc2V0X2VlZQkJPTNEIGJjbWFzcF9zZXRfZWVlLAorCS5nZXRfZWVlCQk9 M0QgYmNtYXNwX2dldF9lZWUsCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv YnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zi5jIGIvZHJpdmVycy9uZXQ9Ci9ldGhlcm5ldC9icm9h ZGNvbS9hc3AyL2JjbWFzcF9pbnRmLmMKaW5kZXggMGM1OWY0MDI1OTY1Li44OTljYjA2YTNmZGUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2lu dGYuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRm LmMKQEAgLTY1Niw2ICs2NTYsOSBAQCBzdGF0aWMgdm9pZCBiY21hc3BfYWRqX2xpbmsoc3RydWN0 IG5ldF9kZXZpY2UgKmRldikKIAkJCVVNQ19DTURfVFhfUEFVU0VfSUdOT1JFKTsKIAkJcmVnIHw9 M0QgY21kX2JpdHM7CiAJCXVtYWNfd2woaW50ZiwgcmVnLCBVTUNfQ01EKTsKKworCQlpbnRmLT5l ZWUuZWVlX2FjdGl2ZSA9M0QgcGh5X2luaXRfZWVlKHBoeWRldiwgMCkgPj0zRCAwOworCQliY21h c3BfZWVlX2VuYWJsZV9zZXQoaW50ZiwgaW50Zi0+ZWVlLmVlZV9hY3RpdmUpOwogCX0KPTIwCiAJ cmVnID0zRCByZ21paV9ybChpbnRmLCBSR01JSV9PT0JfQ05UUkwpOwpAQCAtMTQwNyw2ICsxNDEw LDkgQEAgaW50IGJjbWFzcF9pbnRlcmZhY2VfcmVzdW1lKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50 ZikKPTIwCiAJYmNtYXNwX3Jlc3VtZV9mcm9tX3dvbChpbnRmKTsKPTIwCisJaWYgKGludGYtPmVl ZS5lZWVfZW5hYmxlZCkKKwkJYmNtYXNwX2VlZV9lbmFibGVfc2V0KGludGYsIHRydWUpOworCiAJ bmV0aWZfZGV2aWNlX2F0dGFjaChkZXYpOwo9MjAKIAlyZXR1cm4gMDsKLS09MjAKMi43LjQK --000000000000a0adbc05fe1e803e Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEILVDPOjOLxLXeD2UsRda+Ok4yg2jKdEeIbvl htD4oHBuMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNDIy MzA0NFowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQBDjePsIvt+nWvEzQ7AxsKJmpMGz3EwwtR4LF0ODQiiKAN2EqDuKvhu L9xHy1k4Q3Ck3DqcUupOkZMVpRCuMEOarpa779AJ+PqKGvkPXdoiRj7ArTtECe9N+lsXLjt6sop7 0JNqZUhfGW63AZCEyWAkc8nHATaHBpMf16r9qe9a5fHFicQ2CrNhH0HvmcvpKnYX+mO/rtp7cZyF ytxAU8AA0YxEUGw4I1UZsGVN+7fZy0yomHcpOhVljQSWSOEISE7gU//KC1IYfUZ/TvvwGURBoUwE ipzh0hDNfILs1ASFSgDF2QSw+fAH3N5iBxPImSIhTN5z/rZtpNMRxIpsx9PZ --000000000000a0adbc05fe1e803e-- From nobody Sat Feb 7 11:05:16 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 32852EB64D9 for ; Wed, 14 Jun 2023 22:31:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239824AbjFNWb2 (ORCPT ); Wed, 14 Jun 2023 18:31:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33372 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237135AbjFNWbD (ORCPT ); Wed, 14 Jun 2023 18:31:03 -0400 Received: from mail-qt1-x835.google.com (mail-qt1-x835.google.com [IPv6:2607:f8b0:4864:20::835]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AA09326A0 for ; Wed, 14 Jun 2023 15:30:47 -0700 (PDT) Received: by mail-qt1-x835.google.com with SMTP id d75a77b69052e-3f9e33a3d3fso24400871cf.1 for ; Wed, 14 Jun 2023 15:30:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686781846; x=1689373846; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=Uzm3WsqgOHSMmQ3hrnEB83TeL0uCoHmHSMRZzkp3XxE=; b=LIuw1MuvUNyh1f7XksAtKgAwgAHmqFdtjHniE8ufQuhRx048PyS6Nxj8fnbLQsxorw pf/hWndIhStEGcnYWQfRnyF4LD3EFhsAMUPaew1B+pReCH8Gr01BmkY9rkSGO5zG4pR0 2uI5UBDdYpmYvDPt+iFeupdqA1k8DQ8YkLvkU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686781846; x=1689373846; h=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=Uzm3WsqgOHSMmQ3hrnEB83TeL0uCoHmHSMRZzkp3XxE=; b=UpGagZ9boUkSLlzuiYSk5WFZaZ0drLEt4+a6zeUBKlUqVobX5HaPg3IQTKiMySz3b3 vpKAsxJ6BmkHM+TAMNeJqoiYVOOmOCZ37132wKGsw4leapDqnfX+MSvmcfKliyolYHzp CYEt+nLwBlSNc8kGyjID6/LyybkQw4OBWqI0nvn3Gm6tO1mO1olgbyxbHlLVVaOzqs+W AkbEIosWBu1T0R7DAG+JhRVeC45dQGHln3gvF4Pk45AzjPLMOoDpsLMc/em+Q+GoPX3q 973wnLNNjw4Os1Bk95TcEF9dacWZ+8oyms9cvK/FrEErqJGRiMXMUW7ikuecw5EUKMgJ 5sFg== X-Gm-Message-State: AC+VfDznTvNWfDGk9T0K08hxR1A+pRHJIOiFtGDEa7fdm/xkRPg0Si+r 7fwSECfYDjIJWF7fbuPuBRuUauc0n0Q37hdnKZVQgQ== X-Google-Smtp-Source: ACHHUZ6sHEmCPeDGmaMMLsxVNAtumV0la2BZpd26m3iGByrORCEZQfLUGkpF6zsQyulPU1cD32CEJQ== X-Received: by 2002:a05:622a:1a8a:b0:3f5:2faf:7917 with SMTP id s10-20020a05622a1a8a00b003f52faf7917mr4220057qtc.9.1686781846338; Wed, 14 Jun 2023 15:30:46 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d3-20020ac85443000000b003ef2db16e72sm5419360qtq.94.2023.06.14.15.30.43 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Jun 2023 15:30:46 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, christian.koenig@amd.com, simon.horman@corigine.com, Justin Chen Subject: [PATCH net-next v7 07/11] net: bcmasp: Add support for ethtool standard stats Date: Wed, 14 Jun 2023 15:30:16 -0700 Message-Id: <1686781820-832-8-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> References: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000c8d1be05fe1e804c" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --000000000000c8d1be05fe1e804c MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIGV0aF9tYWNfc3RhdHMsIHJtb25fc3RhdHMsIGFuZCBldGhfY3RybF9z dGF0cy4KClNpZ25lZC1vZmYtYnk6IEp1c3RpbiBDaGVuIDxqdXN0aW4uY2hlbkBicm9hZGNvbS5j b20+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29sLmMg ICAgfCA3NyArKysrKysrKysrKysrKysrKys9CisrKysKIC4uLi9uZXQvZXRoZXJuZXQvYnJvYWRj b20vYXNwMi9iY21hc3BfaW50Zl9kZWZzLmggIHwgNjMgKysrKysrKysrKysrKysrKystCiAyIGZp bGVzIGNoYW5nZWQsIDEzOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfZXRodG9vbC5jIGIv ZHJpdmVycy89Cm5ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29sLmMKaW5k ZXggMWU5NmE2OTA0M2YzLi41OWQ4NTNjMjI5M2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2V0aHRvb2wuYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29sLmMKQEAgLTI1MCw2ICsyNTAsODAg QEAgc3RhdGljIGludCBiY21hc3Bfc2V0X2VlZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1 PQpjdCBldGh0b29sX2VlZSAqZSkKIAlyZXR1cm4gcGh5X2V0aHRvb2xfc2V0X2VlZShkZXYtPnBo eWRldiwgZSk7CiB9Cj0yMAorc3RhdGljIHZvaWQgYmNtYXNwX2dldF9ldGhfbWFjX3N0YXRzKHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYsCisJCQkJICAgICBzdHJ1Y3QgZXRodG9vbF9ldGhfbWFjX3N0 YXRzICptYWNfc3RhdHMpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZf cHJpdihkZXYpOworCisJbWFjX3N0YXRzLT5GcmFtZXNUcmFuc21pdHRlZE9LID0zRCB1bWFjX3Js KGludGYsIFVNQ19HVFBPSyk7CisJbWFjX3N0YXRzLT5TaW5nbGVDb2xsaXNpb25GcmFtZXMgPTNE IHVtYWNfcmwoaW50ZiwgVU1DX0dUU0NMKTsKKwltYWNfc3RhdHMtPk11bHRpcGxlQ29sbGlzaW9u RnJhbWVzID0zRCB1bWFjX3JsKGludGYsIFVNQ19HVE1DTCk7CisJbWFjX3N0YXRzLT5GcmFtZXNS ZWNlaXZlZE9LID0zRCB1bWFjX3JsKGludGYsIFVNQ19HUlBPSyk7CisJbWFjX3N0YXRzLT5GcmFt ZUNoZWNrU2VxdWVuY2VFcnJvcnMgPTNEIHVtYWNfcmwoaW50ZiwgVU1DX0dSRkNTKTsKKwltYWNf c3RhdHMtPkFsaWdubWVudEVycm9ycyA9M0QgdW1hY19ybChpbnRmLCBVTUNfR1JBTE4pOworCW1h Y19zdGF0cy0+T2N0ZXRzVHJhbnNtaXR0ZWRPSyA9M0QgdW1hY19ybChpbnRmLCBVTUNfR1RCWVQp OworCW1hY19zdGF0cy0+RnJhbWVzV2l0aERlZmVycmVkWG1pc3Npb25zID0zRCB1bWFjX3JsKGlu dGYsIFVNQ19HVERSRik7CisJbWFjX3N0YXRzLT5MYXRlQ29sbGlzaW9ucyA9M0QgdW1hY19ybChp bnRmLCBVTUNfR1RMQ0wpOworCW1hY19zdGF0cy0+RnJhbWVzQWJvcnRlZER1ZVRvWFNDb2xscyA9 M0QgdW1hY19ybChpbnRmLCBVTUNfR1RYQ0wpOworCW1hY19zdGF0cy0+T2N0ZXRzUmVjZWl2ZWRP SyA9M0QgdW1hY19ybChpbnRmLCBVTUNfR1JCWVQpOworCW1hY19zdGF0cy0+TXVsdGljYXN0RnJh bWVzWG1pdHRlZE9LID0zRCB1bWFjX3JsKGludGYsIFVNQ19HVE1DQSk7CisJbWFjX3N0YXRzLT5C cm9hZGNhc3RGcmFtZXNYbWl0dGVkT0sgPTNEIHVtYWNfcmwoaW50ZiwgVU1DX0dUQkNBKTsKKwlt YWNfc3RhdHMtPkZyYW1lc1dpdGhFeGNlc3NpdmVEZWZlcnJhbCA9M0QgdW1hY19ybChpbnRmLCBV TUNfR1RFREYpOworCW1hY19zdGF0cy0+TXVsdGljYXN0RnJhbWVzUmVjZWl2ZWRPSyA9M0QgdW1h Y19ybChpbnRmLCBVTUNfR1JNQ0EpOworCW1hY19zdGF0cy0+QnJvYWRjYXN0RnJhbWVzUmVjZWl2 ZWRPSyA9M0QgdW1hY19ybChpbnRmLCBVTUNfR1JCQ0EpOworfQorCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGV0aHRvb2xfcm1vbl9oaXN0X3JhbmdlIGJjbWFzcF9ybW9uX3Jhbmdlc1tdID0zRCB7CisJ eyAgICAwLCAgIDY0fSwKKwl7ICAgNjUsICAxMjd9LAorCXsgIDEyOCwgIDI1NX0sCisJeyAgMjU2 LCAgNTExfSwKKwl7ICA1MTIsIDEwMjN9LAorCXsgMTAyNCwgMTUxOH0sCisJeyAxNTE5LCAxNTIy fSwKKwl7fQorfTsKKworc3RhdGljIHZvaWQgYmNtYXNwX2dldF9ybW9uX3N0YXRzKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsCisJCQkJICBzdHJ1Y3QgZXRodG9vbF9ybW9uX3N0YXRzICpybW9uX3N0 YXRzLAorCQkJCSAgY29uc3Qgc3RydWN0IGV0aHRvb2xfcm1vbl9oaXN0X3JhbmdlICoqcmFuZ2Vz KQoreworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0QgbmV0ZGV2X3ByaXYoZGV2KTsKKwor CSpyYW5nZXMgPTNEIGJjbWFzcF9ybW9uX3JhbmdlczsKKworCXJtb25fc3RhdHMtPnVuZGVyc2l6 ZV9wa3RzID0zRCB1bWFjX3JsKGludGYsIFVNQ19SUlVORCk7CisJcm1vbl9zdGF0cy0+b3ZlcnNp emVfcGt0cyA9M0QgdW1hY19ybChpbnRmLCBVTUNfR1JPVlIpOworCXJtb25fc3RhdHMtPmZyYWdt ZW50cyA9M0QgdW1hY19ybChpbnRmLCBVTUNfUlJGUkcpOworCXJtb25fc3RhdHMtPmphYmJlcnMg PTNEIHVtYWNfcmwoaW50ZiwgVU1DX0dSSkJSKTsKKworCXJtb25fc3RhdHMtPmhpc3RbMF0gPTNE IHVtYWNfcmwoaW50ZiwgVU1DX0dSNjQpOworCXJtb25fc3RhdHMtPmhpc3RbMV0gPTNEIHVtYWNf cmwoaW50ZiwgVU1DX0dSMTI3KTsKKwlybW9uX3N0YXRzLT5oaXN0WzJdID0zRCB1bWFjX3JsKGlu dGYsIFVNQ19HUjI1NSk7CisJcm1vbl9zdGF0cy0+aGlzdFszXSA9M0QgdW1hY19ybChpbnRmLCBV TUNfR1I1MTEpOworCXJtb25fc3RhdHMtPmhpc3RbNF0gPTNEIHVtYWNfcmwoaW50ZiwgVU1DX0dS MTAyMyk7CisJcm1vbl9zdGF0cy0+aGlzdFs1XSA9M0QgdW1hY19ybChpbnRmLCBVTUNfR1IxNTE4 KTsKKwlybW9uX3N0YXRzLT5oaXN0WzZdID0zRCB1bWFjX3JsKGludGYsIFVNQ19HUk1HVik7CisK KwlybW9uX3N0YXRzLT5oaXN0X3R4WzBdID0zRCB1bWFjX3JsKGludGYsIFVNQ19UUjY0KTsKKwly bW9uX3N0YXRzLT5oaXN0X3R4WzFdID0zRCB1bWFjX3JsKGludGYsIFVNQ19UUjEyNyk7CisJcm1v bl9zdGF0cy0+aGlzdF90eFsyXSA9M0QgdW1hY19ybChpbnRmLCBVTUNfVFIyNTUpOworCXJtb25f c3RhdHMtPmhpc3RfdHhbM10gPTNEIHVtYWNfcmwoaW50ZiwgVU1DX1RSNTExKTsKKwlybW9uX3N0 YXRzLT5oaXN0X3R4WzRdID0zRCB1bWFjX3JsKGludGYsIFVNQ19UUjEwMjMpOworCXJtb25fc3Rh dHMtPmhpc3RfdHhbNV0gPTNEIHVtYWNfcmwoaW50ZiwgVU1DX1RSMTUxOCk7CisJcm1vbl9zdGF0 cy0+aGlzdF90eFs2XSA9M0QgdW1hY19ybChpbnRmLCBVTUNfVFJNR1YpOworfQorCitzdGF0aWMg dm9pZCBiY21hc3BfZ2V0X2V0aF9jdHJsX3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCisJ CQkJICAgICAgc3RydWN0IGV0aHRvb2xfZXRoX2N0cmxfc3RhdHMgKmN0cmxfc3RhdHMpCit7CisJ c3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOworCisJY3RybF9z dGF0cy0+TUFDQ29udHJvbEZyYW1lc1RyYW5zbWl0dGVkID0zRCB1bWFjX3JsKGludGYsIFVNQ19H VFhDRik7CisJY3RybF9zdGF0cy0+TUFDQ29udHJvbEZyYW1lc1JlY2VpdmVkID0zRCB1bWFjX3Js KGludGYsIFVNQ19HUlhDRik7CisJY3RybF9zdGF0cy0+VW5zdXBwb3J0ZWRPcGNvZGVzUmVjZWl2 ZWQgPTNEIHVtYWNfcmwoaW50ZiwgVU1DX0dSWFVPKTsKK30KKwogY29uc3Qgc3RydWN0IGV0aHRv b2xfb3BzIGJjbWFzcF9ldGh0b29sX29wcyA9M0QgewogCS5nZXRfZHJ2aW5mbwkJPTNEIGJjbWFz cF9nZXRfZHJ2aW5mbywKIAkuZ2V0X2xpbmsJCT0zRCBldGh0b29sX29wX2dldF9saW5rLApAQCAt MjYzLDQgKzMzNyw3IEBAIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBiY21hc3BfZXRodG9vbF9v cHMgPTNEIHsKIAkuc2V0X3J4bmZjCQk9M0QgYmNtYXNwX3NldF9yeG5mYywKIAkuc2V0X2VlZQkJ PTNEIGJjbWFzcF9zZXRfZWVlLAogCS5nZXRfZWVlCQk9M0QgYmNtYXNwX2dldF9lZWUsCisJLmdl dF9ldGhfbWFjX3N0YXRzCT0zRCBiY21hc3BfZ2V0X2V0aF9tYWNfc3RhdHMsCisJLmdldF9ybW9u X3N0YXRzCQk9M0QgYmNtYXNwX2dldF9ybW9uX3N0YXRzLAorCS5nZXRfZXRoX2N0cmxfc3RhdHMJ PTNEIGJjbWFzcF9nZXRfZXRoX2N0cmxfc3RhdHMsCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zl9kZWZzLmggYi9kcml2ZXI9CnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2ludGZfZGVmcy5oCmluZGV4IGIyNTlh NDc1MjA3Zi4uYWQ3NDI2MTI4OTVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmX2RlZnMuaAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmX2RlZnMuaApAQCAtNDUsNyArNDUsNjggQEAKICNk ZWZpbmUgIFVNQ19FRUVfTFBJX1RJTUVSCQkweDY4CiAjZGVmaW5lICBVTUNfUEFVU0VfQ05UUkwJ CTB4MzMwCiAjZGVmaW5lICBVTUNfVFhfRkxVU0gJCQkweDMzNAotI2RlZmluZSAgVU1DX01JQl9T VEFSVAkJCTB4NDAwCisjZGVmaW5lICBVTUNfR1I2NAkJCTB4NDAwCisjZGVmaW5lICBVTUNfR1Ix MjcJCQkweDQwNAorI2RlZmluZSAgVU1DX0dSMjU1CQkJMHg0MDgKKyNkZWZpbmUgIFVNQ19HUjUx MQkJCTB4NDBjCisjZGVmaW5lICBVTUNfR1IxMDIzCQkJMHg0MTAKKyNkZWZpbmUgIFVNQ19HUjE1 MTgJCQkweDQxNAorI2RlZmluZSAgVU1DX0dSTUdWCQkJMHg0MTgKKyNkZWZpbmUgIFVNQ19HUjIw NDcJCQkweDQxYworI2RlZmluZSAgVU1DX0dSNDA5NQkJCTB4NDIwCisjZGVmaW5lICBVTUNfR1I5 MjE2CQkJMHg0MjQKKyNkZWZpbmUgIFVNQ19HUlBLVAkJCTB4NDI4CisjZGVmaW5lICBVTUNfR1JC WVQJCQkweDQyYworI2RlZmluZSAgVU1DX0dSTUNBCQkJMHg0MzAKKyNkZWZpbmUgIFVNQ19HUkJD QQkJCTB4NDM0CisjZGVmaW5lICBVTUNfR1JGQ1MJCQkweDQzOAorI2RlZmluZSAgVU1DX0dSWENG CQkJMHg0M2MKKyNkZWZpbmUgIFVNQ19HUlhQRgkJCTB4NDQwCisjZGVmaW5lICBVTUNfR1JYVU8J CQkweDQ0NAorI2RlZmluZSAgVU1DX0dSQUxOCQkJMHg0NDgKKyNkZWZpbmUgIFVNQ19HUkZMUgkJ CTB4NDRjCisjZGVmaW5lICBVTUNfR1JDREUJCQkweDQ1MAorI2RlZmluZSAgVU1DX0dSRkNSCQkJ MHg0NTQKKyNkZWZpbmUgIFVNQ19HUk9WUgkJCTB4NDU4CisjZGVmaW5lICBVTUNfR1JKQlIJCQkw eDQ1YworI2RlZmluZSAgVU1DX0dSTVRVRQkJCTB4NDYwCisjZGVmaW5lICBVTUNfR1JQT0sJCQkw eDQ2NAorI2RlZmluZSAgVU1DX0dSVUMJCQkweDQ2OAorI2RlZmluZSAgVU1DX0dSUFBQCQkJMHg0 NmMKKyNkZWZpbmUgIFVNQ19HUk1DUkMJCQkweDQ3MAorI2RlZmluZSAgVU1DX1RSNjQJCQkweDQ4 MAorI2RlZmluZSAgVU1DX1RSMTI3CQkJMHg0ODQKKyNkZWZpbmUgIFVNQ19UUjI1NQkJCTB4NDg4 CisjZGVmaW5lICBVTUNfVFI1MTEJCQkweDQ4YworI2RlZmluZSAgVU1DX1RSMTAyMwkJCTB4NDkw CisjZGVmaW5lICBVTUNfVFIxNTE4CQkJMHg0OTQKKyNkZWZpbmUgIFVNQ19UUk1HVgkJCTB4NDk4 CisjZGVmaW5lICBVTUNfVFIyMDQ3CQkJMHg0OWMKKyNkZWZpbmUgIFVNQ19UUjQwOTUJCQkweDRh MAorI2RlZmluZSAgVU1DX1RSOTIxNgkJCTB4NGE0CisjZGVmaW5lICBVTUNfR1RQS1QJCQkweDRh OAorI2RlZmluZSAgVU1DX0dUTUNBCQkJMHg0YWMKKyNkZWZpbmUgIFVNQ19HVEJDQQkJCTB4NGIw CisjZGVmaW5lICBVTUNfR1RYUEYJCQkweDRiNAorI2RlZmluZSAgVU1DX0dUWENGCQkJMHg0YjgK KyNkZWZpbmUgIFVNQ19HVEZDUwkJCTB4NGJjCisjZGVmaW5lICBVTUNfR1RPVlIJCQkweDRjMAor I2RlZmluZSAgVU1DX0dURFJGCQkJMHg0YzQKKyNkZWZpbmUgIFVNQ19HVEVERgkJCTB4NGM4Cisj ZGVmaW5lICBVTUNfR1RTQ0wJCQkweDRjYworI2RlZmluZSAgVU1DX0dUTUNMCQkJMHg0ZDAKKyNk ZWZpbmUgIFVNQ19HVExDTAkJCTB4NGQ0CisjZGVmaW5lICBVTUNfR1RYQ0wJCQkweDRkOAorI2Rl ZmluZSAgVU1DX0dURlJHCQkJMHg0ZGMKKyNkZWZpbmUgIFVNQ19HVE5DTAkJCTB4NGUwCisjZGVm aW5lICBVTUNfR1RKQlIJCQkweDRlNAorI2RlZmluZSAgVU1DX0dUQllUCQkJMHg0ZTgKKyNkZWZp bmUgIFVNQ19HVFBPSwkJCTB4NGVjCisjZGVmaW5lICBVTUNfR1RVQwkJCTB4NGYwCisjZGVmaW5l ICBVTUNfUlJQS1QJCQkweDUwMAorI2RlZmluZSAgVU1DX1JSVU5ECQkJMHg1MDQKKyNkZWZpbmUg IFVNQ19SUkZSRwkJCTB4NTA4CisjZGVmaW5lICBVTUNfUlJCWVQJCQkweDUwYwogI2RlZmluZSAg VU1DX01JQl9DTlRSTAkJCTB4NTgwCiAjZGVmaW5lICAgVU1DX01JQl9DTlRSTF9SWF9DTlRfUlNU CUJJVCgwKQogI2RlZmluZSAgIFVNQ19NSUJfQ05UUkxfUlVOVF9DTlRfUlNUCUJJVCgxKQotLT0y MAoyLjcuNAo= --000000000000c8d1be05fe1e804c Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEINSUuHPPaigdLLx8iez5lfL73yOaVZ0KloQq 0owaEGCuMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNDIy MzA0NlowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQCaNeOiEiOyFmHfzYsx2vw8cCukXO+45sEGiNymIp6gzzBt6ymFUZYt 3CKWBqeD1SYIk/zJZWcL0+3JJWNEBfplrMP2l2Pv+NbHxHjoQPIObVSQ9VC7NvYRwxLUS4/JXIvv OPgMT0BvIph0I/1D4lhRUMZ2fYPYf8BSKUQ8bnQjPykO1CxNbrcJbt0TfMERLq1NKJ74KUhID9TP 7P758/ur6+ZJsT4zSyAMh6hKVOsAlTSw1/KVvEBcCr78il6f+JebfbZ8/ncD/OkMHmVGkloaboHg SkElmHY4qdvITcZQcjgyQL40+YxWtbYmI6XdJKHjzTQbEZWC6oScVsDJWlY+ --000000000000c8d1be05fe1e804c-- From nobody Sat Feb 7 11:05:16 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2DB95EB64DB for ; Wed, 14 Jun 2023 22:31:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237004AbjFNWbf (ORCPT ); Wed, 14 Jun 2023 18:31:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33554 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237892AbjFNWbR (ORCPT ); Wed, 14 Jun 2023 18:31:17 -0400 Received: from mail-qt1-x82c.google.com (mail-qt1-x82c.google.com [IPv6:2607:f8b0:4864:20::82c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 45C052949 for ; Wed, 14 Jun 2023 15:30:50 -0700 (PDT) Received: by mail-qt1-x82c.google.com with SMTP id d75a77b69052e-3f9a949c012so24495421cf.0 for ; Wed, 14 Jun 2023 15:30:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686781849; x=1689373849; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=wn9bQQDiFUwqFrb+yYnl4E7nte3lGxExsYh6ThEXCdw=; b=Lvjw1n6ENWHeu3Y1I4K6CLz2O+XMI4b6YskCqbVEyS9GAa07xquSLUQ42KGux5tje4 wQuADiFGaxlbkSYq9o5e4+2WzcP2f6ooRscksJfJ3NLpKYSqH76OKGoTCv4NUDeXQV+s JUouLCTlmi2T90Cjpnmh0iO9Z0ZAJ8ALwyOSg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686781849; x=1689373849; h=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=wn9bQQDiFUwqFrb+yYnl4E7nte3lGxExsYh6ThEXCdw=; b=hgiV2SW125YY9arWg1NySwHmDwuMxTlTGKZuN++ylw24vTdS/fqS18n/K+QpuvJ2qZ sx6mJR+y0MEs/K2Wyic9fuZwEFgqEoFgxymV1+SnGnOPVd8jW88dUjgGKASXI96Fq++J t4goRUCReDTWXcfEDVmR4xOLMKavkMwkA76NHEKsdwi5/FDXCEoBheIUM9FhcZX9VcOh jPyQPENlEpGePJq0lDU+qFa8JJUjCgIWoHPhA+h28RZcYA+CRSWgc1oNsm6PqAI7A+mh WIolSMZnwJopPLVxFIvPqpDBc49EhQf4VmJNDqnzDQePbK5z7+iCfTWuD/J7Wl4DQpee cIKA== X-Gm-Message-State: AC+VfDxJueVJy4F9xLbtQsQwyqIZKhRGTABLQx0c/5u9VYHHTX80tt1m 8JpreRlmO1cJysJ8gRyN8YRw/A== X-Google-Smtp-Source: ACHHUZ6LURpDmVJ8FJM6IG7K7k1O09Ixn5RpQ3KjUe6fLCkah961KOcWHS5vZjq6BQ3BAfudyDzcSg== X-Received: by 2002:ac8:5cce:0:b0:3f9:d266:7be7 with SMTP id s14-20020ac85cce000000b003f9d2667be7mr3417722qta.42.1686781849159; Wed, 14 Jun 2023 15:30:49 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d3-20020ac85443000000b003ef2db16e72sm5419360qtq.94.2023.06.14.15.30.46 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Jun 2023 15:30:48 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, christian.koenig@amd.com, simon.horman@corigine.com, Justin Chen Subject: [PATCH net-next v7 08/11] net: bcmasp: Add support for ethtool driver stats Date: Wed, 14 Jun 2023 15:30:17 -0700 Message-Id: <1686781820-832-9-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> References: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000f4583d05fe1e8003" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --000000000000f4583d05fe1e8003 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIGV0aGVybmV0IGRyaXZlciBzcGVjaWZpYyBzdGF0cy4KClNpZ25lZC1v ZmYtYnk6IEp1c3RpbiBDaGVuIDxqdXN0aW4uY2hlbkBicm9hZGNvbS5jb20+Ci0tLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3AuYyAgICAgICAgfCAgIDEgKwogZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3AuaCAgICAgICAgfCAgMjEgKysr CiAuLi4vbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2V0aHRvb2wuYyAgICB8IDE1 OCArKysrKysrKysrKysrKysrKz0KKysrKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20v YXNwMi9iY21hc3BfaW50Zi5jICAgfCAgIDggKysKIDQgZmlsZXMgY2hhbmdlZCwgMTg4IGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3Ay L2JjbWFzcC5jIGIvZHJpdmVycy9uZXQvZXRoZT0Kcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5j CmluZGV4IGJhOTg0MmM3NjBkNS4uYTg5MDVmZWY0ZjhhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMKQEAgLTg5MSw2ICs4OTEsNyBAQCBpbnQgYmNtYXNw X3NldF9lbl9tZGFfZmlsdGVyKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgPQp1bnNpZ25lZCBj aGFyICphZGRyLAogCQkvKiBBdHRlbXB0IHRvIGNvbWJpbmUgZmlsdGVycyAqLwogCQlyZXQgPTNE IGJjbWFzcF9jb21iaW5lX3NldF9maWx0ZXIoaW50ZiwgYWRkciwgbWFzaywgaSk7CiAJCWlmICgh cmV0KSB7CisJCQlpbnRmLT5taWIuZmlsdGVyc19jb21iaW5lX2NudCsrOwogCQkJcmV0dXJuIDA7 CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3Ay L2JjbWFzcC5oIGIvZHJpdmVycy9uZXQvZXRoZT0Kcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5o CmluZGV4IDdkYzU5NzY1OGVkNy4uMTQ4NWMyYzM3MTJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmgKQEAgLTI0NSw2ICsyNDUsMjYgQEAgc3RydWN0IGJj bWFzcF9pbnRmX3N0YXRzNjR7CiAJc3RydWN0IHU2NF9zdGF0c19zeW5jCQlzeW5jcDsKIH07Cj0y MAorc3RydWN0IGJjbWFzcF9taWJfY291bnRlcnMgeworCXUzMgllZHBrdF90czsKKwl1MzIJZWRw a3RfcnhfcGt0X2NudDsKKwl1MzIJZWRwa3RfaGRyX2V4dF9jbnQ7CisJdTMyCWVkcGt0X2hkcl9v dXRfY250OworCXUzMgl1bWFjX2ZybV9jbnQ7CisJdTMyCWZiX2ZybV9jbnQ7CisJdTMyCWZiX3J4 X2ZpZm9fZGVwdGg7CisJdTMyCWZiX291dF9mcm1fY250OworCXUzMglmYl9maWx0X291dF9mcm1f Y250OworCXUzMglhbGxvY19yeF9za2JfZmFpbGVkOworCXUzMgl0eF9kbWFfZmFpbGVkOworCXUz MgltY19maWx0ZXJzX2Z1bGxfY250OworCXUzMgl1Y19maWx0ZXJzX2Z1bGxfY250OworCXUzMglm aWx0ZXJzX2NvbWJpbmVfY250OworCXUzMglwcm9taXNjX2ZpbHRlcnNfY250OworCXUzMgl0eF9y ZWFsbG9jX29mZmxvYWRfZmFpbGVkOworCXUzMgl0eF9yZWFsbG9jX29mZmxvYWQ7Cit9OworCiBz dHJ1Y3QgYmNtYXNwX2ludGZfb3BzIHsKIAl1bnNpZ25lZCBsb25nICgqcnhfZGVzY19yZWFkKShz dHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpOwogCXZvaWQgKCpyeF9idWZmZXJfd3JpdGUpKHN0cnVj dCBiY21hc3BfaW50ZiAqaW50ZiwgZG1hX2FkZHJfdCBhZGRyKTsKQEAgLTMwNyw2ICszMjcsNyBA QCBzdHJ1Y3QgYmNtYXNwX2ludGYgewo9MjAKIAkvKiBTdGF0aXN0aWNzICovCiAJc3RydWN0IGJj bWFzcF9pbnRmX3N0YXRzNjQJc3RhdHM2NDsKKwlzdHJ1Y3QgYmNtYXNwX21pYl9jb3VudGVycwlt aWI7Cj0yMAogCXUzMgkJCXdvbG9wdHM7CiAJdTgJCQlzb3Bhc3NbU09QQVNTX01BWF07CmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29s LmMgYi9kcml2ZXJzLz0KbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2V0aHRvb2wu YwppbmRleCA1OWQ4NTNjMjI5M2MuLmZjNDdlMjdiMTQ4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfZXRodG9vbC5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2V0aHRvb2wuYwpAQCAtMSw2ICsxLDcg QEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCiAjZGVmaW5lIHByX2ZtdChm bXQpCQkJCSJiY21hc3BfZXRodG9vbDogIiBmbXQKPTIwCisjaW5jbHVkZSA8YXNtLWdlbmVyaWMv dW5hbGlnbmVkLmg+CiAjaW5jbHVkZSA8bGludXgvZXRodG9vbC5oPgogI2luY2x1ZGUgPGxpbnV4 L25ldGRldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgpAQCAtOCw2 ICs5LDE2MCBAQAogI2luY2x1ZGUgImJjbWFzcC5oIgogI2luY2x1ZGUgImJjbWFzcF9pbnRmX2Rl ZnMuaCIKPTIwCitlbnVtIGJjbWFzcF9zdGF0X3R5cGUgeworCUJDTUFTUF9TVEFUX1JYX0VEUEtU LAorCUJDTUFTUF9TVEFUX1JYX0NUUkwsCisJQkNNQVNQX1NUQVRfUlhfQ1RSTF9QRVJfSU5URiwK KwlCQ01BU1BfU1RBVF9TT0ZULAorfTsKKworc3RydWN0IGJjbWFzcF9zdGF0cyB7CisJY2hhciBz dGF0X3N0cmluZ1tFVEhfR1NUUklOR19MRU5dOworCWVudW0gYmNtYXNwX3N0YXRfdHlwZSB0eXBl OworCXUzMiByZWdfb2Zmc2V0OworfTsKKworI2RlZmluZSBTVEFUX0JDTUFTUF9TT0ZUX01JQihz dHIpIHsgXAorCS5zdGF0X3N0cmluZyA9M0Qgc3RyLCBcCisJLnR5cGUgPTNEIEJDTUFTUF9TVEFU X1NPRlQsIFwKK30KKworI2RlZmluZSBTVEFUX0JDTUFTUF9PRkZTRVQoc3RyLCBfdHlwZSwgb2Zm c2V0KSB7IFwKKwkuc3RhdF9zdHJpbmcgPTNEIHN0ciwgXAorCS50eXBlID0zRCBfdHlwZSwgXAor CS5yZWdfb2Zmc2V0ID0zRCBvZmZzZXQsIFwKK30KKworI2RlZmluZSBTVEFUX0JDTUFTUF9SWF9F RFBLVChzdHIsIG9mZnNldCkgXAorCVNUQVRfQkNNQVNQX09GRlNFVChzdHIsIEJDTUFTUF9TVEFU X1JYX0VEUEtULCBvZmZzZXQpCisjZGVmaW5lIFNUQVRfQkNNQVNQX1JYX0NUUkwoc3RyLCBvZmZz ZXQpIFwKKwlTVEFUX0JDTUFTUF9PRkZTRVQoc3RyLCBCQ01BU1BfU1RBVF9SWF9DVFJMLCBvZmZz ZXQpCisjZGVmaW5lIFNUQVRfQkNNQVNQX1JYX0NUUkxfUEVSX0lOVEYoc3RyLCBvZmZzZXQpIFwK KwlTVEFUX0JDTUFTUF9PRkZTRVQoc3RyLCBCQ01BU1BfU1RBVF9SWF9DVFJMX1BFUl9JTlRGLCBv ZmZzZXQpCisKKy8qIE11c3QgbWF0Y2ggdGhlIG9yZGVyIG9mIHN0cnVjdCBiY21hc3BfbWliX2Nv dW50ZXJzICovCitzdGF0aWMgY29uc3Qgc3RydWN0IGJjbWFzcF9zdGF0cyBiY21hc3BfZ3N0cmlu Z3Nfc3RhdHNbXSA9M0QgeworCS8qIEVEUEtUIGNvdW50ZXJzICovCisJU1RBVF9CQ01BU1BfUlhf RURQS1QoIlJYIFRpbWUgU3RhbXAiLCBBU1BfRURQS1RfUlhfVFNfQ09VTlRFUiksCisJU1RBVF9C Q01BU1BfUlhfRURQS1QoIlJYIFBLVCBDb3VudCIsIEFTUF9FRFBLVF9SWF9QS1RfQ05UKSwKKwlT VEFUX0JDTUFTUF9SWF9FRFBLVCgiUlggUEtUIEJ1ZmZlcmVkIiwgQVNQX0VEUEtUX0hEUl9FWFRS X0NOVCksCisJU1RBVF9CQ01BU1BfUlhfRURQS1QoIlJYIFBLVCBQdXNoZWQgdG8gRFJBTSIsIEFT UF9FRFBLVF9IRFJfT1VUX0NOVCksCisJLyogQVNQIFJYIGNvbnRyb2wgKi8KKwlTVEFUX0JDTUFT UF9SWF9DVFJMX1BFUl9JTlRGKCJGcmFtZXMgRnJvbSBVbmltYWMiLAorCQkJCSAgICAgQVNQX1JY X0NUUkxfVU1BQ18wX0ZSQU1FX0NPVU5UKSwKKwlTVEFUX0JDTUFTUF9SWF9DVFJMX1BFUl9JTlRG KCJGcmFtZXMgRnJvbSBQb3J0IiwKKwkJCQkgICAgIEFTUF9SWF9DVFJMX0ZCXzBfRlJBTUVfQ09V TlQpLAorCVNUQVRfQkNNQVNQX1JYX0NUUkxfUEVSX0lOVEYoIlJYIEJ1ZmZlciBGSUZPIERlcHRo IiwKKwkJCQkgICAgIEFTUF9SWF9DVFJMX0ZCX1JYX0ZJRk9fREVQVEgpLAorCVNUQVRfQkNNQVNQ X1JYX0NUUkwoIkZyYW1lcyBPdXQoQnVmZmVyKSIsCisJCQkgICAgQVNQX1JYX0NUUkxfRkJfT1VU X0ZSQU1FX0NPVU5UKSwKKwlTVEFUX0JDTUFTUF9SWF9DVFJMKCJGcmFtZXMgT3V0KEZpbHRlcnMp IiwKKwkJCSAgICBBU1BfUlhfQ1RSTF9GQl9GSUxUX09VVF9GUkFNRV9DT1VOVCksCisJLyogU29m dHdhcmUgbWFpbnRhaW5lZCBzdGF0aXN0aWNzICovCisJU1RBVF9CQ01BU1BfU09GVF9NSUIoIlJY IFNLQiBBbGxvYyBGYWlsZWQiKSwKKwlTVEFUX0JDTUFTUF9TT0ZUX01JQigiVFggRE1BIEZhaWxl ZCIpLAorCVNUQVRfQkNNQVNQX1NPRlRfTUlCKCJNdWx0aWNhc3QgRmlsdGVycyBGdWxsIiksCisJ U1RBVF9CQ01BU1BfU09GVF9NSUIoIlVuaWNhc3QgRmlsdGVycyBGdWxsIiksCisJU1RBVF9CQ01B U1BfU09GVF9NSUIoIk1EQSBGaWx0ZXJzIENvbWJpbmVkIiksCisJU1RBVF9CQ01BU1BfU09GVF9N SUIoIlByb21pc2MgRmlsdGVyIFNldCIpLAorCVNUQVRfQkNNQVNQX1NPRlRfTUlCKCJUWCBSZWFs bG9jIEZvciBPZmZsb2FkIEZhaWxlZCIpLAorCVNUQVRfQkNNQVNQX1NPRlRfTUlCKCJUeCBSZWFs bG9jIEZvciBPZmZsb2FkIiksCit9OworCisjZGVmaW5lIEJDTUFTUF9TVEFUU19MRU4JQVJSQVlf U0laRShiY21hc3BfZ3N0cmluZ3Nfc3RhdHMpCisKK3N0YXRpYyB1MTYgYmNtYXNwX3N0YXRfZml4 dXBfb2Zmc2V0KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwKKwkJCQkgICAgY29uc3Qgc3RydWN0 IGJjbWFzcF9zdGF0cyAqcykKK3sKKwlzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYgPTNEIGludGYt PnBhcmVudDsKKworCWlmICghc3RyY21wKCJGcmFtZXMgT3V0KEJ1ZmZlcikiLCBzLT5zdGF0X3N0 cmluZykpCisJCXJldHVybiBwcml2LT5od19pbmZvLT5yeF9jdHJsX2ZiX291dF9mcmFtZV9jb3Vu dDsKKworCWlmICghc3RyY21wKCJGcmFtZXMgT3V0KEZpbHRlcnMpIiwgcy0+c3RhdF9zdHJpbmcp KQorCQlyZXR1cm4gcHJpdi0+aHdfaW5mby0+cnhfY3RybF9mYl9maWx0X291dF9mcmFtZV9jb3Vu dDsKKworCWlmICghc3RyY21wKCJSWCBCdWZmZXIgRklGTyBEZXB0aCIsIHMtPnN0YXRfc3RyaW5n KSkKKwkJcmV0dXJuIHByaXYtPmh3X2luZm8tPnJ4X2N0cmxfZmJfcnhfZmlmb19kZXB0aDsKKwor CXJldHVybiBzLT5yZWdfb2Zmc2V0OworfQorCitzdGF0aWMgaW50IGJjbWFzcF9nZXRfc3NldF9j b3VudChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgc3RyaW5nX3NldCkKK3sKKwlzd2l0Y2gg KHN0cmluZ19zZXQpIHsKKwljYXNlIEVUSF9TU19TVEFUUzoKKwkJcmV0dXJuIEJDTUFTUF9TVEFU U19MRU47CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FT1BOT1RTVVBQOworCX0KK30KKworc3RhdGlj IHZvaWQgYmNtYXNwX2dldF9zdHJpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUzMiBzdHJp bmdzZXQsCisJCQkgICAgICAgdTggKmRhdGEpCit7CisJaW50IGk7CisKKwlzd2l0Y2ggKHN0cmlu Z3NldCkgeworCWNhc2UgRVRIX1NTX1NUQVRTOgorCQlmb3IgKGkgPTNEIDA7IGkgPCBCQ01BU1Bf U1RBVFNfTEVOOyBpKyspIHsKKwkJCW1lbWNweShkYXRhICsgaSAqIEVUSF9HU1RSSU5HX0xFTiwK KwkJCSAgICAgICBiY21hc3BfZ3N0cmluZ3Nfc3RhdHNbaV0uc3RhdF9zdHJpbmcsCisJCQkgICAg ICAgRVRIX0dTVFJJTkdfTEVOKTsKKwkJfQorCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm47 CisJfQorfQorCitzdGF0aWMgdm9pZCBiY21hc3BfdXBkYXRlX21pYl9jb3VudGVycyhzdHJ1Y3Qg YmNtYXNwX2ludGYgKmludGYpCit7CisJaW50IGk7CisKKwlmb3IgKGkgPTNEIDA7IGkgPCBCQ01B U1BfU1RBVFNfTEVOOyBpKyspIHsKKwkJY29uc3Qgc3RydWN0IGJjbWFzcF9zdGF0cyAqczsKKwkJ dTMyIG9mZnNldCwgdmFsOworCQljaGFyICpwOworCisJCXMgPTNEICZiY21hc3BfZ3N0cmluZ3Nf c3RhdHNbaV07CisJCW9mZnNldCA9M0QgYmNtYXNwX3N0YXRfZml4dXBfb2Zmc2V0KGludGYsIHMp OworCQlzd2l0Y2ggKHMtPnR5cGUpIHsKKwkJY2FzZSBCQ01BU1BfU1RBVF9TT0ZUOgorCQkJY29u dGludWU7CisJCWNhc2UgQkNNQVNQX1NUQVRfUlhfRURQS1Q6CisJCQl2YWwgPTNEIHJ4X2VkcGt0 X2NvcmVfcmwoaW50Zi0+cGFyZW50LCBvZmZzZXQpOworCQkJYnJlYWs7CisJCWNhc2UgQkNNQVNQ X1NUQVRfUlhfQ1RSTDoKKwkJCXZhbCA9M0QgcnhfY3RybF9jb3JlX3JsKGludGYtPnBhcmVudCwg b2Zmc2V0KTsKKwkJCWJyZWFrOworCQljYXNlIEJDTUFTUF9TVEFUX1JYX0NUUkxfUEVSX0lOVEY6 CisJCQlvZmZzZXQgKz0zRCBzaXplb2YodTMyKSAqIGludGYtPnBvcnQ7CisJCQl2YWwgPTNEIHJ4 X2N0cmxfY29yZV9ybChpbnRmLT5wYXJlbnQsIG9mZnNldCk7CisJCQlicmVhazsKKwkJfQorCQlw ID0zRCAoY2hhciAqKSgmaW50Zi0+bWliKSArIChpICogc2l6ZW9mKHUzMikpOworCQlwdXRfdW5h bGlnbmVkKHZhbCwgKHUzMiAqKXApOworCX0KK30KKworc3RhdGljIHZvaWQgYmNtYXNwX2dldF9l dGh0b29sX3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCisJCQkJICAgICBzdHJ1Y3QgZXRo dG9vbF9zdGF0cyAqc3RhdHMsCisJCQkJICAgICB1NjQgKmRhdGEpCit7CisJc3RydWN0IGJjbWFz cF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOworCWNoYXIgKnA7CisJaW50IGk7CisK KwlpZiAobmV0aWZfcnVubmluZyhkZXYpKQorCQliY21hc3BfdXBkYXRlX21pYl9jb3VudGVycyhp bnRmKTsKKworCWZvciAoaSA9M0QgMDsgaSA8IEJDTUFTUF9TVEFUU19MRU47IGkrKykgeworCQlw ID0zRCAoY2hhciAqKSgmaW50Zi0+bWliKSArIChpICogc2l6ZW9mKHUzMikpOworCQlkYXRhW2ld ID0zRCAqKHUzMiAqKXA7CisJfQorfQorCiBzdGF0aWMgdm9pZCBiY21hc3BfZ2V0X2RydmluZm8o c3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCSAgICAgICBzdHJ1Y3QgZXRodG9vbF9kcnZpbmZv ICppbmZvKQogewpAQCAtMzQwLDQgKzQ5NSw3IEBAIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBi Y21hc3BfZXRodG9vbF9vcHMgPTNEIHsKIAkuZ2V0X2V0aF9tYWNfc3RhdHMJPTNEIGJjbWFzcF9n ZXRfZXRoX21hY19zdGF0cywKIAkuZ2V0X3Jtb25fc3RhdHMJCT0zRCBiY21hc3BfZ2V0X3Jtb25f c3RhdHMsCiAJLmdldF9ldGhfY3RybF9zdGF0cwk9M0QgYmNtYXNwX2dldF9ldGhfY3RybF9zdGF0 cywKKwkuZ2V0X3N0cmluZ3MJCT0zRCBiY21hc3BfZ2V0X3N0cmluZ3MsCisJLmdldF9ldGh0b29s X3N0YXRzCT0zRCBiY21hc3BfZ2V0X2V0aHRvb2xfc3RhdHMsCisJLmdldF9zc2V0X2NvdW50CQk9 M0QgYmNtYXNwX2dldF9zc2V0X2NvdW50LAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2ludGYuYyBiL2RyaXZlcnMvbmV0PQovZXRoZXJu ZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zi5jCmluZGV4IDg5OWNiMDZhM2ZkZS4uZTY3ZTcy NTYzM2I0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2Jj bWFzcF9pbnRmLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21h c3BfaW50Zi5jCkBAIC0xMDUsNiArMTA1LDcgQEAgc3RhdGljIHZvaWQgYmNtYXNwX3NldF9yeF9t b2RlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCW5ldGRldl9mb3JfZWFjaF9tY19hZGRyKGhh LCBkZXYpIHsKIAkJCXJldCA9M0QgYmNtYXNwX3NldF9lbl9tZGFfZmlsdGVyKGludGYsIGhhLT5h ZGRyLCBtYXNrKTsKIAkJCWlmIChyZXQpIHsKKwkJCQlpbnRmLT5taWIubWNfZmlsdGVyc19mdWxs X2NudCsrOwogCQkJCWdvdG8gc2V0X3Byb21pc2M7CiAJCQl9CiAJCX0KQEAgLTExMyw2ICsxMTQs NyBAQCBzdGF0aWMgdm9pZCBiY21hc3Bfc2V0X3J4X21vZGUoc3RydWN0IG5ldF9kZXZpY2UgKmRl dikKIAluZXRkZXZfZm9yX2VhY2hfdWNfYWRkcihoYSwgZGV2KSB7CiAJCXJldCA9M0QgYmNtYXNw X3NldF9lbl9tZGFfZmlsdGVyKGludGYsIGhhLT5hZGRyLCBtYXNrKTsKIAkJaWYgKHJldCkgewor CQkJaW50Zi0+bWliLnVjX2ZpbHRlcnNfZnVsbF9jbnQrKzsKIAkJCWdvdG8gc2V0X3Byb21pc2M7 CiAJCX0KIAl9CkBAIC0xMjIsNiArMTI0LDcgQEAgc3RhdGljIHZvaWQgYmNtYXNwX3NldF9yeF9t b2RlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCj0yMAogc2V0X3Byb21pc2M6CiAJYmNtYXNwX3Nl dF9wcm9taXNjKGludGYsIDEpOworCWludGYtPm1pYi5wcm9taXNjX2ZpbHRlcnNfY250Kys7Cj0y MAogCS8qIGRpc2FibGUgYWxsIGZpbHRlcnMgdXNlZCBieSB0aGlzIHBvcnQgKi8KIAliY21hc3Bf ZGlzYWJsZV9hbGxfZmlsdGVycyhpbnRmKTsKQEAgLTE1Nyw2ICsxNjAsNyBAQCBzdGF0aWMgc3Ry dWN0IHNrX2J1ZmYgKmJjbWFzcF9jc3VtX29mZmxvYWQoc3RydWN0IG5ldF9kPQpldmljZSAqZGV2 LAogCQkJCQkgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCQkgICBib29sICpjc3VtX2h3KQog eworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0QgbmV0ZGV2X3ByaXYoZGV2KTsKIAl1MzIg aGVhZGVyID0zRCAwLCBoZWFkZXIyID0zRCAwLCBlcGt0ID0zRCAwOwogCXN0cnVjdCBiY21hc3Bf cGt0X29mZmxvYWQgKm9mZmxvYWQ7CiAJdW5zaWduZWQgaW50IGhlYWRlcl9jbnQgPTNEIDA7CkBA IC0xNjksMTEgKzE3MywxMyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmJjbWFzcF9jc3VtX29m ZmxvYWQoc3RydWN0IG5ldD0KX2RldmljZSAqZGV2LAogCWlmICh1bmxpa2VseShza2JfaGVhZHJv b20oc2tiKSA8IHNpemVvZigqb2ZmbG9hZCkpKSB7CiAJCW5ld19za2IgPTNEIHNrYl9yZWFsbG9j X2hlYWRyb29tKHNrYiwgc2l6ZW9mKCpvZmZsb2FkKSk7CiAJCWlmICghbmV3X3NrYikgeworCQkJ aW50Zi0+bWliLnR4X3JlYWxsb2Nfb2ZmbG9hZF9mYWlsZWQrKzsKIAkJCWdvdG8gaGVscDsKIAkJ fQo9MjAKIAkJZGV2X2NvbnN1bWVfc2tiX2FueShza2IpOwogCQlza2IgPTNEIG5ld19za2I7CisJ CWludGYtPm1pYi50eF9yZWFsbG9jX29mZmxvYWQrKzsKIAl9Cj0yMAogCXN3aXRjaCAoc2tiLT5w cm90b2NvbCkgewpAQCAtMzEyLDYgKzMxOCw3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBiY21hc3Bf eG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHI9CnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCX0K PTIwCiAJCWlmIChkbWFfbWFwcGluZ19lcnJvcihrZGV2LCBtYXBwaW5nKSkgeworCQkJaW50Zi0+ bWliLnR4X2RtYV9mYWlsZWQrKzsKIAkJCXNwYl9pbmRleCA9M0QgaW50Zi0+dHhfc3BiX2luZGV4 OwogCQkJZm9yIChqID0zRCAwOyBqIDwgaTsgaisrKSB7CiAJCQkJYmNtYXNwX2NsZWFuX3R4Y2Io aW50Ziwgc3BiX2luZGV4KTsKQEAgLTU0OSw2ICs1NTYsNyBAQCBzdGF0aWMgaW50IGJjbWFzcF9y eF9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50PQogYnVkZ2V0KQogCQkJdTY0X3N0 YXRzX2luYygmc3RhdHMtPnJ4X2Vycm9ycyk7CiAJCQl1NjRfc3RhdHNfdXBkYXRlX2VuZCgmc3Rh dHMtPnN5bmNwKTsKPTIwCisJCQlpbnRmLT5taWIuYWxsb2Nfcnhfc2tiX2ZhaWxlZCsrOwogCQkJ bmV0aWZfd2FybihpbnRmLCByeF9lcnIsIGludGYtPm5kZXYsCiAJCQkJICAgIlNLQiBhbGxvYyBm YWlsZWRcbiIpOwogCQkJZ290byBuZXh0OwotLT0yMAoyLjcuNAo= --000000000000f4583d05fe1e8003 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIOLjZZUn9WSUWgYRcmGghoWZCTUbQcH767HS BcLaPY78MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNDIy MzA0OVowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQAELH2xejg/BkaNy2SbYmJfWpgv6wDyDQ3hV+wZIiW5wOgif2X6dvf6 QPMlLflrIjFqIc6biu1371gFZEQ5XGqT2KZGatOo1QLeAX6g7UAZ4jlRzd12gQnLFvb4byU3OsX8 Rr94Jxwtfco9bFqvtS0KBy84R6okSJo1gDJSdWyiHO9XfVP077qO6UNQz0oL+GSYf3pdT8McW2uL lkVv5AQwmswHndQI+61oXE+uuERevGgfI2vPEJvVx8EGPVhlRYLJl8Y5doGP8mzdILPPGNcNvWDx QBFPM34+rHylPibx2iKo/it/cCz59Fa28PjlAIASRTgk/1KXCOMFuX9MpiAx --000000000000f4583d05fe1e8003-- From nobody Sat Feb 7 11:05:16 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 602A5EB64D8 for ; Wed, 14 Jun 2023 22:31:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240794AbjFNWbm (ORCPT ); Wed, 14 Jun 2023 18:31:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33002 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237054AbjFNWbS (ORCPT ); Wed, 14 Jun 2023 18:31:18 -0400 Received: from mail-qt1-x82b.google.com (mail-qt1-x82b.google.com [IPv6:2607:f8b0:4864:20::82b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3D6B22707 for ; Wed, 14 Jun 2023 15:30:53 -0700 (PDT) Received: by mail-qt1-x82b.google.com with SMTP id d75a77b69052e-3f9b7345fb1so24010371cf.1 for ; Wed, 14 Jun 2023 15:30:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686781852; x=1689373852; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=rl76FSrkV7zh9aZQKc5d44ngCfVrE87Z8np5CUmPEbI=; b=Vs1BIN61zqUsDUrjjMsH72lRE7rpUbwJmJeZBIMWzWAjpsbgLJ1A60RZv0KlH4jvxj CpmoRSSiJhZnnqNzIs6Ky3BgFa24NRPwvvpb5XMPTZH0CLGG6vfNRWyu/e9VLTHujTRY l0PNnQBQGMwucRuMP5WfMQky306R854WfYpJk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686781852; x=1689373852; h=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=rl76FSrkV7zh9aZQKc5d44ngCfVrE87Z8np5CUmPEbI=; b=WUytxisuZ40MeKYmOuljQxOWDMk7OxFptZfB8IttoikNXATiCxHt6H8XMHFaC8dFiH yMjw435jKWuDbTkcmE9Uxh2vcBmupRPNiDh3XKhS0gAjs8oycJFqrHmLKbWF154MSybi IUZqB3/ackkQPPmOhKzL2h/3enLZXBe0QJydjkSeNH4HckQscWVS0vh6HpsQ7F4Lm4jv njypnnRQadp6wKr/hoHQ7QyAA3rq15s9IzvD4o9XjGf8Szesdwgt4c5mXMB0DcnruE80 UelzlA1pT4z2VEHj00hlRb0/4RO0fgrzyN7NXOcyRhEWdKuWqcOE292TN+MSEl3QDDQB gZ+A== X-Gm-Message-State: AC+VfDz5RANWZ4Bq1dBFKL8jbdV3Li/gS36Tj8f9Jo9icKVfC/OFSY8w EJjARaF15ad6gUkb3KuZ9t3ZqQ== X-Google-Smtp-Source: ACHHUZ7o4IjCEjayxIXdoFDNKwCjWvX5DlNwzHfWLs+JoTCcmrLKHUOLb1ro7TCAC+3RKyWqCwLVpA== X-Received: by 2002:a05:622a:1822:b0:3f9:cacf:aaf6 with SMTP id t34-20020a05622a182200b003f9cacfaaf6mr3758486qtc.47.1686781851994; Wed, 14 Jun 2023 15:30:51 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d3-20020ac85443000000b003ef2db16e72sm5419360qtq.94.2023.06.14.15.30.49 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Jun 2023 15:30:51 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, christian.koenig@amd.com, simon.horman@corigine.com, Justin Chen Subject: [PATCH net-next v7 09/11] net: phy: mdio-bcm-unimac: Add asp v2.0 support Date: Wed, 14 Jun 2023 15:30:18 -0700 Message-Id: <1686781820-832-10-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> References: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000001e61ac05fe1e81f9" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --0000000000001e61ac05fe1e81f9 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIG1kaW8gY29tcGF0IHN0cmluZyBmb3IgQVNQIDIuMCBldGhlcm5ldCBkcml2ZXIuCgpSZXZp ZXdlZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3JtYW5AY29yaWdpbmUuY29tPgpSZXZpZXdl ZC1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpTaWduZWQtb2ZmLWJ5OiBGbG9yaWFu IEZhaW5lbGxpIDxmbG9yaWFuLmZhaW5lbGxpQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTog SnVzdGluIENoZW4gPGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbT4KLS0tCiBkcml2ZXJzL25ldC9t ZGlvL21kaW8tYmNtLXVuaW1hYy5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21kaW8vbWRpby1iY20tdW5pbWFjLmMgYi9k cml2ZXJzL25ldC9tZGlvL21kaW8tYmNtPQotdW5pbWFjLmMKaW5kZXggYmZjOWJlMjNjOTczLi42 YjI2YTA4MDM2OTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L21kaW8vbWRpby1iY20tdW5pbWFj LmMKKysrIGIvZHJpdmVycy9uZXQvbWRpby9tZGlvLWJjbS11bmltYWMuYwpAQCAtMzM0LDYgKzMz NCw4IEBAIHN0YXRpYyBTSU1QTEVfREVWX1BNX09QUyh1bmltYWNfbWRpb19wbV9vcHMsCiAJCQkg dW5pbWFjX21kaW9fc3VzcGVuZCwgdW5pbWFjX21kaW9fcmVzdW1lKTsKPTIwCiBzdGF0aWMgY29u c3Qgc3RydWN0IG9mX2RldmljZV9pZCB1bmltYWNfbWRpb19pZHNbXSA9M0QgeworCXsgLmNvbXBh dGlibGUgPTNEICJicmNtLGFzcC12Mi4xLW1kaW8iLCB9LAorCXsgLmNvbXBhdGlibGUgPTNEICJi cmNtLGFzcC12Mi4wLW1kaW8iLCB9LAogCXsgLmNvbXBhdGlibGUgPTNEICJicmNtLGdlbmV0LW1k aW8tdjUiLCB9LAogCXsgLmNvbXBhdGlibGUgPTNEICJicmNtLGdlbmV0LW1kaW8tdjQiLCB9LAog CXsgLmNvbXBhdGlibGUgPTNEICJicmNtLGdlbmV0LW1kaW8tdjMiLCB9LAotLT0yMAoyLjcuNAo= --0000000000001e61ac05fe1e81f9 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIEnzGqj5limPyn3XWWeX7/6M+Ed7zWICe6ZI 8/t8bKFNMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNDIy MzA1MlowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQCK/XRur85on5wqfpfMnyu8xLVzXKuKkvGu2q/dlmyxxjXu3a7NHoOe jsJAlw5aETBHBn0kaRAZ6j1pQsCK59wElg205DC3z8SfAB4qD0kP85LgBnPDH7MB7jqJy2PwFWkO 4KoB9MEKY86awT6xp/iCYqvu+lygscmiXUQFPnmwibsMgIOLnllkJBzvKKDaaPpAMnNFq42J33oE X3Rj2z1HmT/yaumagyDpzUes4mKH+I4F3KJvhQe98ZEaYaggdA3vCdQn1lVF7ufJvgiXEdALE1T4 WVJ5gOKmcZd1I+qxq1YMnLZzW7i43Uey00HH/yd/8C/UNVkE+HmKxwt/ZLhN --0000000000001e61ac05fe1e81f9-- From nobody Sat Feb 7 11:05:16 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3D47EEB64D9 for ; Wed, 14 Jun 2023 22:31:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239454AbjFNWbs (ORCPT ); Wed, 14 Jun 2023 18:31:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33624 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237103AbjFNWbT (ORCPT ); Wed, 14 Jun 2023 18:31:19 -0400 Received: from mail-qt1-x834.google.com (mail-qt1-x834.google.com [IPv6:2607:f8b0:4864:20::834]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 807B92954 for ; Wed, 14 Jun 2023 15:30:55 -0700 (PDT) Received: by mail-qt1-x834.google.com with SMTP id d75a77b69052e-3f9c1735984so24147581cf.1 for ; Wed, 14 Jun 2023 15:30:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686781854; x=1689373854; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=t6/UPVXYiomVPSklnyQ47kaCPlNKMK0pICCZEwW/i9I=; b=ACxwPJghxlb6jFl/18bTZYnpTmHw0edCO+mT8DYYIhmN4YlHxZQfBLK1E1vFlEhhdt j0bLGqXwWaU5AAY/nQ6fgMS3nT7lz+qhPuMSXKdts4SNj4jaxsmE80fnR36c4h6lmgr7 lyebWoGQdhvZMUY6EqbLVbVFwELR00N580jTo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686781854; x=1689373854; h=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=t6/UPVXYiomVPSklnyQ47kaCPlNKMK0pICCZEwW/i9I=; b=CcuZzIkR6N/cJ2nQItXIXNcU+0I0mRVurDiz/P2gF45tTG7y2Dw0/C2btDbKBPZ7U7 gDSsUWAAjrdhjWUymUuqBZHxQYHZmqXx5n5koRVayhi1GAC2RbTwaV8BuJj7OZvb+6hp KsfuNuUS/NWZ0P52FkGVhhpc1oCYcePp+9pRDBK/2IsayCvPrkT/v8jWyJ+UCEKIwTNn +bGAROMWDWmZSqRBsY5kI+jVCy32utgsD8u1/R6GqdVuefWptNBM3dyRAVVtlluv3Ckd zT0YqJXfPnmazFrMjpmP9G1VrJZq2p7sJ4SeQzsoJt3xXLW/9Afye89vbSlSwSFMFZxW spHw== X-Gm-Message-State: AC+VfDwoXVeXt1W1cedzDD+nH3KhLRaYtdxCJPCP2ijZC58v4CYgd9qk YuGszWhbLtNLdqOEQWQEGxQMZg== X-Google-Smtp-Source: ACHHUZ6mU8A+cD44cErRUfqDxaetxR5c6EEy1PVJlqgBBTP/Seqqmt+3ooxU2cJ3qSyPDXaTwaddcg== X-Received: by 2002:ac8:5cc8:0:b0:3f6:c1af:aa73 with SMTP id s8-20020ac85cc8000000b003f6c1afaa73mr4571944qta.42.1686781854540; Wed, 14 Jun 2023 15:30:54 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d3-20020ac85443000000b003ef2db16e72sm5419360qtq.94.2023.06.14.15.30.52 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Jun 2023 15:30:54 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, christian.koenig@amd.com, simon.horman@corigine.com, Justin Chen Subject: [PATCH net-next v7 10/11] net: phy: bcm7xxx: Add EPHY entry for 74165 Date: Wed, 14 Jun 2023 15:30:19 -0700 Message-Id: <1686781820-832-11-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> References: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="00000000000045f08c05fe1e81bc" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --00000000000045f08c05fe1e81bc MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RnJvbTogRmxvcmlhbiBGYWluZWxsaSA8Zmxvcmlhbi5mYWluZWxsaUBicm9hZGNvbS5jb20+Cgo3 NDE2NSBpcyBhIDE2bm0gcHJvY2VzcyBTb0Mgd2l0aCBhIDEwLzEwMCBpbnRlZ3JhdGVkIEV0aGVy bmV0IFBIWSwKdXRpbGl6ZSB0aGUgcmVjZW50bHkgZGVmaW5lZCAxNm5tIEVQSFkgbWFjcm8gdG8g Y29uZmlndXJlIHRoYXQgUEhZLgoKUmV2aWV3ZWQtYnk6IFNpbW9uIEhvcm1hbiA8c2ltb24uaG9y bWFuQGNvcmlnaW5lLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5j aD4KU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zmxvcmlhbi5mYWluZWxsaUBicm9h ZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IEp1c3RpbiBDaGVuIDxqdXN0aW4uY2hlbkBicm9hZGNv bS5jb20+Ci0tLQogZHJpdmVycy9uZXQvcGh5L2JjbTd4eHguYyB8IDEgKwogaW5jbHVkZS9saW51 eC9icmNtcGh5LmggICB8IDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvYmNtN3h4eC5jIGIvZHJpdmVycy9uZXQvcGh5L2Jj bTd4eHguYwppbmRleCBmOGMxN2EyNTNmOGIuLjg0NzhiMDgxYzA1OCAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvcGh5L2JjbTd4eHguYworKysgYi9kcml2ZXJzL25ldC9waHkvYmNtN3h4eC5jCkBA IC05MTMsNiArOTEzLDcgQEAgc3RhdGljIHN0cnVjdCBwaHlfZHJpdmVyIGJjbTd4eHhfZHJpdmVy W10gPTNEIHsKIAlCQ003WFhYXzI4Tk1fR1BIWShQSFlfSURfQkNNNzI3OCwgIkJyb2FkY29tIEJD TTcyNzgiKSwKIAlCQ003WFhYXzI4Tk1fR1BIWShQSFlfSURfQkNNNzM2NCwgIkJyb2FkY29tIEJD TTczNjQiKSwKIAlCQ003WFhYXzI4Tk1fR1BIWShQSFlfSURfQkNNNzM2NiwgIkJyb2FkY29tIEJD TTczNjYiKSwKKwlCQ003WFhYXzE2Tk1fRVBIWShQSFlfSURfQkNNNzQxNjUsICJCcm9hZGNvbSBC Q003NDE2NSIpLAogCUJDTTdYWFhfMjhOTV9HUEhZKFBIWV9JRF9CQ003NDM3MSwgIkJyb2FkY29t IEJDTTc0MzcxIiksCiAJQkNNN1hYWF8yOE5NX0dQSFkoUEhZX0lEX0JDTTc0MzksICJCcm9hZGNv bSBCQ003NDM5IiksCiAJQkNNN1hYWF8yOE5NX0dQSFkoUEhZX0lEX0JDTTc0MzlfMiwgIkJyb2Fk Y29tIEJDTTc0MzkgKDIpIiksCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2JyY21waHkuaCBi L2luY2x1ZGUvbGludXgvYnJjbXBoeS5oCmluZGV4IDVkNzMyZjQ4Zjc4Ny4uYzU1ODEwYTQzNTQx IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2JyY21waHkuaAorKysgYi9pbmNsdWRlL2xpbnV4 L2JyY21waHkuaApAQCAtNDQsNiArNDQsNyBAQAogI2RlZmluZSBQSFlfSURfQkNNNzM2NgkJCTB4 NjAwZDg0OTAKICNkZWZpbmUgUEhZX0lEX0JDTTczNDYJCQkweDYwMGQ4NjUwCiAjZGVmaW5lIFBI WV9JRF9CQ003MzYyCQkJMHg2MDBkODRiMAorI2RlZmluZSBQSFlfSURfQkNNNzQxNjUJCQkweDM1 OTA1MmMwCiAjZGVmaW5lIFBIWV9JRF9CQ003NDI1CQkJMHg2MDBkODZiMAogI2RlZmluZSBQSFlf SURfQkNNNzQyOQkJCTB4NjAwZDg3MzAKICNkZWZpbmUgUEhZX0lEX0JDTTc0MzUJCQkweDYwMGQ4 NzUwCi0tPTIwCjIuNy40Cg== --00000000000045f08c05fe1e81bc Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEILud5hDTsFVW/CmCgRXSecajL/5p0K2C5Qac eOL4CtXLMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNDIy MzA1NFowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQAnjUvTfraoZHFiExvHF2l0A9Cba0lYhhnHQRb8sdpIgNHXeqUXiiGm cqDL2KcHAQHKaG99FuGr52DGYRskM5dQ742BzshBO7+ju0HAk7IIoOCo7OklYAWXW35XzrUMQKjx NOV5y118E8YCcjOi+0phAYn72bN8aka45aouh/+grqUmRwTrl07YJ0wXW14aghzmO1YnSoeSc00O UFba4DxbieM4tdLiAq79TbkJMtzH6fFPVKgXemGJ1yjpgWuwUTEjSmGncB/8Il2se5/ZG14XYzNp BfbETlXwy8WyJ2K6eKt4S5/naTdpYUxedCjeysI7jxvIjzuzwql/5HfAmTkK --00000000000045f08c05fe1e81bc-- From nobody Sat Feb 7 11:05:16 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B9818EB64D8 for ; Wed, 14 Jun 2023 22:31:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240907AbjFNWby (ORCPT ); Wed, 14 Jun 2023 18:31:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33550 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240276AbjFNWbc (ORCPT ); Wed, 14 Jun 2023 18:31:32 -0400 Received: from mail-qt1-x82b.google.com (mail-qt1-x82b.google.com [IPv6:2607:f8b0:4864:20::82b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A193296A for ; Wed, 14 Jun 2023 15:30:58 -0700 (PDT) Received: by mail-qt1-x82b.google.com with SMTP id d75a77b69052e-3f9d8aa9025so22523421cf.0 for ; Wed, 14 Jun 2023 15:30:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686781857; x=1689373857; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=02OAhTZ6kyNDdadbbpuZFwSYQKoi5yXb7ZB1ZihnxbE=; b=V4sErco3fosV/Azz797/7FrEWp53XGpQ8bslB1EN6wJSVEjetPHe0Qfzb9XhKQfxD0 0otd3kCOOuxBp8WSCJnAK+D3hDfWu/13LD93m6mPYiB4LZ62qcQfQk9OHxxgehNT27n2 vGFgnS+reL/TiGLTsgv36XpzK5BQ4ePU7Sbbc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686781857; x=1689373857; h=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=02OAhTZ6kyNDdadbbpuZFwSYQKoi5yXb7ZB1ZihnxbE=; b=hHcDgpWsrwwcIieOy22fcowkNEJVygGINVNrpyq+5oeuPqbZXQHgbucVAv4E9cs/78 uVxcImdDcU6k9PagqaCYJTD1YUUuz6LrGZcEOhNMiplJbHO9ZBZU9ooWnQaj8/KmrFat NOIt6VNkTIylRVBYdsSoZhakSqZQwStKhgAFo41hEyqTLHpSfcgnTHlvBG/QX6FMjXwP SiM9EpLcU5xZrQ7dHP3btx3IfoKvujgPhpGR5viIlv9FbsTnT7uVKIJsOquc0KPJ1f0B bdEQFvBIrTi69xj3Gi9jaVM3fttJv0f4TZM4VJ4tQ6J2D5oMpP9iCCtWDzS0diq2XpVx q9hw== X-Gm-Message-State: AC+VfDxs/tv8c9c4wn6HkLI9fo96FcVT06YxlhQbrCypZOJavduAj6DZ C51W7JBV3d/qn8XuozyFGv46uEScXvpG5EYyX5N2yg== X-Google-Smtp-Source: ACHHUZ4hDEZa4s5L6tyUv/T4Q/e4vMlLGqKdLeH1bVtrJ5x6RsR39zgR7NkEUM08x4ACsBq0LB1Jvw== X-Received: by 2002:a05:622a:1895:b0:3f6:84ac:659f with SMTP id v21-20020a05622a189500b003f684ac659fmr4190507qtc.29.1686781857096; Wed, 14 Jun 2023 15:30:57 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d3-20020ac85443000000b003ef2db16e72sm5419360qtq.94.2023.06.14.15.30.54 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Jun 2023 15:30:56 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, christian.koenig@amd.com, simon.horman@corigine.com, Justin Chen Subject: [PATCH net-next v7 11/11] MAINTAINERS: ASP 2.0 Ethernet driver maintainers Date: Wed, 14 Jun 2023 15:30:20 -0700 Message-Id: <1686781820-832-12-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> References: <1686781820-832-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000006c174e05fe1e81a5" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --0000000000006c174e05fe1e81a5 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIG1haW50YWluZXJzIGVudHJ5IGZvciBBU1AgMi4wIEV0aGVybmV0IGRyaXZlci4KClJldmll d2VkLWJ5OiBTaW1vbiBIb3JtYW4gPHNpbW9uLmhvcm1hbkBjb3JpZ2luZS5jb20+ClNpZ25lZC1v ZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGZsb3JpYW4uZmFpbmVsbGlAYnJvYWRjb20uY29tPgpT aWduZWQtb2ZmLWJ5OiBKdXN0aW4gQ2hlbiA8anVzdGluLmNoZW5AYnJvYWRjb20uY29tPgotLS0K djMKCS0gQ2hhbmdlIGZyb20gZ21haWwgdG8gYnJvYWRjb20gZW1haWxzCgogTUFJTlRBSU5FUlMg fCA5ICsrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKaW5kZXggY2Q5NzUyNDcyZDc3Li5kNmIzN2I0 NWM3ZmQgMTAwNjQ0Ci0tLSBhL01BSU5UQUlORVJTCisrKyBiL01BSU5UQUlORVJTCkBAIC00MTk1 LDYgKzQxOTUsMTUgQEAgRjoJZHJpdmVycy9uZXQvbWRpby9tZGlvLWJjbS11bmltYWMuYwogRjoJ aW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL2JjbWdlbmV0LmgKIEY6CWluY2x1ZGUvbGludXgv cGxhdGZvcm1fZGF0YS9tZGlvLWJjbS11bmltYWMuaAo9MjAKK0JST0FEQ09NIEFTUCAyLjAgRVRI RVJORVQgRFJJVkVSCitNOglKdXN0aW4gQ2hlbiA8anVzdGluLmNoZW5AYnJvYWRjb20uY29tPgor TToJRmxvcmlhbiBGYWluZWxsaSA8Zmxvcmlhbi5mYWluZWxsaUBicm9hZGNvbS5jb20+CitMOgli Y20ta2VybmVsLWZlZWRiYWNrLWxpc3RAYnJvYWRjb20uY29tCitMOgluZXRkZXZAdmdlci5rZXJu ZWwub3JnCitTOglTdXBwb3J0ZWQKK0Y6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5n cy9uZXQvYnJjbSxhc3AtdjIuMC55YW1sCitGOglkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9hc3AyLworCiBCUk9BRENPTSBJUFJPQyBBUk0gQVJDSElURUNUVVJFCiBNOglSYXkgSnVpIDxy anVpQGJyb2FkY29tLmNvbT4KIE06CVNjb3R0IEJyYW5kZW4gPHNicmFuZGVuQGJyb2FkY29tLmNv bT4KLS09MjAKMi43LjQK --0000000000006c174e05fe1e81a5 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIAYSD1aKjl3NbxB7rgMw5KJY8Gb4gqYkQurt hrcXOL16MBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNDIy MzA1N1owaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQBbSnc5C3CRhh/AjXrQYANVgAQ4S/MkYrfcjPLJf9lbG1Ajqv8NiWot tyWkBzCHcS5TPgJuuh7e6hP/qH2a5x1FRRRwjtlc+LjXb7pTk3/+9xd4e9l3Yv5jy2VLXqZZOpPB JWVdrWJeWViQA2a2WidzNKo+9gb+mr+Lcd8wRlRUdtZqMRgZMD9AL+NqWGyGBDuVk/2rXrOVSO47 PDfk9DX8exQwo4Ud/3/NY1gHeKhKXbso1MWVs7z7hVdOtmtmPnjQgldVTOT82LtEp0wl63xXU9a1 hctKWIJCr5kc4CLhWws5QkWNOGQvaEyI2/jFiIbsGSCn2NOSuwmfKQmtbPOj --0000000000006c174e05fe1e81a5--