From nobody Sat Feb 7 19:41:04 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 D0E8EEB64D7 for ; Fri, 16 Jun 2023 22:14:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345614AbjFPWOq (ORCPT ); Fri, 16 Jun 2023 18:14:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54052 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345788AbjFPWOf (ORCPT ); Fri, 16 Jun 2023 18:14:35 -0400 Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com [IPv6:2607:f8b0:4864:20::629]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2A4AF30F8 for ; Fri, 16 Jun 2023 15:14:34 -0700 (PDT) Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-1b52864b701so9610695ad.3 for ; Fri, 16 Jun 2023 15:14:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686953673; x=1689545673; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=0Vxp/xeVDQRhZaBC0bFaNG4rAHNskaJ9ho6wwwAvcBw=; b=TNJw0fhq5D5GTljbq4nOTpNk7BHyURqB9ILUiHdwb9ipi5zO0x33OQ5r5mM82s92ZS QHTVbMaeZ1SAHkzmWWJ77TBMQQnAF23h03IBodkG2KRquv6pecpRdsti9GLhkVhbWCS6 MKfar8ROrtiwAV2qkqGTkrNnbKNKiLXf+GTms= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686953673; x=1689545673; 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=0Vxp/xeVDQRhZaBC0bFaNG4rAHNskaJ9ho6wwwAvcBw=; b=ggF+McJGztgapaXCxnd/n/OWMOHUbpcJ2EELmw4ISipSeEhnbugfZnW+YkStxkYO5D 4KFcCsx+Qgl2vg3DzX+HeG6OV2VwiU5PxkprZtB6Ij/fP11nCtOxUJJBtq2mpf3rvg1h yRn7uB4xGq7R3tQf7T4QrQd4NJt7j1ZXobHzPrIo6knuQ/C3najrE7JBwu79rcq0SJw0 hsn7KKMtxLJIBhuj0USk1cTTuBywdIEu53gqqQOngbVq5kWHIv4hpSMnD74LXv8oDPJ5 XngdkXfXG4XMjHyTBzSrWKpSi+E+UQyjwQzhPOZQOnl4byBASDnmNn2+WqvCu/La4iJk vrFw== X-Gm-Message-State: AC+VfDxsw1sR43sQLZbe4OXUNUtThJhf60I3ep3W48S3sfBITb36n/Sg zmUjaqOjaZfs5FaNxUdkxgo+PA== X-Google-Smtp-Source: ACHHUZ6OS+/tO8Rkm6dhJt0iLLumgOyilLlQHn38iCzQIWJbn7wG33r6Gs6Jlg6o4wYI4PUx0ti5HA== X-Received: by 2002:a17:903:11cc:b0:1b0:1608:d7eb with SMTP id q12-20020a17090311cc00b001b01608d7ebmr3901053plh.5.1686953673597; Fri, 16 Jun 2023 15:14:33 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id f12-20020a170902ab8c00b001aaed524541sm16220860plr.227.2023.06.16.15.14.31 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Jun 2023 15:14:33 -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 v8 01/11] dt-bindings: net: brcm,unimac-mdio: Add asp-v2.0 Date: Fri, 16 Jun 2023 15:14:14 -0700 Message-Id: <1686953664-17498-2-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> References: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000007c799805fe468281" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --0000000000007c799805fe468281 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 --0000000000007c799805fe468281 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 A9tu0tHlMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNjIy MTQzM1owaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQBtp7pl/1UBJv/BnZxiFCeJwD87/avyy7XUrUBDhDmWRdhXj/W3P0O7 0C9DxoNXhpSlQCSVOn9aB+JtZ0fl9BYyxykR7ZTRIpe+eKHqpx4yzNmbIUZGW3IN3yMi64xmKr1u 0fgjSZ/eOdYUwyqv4Rq6z5rNOd3uBdu+h4CKTi8rD7Ga9JtmvUgM6N9MPx1HFoZnFU2/HPtYyPJV 8FjhNzlQk40Pljq9OwmzDWR0XQhGOf5p//9mbqplUv7yp6PEHyaYbYYmWdowxhbM4rZmpljOg6rE GXUsy1a+6Z9NCi0KMID68MAVqoeyhXOT2NXREtPcAET2+RgkJJNspU9J9Jjb --0000000000007c799805fe468281-- From nobody Sat Feb 7 19:41:04 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 C7069EB64DA for ; Fri, 16 Jun 2023 22:15:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345860AbjFPWOv (ORCPT ); Fri, 16 Jun 2023 18:14:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54052 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345777AbjFPWOk (ORCPT ); Fri, 16 Jun 2023 18:14:40 -0400 Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com [IPv6:2607:f8b0:4864:20::62f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 344393584 for ; Fri, 16 Jun 2023 15:14:36 -0700 (PDT) Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1b50d7b4aaaso7982325ad.3 for ; Fri, 16 Jun 2023 15:14:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686953675; x=1689545675; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=gMBy/iJyM6PVP1G2UZLDM3c8LJ4HBe3tsFhvWA4OwS8=; b=aUi4RGjjSKCJ5dsd/qiF+6+ATdKYIMUPS1OzBNnsysVY+GBp8ReZDIUszXU42Jwws3 UZiHpm9tFk7LVfQ9itXE34DyxQ/B394oMyGmyD8/2hZC7AZAZjRCk89wVSC3huHxpAg+ wbx8pqpGLQL8b44GrnyWQ4VuruOa3IigbGlaA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686953675; x=1689545675; 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=gMBy/iJyM6PVP1G2UZLDM3c8LJ4HBe3tsFhvWA4OwS8=; b=RZWp8vSGE9K+c8aFnLVA2F0kyStqF1hVsVYlVZ52lzx4X8n6MtSXlCvAr7JUf+qwlh FCnht75+i6tFZZg/Td84e3zloDE7RVs/OIPu2vqj2JMD9INfeO/wwKuG9CoyVKASg2uE 3+IsvzVNtKOfio+WEmxj9U93e+13AVlRPDKPIntmp5+kRHaGd8wF36TxslSnLWTWvrdI xBD8184ZXC2w9Ch/HjjHdCFfvcbVQaD/aOpvNMGVFvVrttu8nVTPmQl5AEFfzCP2X169 sJPq8EUV+4NCo8KvlMfCcLzLYOSthCN4IE2zPaBY1R8KwsigOQrIfNvTCrD6tsGPtuFm 6xAg== X-Gm-Message-State: AC+VfDwkmNnDtoryA+7tqqpUcHqyk0XjSocC728FCzcNJnrN5eFxrGz9 qMV5x2agNXZPKFu1HuivqSDq2g== X-Google-Smtp-Source: ACHHUZ60O/ht7b+pQZ+nuE7JBWbXHQMQ1pflIJgNeBB2BeM7yFH+QIizUu1R0MhkiKv8vw2h3OH+PA== X-Received: by 2002:a17:903:2607:b0:1af:eb1c:80ba with SMTP id jd7-20020a170903260700b001afeb1c80bamr2606321plb.8.1686953675542; Fri, 16 Jun 2023 15:14:35 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id f12-20020a170902ab8c00b001aaed524541sm16220860plr.227.2023.06.16.15.14.33 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Jun 2023 15:14: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 v8 02/11] dt-bindings: net: Brcm ASP 2.0 Ethernet controller Date: Fri, 16 Jun 2023 15:14:15 -0700 Message-Id: <1686953664-17498-3-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> References: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000009a770f05fe468281" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --0000000000009a770f05fe468281 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= --0000000000009a770f05fe468281 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIIQagYJKoZIhvcNAQcCoIIQWzCCEFcCAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0BBwGg gg3BMIIFDTCCA/WgAwIBAgIQeEqpED+lv77edQixNJMdADANBgkqhkiG9w0BAQsFADBMMSAwHgYD VQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UE AxMKR2xvYmFsU2lnbjAeFw0yMDA5MTYwMDAwMDBaFw0yODA5MTYwMDAwMDBaMFsxCzAJBgNVBAYT AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhHbG9iYWxTaWduIEdDQyBS MyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA vbCmXCcsbZ/a0fRIQMBxp4gJnnyeneFYpEtNydrZZ+GeKSMdHiDgXD1UnRSIudKo+moQ6YlCOu4t rVWO/EiXfYnK7zeop26ry1RpKtogB7/O115zultAz64ydQYLe+a1e/czkALg3sgTcOOcFZTXk38e aqsXsipoX1vsNurqPtnC27TWsA7pk4uKXscFjkeUE8JZu9BDKaswZygxBOPBQBwrA5+20Wxlk6k1 e6EKaaNaNZUy30q3ArEf30ZDpXyfCtiXnupjSK8WU2cK4qsEtj09JS4+mhi0CTCrCnXAzum3tgcH cHRg0prcSzzEUDQWoFxyuqwiwhHu3sPQNmFOMwIDAQABo4IB2jCCAdYwDgYDVR0PAQH/BAQDAgGG MGAGA1UdJQRZMFcGCCsGAQUFBwMCBggrBgEFBQcDBAYKKwYBBAGCNxQCAgYKKwYBBAGCNwoDBAYJ KwYBBAGCNxUGBgorBgEEAYI3CgMMBggrBgEFBQcDBwYIKwYBBQUHAxEwEgYDVR0TAQH/BAgwBgEB /wIBADAdBgNVHQ4EFgQUljPR5lgXWzR1ioFWZNW+SN6hj88wHwYDVR0jBBgwFoAUj/BLf6guRSSu TVD6Y5qL3uLdG7wwegYIKwYBBQUHAQEEbjBsMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9i YWxzaWduLmNvbS9yb290cjMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5j b20vY2FjZXJ0L3Jvb3QtcjMuY3J0MDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs c2lnbi5jb20vcm9vdC1yMy5jcmwwWgYDVR0gBFMwUTALBgkrBgEEAaAyASgwQgYKKwYBBAGgMgEo CjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAN BgkqhkiG9w0BAQsFAAOCAQEAdAXk/XCnDeAOd9nNEUvWPxblOQ/5o/q6OIeTYvoEvUUi2qHUOtbf jBGdTptFsXXe4RgjVF9b6DuizgYfy+cILmvi5hfk3Iq8MAZsgtW+A/otQsJvK2wRatLE61RbzkX8 9/OXEZ1zT7t/q2RiJqzpvV8NChxIj+P7WTtepPm9AIj0Keue+gS2qvzAZAY34ZZeRHgA7g5O4TPJ /oTd+4rgiU++wLDlcZYd/slFkaT3xg4qWDepEMjT4T1qFOQIL+ijUArYS4owpPg9NISTKa1qqKWJ jFoyms0d0GwOniIIbBvhI2MJ7BSY9MYtWVT5jJO3tsVHwj4cp92CSFuGwunFMzCCA18wggJHoAMC AQICCwQAAAAAASFYUwiiMA0GCSqGSIb3DQEBCwUAMEwxIDAeBgNVBAsTF0dsb2JhbFNpZ24gUm9v dCBDQSAtIFIzMRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTA5 MDMxODEwMDAwMFoXDTI5MDMxODEwMDAwMFowTDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENB IC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMJXaQeQZ4Ihb1wIO2hMoonv0FdhHFrYhy/EYCQ8eyip0E XyTLLkvhYIJG4VKrDIFHcGzdZNHr9SyjD4I9DCuul9e2FIYQebs7E4B3jAjhSdJqYi8fXvqWaN+J J5U4nwbXPsnLJlkNc96wyOkmDoMVxu9bi9IEYMpJpij2aTv2y8gokeWdimFXN6x0FNx04Druci8u nPvQu7/1PQDhBjPogiuuU6Y6FnOM3UEOIDrAtKeh6bJPkC4yYOlXy7kEkmho5TgmYHWyn3f/kRTv riBJ/K1AFUjRAjFhGV64l++td7dkmnq/X8ET75ti+w1s4FRpFqkD2m7pg5NxdsZphYIXAgMBAAGj QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSP8Et/qC5FJK5N UPpjmove4t0bvDANBgkqhkiG9w0BAQsFAAOCAQEAS0DbwFCq/sgM7/eWVEVJu5YACUGssxOGhigH M8pr5nS5ugAtrqQK0/Xx8Q+Kv3NnSoPHRHt44K9ubG8DKY4zOUXDjuS5V2yq/BKW7FPGLeQkbLmU Y/vcU2hnVj6DuM81IcPJaP7O2sJTqsyQiunwXUaMld16WCgaLx3ezQA3QY/tRG3XUyiXfvNnBB4V 14qWtNPeTCekTBtzc3b0F5nCH3oO4y0IrQocLP88q1UOD5F+NuvDV0m+4S4tfGCLw0FREyOdzvcy a5QBqJnnLDMfOjsl0oZAzjsshnjJYS8Uuu7bVW/fhO4FCU29KNhyztNiUGUe65KXgzHZs7XKR1g/ XzCCBUkwggQxoAMCAQICDCPwEotc2kAt96Z1EDANBgkqhkiG9w0BAQsFADBbMQswCQYDVQQGEwJC RTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTExMC8GA1UEAxMoR2xvYmFsU2lnbiBHQ0MgUjMg UGVyc29uYWxTaWduIDIgQ0EgMjAyMDAeFw0yMjA5MTAxMjM5NTBaFw0yNTA5MTAxMjM5NTBaMIGM MQswCQYDVQQGEwJJTjESMBAGA1UECBMJS2FybmF0YWthMRIwEAYDVQQHEwlCYW5nYWxvcmUxFjAU BgNVBAoTDUJyb2FkY29tIEluYy4xFDASBgNVBAMTC0p1c3RpbiBDaGVuMScwJQYJKoZIhvcNAQkB FhhqdXN0aW4uY2hlbkBicm9hZGNvbS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB AQDKX7oyRqaeT81UCy+OTzAUHJeHABD6GDVZu7IJxt8GWSGx+ebFexFz/gnRO/sgwnPzzrC2DwM1 kaDgYe+pI1lMzUZvAB5DfS1qXKNGoeeNv7FoNFlv3iD4bvOykX/K/voKtjS3QNs0EDnwkvETUWWu yiXtMiGENBBJcbGirKuFTT3U/2iPoSL5OeMSEqKLdkNTT9O79KN+Rf7Zi4Duz0LUqqpz9hZl4zGc 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 1esFfaZvMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNjIy MTQzNVowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQCEkvVLskOj+YpM2fQ/qsra36ELbAtpRngdMwDHQleFnF5UVnxPNTLt 5LIT+NS4qirQrWanGJqN0HKbjHcT3NeAvkfSiPmKDEwZ/x8/jns2PmWjW/wAvXCdfcV4g1dQKrzE ZC8zXU/on7TneKCTBEDKYYxp//s7zGV0jA4rSQr0ZS+OYmgTkWd1VvZTJ/yYcOhq7ydhPk9+g5ne nDUUDCp3oJ1ZOtkQ7VihLA0EENB0V537M4xKEG5DoBIbbkgzGUV/Ej+Q8/NI1NT6evtcmXwkhPfG +WmlVAzZ/MmvXtomiT45U8l9cwiyaKzVTzS+Yu1/EIjumRpxrmLXY7f/GOA+ --0000000000009a770f05fe468281-- From nobody Sat Feb 7 19:41:04 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 81FAFEB64D8 for ; Fri, 16 Jun 2023 22:15:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345200AbjFPWPI (ORCPT ); Fri, 16 Jun 2023 18:15:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54342 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345783AbjFPWOs (ORCPT ); Fri, 16 Jun 2023 18:14:48 -0400 Received: from mail-pf1-x42b.google.com (mail-pf1-x42b.google.com [IPv6:2607:f8b0:4864:20::42b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E5E902110 for ; Fri, 16 Jun 2023 15:14:38 -0700 (PDT) Received: by mail-pf1-x42b.google.com with SMTP id d2e1a72fcca58-6667c54839bso1239516b3a.3 for ; Fri, 16 Jun 2023 15:14:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686953678; x=1689545678; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=wUwYhBkZapu3MFbBXC/Dzli+AjUgNsT7jYKNKpSl0Gc=; b=Tj9tqBDxf9b/ZEKJ9aaxP2iS8oamCY0KIC38NEBl8pDSY7ojwqp3AWjviMjCI5Y2rs TbHv0FZEM5YP8FI4NRZwTxVPbX/nKpWIB3EclHc9lDPXhbEv6iCKDg162YOmGdbQAhj3 YNI1NO3GqdaRqAgJyC6GpqybmBGCrYDX+vWvM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686953678; x=1689545678; 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=wUwYhBkZapu3MFbBXC/Dzli+AjUgNsT7jYKNKpSl0Gc=; b=LIdPzw6M0TUJxpnw3MUc3ZO7HNrk5cIfxrcL3IYGtXR2Bq2gRexqlIsxVlNgKpdGGw JE7jjNmV9IPo50XQeLddDGcR1lCj92FmW1iEvW+dMu5xq5fyGpBAWsmQ3Ucw7dKnZ9L7 zpRtLwwZi4lmTq3VkhKBuGQS7zged9sdvKZSYcvubGWlsouUlk3jJ4MhNEikAnsqGyf/ rUZRdBQYtiYUFKCqjuLCaj9aVBxed8wAcjLxj31BO7j5ekjm0dcNLwvQ5RwKQ7JBysE+ wkSpWy+l9BaQlDWgI0D00AO42iDdzBNizZkhtQD1xEnBiclIS8Jh5MkL96qcVwSTxFOF 9qDA== X-Gm-Message-State: AC+VfDyS8gspG0RnDMhK2J4+PjqdiEZiAY9Q5FwiQIoFmP/q0Yc4JMc1 Oax3KJ/EhKzZN/8gcCjko+f0GA== X-Google-Smtp-Source: ACHHUZ65JPTO4UdRDdu4sSJkPxvHfTDvXn/TNyBOVKH+2FZu1qn3sDZvjOFMhDAWcChXr48c2rUJaw== X-Received: by 2002:a17:902:e843:b0:1ac:7405:d3ba with SMTP id t3-20020a170902e84300b001ac7405d3bamr4034092plg.40.1686953677702; Fri, 16 Jun 2023 15:14:37 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id f12-20020a170902ab8c00b001aaed524541sm16220860plr.227.2023.06.16.15.14.35 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Jun 2023 15:14: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 v8 03/11] net: bcmasp: Add support for ASP2.0 Ethernet controller Date: Fri, 16 Jun 2023 15:14:16 -0700 Message-Id: <1686953664-17498-4-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> References: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000c29ef705fe4682ba" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --000000000000c29ef705fe4682ba MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIHRoZSBCcm9hZGNvbSBBU1AgMi4wIEV0aGVybmV0IGNvbnRyb2xsZXIg d2hpY2ggaXMgZmlyc3QKaW50cm9kdWNlZCB3aXRoIDcyMTY1LiBUaGlzIGNvbnRyb2xsZXIgZmVh dHVyZXMgdHdvIGRpc3RpbmN0IEV0aGVybmV0CnBvcnRzIHRoYXQgY2FuIGJlIGluZGVwZW5kZW50 bHkgb3BlcmF0ZWQuCgpSZXZpZXdlZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3JtYW5AY29y aWdpbmUuY29tPgpTaWduZWQtb2ZmLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmbG9yaWFuLmZhaW5l bGxpQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogSnVzdGluIENoZW4gPGp1c3Rpbi5jaGVu QGJyb2FkY29tLmNvbT4KLS0tCnY4CgktIEFkZHJlc3Mgc29tZSBjaGVja3BhdGNoIHdhcm5pbmdz Cgp2NwoJLSBGaXhlZCBsZWFraW5nIHBvcnRzX25vZGUgZGV2aWNlIG5vZGUuCgktIFNwbGl0IG91 dCB0byBzbWFsbGVyIGNvbW1pdHMKCnY2CgktIEZpeGVkIGEgcmVzZXJ2ZWQgbWFjIGZpbHRlciBp bmRleGluZyBlcnJvcgoJLSBSZW1vdmVkIHR4X2xvY2sKCS0gU2ltcGxpZmllZCB0eF90aW1lb3V0 IGhvb2sKCS0gUmVtb3ZlZCBnZXRfc3RhdHMKCS0gRml4ZWQgcGh5IGlvY3RsCgktIEZpeGVkIGRl diAtPiBuZGV2IHR5cG8KCS0gRml4ZWQgc2V0X3dvbCBkb3VibGUgZGlzYWJsZQoKdjUKCS0gUmVt b3ZlIHVubmVjZXNzYXJ5IHBhcmVudGhlc2lzCgktIFVzZSBib29sIGZvciBiY21hc3BfbmV0Zmls dF9jaGVja19kdXAoKQoKdjQKICAgICAgICAtIEFkZHJlc3Mgc3BhcnNlIHdhcm5pbmdzCiAgICAg ICAgLSBGaXggb25lIG1vcmUgcmV2ZXJzZSB4bWFzIHRyZWUgdmlvbGF0aW9uCiAgICAgICAgLSBJ bXByb3ZlIGVycm9yIGxvZ2ljIGZvciBiY21hc3BfbmV0ZmlsdF9nZXRfcmVnX29mZnNldCgpCgkt IFJlbW92ZSBpbmxpbmVzCgp2MwogICAgICAgIC0gRml4IGxvZ2ljIGVycm9yIHdpdGggbmV0IHN0 YXRzIHdoZXJlIHNvbWUgc3RhdHMgd2VyZSBtaXNzaW5nCiAgICAgICAgLSBHZW5lcmFsIGNsZWFu IHVwIGFkZHJlc3NpbmcgZm9ybWF0dGluZy9zcGVsbGluZy9jb25zaXN0ZW5jeQogICAgICAgIC0g VXNlIGRldl9lcnJfcHJvYmUgdG8gc2F2ZSBhIGZldyBMb0NzCiAgICAgICAgLSBVc2UgcHV0X3Vu YWxpZ25lZCB3aGVuIHVwZGF0aW5nIG5ldCBzdGF0cwoKdjIKICAgICAgICAtIFJlcGxhY2UgYSBj b3VwbGUgZnVuY3Rpb25zIHdpdGggaGVscGVyIGZ1bmN0aW9ucwogICAgICAgIC0gRml4IGEgZmV3 IFdvTCBpc3N1ZXMKCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9LY29uZmlnICAgICAg ICAgICAgICB8ICAgMTEgKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vTWFrZWZpbGUg ICAgICAgICAgICAgfCAgICAxICsKIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIv TWFrZWZpbGUgICAgICAgIHwgICAgMiArCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9h c3AyL2JjbWFzcC5jICAgICAgICB8ICA3MjYgKysrKysrKysrKysKIGRyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmggICAgICAgIHwgIDUwNCArKysrKysrKwogLi4uL25l dC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29sLmMgICAgfCAgIDQwICsKIGRy aXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2ludGYuYyAgIHwgMTM1OCAr KysrKysrKysrKysrKysrPQorKysrCiAuLi4vbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNt YXNwX2ludGZfZGVmcy5oICB8ICAxOTYgKysrCiA4IGZpbGVzIGNoYW5nZWQsIDI4MzggaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2FzcDIvTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9hZGNvbS9hc3AyL2JjbWFzcC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3AuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2V0aHRvb2wuYwogY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2ludGYuYwog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNt YXNwX2ludGZfZGVmcy5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vS2NvbmZpZyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2I9CnJvYWRjb20vS2NvbmZpZwppbmRl eCA5NDg1ODZiZjFiNWIuLmQ0MTY2MTQxMTQ1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vS2NvbmZpZworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9LY29uZmlnCkBAIC0yNTUsNCArMjU1LDE1IEBAIGNvbmZpZyBCTlhUX0hXTU9OCiAJICBTYXkg WSBpZiB5b3Ugd2FudCB0byBleHBvc2UgdGhlIHRoZXJtYWwgc2Vuc29yIGRhdGEgb24gTmV0WHRy ZW1lLUMvRQogCSAgZGV2aWNlcywgdmlhIHRoZSBod21vbiBzeXNmcyBpbnRlcmZhY2UuCj0yMAor Y29uZmlnIEJDTUFTUAorCXRyaXN0YXRlICJCcm9hZGNvbSBBU1AgMi4wIEV0aGVybmV0IHN1cHBv cnQiCisJZGVmYXVsdCBBUkNIX0JSQ01TVEIKKwlkZXBlbmRzIG9uIE9GCisJc2VsZWN0IE1JSQor CXNlbGVjdCBQSFlMSUIKKwlzZWxlY3QgTURJT19CQ01fVU5JTUFDCisJaGVscAorCSAgVGhpcyBj b25maWd1cmF0aW9uIGVuYWJsZXMgdGhlIEJyb2FkY29tIEFTUCAyLjAgRXRoZXJuZXQgY29udHJv bGxlcgorCSAgZHJpdmVyIHdoaWNoIGlzIHByZXNlbnQgaW4gQnJvYWRjb20gU1RCIFNvQ3Mgc3Vj aCBhcyA3MjE2NS4KKwogZW5kaWYgIyBORVRfVkVORE9SX0JST0FEQ09NCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9NYWtlZmlsZSBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0Lz0KYnJvYWRjb20vTWFrZWZpbGUKaW5kZXggMGRkZmI1YjVkNTNjLi5iYWM1Y2I2YWQwY2Qg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL01ha2VmaWxlCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL01ha2VmaWxlCkBAIC0xNywzICsxNyw0IEBA IG9iai0kKENPTkZJR19CR01BQ19CQ01BKSArPTNEIGJnbWFjLWJjbWEubyBiZ21hYy1iY21hLW1k aT0Kby5vCiBvYmotJChDT05GSUdfQkdNQUNfUExBVEZPUk0pICs9M0QgYmdtYWMtcGxhdGZvcm0u bwogb2JqLSQoQ09ORklHX1NZU1RFTVBPUlQpICs9M0QgYmNtc3lzcG9ydC5vCiBvYmotJChDT05G SUdfQk5YVCkgKz0zRCBibnh0Lworb2JqLSQoQ09ORklHX0JDTUFTUCkgKz0zRCBhc3AyLwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9NYWtlZmlsZSBiL2Ry aXZlcnMvbmV0L2V0aGU9CnJuZXQvYnJvYWRjb20vYXNwMi9NYWtlZmlsZQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmUwNzU1MDMxNWY4MwotLS0gL2Rldi9udWxsCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvTWFrZWZpbGUKQEAgLTAsMCAr MSwyIEBACitvYmotJChDT05GSUdfQkNNQVNQKSArPTNEIGJjbS1hc3AubworYmNtLWFzcC1vYmpz IDo9M0QgYmNtYXNwLm8gYmNtYXNwX2ludGYubyBiY21hc3BfZXRodG9vbC5vCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5jIGIvZHJpdmVycy9u ZXQvZXRoZT0Kcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uMzRhMGM3NTQ1ZWJkCi0tLSAvZGV2L251bGwKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3AuYwpAQCAtMCwwICsxLDcyNiBA QAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCisgKiBCcm9hZGNvbSBT VEIgQVNQIDIuMCBEcml2ZXIKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMjMgQnJvYWRjb20KKyAq LworI2luY2x1ZGUgPGxpbnV4L2V0aGVyZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvaWZfdmxh bi5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQu aD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4K KyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9vZi5o PgorI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9wbGF0 Zm9ybS5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorCisjaW5jbHVkZSAiYmNtYXNwLmgiCisj aW5jbHVkZSAiYmNtYXNwX2ludGZfZGVmcy5oIgorCitzdGF0aWMgdm9pZCBfaW50cjJfbWFza19j bGVhcihzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYsIHUzMiBtYXNrKQoreworCWludHIyX2NvcmVf d2wocHJpdiwgbWFzaywgQVNQX0lOVFIyX01BU0tfQ0xFQVIpOworCXByaXYtPmlycV9tYXNrICY9 M0Qgfm1hc2s7Cit9CisKK3N0YXRpYyB2b2lkIF9pbnRyMl9tYXNrX3NldChzdHJ1Y3QgYmNtYXNw X3ByaXYgKnByaXYsIHUzMiBtYXNrKQoreworCWludHIyX2NvcmVfd2wocHJpdiwgbWFzaywgQVNQ X0lOVFIyX01BU0tfU0VUKTsKKwlwcml2LT5pcnFfbWFzayB8PTNEIG1hc2s7Cit9CisKK3ZvaWQg YmNtYXNwX2VuYWJsZV90eF9pcnEoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBpbnQgZW4pCit7 CisJc3RydWN0IGJjbWFzcF9wcml2ICpwcml2ID0zRCBpbnRmLT5wYXJlbnQ7CisKKwlpZiAoZW4p CisJCV9pbnRyMl9tYXNrX2NsZWFyKHByaXYsIEFTUF9JTlRSMl9UWF9ERVNDKGludGYtPmNoYW5u ZWwpKTsKKwllbHNlCisJCV9pbnRyMl9tYXNrX3NldChwcml2LCBBU1BfSU5UUjJfVFhfREVTQyhp bnRmLT5jaGFubmVsKSk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChiY21hc3BfZW5hYmxlX3R4X2ly cSk7CisKK3ZvaWQgYmNtYXNwX2VuYWJsZV9yeF9pcnEoc3RydWN0IGJjbWFzcF9pbnRmICppbnRm LCBpbnQgZW4pCit7CisJc3RydWN0IGJjbWFzcF9wcml2ICpwcml2ID0zRCBpbnRmLT5wYXJlbnQ7 CisKKwlpZiAoZW4pCisJCV9pbnRyMl9tYXNrX2NsZWFyKHByaXYsIEFTUF9JTlRSMl9SWF9FQ0go aW50Zi0+Y2hhbm5lbCkpOworCWVsc2UKKwkJX2ludHIyX21hc2tfc2V0KHByaXYsIEFTUF9JTlRS Ml9SWF9FQ0goaW50Zi0+Y2hhbm5lbCkpOworfQorRVhQT1JUX1NZTUJPTF9HUEwoYmNtYXNwX2Vu YWJsZV9yeF9pcnEpOworCitzdGF0aWMgdm9pZCBiY21hc3BfaW50cjJfbWFza19zZXRfYWxsKHN0 cnVjdCBiY21hc3BfcHJpdiAqcHJpdikKK3sKKwlfaW50cjJfbWFza19zZXQocHJpdiwgMHhmZmZm ZmZmZik7CisJcHJpdi0+aXJxX21hc2sgPTNEIDB4ZmZmZmZmZmY7Cit9CisKK3N0YXRpYyB2b2lk IGJjbWFzcF9pbnRyMl9jbGVhcl9hbGwoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2KQoreworCWlu dHIyX2NvcmVfd2wocHJpdiwgMHhmZmZmZmZmZiwgQVNQX0lOVFIyX0NMRUFSKTsKK30KKworc3Rh dGljIHZvaWQgYmNtYXNwX2ludHIyX2hhbmRsaW5nKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50Ziwg dTMyIHN0YXR1cykKK3sKKwlpZiAoc3RhdHVzICYgQVNQX0lOVFIyX1JYX0VDSChpbnRmLT5jaGFu bmVsKSkgeworCQlpZiAobGlrZWx5KG5hcGlfc2NoZWR1bGVfcHJlcCgmaW50Zi0+cnhfbmFwaSkp KSB7CisJCQliY21hc3BfZW5hYmxlX3J4X2lycShpbnRmLCAwKTsKKwkJCV9fbmFwaV9zY2hlZHVs ZV9pcnFvZmYoJmludGYtPnJ4X25hcGkpOworCQl9CisJfQorCisJaWYgKHN0YXR1cyAmIEFTUF9J TlRSMl9UWF9ERVNDKGludGYtPmNoYW5uZWwpKSB7CisJCWlmIChsaWtlbHkobmFwaV9zY2hlZHVs ZV9wcmVwKCZpbnRmLT50eF9uYXBpKSkpIHsKKwkJCWJjbWFzcF9lbmFibGVfdHhfaXJxKGludGYs IDApOworCQkJX19uYXBpX3NjaGVkdWxlX2lycW9mZigmaW50Zi0+dHhfbmFwaSk7CisJCX0KKwl9 Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBiY21hc3BfaXNyKGludCBpcnEsIHZvaWQgKmRhdGEp Cit7CisJc3RydWN0IGJjbWFzcF9wcml2ICpwcml2ID0zRCBkYXRhOworCXN0cnVjdCBiY21hc3Bf aW50ZiAqaW50ZjsKKwl1MzIgc3RhdHVzOworCWludCBpOworCisJc3RhdHVzID0zRCBpbnRyMl9j b3JlX3JsKHByaXYsIEFTUF9JTlRSMl9TVEFUVVMpICYKKwkJfmludHIyX2NvcmVfcmwocHJpdiwg QVNQX0lOVFIyX01BU0tfU1RBVFVTKTsKKworCWludHIyX2NvcmVfd2wocHJpdiwgc3RhdHVzLCBB U1BfSU5UUjJfQ0xFQVIpOworCisJaWYgKHVubGlrZWx5KHN0YXR1cyA9M0Q9M0QgMCkpIHsKKwkJ ZGV2X3dhcm4oJnByaXYtPnBkZXYtPmRldiwgImwyIHNwdXJpb3VzIGludGVycnVwdFxuIik7CisJ CXJldHVybiBJUlFfTk9ORTsKKwl9CisKKwkvKiBIYW5kbGUgaW50ZmVyZmFjZXMgKi8KKwlmb3Ig KGkgPTNEIDA7IGkgPCBwcml2LT5pbnRmX2NvdW50OyBpKyspIHsKKwkJaW50ZiA9M0QgcHJpdi0+ aW50ZnNbaV07CisJCWJjbWFzcF9pbnRyMl9oYW5kbGluZyhpbnRmLCBzdGF0dXMpOworCX0KKwor CXJldHVybiBJUlFfSEFORExFRDsKK30KKwordm9pZCBiY21hc3BfZmx1c2hfcnhfcG9ydChzdHJ1 Y3QgYmNtYXNwX2ludGYgKmludGYpCit7CisJc3RydWN0IGJjbWFzcF9wcml2ICpwcml2ID0zRCBp bnRmLT5wYXJlbnQ7CisJdTMyIG1hc2s7CisKKwlzd2l0Y2ggKGludGYtPnBvcnQpIHsKKwljYXNl IDA6CisJCW1hc2sgPTNEIEFTUF9DVFJMX1VNQUMwX0ZMVVNIX01BU0s7CisJCWJyZWFrOworCWNh c2UgMToKKwkJbWFzayA9M0QgQVNQX0NUUkxfVU1BQzFfRkxVU0hfTUFTSzsKKwkJYnJlYWs7CisJ Y2FzZSAyOgorCQltYXNrID0zRCBBU1BfQ1RSTF9TUEJfRkxVU0hfTUFTSzsKKwkJYnJlYWs7CisJ ZGVmYXVsdDoKKwkJLyogTm90IHZhbGlkIHBvcnQgKi8KKwkJcmV0dXJuOworCX0KKworCXJ4X2N0 cmxfY29yZV93bChwcml2LCBtYXNrLCBwcml2LT5od19pbmZvLT5yeF9jdHJsX2ZsdXNoKTsKK30K Kworc3RhdGljIHZvaWQgYmNtYXNwX2FkZHJfdG9fdWludCh1bnNpZ25lZCBjaGFyICphZGRyLCB1 MzIgKmhpZ2gsIHUzMiAqbG93KQoreworCSpoaWdoID0zRCAodTMyKShhZGRyWzBdIDw8IDggfCBh ZGRyWzFdKTsKKwkqbG93ID0zRCAodTMyKShhZGRyWzJdIDw8IDI0IHwgYWRkclszXSA8PCAxNiB8 IGFkZHJbNF0gPDwgOCB8CisJCSAgICAgYWRkcls1XSk7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFz cF9zZXRfbWRhX2ZpbHRlcihzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsCisJCQkJICBjb25zdCB1 bnNpZ25lZCBjaGFyICphZGRyLAorCQkJCSAgdW5zaWduZWQgY2hhciAqbWFzaywKKwkJCQkgIHVu c2lnbmVkIGludCBpKQoreworCXN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiA9M0QgaW50Zi0+cGFy ZW50OworCXUzMiBhZGRyX2gsIGFkZHJfbCwgbWFza19oLCBtYXNrX2w7CisKKwkvKiBTZXQgbG9j YWwgY29weSAqLworCWV0aGVyX2FkZHJfY29weShwcml2LT5tZGFfZmlsdGVyc1tpXS5tYXNrLCBt YXNrKTsKKwlldGhlcl9hZGRyX2NvcHkocHJpdi0+bWRhX2ZpbHRlcnNbaV0uYWRkciwgYWRkcik7 CisKKwkvKiBXcml0ZSB0byBIVyAqLworCWJjbWFzcF9hZGRyX3RvX3VpbnQocHJpdi0+bWRhX2Zp bHRlcnNbaV0ubWFzaywgJm1hc2tfaCwgJm1hc2tfbCk7CisJYmNtYXNwX2FkZHJfdG9fdWludChw cml2LT5tZGFfZmlsdGVyc1tpXS5hZGRyLCAmYWRkcl9oLCAmYWRkcl9sKTsKKwlyeF9maWx0ZXJf Y29yZV93bChwcml2LCBhZGRyX2gsIEFTUF9SWF9GSUxURVJfTURBX1BBVF9IKGkpKTsKKwlyeF9m aWx0ZXJfY29yZV93bChwcml2LCBhZGRyX2wsIEFTUF9SWF9GSUxURVJfTURBX1BBVF9MKGkpKTsK KwlyeF9maWx0ZXJfY29yZV93bChwcml2LCBtYXNrX2gsIEFTUF9SWF9GSUxURVJfTURBX01TS19I KGkpKTsKKwlyeF9maWx0ZXJfY29yZV93bChwcml2LCBtYXNrX2wsIEFTUF9SWF9GSUxURVJfTURB X01TS19MKGkpKTsKK30KKworc3RhdGljIHZvaWQgYmNtYXNwX2VuX21kYV9maWx0ZXIoc3RydWN0 IGJjbWFzcF9pbnRmICppbnRmLCBib29sIGVuLAorCQkJCSB1bnNpZ25lZCBpbnQgaSkKK3sKKwlz dHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYgPTNEIGludGYtPnBhcmVudDsKKworCWlmIChwcml2LT5t ZGFfZmlsdGVyc1tpXS5lbiA9M0Q9M0QgZW4pCisJCXJldHVybjsKKworCXByaXYtPm1kYV9maWx0 ZXJzW2ldLmVuID0zRCBlbjsKKwlwcml2LT5tZGFfZmlsdGVyc1tpXS5wb3J0ID0zRCBpbnRmLT5w b3J0OworCisJcnhfZmlsdGVyX2NvcmVfd2wocHJpdiwgKChpbnRmLT5jaGFubmVsICsgOCkgfAor CQkJICAoZW4gPDwgQVNQX1JYX0ZJTFRFUl9NREFfQ0ZHX0VOX1NISUZUKSB8CisJCQkgIEFTUF9S WF9GSUxURVJfTURBX0NGR19VTUNfU0VMKGludGYtPnBvcnQpKSwKKwkJCSAgQVNQX1JYX0ZJTFRF Ul9NREFfQ0ZHKGkpKTsKK30KKworLyogVGhlcmUgYXJlIDMyIE1EQSBmaWx0ZXJzIHNoYXJlZCBi ZXR3ZWVuIGFsbCBwb3J0cywgd2UgcmVzZXJ2ZSA0IGZpbHRlcnM9CiBwZXIKKyAqIHBvcnQgZm9y IHRoZSBmb2xsb3dpbmcuCisgKiAtIFByb21pc2M6IEZpbHRlciB0byBhbGxvdyBhbGwgcGFja2V0 cyB3aGVuIHByb21pc2MgaXMgZW5hYmxlZAorICogLSBBbGwgTXVsdGljYXN0CisgKiAtIEJyb2Fk Y2FzdAorICogLSBPd24gYWRkcmVzcworICoKKyAqIFRoZSByZXNlcnZlZCBmaWx0ZXJzIGFyZSBp ZGVudGlmaWVkIGFzIHNvLgorICogLSBQcm9taXNjOiAoaW5kZXggKiA0KSArIDAKKyAqIC0gQWxs IE11bHRpY2FzdDogKGluZGV4ICogNCkgKyAxCisgKiAtIEJyb2FkY2FzdDogKGluZGV4ICogNCkg KyAyCisgKiAtIE93biBhZGRyZXNzOiAoaW5kZXggKiA0KSArIDMKKyAqLworZW51bSBhc3Bfcnhf ZmlsdGVyX2lkIHsKKwlBU1BfUlhfRklMVEVSX01EQV9QUk9NSVNDID0zRCAwLAorCUFTUF9SWF9G SUxURVJfTURBX0FMTE1VTFRJLAorCUFTUF9SWF9GSUxURVJfTURBX0JST0FEQ0FTVCwKKwlBU1Bf UlhfRklMVEVSX01EQV9PV05fQUREUiwKKwlBU1BfUlhfRklMVEVSX01EQV9SRVNfQ09VTlQsCit9 OworCisjZGVmaW5lIEFTUF9SWF9GSUxUX01EQV9SRVNfQ09VTlQoaW50ZikJKChpbnRmKS0+cGFy ZW50LT5pbnRmX2NvdW50IFwKKwkJCQkJICogQVNQX1JYX0ZJTFRFUl9NREFfUkVTX0NPVU5UKQor CisjZGVmaW5lIEFTUF9SWF9GSUxUX01EQShpbnRmLCBuYW1lKQkoKChpbnRmKS0+aW5kZXggKiBc CisJCQkJCSAgQVNQX1JYX0ZJTFRFUl9NREFfUkVTX0NPVU5UKSBcCisJCQkJCSArIEFTUF9SWF9G SUxURVJfTURBXyMjbmFtZSkKKwordm9pZCBiY21hc3Bfc2V0X3Byb21pc2Moc3RydWN0IGJjbWFz cF9pbnRmICppbnRmLCBib29sIGVuKQoreworCXVuc2lnbmVkIGludCBpID0zRCBBU1BfUlhfRklM VF9NREEoaW50ZiwgUFJPTUlTQyk7CisJdW5zaWduZWQgY2hhciBwcm9taXNjW0VUSF9BTEVOXTsK KworCWV0aF96ZXJvX2FkZHIocHJvbWlzYyk7CisJLyogU2V0IG1hc2sgdG8gMDA6MDA6MDA6MDA6 MDA6MDAgdG8gbWF0Y2ggYWxsIHBhY2tldHMgKi8KKwliY21hc3Bfc2V0X21kYV9maWx0ZXIoaW50 ZiwgcHJvbWlzYywgcHJvbWlzYywgaSk7CisJYmNtYXNwX2VuX21kYV9maWx0ZXIoaW50ZiwgZW4s IGkpOworfQorCit2b2lkIGJjbWFzcF9zZXRfYWxsbXVsdGkoc3RydWN0IGJjbWFzcF9pbnRmICpp bnRmLCBib29sIGVuKQoreworCXVuc2lnbmVkIGNoYXIgYWxsbXVsdGlbXSA9M0QgezB4MDEsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9OworCXVuc2lnbmVkIGludCBpID0zRCBBU1BfUlhf RklMVF9NREEoaW50ZiwgQUxMTVVMVEkpOworCisJLyogU2V0IG1hc2sgdG8gMDE6MDA6MDA6MDA6 MDA6MDAgdG8gbWF0Y2ggYWxsIG11bHRpY2FzdCAqLworCWJjbWFzcF9zZXRfbWRhX2ZpbHRlcihp bnRmLCBhbGxtdWx0aSwgYWxsbXVsdGksIGkpOworCWJjbWFzcF9lbl9tZGFfZmlsdGVyKGludGYs IGVuLCBpKTsKK30KKwordm9pZCBiY21hc3Bfc2V0X2Jyb2FkKHN0cnVjdCBiY21hc3BfaW50ZiAq aW50ZiwgYm9vbCBlbikKK3sKKwl1bnNpZ25lZCBpbnQgaSA9M0QgQVNQX1JYX0ZJTFRfTURBKGlu dGYsIEJST0FEQ0FTVCk7CisJdW5zaWduZWQgY2hhciBhZGRyW0VUSF9BTEVOXTsKKworCWV0aF9i cm9hZGNhc3RfYWRkcihhZGRyKTsKKwliY21hc3Bfc2V0X21kYV9maWx0ZXIoaW50ZiwgYWRkciwg YWRkciwgaSk7CisJYmNtYXNwX2VuX21kYV9maWx0ZXIoaW50ZiwgZW4sIGkpOworfQorCit2b2lk IGJjbWFzcF9zZXRfb2FkZHIoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBjb25zdCB1bnNpZ25l ZCBjaGFyICphZGRyLAorCQkgICAgICBib29sIGVuKQoreworCXVuc2lnbmVkIGNoYXIgbWFza1td ID0zRCB7MHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZn07CisJdW5zaWduZWQgaW50 IGkgPTNEIEFTUF9SWF9GSUxUX01EQShpbnRmLCBPV05fQUREUik7CisKKwliY21hc3Bfc2V0X21k YV9maWx0ZXIoaW50ZiwgYWRkciwgbWFzaywgaSk7CisJYmNtYXNwX2VuX21kYV9maWx0ZXIoaW50 ZiwgZW4sIGkpOworfQorCit2b2lkIGJjbWFzcF9kaXNhYmxlX2FsbF9maWx0ZXJzKHN0cnVjdCBi Y21hc3BfaW50ZiAqaW50ZikKK3sKKwlzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYgPTNEIGludGYt PnBhcmVudDsKKwl1bnNpZ25lZCBpbnQgaTsKKworCS8qIERpc2FibGUgYWxsIGZpbHRlcnMgaGVs ZCBieSB0aGlzIHBvcnQgKi8KKwlmb3IgKGkgPTNEIEFTUF9SWF9GSUxUX01EQV9SRVNfQ09VTlQo aW50Zik7IGkgPCBOVU1fTURBX0ZJTFRFUlM7IGkrKykgeworCQlpZiAocHJpdi0+bWRhX2ZpbHRl cnNbaV0uZW4gJiYKKwkJICAgIHByaXYtPm1kYV9maWx0ZXJzW2ldLnBvcnQgPTNEPTNEIGludGYt PnBvcnQpCisJCQliY21hc3BfZW5fbWRhX2ZpbHRlcihpbnRmLCAwLCBpKTsKKwl9Cit9CisKK3N0 YXRpYyBpbnQgYmNtYXNwX2NvbWJpbmVfc2V0X2ZpbHRlcihzdHJ1Y3QgYmNtYXNwX2ludGYgKmlu dGYsCisJCQkJICAgICB1bnNpZ25lZCBjaGFyICphZGRyLCB1bnNpZ25lZCBjaGFyICptYXNrLAor CQkJCSAgICAgaW50IGkpCit7CisJc3RydWN0IGJjbWFzcF9wcml2ICpwcml2ID0zRCBpbnRmLT5w YXJlbnQ7CisJdTY0IGFkZHIxLCBhZGRyMiwgbWFzazEsIG1hc2syLCBtYXNrMzsKKworCS8qIFN3 aXRjaCB0byB1NjQgdG8gaGVscCB3aXRoIHRoZSBjYWxjdWxhdGlvbnMgKi8KKwlhZGRyMSA9M0Qg ZXRoZXJfYWRkcl90b191NjQocHJpdi0+bWRhX2ZpbHRlcnNbaV0uYWRkcik7CisJbWFzazEgPTNE IGV0aGVyX2FkZHJfdG9fdTY0KHByaXYtPm1kYV9maWx0ZXJzW2ldLm1hc2spOworCWFkZHIyID0z RCBldGhlcl9hZGRyX3RvX3U2NChhZGRyKTsKKwltYXNrMiA9M0QgZXRoZXJfYWRkcl90b191NjQo bWFzayk7CisKKwkvKiBDaGVjayBpZiBvbmUgZmlsdGVyIHJlc2lkZXMgd2l0aGluIHRoZSBvdGhl ciAqLworCW1hc2szID0zRCBtYXNrMSAmIG1hc2syOworCWlmIChtYXNrMyA9M0Q9M0QgbWFzazEg JiYgKChhZGRyMSAmIG1hc2sxKSA9M0Q9M0QgKGFkZHIyICYgbWFzazEpKSkgeworCQkvKiBGaWx0 ZXIgMiByZXNpZGVzIHdpdGhpbiBmaWx0ZXIgMSwgc28gZXZlcnl0aGluZyBpcyBnb29kICovCisJ CXJldHVybiAwOworCX0gZWxzZSBpZiAobWFzazMgPTNEPTNEIG1hc2syICYmICgoYWRkcjEgJiBt YXNrMikgPTNEPTNEIChhZGRyMiAmIG1hc2syKSk9CikgeworCQkvKiBGaWx0ZXIgMSByZXNpZGVz IHdpdGhpbiBmaWx0ZXIgMiwgc28gc3dhcCBmaWx0ZXJzICovCisJCWJjbWFzcF9zZXRfbWRhX2Zp bHRlcihpbnRmLCBhZGRyLCBtYXNrLCBpKTsKKwkJcmV0dXJuIDA7CisJfQorCisJLyogVW5hYmxl IHRvIGNvbWJpbmUgKi8KKwlyZXR1cm4gLUVJTlZBTDsKK30KKworaW50IGJjbWFzcF9zZXRfZW5f bWRhX2ZpbHRlcihzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIHVuc2lnbmVkIGNoYXIgKmFkZHIs CisJCQkgICAgIHVuc2lnbmVkIGNoYXIgKm1hc2spCit7CisJc3RydWN0IGJjbWFzcF9wcml2ICpw cml2ID0zRCBpbnRmLT5wYXJlbnQ7CisJaW50IGksIHJldDsKKworCWZvciAoaSA9M0QgQVNQX1JY X0ZJTFRfTURBX1JFU19DT1VOVChpbnRmKTsgaSA8IE5VTV9NREFfRklMVEVSUzsgaSsrKSB7CisJ CS8qIElmIGZpbHRlciBub3QgZW5hYmxlZCBvciBiZWxvbmdzIHRvIGFub3RoZXIgcG9ydCBza2lw ICovCisJCWlmICghcHJpdi0+bWRhX2ZpbHRlcnNbaV0uZW4gfHwKKwkJICAgIHByaXYtPm1kYV9m aWx0ZXJzW2ldLnBvcnQgIT0zRCBpbnRmLT5wb3J0KQorCQkJY29udGludWU7CisKKwkJLyogQXR0 ZW1wdCB0byBjb21iaW5lIGZpbHRlcnMgKi8KKwkJcmV0ID0zRCBiY21hc3BfY29tYmluZV9zZXRf ZmlsdGVyKGludGYsIGFkZHIsIG1hc2ssIGkpOworCQlpZiAoIXJldCkKKwkJCXJldHVybiAwOwor CX0KKworCS8qIENyZWF0ZSBuZXcgZmlsdGVyIGlmIHBvc3NpYmxlICovCisJZm9yIChpID0zRCBB U1BfUlhfRklMVF9NREFfUkVTX0NPVU5UKGludGYpOyBpIDwgTlVNX01EQV9GSUxURVJTOyBpKysp IHsKKwkJaWYgKHByaXYtPm1kYV9maWx0ZXJzW2ldLmVuKQorCQkJY29udGludWU7CisKKwkJYmNt YXNwX3NldF9tZGFfZmlsdGVyKGludGYsIGFkZHIsIG1hc2ssIGkpOworCQliY21hc3BfZW5fbWRh X2ZpbHRlcihpbnRmLCAxLCBpKTsKKwkJcmV0dXJuIDA7CisJfQorCisJLyogTm8gcm9vbSBmb3Ig bmV3IGZpbHRlciAqLworCXJldHVybiAtRUlOVkFMOworfQorCitzdGF0aWMgdm9pZCBiY21hc3Bf Y29yZV9pbml0X2ZpbHRlcnMoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2KQoreworCWludCBpOwor CisJLyogRGlzYWJsZSBhbGwgZmlsdGVycyBhbmQgcmVzZXQgc29mdHdhcmUgdmlldyBzaW5jZSB0 aGUgSFcKKwkgKiBjYW4gbG9zZSBjb250ZXh0IHdoaWxlIGluIGRlZXAgc2xlZXAgc3VzcGVuZCBz dGF0ZXMKKwkgKi8KKwlmb3IgKGkgPTNEIDA7IGkgPCBOVU1fTURBX0ZJTFRFUlM7IGkrKykgewor CQlyeF9maWx0ZXJfY29yZV93bChwcml2LCAweDAsIEFTUF9SWF9GSUxURVJfTURBX0NGRyhpKSk7 CisJCXByaXYtPm1kYV9maWx0ZXJzW2ldLmVuID0zRCAwOworCX0KKworCS8qIFRvcCBsZXZlbCBm aWx0ZXIgZW5hYmxlIGJpdCBzaG91bGQgYmUgZW5hYmxlZCBhdCBhbGwgdGltZXMsIHNldAorCSAq IEdFTl9XQUtFX0NMRUFSIHRvIGNsZWFyIHRoZSBuZXR3b3JrIGZpbHRlciB3YWtlLXVwIHdoaWNo IHdvdWxkCisJICogb3RoZXJ3aXNlIGJlIHN0aWNreQorCSAqLworCXJ4X2ZpbHRlcl9jb3JlX3ds KHByaXYsIChBU1BfUlhfRklMVEVSX09QVVRfRU4gfAorCQkJICBBU1BfUlhfRklMVEVSX01EQV9F TiB8CisJCQkgIEFTUF9SWF9GSUxURVJfR0VOX1dLX0NMUiB8CisJCQkgIEFTUF9SWF9GSUxURVJf TlRfRkxUX0VOKSwKKwkJCSAgQVNQX1JYX0ZJTFRFUl9CTEtfQ1RSTCk7Cit9CisKKy8qIEFTUCBj b3JlIGluaXRpYWxpemF0aW9uICovCitzdGF0aWMgdm9pZCBiY21hc3BfY29yZV9pbml0KHN0cnVj dCBiY21hc3BfcHJpdiAqcHJpdikKK3sKKwl0eF9hbmFseXRpY3NfY29yZV93bChwcml2LCAweDAs IEFTUF9UWF9BTkFMWVRJQ1NfQ1RSTCk7CisJcnhfYW5hbHl0aWNzX2NvcmVfd2wocHJpdiwgMHg0 LCBBU1BfUlhfQU5BTFlUSUNTX0NUUkwpOworCisJcnhfZWRwa3RfY29yZV93bChwcml2LCAoQVNQ X0VEUEtUX0hEUl9TWl8xMjggPDwgQVNQX0VEUEtUX0hEUl9TWl9TSElGVCksCisJCQkgQVNQX0VE UEtUX0hEUl9DRkcpOworCXJ4X2VkcGt0X2NvcmVfd2wocHJpdiwKKwkJCSAoQVNQX0VEUEtUX0VO RElfQlRfU1dQX1dEIDw8IEFTUF9FRFBLVF9FTkRJX0RFU0NfU0hJRlQpLAorCQkJIEFTUF9FRFBL VF9FTkRJKTsKKworCXJ4X2VkcGt0X2NvcmVfd2wocHJpdiwgMHgxYiwgQVNQX0VEUEtUX0JVUlNU X0JVRl9QU0NBTF9UT1VUKTsKKwlyeF9lZHBrdF9jb3JlX3dsKHByaXYsIDB4M2U4LCBBU1BfRURQ S1RfQlVSU1RfQlVGX1dSSVRFX1RPVVQpOworCXJ4X2VkcGt0X2NvcmVfd2wocHJpdiwgMHgzZTgs IEFTUF9FRFBLVF9CVVJTVF9CVUZfUkVBRF9UT1VUKTsKKworCXJ4X2VkcGt0X2NvcmVfd2wocHJp diwgQVNQX0VEUEtUX0VOQUJMRV9FTiwgQVNQX0VEUEtUX0VOQUJMRSk7CisKKwkvKiBEaXNhYmxl IGFuZCBjbGVhciBib3RoIFVuaU1BQydzIHdha2UtdXAgaW50ZXJydXB0cyB0byBhdm9pZAorCSAq IHN0aWNreSBpbnRlcnJ1cHRzLgorCSAqLworCV9pbnRyMl9tYXNrX3NldChwcml2LCBBU1BfSU5U UjJfVU1DMF9XQUtFIHwgQVNQX0lOVFIyX1VNQzFfV0FLRSk7CisJaW50cjJfY29yZV93bChwcml2 LCBBU1BfSU5UUjJfVU1DMF9XQUtFIHwgQVNQX0lOVFIyX1VNQzFfV0FLRSwKKwkJICAgICAgQVNQ X0lOVFIyX0NMRUFSKTsKK30KKworc3RhdGljIHZvaWQgYmNtYXNwX2NvcmVfY2xvY2tfc2VsZWN0 KHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiwgYm9vbCBzbG93KQoreworCXUzMiByZWc7CisKKwly ZWcgPTNEIGN0cmxfY29yZV9ybChwcml2LCBBU1BfQ1RSTF9DT1JFX0NMT0NLX1NFTEVDVCk7CisJ aWYgKHNsb3cpCisJCXJlZyAmPTNEIH5BU1BfQ1RSTF9DT1JFX0NMT0NLX1NFTEVDVF9NQUlOOwor CWVsc2UKKwkJcmVnIHw9M0QgQVNQX0NUUkxfQ09SRV9DTE9DS19TRUxFQ1RfTUFJTjsKKwljdHJs X2NvcmVfd2wocHJpdiwgcmVnLCBBU1BfQ1RSTF9DT1JFX0NMT0NLX1NFTEVDVCk7Cit9CisKK3N0 YXRpYyB2b2lkIGJjbWFzcF9jb3JlX2Nsb2NrX3NldF9sbChzdHJ1Y3QgYmNtYXNwX3ByaXYgKnBy aXYsIHUzMiBjbHIsIHUzPQoyIHNldCkKK3sKKwl1MzIgcmVnOworCisJcmVnID0zRCBjdHJsX2Nv cmVfcmwocHJpdiwgQVNQX0NUUkxfQ0xPQ0tfQ1RSTCk7CisJcmVnICY9M0QgfmNscjsKKwlyZWcg fD0zRCBzZXQ7CisJY3RybF9jb3JlX3dsKHByaXYsIHJlZywgQVNQX0NUUkxfQ0xPQ0tfQ1RSTCk7 CisKKwlyZWcgPTNEIGN0cmxfY29yZV9ybChwcml2LCBBU1BfQ1RSTF9TQ1JBVENIXzApOworCXJl ZyAmPTNEIH5jbHI7CisJcmVnIHw9M0Qgc2V0OworCWN0cmxfY29yZV93bChwcml2LCByZWcsIEFT UF9DVFJMX1NDUkFUQ0hfMCk7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9jb3JlX2Nsb2NrX3Nl dChzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYsIHUzMiBjbHIsIHUzMiBzPQpldCkKK3sKKwl1bnNp Z25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmNsa19sb2NrLCBm bGFncyk7CisJYmNtYXNwX2NvcmVfY2xvY2tfc2V0X2xsKHByaXYsIGNsciwgc2V0KTsKKwlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5jbGtfbG9jaywgZmxhZ3MpOworfQorCit2b2lkIGJj bWFzcF9jb3JlX2Nsb2NrX3NldF9pbnRmKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgYm9vbCBl bikKK3sKKwl1MzIgaW50Zl9tYXNrID0zRCBBU1BfQ1RSTF9DTE9DS19DVFJMX0FTUF9SR01JSV9E SVMoaW50Zi0+cG9ydCk7CisJc3RydWN0IGJjbWFzcF9wcml2ICpwcml2ID0zRCBpbnRmLT5wYXJl bnQ7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1MzIgcmVnOworCisJLyogV2hlbiBlbmFibGlu ZyBhbiBpbnRlcmZhY2UsIGlmIHRoZSBSWCBvciBUWCBjbG9ja3Mgd2VyZSBub3QgZW5hYmxlZCwK KwkgKiBlbmFibGUgdGhlbS4gQ29udmVyc2VseSwgd2hpbGUgZGlzYWJsaW5nIGFuIGludGVyZmFj ZSwgaWYgdGhpcyBpcworCSAqIHRoZSBsYXN0IG9uZSBlbmFibGVkLCB3ZSBjYW4gdHVybiBvZmYg dGhlIHNoYXJlZCBSWCBhbmQgVFggY2xvY2tzIGFzCisJICogd2VsbC4gV2UgY29udHJvbCBlbmFi bGUgYml0cyB3aGljaCBpcyB3aHkgd2UgdGVzdCBmb3IgZXF1YWxpdHkgb24KKwkgKiB0aGUgUkdN SUkgY2xvY2sgYml0IG1hc2suCisJICovCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmNsa19s b2NrLCBmbGFncyk7CisJaWYgKGVuKSB7CisJCWludGZfbWFzayB8PTNEIEFTUF9DVFJMX0NMT0NL X0NUUkxfQVNQX1RYX0RJU0FCTEUgfAorCQkJICAgICBBU1BfQ1RSTF9DTE9DS19DVFJMX0FTUF9S WF9ESVNBQkxFOworCQliY21hc3BfY29yZV9jbG9ja19zZXRfbGwocHJpdiwgaW50Zl9tYXNrLCAw KTsKKwl9IGVsc2UgeworCQlyZWcgPTNEIGN0cmxfY29yZV9ybChwcml2LCBBU1BfQ1RSTF9TQ1JB VENIXzApIHwgaW50Zl9tYXNrOworCQlpZiAoKHJlZyAmIEFTUF9DVFJMX0NMT0NLX0NUUkxfQVNQ X1JHTUlJX01BU0spID0zRD0zRAorCQkgICAgQVNQX0NUUkxfQ0xPQ0tfQ1RSTF9BU1BfUkdNSUlf TUFTSykKKwkJCWludGZfbWFzayB8PTNEIEFTUF9DVFJMX0NMT0NLX0NUUkxfQVNQX1RYX0RJU0FC TEUgfAorCQkJCSAgICAgQVNQX0NUUkxfQ0xPQ0tfQ1RSTF9BU1BfUlhfRElTQUJMRTsKKwkJYmNt YXNwX2NvcmVfY2xvY2tfc2V0X2xsKHByaXYsIDAsIGludGZfbWFzayk7CisJfQorCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJnByaXYtPmNsa19sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyBpbnQg YmNtYXNwX2lzX3BvcnRfdmFsaWQoc3RydWN0IGJjbWFzcF9wcml2ICpwcml2LCBpbnQgcG9ydCkK K3sKKwkvKiBRdWljayBzYW5pdHkgY2hlY2sKKwkgKiAgIFBvcnRzIDAvMSByZXNlcnZlZCBmb3Ig dW5pbWFjCisJICogICBNYXggc3VwcG9ydGVkIHBvcnRzIGlzIDIKKwkgKi8KKwlyZXR1cm4gcG9y dCA9M0Q9M0QgMCB8fCBwb3J0ID0zRD0zRCAxOworfQorCitzdGF0aWMgc3RydWN0IGJjbWFzcF9o d19pbmZvIHYyMF9od19pbmZvID0zRCB7CisJLnJ4X2N0cmxfZmx1c2ggPTNEIEFTUF9SWF9DVFJM X0ZMVVNILAorCS51bWFjMmZiID0zRCBVTUFDMkZCX09GRlNFVCwKKwkucnhfY3RybF9mYl9vdXRf ZnJhbWVfY291bnQgPTNEIEFTUF9SWF9DVFJMX0ZCX09VVF9GUkFNRV9DT1VOVCwKKwkucnhfY3Ry bF9mYl9maWx0X291dF9mcmFtZV9jb3VudCA9M0QgQVNQX1JYX0NUUkxfRkJfRklMVF9PVVRfRlJB TUVfQ09VTlQsCisJLnJ4X2N0cmxfZmJfcnhfZmlmb19kZXB0aCA9M0QgQVNQX1JYX0NUUkxfRkJf UlhfRklGT19ERVBUSCwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtYXNwX3BsYXRfZGF0 YSB2MjBfcGxhdF9kYXRhID0zRCB7CisJLmh3X2luZm8gPTNEICZ2MjBfaHdfaW5mbywKK307CisK K3N0YXRpYyBzdHJ1Y3QgYmNtYXNwX2h3X2luZm8gdjIxX2h3X2luZm8gPTNEIHsKKwkucnhfY3Ry bF9mbHVzaCA9M0QgQVNQX1JYX0NUUkxfRkxVU0hfMl8xLAorCS51bWFjMmZiID0zRCBVTUFDMkZC X09GRlNFVF8yXzEsCisJLnJ4X2N0cmxfZmJfb3V0X2ZyYW1lX2NvdW50ID0zRCBBU1BfUlhfQ1RS TF9GQl9PVVRfRlJBTUVfQ09VTlRfMl8xLAorCS5yeF9jdHJsX2ZiX2ZpbHRfb3V0X2ZyYW1lX2Nv dW50ID0zRAorCQlBU1BfUlhfQ1RSTF9GQl9GSUxUX09VVF9GUkFNRV9DT1VOVF8yXzEsCisJLnJ4 X2N0cmxfZmJfcnhfZmlmb19kZXB0aCA9M0QgQVNQX1JYX0NUUkxfRkJfUlhfRklGT19ERVBUSF8y XzEsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGJjbWFzcF9wbGF0X2RhdGEgdjIxX3BsYXRf ZGF0YSA9M0QgeworCS5od19pbmZvID0zRCAmdjIxX2h3X2luZm8sCit9OworCitzdGF0aWMgY29u c3Qgc3RydWN0IG9mX2RldmljZV9pZCBiY21hc3Bfb2ZfbWF0Y2hbXSA9M0QgeworCXsgLmNvbXBh dGlibGUgPTNEICJicmNtLGFzcC12Mi4wIiwgLmRhdGEgPTNEICZ2MjBfcGxhdF9kYXRhIH0sCisJ eyAuY29tcGF0aWJsZSA9M0QgImJyY20sYXNwLXYyLjEiLCAuZGF0YSA9M0QgJnYyMV9wbGF0X2Rh dGEgfSwKKwl7IC8qIHNlbnRpbmVsICovIH0sCit9OworTU9EVUxFX0RFVklDRV9UQUJMRShvZiwg YmNtYXNwX29mX21hdGNoKTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYmNt YXNwX21kaW9fb2ZfbWF0Y2hbXSA9M0QgeworCXsgLmNvbXBhdGlibGUgPTNEICJicmNtLGFzcC12 Mi4xLW1kaW8iLCB9LAorCXsgLmNvbXBhdGlibGUgPTNEICJicmNtLGFzcC12Mi4wLW1kaW8iLCB9 LAorCXsgLyogc2VudGluZWwgKi8gfSwKK307CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBiY21h c3BfbWRpb19vZl9tYXRjaCk7CisKK3N0YXRpYyBpbnQgYmNtYXNwX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGRldmljZV9ub2RlICpwb3J0c19ub2RlLCAq aW50Zl9ub2RlOworCWNvbnN0IHN0cnVjdCBiY21hc3BfcGxhdF9kYXRhICpwZGF0YTsKKwlzdHJ1 Y3QgZGV2aWNlICpkZXYgPTNEICZwZGV2LT5kZXY7CisJaW50IHJldCA9M0QgMCwgaSwgY291bnQg PTNEIDAsIHBvcnQ7CisJc3RydWN0IGJjbWFzcF9wcml2ICpwcml2OworCXN0cnVjdCBiY21hc3Bf aW50ZiAqaW50ZjsKKworCXByaXYgPTNEIGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcHJpdiks IEdGUF9LRVJORUwpOworCWlmICghcHJpdikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlwcml2LT5p cnEgPTNEIHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7CisJaWYgKHByaXYtPmlycSA8PTNEIDAp CisJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgLUVJTlZBTCwgImludmFsaWQgaW50ZXJydXB0 XG4iKTsKKworCXByaXYtPmNsayA9M0QgZGV2bV9jbGtfZ2V0X29wdGlvbmFsX2VuYWJsZWQoZGV2 LCAic3dfYXNwIik7CisJaWYgKElTX0VSUihwcml2LT5jbGspKQorCQlyZXR1cm4gZGV2X2Vycl9w cm9iZShkZXYsIFBUUl9FUlIocHJpdi0+Y2xrKSwKKwkJCQkJCQkgImZhaWxlZCB0byByZXF1ZXN0 IGNsb2NrXG4iKTsKKworCS8qIEJhc2UgZnJvbSBwYXJlbnQgbm9kZSAqLworCXByaXYtPmJhc2Ug PTNEIGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZShwZGV2LCAwKTsKKwlpZiAoSVNfRVJS KHByaXYtPmJhc2UpKQorCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIocHJpdi0+ YmFzZSksICJmYWlsZWQgdG8gaW9tYXBcbiIpOworCisJcmV0ID0zRCBkbWFfc2V0X21hc2tfYW5k X2NvaGVyZW50KCZwZGV2LT5kZXYsIERNQV9CSVRfTUFTSyg0MCkpOworCWlmIChyZXQpCisJCXJl dHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAidW5hYmxlIHRvIHNldCBETUEgbWFzazogJWRc biIsIHJldCk7CisKKwlkZXZfc2V0X2RydmRhdGEoJnBkZXYtPmRldiwgcHJpdik7CisJcHJpdi0+ cGRldiA9M0QgcGRldjsKKwlzcGluX2xvY2tfaW5pdCgmcHJpdi0+bWRhX2xvY2spOworCXNwaW5f bG9ja19pbml0KCZwcml2LT5jbGtfbG9jayk7CisKKwlwZGF0YSA9M0QgZGV2aWNlX2dldF9tYXRj aF9kYXRhKCZwZGV2LT5kZXYpOworCWlmICghcGRhdGEpCisJCXJldHVybiBkZXZfZXJyX3Byb2Jl KGRldiwgLUVJTlZBTCwgInVuYWJsZSB0byBmaW5kIHBsYXRmb3JtIGRhdGFcbiIpOworCisJcHJp di0+aHdfaW5mbyA9M0QgcGRhdGEtPmh3X2luZm87CisKKwkvKiBFbmFibGUgYWxsIGNsb2NrcyB0 byBlbnN1cmUgc3VjY2Vzc2Z1bCBwcm9iaW5nICovCisJYmNtYXNwX2NvcmVfY2xvY2tfc2V0KHBy aXYsIEFTUF9DVFJMX0NMT0NLX0NUUkxfQVNQX0FMTF9ESVNBQkxFLCAwKTsKKworCS8qIFN3aXRj aCB0byB0aGUgbWFpbiBjbG9jayAqLworCWJjbWFzcF9jb3JlX2Nsb2NrX3NlbGVjdChwcml2LCBm YWxzZSk7CisKKwliY21hc3BfaW50cjJfbWFza19zZXRfYWxsKHByaXYpOworCWJjbWFzcF9pbnRy Ml9jbGVhcl9hbGwocHJpdik7CisKKwlyZXQgPTNEIGRldm1fcmVxdWVzdF9pcnEoJnBkZXYtPmRl diwgcHJpdi0+aXJxLCBiY21hc3BfaXNyLCAwLAorCQkJICAgICAgIHBkZXYtPm5hbWUsIHByaXYp OworCWlmIChyZXQpCisJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0LCAiZmFpbGVkIHRv IHJlcXVlc3QgQVNQIGludGVycnVwdDogJWQiLCByZT0KdCk7CisKKwkvKiBSZWdpc3RlciBtZGlv IGNoaWxkIG5vZGVzICovCisJb2ZfcGxhdGZvcm1fcG9wdWxhdGUoZGV2LT5vZl9ub2RlLCBiY21h c3BfbWRpb19vZl9tYXRjaCwgTlVMTCwgZGV2KTsKKworCS8qIEFTUCBzcGVjaWZpYyBpbml0aWFs aXphdGlvbiwgTmVlZHMgdG8gYmUgZG9uZSByZWdhcmRsZXNzIG9mCisJICogaG93IG1hbnkgaW50 ZXJmYWNlcyBjb21lIHVwLgorCSAqLworCWJjbWFzcF9jb3JlX2luaXQocHJpdik7CisJYmNtYXNw X2NvcmVfaW5pdF9maWx0ZXJzKHByaXYpOworCisJcG9ydHNfbm9kZSA9M0Qgb2ZfZmluZF9ub2Rl X2J5X25hbWUoZGV2LT5vZl9ub2RlLCAiZXRoZXJuZXQtcG9ydHMiKTsKKwlpZiAoIXBvcnRzX25v ZGUpIHsKKwkJZGV2X3dhcm4oZGV2LCAiTm8gcG9ydHMgZm91bmRcbiIpOworCQlyZXR1cm4gMDsK Kwl9CisKKwlmb3JfZWFjaF9hdmFpbGFibGVfY2hpbGRfb2Zfbm9kZShwb3J0c19ub2RlLCBpbnRm X25vZGUpIHsKKwkJb2ZfcHJvcGVydHlfcmVhZF91MzIoaW50Zl9ub2RlLCAicmVnIiwgJnBvcnQp OworCQlpZiAoIWJjbWFzcF9pc19wb3J0X3ZhbGlkKHByaXYsIHBvcnQpKSB7CisJCQlkZXZfd2Fy bihkZXYsICIlcE9GOiAlZCBpcyBhbiBpbnZhbGlkIHBvcnRcbiIsCisJCQkJIGludGZfbm9kZSwg cG9ydCk7CisJCQljb250aW51ZTsKKwkJfQorCisJCXByaXYtPmludGZfY291bnQrKzsKKwl9CisK Kwlwcml2LT5pbnRmcyA9M0QgZGV2bV9rY2FsbG9jKGRldiwgcHJpdi0+aW50Zl9jb3VudCwKKwkJ CQkgICBzaXplb2Yoc3RydWN0IGJjbWFzcF9pbnRmICopLAorCQkJCSAgIEdGUF9LRVJORUwpOwor CWlmICghcHJpdi0+aW50ZnMpIHsKKwkJcmV0ID0zRCAtRU5PTUVNOworCQlnb3RvIG9mX3B1dF9l eGl0OworCX0KKworCS8qIFByb2JlIGVhY2ggaW50ZXJmYWNlIChJbml0aWFsaXphdGlvbiBzaG91 bGQgY29udGludWUgZXZlbiBpZgorCSAqIGludGVyZmFjZXMgYXJlIHVuYWJsZSB0byBjb21lIHVw KQorCSAqLworCWkgPTNEIDA7CisJZm9yX2VhY2hfYXZhaWxhYmxlX2NoaWxkX29mX25vZGUocG9y dHNfbm9kZSwgaW50Zl9ub2RlKSB7CisJCXByaXYtPmludGZzW2ldID0zRCBiY21hc3BfaW50ZXJm YWNlX2NyZWF0ZShwcml2LCBpbnRmX25vZGUsIGkpOworCQlpKys7CisJfQorCisJLyogRHJvcCB0 aGUgY2xvY2sgcmVmZXJlbmNlIGNvdW50IG5vdyBhbmQgbGV0IG5kb19vcGVuKCkvbmRvX2Nsb3Nl KCkKKwkgKiBtYW5hZ2UgaXQgZm9yIHVzIGZyb20gbm93IG9uLgorCSAqLworCWJjbWFzcF9jb3Jl X2Nsb2NrX3NldChwcml2LCAwLCBBU1BfQ1RSTF9DTE9DS19DVFJMX0FTUF9BTExfRElTQUJMRSk7 CisKKwljbGtfZGlzYWJsZV91bnByZXBhcmUocHJpdi0+Y2xrKTsKKworCS8qIE5vdyBkbyB0aGUg cmVnaXN0cmF0aW9uIG9mIHRoZSBuZXR3b3JrIHBvcnRzIHdoaWNoIHdpbGwgdGFrZSBjYXJlCisJ ICogb2YgbWFuYWdpbmcgdGhlIGNsb2NrIHByb3Blcmx5LgorCSAqLworCWZvciAoaSA9M0QgMDsg aSA8IHByaXYtPmludGZfY291bnQ7IGkrKykgeworCQlpbnRmID0zRCBwcml2LT5pbnRmc1tpXTsK KwkJaWYgKCFpbnRmKQorCQkJY29udGludWU7CisKKwkJcmV0ID0zRCByZWdpc3Rlcl9uZXRkZXYo aW50Zi0+bmRldik7CisJCWlmIChyZXQpIHsKKwkJCW5ldGRldl9lcnIoaW50Zi0+bmRldiwKKwkJ CQkgICAiZmFpbGVkIHRvIHJlZ2lzdGVyIG5ldF9kZXZpY2U6ICVkXG4iLCByZXQpOworCQkJYmNt YXNwX2ludGVyZmFjZV9kZXN0cm95KGludGYsIGZhbHNlKTsKKwkJCWNvbnRpbnVlOworCQl9CisJ CWNvdW50Kys7CisJfQorCisJZGV2X2luZm8oZGV2LCAiSW5pdGlhbGl6ZWQgJWQgcG9ydChzKVxu IiwgY291bnQpOworCitvZl9wdXRfZXhpdDoKKwlvZl9ub2RlX3B1dChwb3J0c19ub2RlKTsKKwly ZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGJjbWFzcF9yZW1vdmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgYmNtYXNwX3ByaXYgKnByaXYgPTNEIGRldl9nZXRf ZHJ2ZGF0YSgmcGRldi0+ZGV2KTsKKwlzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGY7CisJaW50IGk7 CisKKwlmb3IgKGkgPTNEIDA7IGkgPCBwcml2LT5pbnRmX2NvdW50OyBpKyspIHsKKwkJaW50ZiA9 M0QgcHJpdi0+aW50ZnNbaV07CisJCWlmICghaW50ZikKKwkJCWNvbnRpbnVlOworCisJCWJjbWFz cF9pbnRlcmZhY2VfZGVzdHJveShpbnRmLCB0cnVlKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwor c3RhdGljIHZvaWQgYmNtYXNwX3NodXRkb3duKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp Cit7CisJaW50IHJldDsKKworCXJldCA9M0QgYmNtYXNwX3JlbW92ZShwZGV2KTsKKwlpZiAocmV0 KQorCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gcmVtb3ZlOiAlZFxuIiwgcmV0KTsK K30KKworc3RhdGljIGludCBfX21heWJlX3VudXNlZCBiY21hc3Bfc3VzcGVuZChzdHJ1Y3QgZGV2 aWNlICpkKQoreworCXN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiA9M0QgZGV2X2dldF9kcnZkYXRh KGQpOworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZjsKKwlpbnQgaSwgcmV0OworCisJZm9yIChp ID0zRCAwOyBpIDwgcHJpdi0+aW50Zl9jb3VudDsgaSsrKSB7CisJCWludGYgPTNEIHByaXYtPmlu dGZzW2ldOworCQlpZiAoIWludGYpCisJCQljb250aW51ZTsKKworCQlyZXQgPTNEIGJjbWFzcF9p bnRlcmZhY2Vfc3VzcGVuZChpbnRmKTsKKwkJaWYgKHJldCkKKwkJCWJyZWFrOworCX0KKworCXJl dCA9M0QgY2xrX3ByZXBhcmVfZW5hYmxlKHByaXYtPmNsayk7CisJaWYgKHJldCkKKwkJcmV0dXJu IHJldDsKKworCS8qIFdoZXRoZXIgV2FrZS1vbi1MQU4gaXMgZW5hYmxlZCBvciBub3QsIHdlIGNh biBhbHdheXMgZGlzYWJsZQorCSAqIHRoZSBzaGFyZWQgVFggY2xvY2sKKwkgKi8KKwliY21hc3Bf Y29yZV9jbG9ja19zZXQocHJpdiwgMCwgQVNQX0NUUkxfQ0xPQ0tfQ1RSTF9BU1BfVFhfRElTQUJM RSk7CisKKwliY21hc3BfY29yZV9jbG9ja19zZWxlY3QocHJpdiwgdHJ1ZSk7CisKKwljbGtfZGlz YWJsZV91bnByZXBhcmUocHJpdi0+Y2xrKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBp bnQgX19tYXliZV91bnVzZWQgYmNtYXNwX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkKQoreworCXN0 cnVjdCBiY21hc3BfcHJpdiAqcHJpdiA9M0QgZGV2X2dldF9kcnZkYXRhKGQpOworCXN0cnVjdCBi Y21hc3BfaW50ZiAqaW50ZjsKKwlpbnQgaSwgcmV0OworCisJcmV0ID0zRCBjbGtfcHJlcGFyZV9l bmFibGUocHJpdi0+Y2xrKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJLyogU3dpdGNo IHRvIHRoZSBtYWluIGNsb2NrIGRvbWFpbiAqLworCWJjbWFzcF9jb3JlX2Nsb2NrX3NlbGVjdChw cml2LCBmYWxzZSk7CisKKwkvKiBSZS1lbmFibGUgYWxsIGNsb2NrcyBmb3IgcmUtaW5pdGlhbGl6 YXRpb24gKi8KKwliY21hc3BfY29yZV9jbG9ja19zZXQocHJpdiwgQVNQX0NUUkxfQ0xPQ0tfQ1RS TF9BU1BfQUxMX0RJU0FCTEUsIDApOworCisJYmNtYXNwX2NvcmVfaW5pdChwcml2KTsKKwliY21h c3BfY29yZV9pbml0X2ZpbHRlcnMocHJpdik7CisKKwkvKiBBbmQgZGlzYWJsZSB0aGVtIHRvIGxl dCB0aGUgbmV0d29yayBkZXZpY2VzIHRha2UgY2FyZSBvZiB0aGVtICovCisJYmNtYXNwX2NvcmVf Y2xvY2tfc2V0KHByaXYsIDAsIEFTUF9DVFJMX0NMT0NLX0NUUkxfQVNQX0FMTF9ESVNBQkxFKTsK KworCWNsa19kaXNhYmxlX3VucHJlcGFyZShwcml2LT5jbGspOworCisJZm9yIChpID0zRCAwOyBp IDwgcHJpdi0+aW50Zl9jb3VudDsgaSsrKSB7CisJCWludGYgPTNEIHByaXYtPmludGZzW2ldOwor CQlpZiAoIWludGYpCisJCQljb250aW51ZTsKKworCQlyZXQgPTNEIGJjbWFzcF9pbnRlcmZhY2Vf cmVzdW1lKGludGYpOworCQlpZiAocmV0KQorCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJldDsK K30KKworc3RhdGljIFNJTVBMRV9ERVZfUE1fT1BTKGJjbWFzcF9wbV9vcHMsCisJCQkgYmNtYXNw X3N1c3BlbmQsIGJjbWFzcF9yZXN1bWUpOworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZl ciBiY21hc3BfZHJpdmVyID0zRCB7CisJLnByb2JlID0zRCBiY21hc3BfcHJvYmUsCisJLnJlbW92 ZSA9M0QgYmNtYXNwX3JlbW92ZSwKKwkuc2h1dGRvd24gPTNEIGJjbWFzcF9zaHV0ZG93biwKKwku ZHJpdmVyID0zRCB7CisJCS5uYW1lID0zRCAiYnJjbSxhc3AtdjIiLAorCQkub2ZfbWF0Y2hfdGFi bGUgPTNEIGJjbWFzcF9vZl9tYXRjaCwKKwkJLnBtID0zRCAmYmNtYXNwX3BtX29wcywKKwl9LAor fTsKK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoYmNtYXNwX2RyaXZlcik7CisKK01PRFVMRV9BVVRI T1IoIkJyb2FkY29tIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkJyb2FkY29tIEFTUCAyLjAgRXRo ZXJuZXQgY29udHJvbGxlciBkcml2ZXIiKTsKK01PRFVMRV9BTElBUygicGxhdGZvcm06YnJjbSxh c3AtdjIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmggYi9kcml2ZXJzL25ldC9ldGhlPQpybmV0 L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi4wZjVjMjg1YzYxODcKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5oCkBAIC0wLDAgKzEsNTA0IEBACisvKiBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworI2lmbmRlZiBfX0JDTUFTUF9ICisjZGVmaW5l IF9fQkNNQVNQX0gKKworI2luY2x1ZGUgPGxpbnV4L25ldGRldmljZS5oPgorI2luY2x1ZGUgPGxp bnV4L3BoeS5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLTY0LW5vbmF0b21pYy1oaS1sby5oPgorI2lu Y2x1ZGUgPHVhcGkvbGludXgvZXRodG9vbC5oPgorCisjZGVmaW5lIEFTUF9JTlRSMl9PRkZTRVQJ CQkweDEwMDAKKyNkZWZpbmUgIEFTUF9JTlRSMl9TVEFUVVMJCQkweDAKKyNkZWZpbmUgIEFTUF9J TlRSMl9TRVQJCQkJMHg0CisjZGVmaW5lICBBU1BfSU5UUjJfQ0xFQVIJCQkweDgKKyNkZWZpbmUg IEFTUF9JTlRSMl9NQVNLX1NUQVRVUwkJCTB4YworI2RlZmluZSAgQVNQX0lOVFIyX01BU0tfU0VU CQkJMHgxMAorI2RlZmluZSAgQVNQX0lOVFIyX01BU0tfQ0xFQVIJCQkweDE0CisKKyNkZWZpbmUg QVNQX0lOVFIyX1JYX0VDSChpbnRyKQkJCUJJVChpbnRyKQorI2RlZmluZSBBU1BfSU5UUjJfVFhf REVTQyhpbnRyKQkJCUJJVCgoaW50cikgKyAxNCkKKyNkZWZpbmUgQVNQX0lOVFIyX1VNQzBfV0FL RQkJCUJJVCgyMikKKyNkZWZpbmUgQVNQX0lOVFIyX1VNQzFfV0FLRQkJCUJJVCgyOCkKKworI2Rl ZmluZSBBU1BfV0FLRVVQX0lOVFIyX09GRlNFVAkJCTB4MTIwMAorI2RlZmluZSAgQVNQX1dBS0VV UF9JTlRSMl9TVEFUVVMJCTB4MAorI2RlZmluZSAgQVNQX1dBS0VVUF9JTlRSMl9TRVQJCQkweDQK KyNkZWZpbmUgIEFTUF9XQUtFVVBfSU5UUjJfQ0xFQVIJCQkweDgKKyNkZWZpbmUgIEFTUF9XQUtF VVBfSU5UUjJfTUFTS19TVEFUVVMJCTB4YworI2RlZmluZSAgQVNQX1dBS0VVUF9JTlRSMl9NQVNL X1NFVAkJMHgxMAorI2RlZmluZSAgQVNQX1dBS0VVUF9JTlRSMl9NQVNLX0NMRUFSCQkweDE0Cisj ZGVmaW5lIEFTUF9XQUtFVVBfSU5UUjJfTVBEXzAJCQlCSVQoMCkKKyNkZWZpbmUgQVNQX1dBS0VV UF9JTlRSMl9NUERfMQkJCUJJVCgxKQorI2RlZmluZSBBU1BfV0FLRVVQX0lOVFIyX0ZJTFRfMAkJ CUJJVCgyKQorI2RlZmluZSBBU1BfV0FLRVVQX0lOVFIyX0ZJTFRfMQkJCUJJVCgzKQorI2RlZmlu ZSBBU1BfV0FLRVVQX0lOVFIyX0ZXCQkJQklUKDQpCisKKyNkZWZpbmUgQVNQX1RYX0FOQUxZVElD U19PRkZTRVQJCQkweDRjMDAwCisjZGVmaW5lICBBU1BfVFhfQU5BTFlUSUNTX0NUUkwJCQkweDAK KworI2RlZmluZSBBU1BfUlhfQU5BTFlUSUNTX09GRlNFVAkJCTB4OTgwMDAKKyNkZWZpbmUgIEFT UF9SWF9BTkFMWVRJQ1NfQ1RSTAkJCTB4MAorCisjZGVmaW5lIEFTUF9SWF9DVFJMX09GRlNFVAkJ CTB4OWYwMDAKKyNkZWZpbmUgQVNQX1JYX0NUUkxfVU1BQ18wX0ZSQU1FX0NPVU5UCQkweDgKKyNk ZWZpbmUgQVNQX1JYX0NUUkxfVU1BQ18xX0ZSQU1FX0NPVU5UCQkweGMKKyNkZWZpbmUgQVNQX1JY X0NUUkxfRkJfMF9GUkFNRV9DT1VOVAkJMHgxNAorI2RlZmluZSBBU1BfUlhfQ1RSTF9GQl8xX0ZS QU1FX0NPVU5UCQkweDE4CisjZGVmaW5lIEFTUF9SWF9DVFJMX0ZCXzhfRlJBTUVfQ09VTlQJCTB4 MWMKKy8qIGFzcDIuMSBkaXZlcmdlcyBvZmZzZXRzIGhlcmUgKi8KKy8qIEFTUDIuMCAqLworI2Rl ZmluZSBBU1BfUlhfQ1RSTF9GQl9PVVRfRlJBTUVfQ09VTlQJCTB4MjAKKyNkZWZpbmUgQVNQX1JY X0NUUkxfRkJfRklMVF9PVVRfRlJBTUVfQ09VTlQJMHgyNAorI2RlZmluZSBBU1BfUlhfQ1RSTF9G TFVTSAkJCTB4MjgKKyNkZWZpbmUgIEFTUF9DVFJMX1VNQUMwX0ZMVVNIX01BU0sJCShCSVQoMCkg fCBCSVQoMTIpKQorI2RlZmluZSAgQVNQX0NUUkxfVU1BQzFfRkxVU0hfTUFTSwkJKEJJVCgxKSB8 IEJJVCgxMykpCisjZGVmaW5lICBBU1BfQ1RSTF9TUEJfRkxVU0hfTUFTSwkJKEJJVCg4KSB8IEJJ VCgyMCkpCisjZGVmaW5lIEFTUF9SWF9DVFJMX0ZCX1JYX0ZJRk9fREVQVEgJCTB4MzAKKy8qIEFT UDIuMSAqLworI2RlZmluZSBBU1BfUlhfQ1RSTF9GQl85X0ZSQU1FX0NPVU5UXzJfMQkweDIwCisj ZGVmaW5lIEFTUF9SWF9DVFJMX0ZCXzEwX0ZSQU1FX0NPVU5UXzJfMQkweDI0CisjZGVmaW5lIEFT UF9SWF9DVFJMX0ZCX09VVF9GUkFNRV9DT1VOVF8yXzEJMHgyOAorI2RlZmluZSBBU1BfUlhfQ1RS TF9GQl9GSUxUX09VVF9GUkFNRV9DT1VOVF8yXzEJMHgyYworI2RlZmluZSBBU1BfUlhfQ1RSTF9G TFVTSF8yXzEJCQkweDMwCisjZGVmaW5lIEFTUF9SWF9DVFJMX0ZCX1JYX0ZJRk9fREVQVEhfMl8x CTB4MzgKKworI2RlZmluZSBBU1BfUlhfRklMVEVSX09GRlNFVAkJCTB4ODAwMDAKKyNkZWZpbmUg IEFTUF9SWF9GSUxURVJfQkxLX0NUUkwJCQkweDAKKyNkZWZpbmUgICBBU1BfUlhfRklMVEVSX09Q VVRfRU4JCQlCSVQoMCkKKyNkZWZpbmUgICBBU1BfUlhfRklMVEVSX01EQV9FTgkJCUJJVCgxKQor I2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTE5SX01ECQkJQklUKDIpCisjZGVmaW5lICAgQVNQX1JY X0ZJTFRFUl9HRU5fV0tfRU4JCUJJVCgzKQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfR0VOX1dL X0NMUgkJQklUKDQpCisjZGVmaW5lICAgQVNQX1JYX0ZJTFRFUl9OVF9GTFRfRU4JCUJJVCg1KQor I2RlZmluZSAgQVNQX1JYX0ZJTFRFUl9NREFfQ0ZHKHNlbCkJCSgoKHNlbCkgKiAweDE0KSArIDB4 MTAwKQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTURBX0NGR19FTl9TSElGVAk4CisjZGVmaW5l ICAgQVNQX1JYX0ZJTFRFUl9NREFfQ0ZHX1VNQ19TRUwoc2VsKQkoKHNlbCkgPiAxID8gQklUKDE3 KSA6IFwKKwkJCQkJCSBCSVQoKHNlbCkgKyA5KSkKKyNkZWZpbmUgIEFTUF9SWF9GSUxURVJfTURB X1BBVF9IKHNlbCkJCSgoKHNlbCkgKiAweDE0KSArIDB4MTA0KQorI2RlZmluZSAgQVNQX1JYX0ZJ TFRFUl9NREFfUEFUX0woc2VsKQkJKCgoc2VsKSAqIDB4MTQpICsgMHgxMDgpCisjZGVmaW5lICBB U1BfUlhfRklMVEVSX01EQV9NU0tfSChzZWwpCQkoKChzZWwpICogMHgxNCkgKyAweDEwYykKKyNk ZWZpbmUgIEFTUF9SWF9GSUxURVJfTURBX01TS19MKHNlbCkJCSgoKHNlbCkgKiAweDE0KSArIDB4 MTEwKQorI2RlZmluZSAgQVNQX1JYX0ZJTFRFUl9NREFfQ0ZHKHNlbCkJCSgoKHNlbCkgKiAweDE0 KSArIDB4MTAwKQorI2RlZmluZSAgQVNQX1JYX0ZJTFRFUl9NREFfUEFUX0goc2VsKQkJKCgoc2Vs KSAqIDB4MTQpICsgMHgxMDQpCisjZGVmaW5lICBBU1BfUlhfRklMVEVSX01EQV9QQVRfTChzZWwp CQkoKChzZWwpICogMHgxNCkgKyAweDEwOCkKKyNkZWZpbmUgIEFTUF9SWF9GSUxURVJfTURBX01T S19IKHNlbCkJCSgoKHNlbCkgKiAweDE0KSArIDB4MTBjKQorI2RlZmluZSAgQVNQX1JYX0ZJTFRF Ul9NREFfTVNLX0woc2VsKQkJKCgoc2VsKSAqIDB4MTQpICsgMHgxMTApCisjZGVmaW5lICBBU1Bf UlhfRklMVEVSX05FVF9DRkcoc2VsKQkJKCgoc2VsKSAqIDB4YTA0KSArIDB4NDAwKQorI2RlZmlu ZSAgIEFTUF9SWF9GSUxURVJfTkVUX0NGR19DSChzZWwpCQkoKHNlbCkgPDwgMCkKKyNkZWZpbmUg ICBBU1BfUlhfRklMVEVSX05FVF9DRkdfRU4JCUJJVCg5KQorI2RlZmluZSAgIEFTUF9SWF9GSUxU RVJfTkVUX0NGR19MMl9FTgkJQklUKDEwKQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX0NG R19MM19FTgkJQklUKDExKQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX0NGR19MNF9FTgkJ QklUKDEyKQorI2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX0NGR19MM19GUk0oc2VsKQkoKHNl bCkgPDwgMTMpCisjZGVmaW5lICAgQVNQX1JYX0ZJTFRFUl9ORVRfQ0ZHX0w0X0ZSTShzZWwpCSgo c2VsKSA8PCAxNSkKKyNkZWZpbmUgICBBU1BfUlhfRklMVEVSX05FVF9DRkdfVU1DKHNlbCkJQklU KChzZWwpICsgMTkpCisjZGVmaW5lICAgQVNQX1JYX0ZJTFRFUl9ORVRfQ0ZHX0RNQV9FTgkJQklU KDI3KQorCisjZGVmaW5lICBBU1BfUlhfRklMVEVSX05FVF9PRkZTRVRfTUFYCQkzMgorI2RlZmlu ZSAgQVNQX1JYX0ZJTFRFUl9ORVRfUEFUKHNlbCwgYmxvY2ssIG9mZikgXAorCQkoKChzZWwpICog MHhhMDQpICsgKChibG9jaykgKiAweDIwMCkgKyAob2ZmKSArIDB4NjAwKQorI2RlZmluZSAgQVNQ X1JYX0ZJTFRFUl9ORVRfTUFTSyhzZWwsIGJsb2NrLCBvZmYpIFwKKwkJKCgoc2VsKSAqIDB4YTA0 KSArICgoYmxvY2spICogMHgyMDApICsgKG9mZikgKyAweDcwMCkKKworI2RlZmluZSAgQVNQX1JY X0ZJTFRFUl9ORVRfT0ZGU0VUKHNlbCkJCSgoKHNlbCkgKiAweGEwNCkgKyAweGUwMCkKKyNkZWZp bmUgICBBU1BfUlhfRklMVEVSX05FVF9PRkZTRVRfTDIodmFsKQkoKHZhbCkgPDwgMCkKKyNkZWZp bmUgICBBU1BfUlhfRklMVEVSX05FVF9PRkZTRVRfTDNfMCh2YWwpCSgodmFsKSA8PCA4KQorI2Rl ZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX09GRlNFVF9MM18xKHZhbCkJKCh2YWwpIDw8IDE2KQor I2RlZmluZSAgIEFTUF9SWF9GSUxURVJfTkVUX09GRlNFVF9MNCh2YWwpCSgodmFsKSA8PCAyNCkK KworI2RlZmluZSBBU1BfRURQS1RfT0ZGU0VUCQkJMHg5YzAwMAorI2RlZmluZSAgQVNQX0VEUEtU X0VOQUJMRQkJCTB4NAorI2RlZmluZSAgIEFTUF9FRFBLVF9FTkFCTEVfRU4JCQlCSVQoMCkKKyNk ZWZpbmUgIEFTUF9FRFBLVF9IRFJfQ0ZHCQkJMHhjCisjZGVmaW5lICAgQVNQX0VEUEtUX0hEUl9T Wl9TSElGVAkJMgorI2RlZmluZSAgIEFTUF9FRFBLVF9IRFJfU1pfMzIJCQkwCisjZGVmaW5lICAg QVNQX0VEUEtUX0hEUl9TWl82NAkJCTEKKyNkZWZpbmUgICBBU1BfRURQS1RfSERSX1NaXzk2CQkJ MgorI2RlZmluZSAgIEFTUF9FRFBLVF9IRFJfU1pfMTI4CQkJMworI2RlZmluZSBBU1BfRURQS1Rf QlVSU1RfQlVGX1BTQ0FMX1RPVVQJCTB4MTAKKyNkZWZpbmUgQVNQX0VEUEtUX0JVUlNUX0JVRl9X UklURV9UT1VUCQkweDE0CisjZGVmaW5lIEFTUF9FRFBLVF9CVVJTVF9CVUZfUkVBRF9UT1VUCQkw eDE4CisjZGVmaW5lIEFTUF9FRFBLVF9SWF9UU19DT1VOVEVSCQkJMHgzOAorI2RlZmluZSAgQVNQ X0VEUEtUX0VOREkJCQkJMHg0OAorI2RlZmluZSAgIEFTUF9FRFBLVF9FTkRJX0RFU0NfU0hJRlQJ CTgKKyNkZWZpbmUgICBBU1BfRURQS1RfRU5ESV9OT19CVF9TV1AJCTAKKyNkZWZpbmUgICBBU1Bf RURQS1RfRU5ESV9CVF9TV1BfV0QJCTEKKyNkZWZpbmUgQVNQX0VEUEtUX1JYX1BLVF9DTlQJCQkw eDEzOAorI2RlZmluZSBBU1BfRURQS1RfSERSX0VYVFJfQ05UCQkJMHgxM2MKKyNkZWZpbmUgQVNQ X0VEUEtUX0hEUl9PVVRfQ05UCQkJMHgxNDAKKworI2RlZmluZSBBU1BfQ1RSTAkJCQkweDEwMTAw MAorI2RlZmluZSAgQVNQX0NUUkxfQVNQX1NXX0lOSVQJCQkweDA0CisjZGVmaW5lICAgQVNQX0NU UkxfQVNQX1NXX0lOSVRfQUNQVVNTX0NPUkUJQklUKDApCisjZGVmaW5lICAgQVNQX0NUUkxfQVNQ X1NXX0lOSVRfQVNQX1RYCQlCSVQoMSkKKyNkZWZpbmUgICBBU1BfQ1RSTF9BU1BfU1dfSU5JVF9B U19SWAkJQklUKDIpCisjZGVmaW5lICAgQVNQX0NUUkxfQVNQX1NXX0lOSVRfQVNQX1JHTUlJX1VN QUMwCUJJVCgzKQorI2RlZmluZSAgIEFTUF9DVFJMX0FTUF9TV19JTklUX0FTUF9SR01JSV9VTUFD MQlCSVQoNCkKKyNkZWZpbmUgICBBU1BfQ1RSTF9BU1BfU1dfSU5JVF9BU1BfWE1FTUlGCUJJVCg1 KQorI2RlZmluZSAgQVNQX0NUUkxfQ0xPQ0tfQ1RSTAkJCTB4MDQKKyNkZWZpbmUgICBBU1BfQ1RS TF9DTE9DS19DVFJMX0FTUF9UWF9ESVNBQkxFCUJJVCgwKQorI2RlZmluZSAgIEFTUF9DVFJMX0NM T0NLX0NUUkxfQVNQX1JYX0RJU0FCTEUJQklUKDEpCisjZGVmaW5lICAgQVNQX0NUUkxfQ0xPQ0tf Q1RSTF9BU1BfUkdNSUlfU0hJRlQJMgorI2RlZmluZSAgIEFTUF9DVFJMX0NMT0NLX0NUUkxfQVNQ X1JHTUlJX01BU0sJKDB4NyA8PCBBU1BfQ1RSTF9DTE9DS19DVFJMX0E9ClNQX1JHTUlJX1NISUZU KQorI2RlZmluZSAgIEFTUF9DVFJMX0NMT0NLX0NUUkxfQVNQX1JHTUlJX0RJUyh4KQlCSVQoQVNQ X0NUUkxfQ0xPQ0tfQ1RSTF9BU1A9Cl9SR01JSV9TSElGVCArICh4KSkKKyNkZWZpbmUgICBBU1Bf Q1RSTF9DTE9DS19DVFJMX0FTUF9BTExfRElTQUJMRQlHRU5NQVNLKDQsIDApCisjZGVmaW5lICBB U1BfQ1RSTF9DT1JFX0NMT0NLX1NFTEVDVAkJMHgwOAorI2RlZmluZSAgIEFTUF9DVFJMX0NPUkVf Q0xPQ0tfU0VMRUNUX01BSU4JQklUKDApCisjZGVmaW5lICBBU1BfQ1RSTF9TQ1JBVENIXzAJCQkw eDBjCisKK3N0cnVjdCBiY21hc3BfdHhfY2IgeworCXN0cnVjdCBza19idWZmCQkqc2tiOworCXVu c2lnbmVkIGludAkJYnl0ZXNfc2VudDsKKwlib29sCQkJbGFzdDsKKworCURFRklORV9ETUFfVU5N QVBfQUREUihkbWFfYWRkcik7CisJREVGSU5FX0RNQV9VTk1BUF9MRU4oZG1hX2xlbik7Cit9Owor CitzdHJ1Y3QgYmNtYXNwX3JlcyB7CisJLyogUGVyIGludGVyZmFjZSByZXNvdXJjZXMgKi8KKwkv KiBQb3J0ICovCisJdm9pZCBfX2lvbWVtCQkqdW1hYzsKKwl2b2lkIF9faW9tZW0JCSp1bWFjMmZi OworCXZvaWQgX19pb21lbQkJKnJnbWlpOworCisJLyogVFggc2xvd3BhdGgvY29uZmlndXJhdGlv biAqLworCXZvaWQgX19pb21lbQkJKnR4X3NwYl9jdHJsOworCXZvaWQgX19pb21lbQkJKnR4X3Nw Yl90b3A7CisJdm9pZCBfX2lvbWVtCQkqdHhfZXBrdF9jb3JlOworCXZvaWQgX19pb21lbQkJKnR4 X3BhdXNlX2N0cmw7Cit9OworCisjZGVmaW5lIERFU0NfQUREUih4KQkJKCh4KSAmIEdFTk1BU0tf VUxMKDM5LCAwKSkKKyNkZWZpbmUgREVTQ19GTEFHUyh4KQkJKCh4KSAmIEdFTk1BU0tfVUxMKDYz LCA0MCkpCisKK3N0cnVjdCBiY21hc3BfZGVzYyB7CisJdTY0CQlidWY7CisJI2RlZmluZSBERVND X0NIS1NVTQlCSVRfVUxMKDQwKQorCSNkZWZpbmUgREVTQ19DUkNfRVJSCUJJVF9VTEwoNDEpCisJ I2RlZmluZSBERVNDX1JYX1NZTV9FUlIJQklUX1VMTCg0MikKKwkjZGVmaW5lIERFU0NfTk9fT0NU X0FMTiBCSVRfVUxMKDQzKQorCSNkZWZpbmUgREVTQ19QS1RfVFJVQwlCSVRfVUxMKDQ0KQorCS8q ICAzOTowIChUWC9SWCkgYml0cyAwLTM5IG9mIGJ1ZiBhZGRyCisJICogICAgNDAgKFJYKSBjaGVj a3N1bQorCSAqICAgIDQxIChSWCkgY3JjX2Vycm9yCisJICogICAgNDIgKFJYKSByeF9zeW1ib2xf ZXJyb3IKKwkgKiAgICA0MyAoUlgpIG5vbl9vY3RldF9hbGlnbmVkCisJICogICAgNDQgKFJYKSBw a3RfdHJ1bmNhdGVkCisJICogICAgNDUgUmVzZXJ2ZWQKKwkgKiA1Njo0NiAoUlgpIG1hY19maWx0 ZXJfaWQKKwkgKiA2MDo1NyAoUlgpIHJ4X3BvcnRfbnVtICgwLXVuaWNtYWMwLCAxLXVuaW1hYzEp CisJICogICAgNjEgUmVzZXJ2ZWQKKwkgKiA2Mzo2MiAoVFgpIGZvcndhcmQgQ1JDLCBvdmVyd3Jp dGUgQ1JDCisJICovCisJdTMyCQlzaXplOworCXUzMgkJZmxhZ3M7CisJI2RlZmluZSBERVNDX0lO VF9FTiAgICAgQklUKDApCisJI2RlZmluZSBERVNDX1NPRglCSVQoMSkKKwkjZGVmaW5lIERFU0Nf RU9GCUJJVCgyKQorCSNkZWZpbmUgREVTQ19FUEtUX0NNRCAgIEJJVCgzKQorCSNkZWZpbmUgREVT Q19TQ1JBTV9TVCAgIEJJVCg4KQorCSNkZWZpbmUgREVTQ19TQ1JBTV9FTkQgIEJJVCg5KQorCSNk ZWZpbmUgREVTQ19QQ1BQICAgICAgIEJJVCgxMCkKKwkjZGVmaW5lIERFU0NfUFBQUCAgICAgICBC SVQoMTEpCisJLyogICAgIDAgKFRYKSB0eF9pbnRfZW4KKwkgKiAgICAgMSAoVFgvUlgpIFNPRgor CSAqICAgICAyIChUWC9SWCkgRU9GCisJICogICAgIDMgKFRYKSBlcGt0X2NvbW1hbmQKKwkgKiAg IDY6NCAoVFgpIFBBCisJICogICAgIDcgKFRYKSBwYXVzZSBhdCBkZXNjIGVuZAorCSAqICAgICA4 IChUWCkgc2NyYW1fc3RhcnQKKwkgKiAgICAgOSAoVFgpIHNjcmFtX2VuZAorCSAqICAgIDEwIChU WCkgUENQUAorCSAqICAgIDExIChUWCkgUFBQUAorCSAqIDE0OjEyIFJlc2VydmVkCisJICogICAg MTUgKFRYKSBwaWQgY2ggVmFsaWQKKwkgKiAxOToxNiAoVFgpIGRhdGFfcGt0X3R5cGUKKwkgKiAz MjoyMCAoVFgpIHBpZF9jaGFubmVsIChSWCkgbndfZmlsdGVyX2lkCisJICovCit9OworCitzdHJ1 Y3QgYmNtYXNwX2ludGY7CisKK3N0cnVjdCBiY21hc3BfaW50Zl9zdGF0czY0IHsKKwkvKiBSeCBT dGF0cyAqLworCXU2NF9zdGF0c190CXJ4X3BhY2tldHM7CisJdTY0X3N0YXRzX3QJcnhfYnl0ZXM7 CisJdTY0X3N0YXRzX3QJcnhfZXJyb3JzOworCXU2NF9zdGF0c190CXJ4X2Ryb3BwZWQ7CisJdTY0 X3N0YXRzX3QJcnhfY3JjX2VycnM7CisJdTY0X3N0YXRzX3QJcnhfc3ltX2VycnM7CisKKwkvKiBU eCBTdGF0cyovCisJdTY0X3N0YXRzX3QJdHhfcGFja2V0czsKKwl1NjRfc3RhdHNfdAl0eF9ieXRl czsKKwl1NjRfc3RhdHNfdAl0eF9lcnJvcnM7CisKKwlzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMJCXN5 bmNwOworfTsKKworc3RydWN0IGJjbWFzcF9pbnRmX29wcyB7CisJdW5zaWduZWQgbG9uZyAoKnJ4 X2Rlc2NfcmVhZCkoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmKTsKKwl2b2lkICgqcnhfYnVmZmVy X3dyaXRlKShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGRtYV9hZGRyX3QgYWRkcik7CisJdm9p ZCAoKnJ4X2Rlc2Nfd3JpdGUpKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgZG1hX2FkZHJfdCBh ZGRyKTsKKwl1bnNpZ25lZCBsb25nICgqdHhfcmVhZCkoc3RydWN0IGJjbWFzcF9pbnRmICppbnRm KTsKKwl2b2lkICgqdHhfd3JpdGUpKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgZG1hX2FkZHJf dCBhZGRyKTsKK307CisKK3N0cnVjdCBiY21hc3BfaW50ZiB7CisJc3RydWN0IG5ldF9kZXZpY2UJ CSpuZGV2OworCXN0cnVjdCBiY21hc3BfcHJpdgkJKnBhcmVudDsKKworCS8qIEFTUCBDaCAqLwor CWludAkJCQljaGFubmVsOworCWludAkJCQlwb3J0OworCWNvbnN0IHN0cnVjdCBiY21hc3BfaW50 Zl9vcHMJKm9wczsKKworCS8qIFVzZWQgZm9yIHNwbGl0dGluZyBzaGFyZWQgcmVzb3VyY2VzICov CisJaW50CQkJCWluZGV4OworCisJc3RydWN0IG5hcGlfc3RydWN0CXR4X25hcGk7CisJLyogVFgg cmluZywgc3RhcnRzIG9uIGEgbmV3IGNhY2hlbGluZSBib3VuZGFyeSAqLworCXZvaWQgX19pb21l bQkJCSp0eF9zcGJfZG1hOworCWludAkJCQl0eF9zcGJfaW5kZXg7CisJaW50CQkJCXR4X3NwYl9j bGVhbl9pbmRleDsKKwlzdHJ1Y3QgYmNtYXNwX2Rlc2MJCSp0eF9zcGJfY3B1OworCWRtYV9hZGRy X3QJCQl0eF9zcGJfZG1hX2FkZHI7CisJZG1hX2FkZHJfdAkJCXR4X3NwYl9kbWFfdmFsaWQ7CisJ ZG1hX2FkZHJfdAkJCXR4X3NwYl9kbWFfcmVhZDsKKwlzdHJ1Y3QgYmNtYXNwX3R4X2NiCQkqdHhf Y2JzOworCisJLyogUlggcmluZywgc3RhcnRzIG9uIGEgbmV3IGNhY2hlbGluZSBib3VuZGFyeSAq LworCXZvaWQgX19pb21lbQkJCSpyeF9lZHBrdF9jZmc7CisJdm9pZCBfX2lvbWVtCQkJKnJ4X2Vk cGt0X2RtYTsKKwlpbnQJCQkJcnhfZWRwa3RfaW5kZXg7CisJaW50CQkJCXJ4X2J1Zl9vcmRlcjsK KwlzdHJ1Y3QgYmNtYXNwX2Rlc2MJCSpyeF9lZHBrdF9jcHU7CisJZG1hX2FkZHJfdAkJCXJ4X2Vk cGt0X2RtYV9hZGRyOworCWRtYV9hZGRyX3QJCQlyeF9lZHBrdF9kbWFfcmVhZDsKKworCS8qIFJY IGJ1ZmZlciBwcmVmZXRjaGVyIHJpbmcqLworCXZvaWQJCQkJKnJ4X3JpbmdfY3B1OworCWRtYV9h ZGRyX3QJCQlyeF9yaW5nX2RtYTsKKwlkbWFfYWRkcl90CQkJcnhfcmluZ19kbWFfdmFsaWQ7CisJ c3RydWN0IG5hcGlfc3RydWN0CQlyeF9uYXBpOworCisJc3RydWN0IGJjbWFzcF9yZXMJCXJlczsK Kwl1bnNpZ25lZCBpbnQJCQljcmNfZndkOworCisJLyogUEhZIGRldmljZSAqLworCXN0cnVjdCBk ZXZpY2Vfbm9kZQkJKnBoeV9kbjsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUJCSpuZGV2X2RuOworCXBo eV9pbnRlcmZhY2VfdAkJCXBoeV9pbnRlcmZhY2U7CisJYm9vbAkJCQlpbnRlcm5hbF9waHk7CisJ aW50CQkJCW9sZF9wYXVzZTsKKwlpbnQJCQkJb2xkX2xpbms7CisJaW50CQkJCW9sZF9kdXBsZXg7 CisKKwl1MzIJCQkJbXNnX2VuYWJsZTsKKworCS8qIFN0YXRpc3RpY3MgKi8KKwlzdHJ1Y3QgYmNt YXNwX2ludGZfc3RhdHM2NAlzdGF0czY0OworfTsKKworI2RlZmluZSBOVU1fTURBX0ZJTFRFUlMJ CQkJMzIKK3N0cnVjdCBiY21hc3BfbWRhX2ZpbHRlciB7CisJLyogQ3VycmVudCBvd25lciBvZiB0 aGlzIGZpbHRlciAqLworCWludAkJcG9ydDsKKwlib29sCQllbjsKKwl1OAkJYWRkcltFVEhfQUxF Tl07CisJdTgJCW1hc2tbRVRIX0FMRU5dOworfTsKKworc3RydWN0IGJjbWFzcF9wcml2OworCitz dHJ1Y3QgYmNtYXNwX2h3X2luZm8geworCXUzMgkJcnhfY3RybF9mbHVzaDsKKwl1MzIJCXVtYWMy ZmI7CisJdTMyCQlyeF9jdHJsX2ZiX291dF9mcmFtZV9jb3VudDsKKwl1MzIJCXJ4X2N0cmxfZmJf ZmlsdF9vdXRfZnJhbWVfY291bnQ7CisJdTMyCQlyeF9jdHJsX2ZiX3J4X2ZpZm9fZGVwdGg7Cit9 OworCitzdHJ1Y3QgYmNtYXNwX3BsYXRfZGF0YSB7CisJc3RydWN0IGJjbWFzcF9od19pbmZvCQkq aHdfaW5mbzsKK307CisKK3N0cnVjdCBiY21hc3BfcHJpdiB7CisJc3RydWN0IHBsYXRmb3JtX2Rl dmljZQkJKnBkZXY7CisJc3RydWN0IGNsawkJCSpjbGs7CisKKwlpbnQJCQkJaXJxOworCXUzMgkJ CQlpcnFfbWFzazsKKworCXZvaWQgX19pb21lbQkJCSpiYXNlOworCXN0cnVjdAliY21hc3BfaHdf aW5mbwkJKmh3X2luZm87CisKKwl1bnNpZ25lZCBpbnQJCQlpbnRmX2NvdW50OworCXN0cnVjdCBi Y21hc3BfaW50ZgkJKippbnRmczsKKworCXN0cnVjdCBiY21hc3BfbWRhX2ZpbHRlcgltZGFfZmls dGVyc1tOVU1fTURBX0ZJTFRFUlNdOworCisJLyogTUFDIGRlc3RpbmF0aW9uIGFkZHJlc3MgZmls dGVycyBsb2NrICovCisJc3BpbmxvY2tfdAkJCW1kYV9sb2NrOworCisJLyogUHJvdGVjdHMgYWNj ZXNzZXMgdG8gQVNQX0NUUkxfQ0xPQ0tfQ1RSTCAqLworCXNwaW5sb2NrX3QJCQljbGtfbG9jazsK K307CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBiY21hc3BfaW50Zl9yeF9kZXNjX3Jl YWQoc3RydWN0IGJjbWFzcF9pbnRmICppPQpudGYpCit7CisJcmV0dXJuIGludGYtPm9wcy0+cnhf ZGVzY19yZWFkKGludGYpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYmNtYXNwX2ludGZfcnhf YnVmZmVyX3dyaXRlKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwKKwkJCQkJICAgICAgIGRtYV9h ZGRyX3QgYWRkcikKK3sKKwlpbnRmLT5vcHMtPnJ4X2J1ZmZlcl93cml0ZShpbnRmLCBhZGRyKTsK K30KKworc3RhdGljIGlubGluZSB2b2lkIGJjbWFzcF9pbnRmX3J4X2Rlc2Nfd3JpdGUoc3RydWN0 IGJjbWFzcF9pbnRmICppbnRmLAorCQkJCQkgICAgIGRtYV9hZGRyX3QgYWRkcikKK3sKKwlpbnRm LT5vcHMtPnJ4X2Rlc2Nfd3JpdGUoaW50ZiwgYWRkcik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5z aWduZWQgbG9uZyBiY21hc3BfaW50Zl90eF9yZWFkKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZikK K3sKKwlyZXR1cm4gaW50Zi0+b3BzLT50eF9yZWFkKGludGYpOworfQorCitzdGF0aWMgaW5saW5l IHZvaWQgYmNtYXNwX2ludGZfdHhfd3JpdGUoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLAorCQkJ CQlkbWFfYWRkcl90IGFkZHIpCit7CisJaW50Zi0+b3BzLT50eF93cml0ZShpbnRmLCBhZGRyKTsK K30KKworI2RlZmluZSBfX0JDTUFTUF9JT19NQUNSTyhuYW1lLCBtKQkJCQkJXAorc3RhdGljIGlu bGluZSB1MzIgbmFtZSMjX3JsKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgdTMyIG9mZikJCVwK K3sJCQkJCQkJCQlcCisJdTMyIHJlZyA9M0QgcmVhZGxfcmVsYXhlZChpbnRmLT5tICsgb2ZmKTsJ CQkJXAorCXJldHVybiByZWc7CQkJCQkJCVwKK30JCQkJCQkJCQlcCitzdGF0aWMgaW5saW5lIHZv aWQgbmFtZSMjX3dsKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgdTMyIHZhbCwgdTMyIG9mZilc Cit7CQkJCQkJCQkJXAorCXdyaXRlbF9yZWxheGVkKHZhbCwgaW50Zi0+bSArIG9mZik7CQkJCVwK K30KKworI2RlZmluZSBCQ01BU1BfSU9fTUFDUk8obmFtZSkJCV9fQkNNQVNQX0lPX01BQ1JPKG5h bWUsIHJlcy5uYW1lKQorI2RlZmluZSBCQ01BU1BfRlBfSU9fTUFDUk8obmFtZSkJX19CQ01BU1Bf SU9fTUFDUk8obmFtZSwgbmFtZSkKKworQkNNQVNQX0lPX01BQ1JPKHVtYWMpOworQkNNQVNQX0lP X01BQ1JPKHVtYWMyZmIpOworQkNNQVNQX0lPX01BQ1JPKHJnbWlpKTsKK0JDTUFTUF9GUF9JT19N QUNSTyh0eF9zcGJfZG1hKTsKK0JDTUFTUF9JT19NQUNSTyh0eF9zcGJfY3RybCk7CitCQ01BU1Bf SU9fTUFDUk8odHhfc3BiX3RvcCk7CitCQ01BU1BfSU9fTUFDUk8odHhfZXBrdF9jb3JlKTsKK0JD TUFTUF9JT19NQUNSTyh0eF9wYXVzZV9jdHJsKTsKK0JDTUFTUF9GUF9JT19NQUNSTyhyeF9lZHBr dF9kbWEpOworQkNNQVNQX0ZQX0lPX01BQ1JPKHJ4X2VkcGt0X2NmZyk7CisKKyNkZWZpbmUgX19C Q01BU1BfRlBfSU9fTUFDUk9fUShuYW1lLCBtKQkJCQkJXAorc3RhdGljIGlubGluZSB1NjQgbmFt ZSMjX3JxKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgdTMyIG9mZikJCVwKK3sJCQkJCQkJCQlc CisJdTY0IHJlZyA9M0QgcmVhZHFfcmVsYXhlZChpbnRmLT5tICsgb2ZmKTsJCQkJXAorCXJldHVy biByZWc7CQkJCQkJCVwKK30JCQkJCQkJCQlcCitzdGF0aWMgaW5saW5lIHZvaWQgbmFtZSMjX3dx KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgdTY0IHZhbCwgdTMyIG9mZilcCit7CQkJCQkJCQkJ XAorCXdyaXRlcV9yZWxheGVkKHZhbCwgaW50Zi0+bSArIG9mZik7CQkJCVwKK30KKworI2RlZmlu ZSBCQ01BU1BfRlBfSU9fTUFDUk9fUShuYW1lKQlfX0JDTUFTUF9GUF9JT19NQUNST19RKG5hbWUs IG5hbWUpCisKK0JDTUFTUF9GUF9JT19NQUNST19RKHR4X3NwYl9kbWEpOworQkNNQVNQX0ZQX0lP X01BQ1JPX1EocnhfZWRwa3RfZG1hKTsKK0JDTUFTUF9GUF9JT19NQUNST19RKHJ4X2VkcGt0X2Nm Zyk7CisKKyNkZWZpbmUgUEtUX09GRkxPQURfTk9QCQkJKDAgPDwgMjgpCisjZGVmaW5lIFBLVF9P RkZMT0FEX0hEUl9PUAkJKDEgPDwgMjgpCisjZGVmaW5lICBQS1RfT0ZGTE9BRF9IRFJfV1JCQUNL CQlCSVQoMTkpCisjZGVmaW5lICBQS1RfT0ZGTE9BRF9IRFJfQ09VTlQoeCkJKCh4KSA8PCAxNikK KyNkZWZpbmUgIFBLVF9PRkZMT0FEX0hEUl9TSVpFXzEoeCkJKCh4KSA8PCA0KQorI2RlZmluZSAg UEtUX09GRkxPQURfSERSX1NJWkVfMih4KQkoeCkKKyNkZWZpbmUgIFBLVF9PRkZMT0FEX0hEUjJf U0laRV8yKHgpCSgoeCkgPDwgMjQpCisjZGVmaW5lICBQS1RfT0ZGTE9BRF9IRFIyX1NJWkVfMyh4 KQkoKHgpIDw8IDEyKQorI2RlZmluZSAgUEtUX09GRkxPQURfSERSMl9TSVpFXzQoeCkJKHgpCisj ZGVmaW5lIFBLVF9PRkZMT0FEX0VQS1RfT1AJCSgyIDw8IDI4KQorI2RlZmluZSAgUEtUX09GRkxP QURfRVBLVF9XUkJBQ0sJQklUKDIzKQorI2RlZmluZSAgUEtUX09GRkxPQURfRVBLVF9JUCh4KQkJ KCh4KSA8PCAyMSkKKyNkZWZpbmUgIFBLVF9PRkZMT0FEX0VQS1RfVFAoeCkJCSgoeCkgPDwgMTkp CisjZGVmaW5lICBQS1RfT0ZGTE9BRF9FUEtUX0xFTih4KQkoKHgpIDw8IDE2KQorI2RlZmluZSAg UEtUX09GRkxPQURfRVBLVF9DU1VNX0wzCUJJVCgxNSkKKyNkZWZpbmUgIFBLVF9PRkZMT0FEX0VQ S1RfQ1NVTV9MMglCSVQoMTQpCisjZGVmaW5lICBQS1RfT0ZGTE9BRF9FUEtUX0lEKHgpCQkoKHgp IDw8IDEyKQorI2RlZmluZSAgUEtUX09GRkxPQURfRVBLVF9TRVEoeCkJKCh4KSA8PCAxMCkKKyNk ZWZpbmUgIFBLVF9PRkZMT0FEX0VQS1RfVFMoeCkJCSgoeCkgPDwgOCkKKyNkZWZpbmUgIFBLVF9P RkZMT0FEX0VQS1RfQkxPQyh4KQkoeCkKKyNkZWZpbmUgUEtUX09GRkxPQURfRU5EX09QCQkoNyA8 PCAyOCkKKworc3RydWN0IGJjbWFzcF9wa3Rfb2ZmbG9hZCB7CisJX19iZTMyCQlub3A7CisJX19i ZTMyCQloZWFkZXI7CisJX19iZTMyCQloZWFkZXIyOworCV9fYmUzMgkJZXBrdDsKKwlfX2JlMzIJ CWVuZDsKK307CisKKyNkZWZpbmUgQkNNQVNQX0NPUkVfSU9fTUFDUk8obmFtZSwgb2Zmc2V0KQkJ CQlcCitzdGF0aWMgaW5saW5lIHUzMiBuYW1lIyNfY29yZV9ybChzdHJ1Y3QgYmNtYXNwX3ByaXYg KnByaXYsCQlcCisJCQkJIHUzMiBvZmYpCQkJCVwKK3sJCQkJCQkJCQlcCisJdTMyIHJlZyA9M0Qg cmVhZGxfcmVsYXhlZChwcml2LT5iYXNlICsgKG9mZnNldCkgKyBvZmYpOwkJXAorCXJldHVybiBy ZWc7CQkJCQkJCVwKK30JCQkJCQkJCQlcCitzdGF0aWMgaW5saW5lIHZvaWQgbmFtZSMjX2NvcmVf d2woc3RydWN0IGJjbWFzcF9wcml2ICpwcml2LAkJXAorCQkJCSAgdTMyIHZhbCwgdTMyIG9mZikJ CQlcCit7CQkJCQkJCQkJXAorCXdyaXRlbF9yZWxheGVkKHZhbCwgcHJpdi0+YmFzZSArIChvZmZz ZXQpICsgb2ZmKTsJCVwKK30KKworQkNNQVNQX0NPUkVfSU9fTUFDUk8oaW50cjIsIEFTUF9JTlRS Ml9PRkZTRVQpOworQkNNQVNQX0NPUkVfSU9fTUFDUk8od2FrZXVwX2ludHIyLCBBU1BfV0FLRVVQ X0lOVFIyX09GRlNFVCk7CitCQ01BU1BfQ09SRV9JT19NQUNSTyh0eF9hbmFseXRpY3MsIEFTUF9U WF9BTkFMWVRJQ1NfT0ZGU0VUKTsKK0JDTUFTUF9DT1JFX0lPX01BQ1JPKHJ4X2FuYWx5dGljcywg QVNQX1JYX0FOQUxZVElDU19PRkZTRVQpOworQkNNQVNQX0NPUkVfSU9fTUFDUk8ocnhfY3RybCwg QVNQX1JYX0NUUkxfT0ZGU0VUKTsKK0JDTUFTUF9DT1JFX0lPX01BQ1JPKHJ4X2ZpbHRlciwgQVNQ X1JYX0ZJTFRFUl9PRkZTRVQpOworQkNNQVNQX0NPUkVfSU9fTUFDUk8ocnhfZWRwa3QsIEFTUF9F RFBLVF9PRkZTRVQpOworQkNNQVNQX0NPUkVfSU9fTUFDUk8oY3RybCwgQVNQX0NUUkwpOworCitz dHJ1Y3QgYmNtYXNwX2ludGYgKmJjbWFzcF9pbnRlcmZhY2VfY3JlYXRlKHN0cnVjdCBiY21hc3Bf cHJpdiAqcHJpdiwKKwkJCQkJICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqbmRldl9kbiwgaW50IGkp OworCit2b2lkIGJjbWFzcF9pbnRlcmZhY2VfZGVzdHJveShzdHJ1Y3QgYmNtYXNwX2ludGYgKmlu dGYsIGJvb2wgdW5yZWdpc3Rlcik7CisKK3ZvaWQgYmNtYXNwX2VuYWJsZV90eF9pcnEoc3RydWN0 IGJjbWFzcF9pbnRmICppbnRmLCBpbnQgZW4pOworCit2b2lkIGJjbWFzcF9lbmFibGVfcnhfaXJx KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgaW50IGVuKTsKKwordm9pZCBiY21hc3BfZmx1c2hf cnhfcG9ydChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpOworCitleHRlcm4gY29uc3Qgc3RydWN0 IGV0aHRvb2xfb3BzIGJjbWFzcF9ldGh0b29sX29wczsKKworaW50IGJjbWFzcF9pbnRlcmZhY2Vf c3VzcGVuZChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpOworCitpbnQgYmNtYXNwX2ludGVyZmFj ZV9yZXN1bWUoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmKTsKKwordm9pZCBiY21hc3Bfc2V0X3By b21pc2Moc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBib29sIGVuKTsKKwordm9pZCBiY21hc3Bf c2V0X2FsbG11bHRpKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgYm9vbCBlbik7CisKK3ZvaWQg YmNtYXNwX3NldF9icm9hZChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGJvb2wgZW4pOworCit2 b2lkIGJjbWFzcF9zZXRfb2FkZHIoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBjb25zdCB1bnNp Z25lZCBjaGFyICphZGRyLAorCQkgICAgICBib29sIGVuKTsKKworaW50IGJjbWFzcF9zZXRfZW5f bWRhX2ZpbHRlcihzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIHVuc2lnbmVkIGNoYXIgKmFkZHIs CisJCQkgICAgIHVuc2lnbmVkIGNoYXIgKm1hc2spOworCit2b2lkIGJjbWFzcF9kaXNhYmxlX2Fs bF9maWx0ZXJzKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50Zik7CisKK3ZvaWQgYmNtYXNwX2NvcmVf Y2xvY2tfc2V0X2ludGYoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBib29sIGVuKTsKKworI2Vu ZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFz cF9ldGh0b29sLmMgYi9kcml2ZXJzLz0KbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNw X2V0aHRvb2wuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM5NGMw ZTFjYjAyNgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2FzcDIvYmNtYXNwX2V0aHRvb2wuYwpAQCAtMCwwICsxLDQwIEBACisvLyBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogR1BMLTIuMAorI2RlZmluZSBwcl9mbXQoZm10KQkJCQkiYmNtYXNwX2V0aHRv b2w6ICIgZm10CisKKyNpbmNsdWRlIDxsaW51eC9ldGh0b29sLmg+CisjaW5jbHVkZSA8bGludXgv bmV0ZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisKKyNpbmNs dWRlICJiY21hc3AuaCIKKyNpbmNsdWRlICJiY21hc3BfaW50Zl9kZWZzLmgiCisKK3N0YXRpYyB2 b2lkIGJjbWFzcF9nZXRfZHJ2aW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAorCQkJICAgICAg IHN0cnVjdCBldGh0b29sX2RydmluZm8gKmluZm8pCit7CisJc3Ryc2NweShpbmZvLT5kcml2ZXIs ICJiY21hc3AiLCBzaXplb2YoaW5mby0+ZHJpdmVyKSk7CisJc3Ryc2NweShpbmZvLT5idXNfaW5m bywgZGV2X25hbWUoZGV2LT5kZXYucGFyZW50KSwKKwkJc2l6ZW9mKGluZm8tPmJ1c19pbmZvKSk7 Cit9CisKK3N0YXRpYyB1MzIgYmNtYXNwX2dldF9tc2dsZXZlbChzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2KQoreworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0QgbmV0ZGV2X3ByaXYoZGV2KTsK KworCXJldHVybiBpbnRmLT5tc2dfZW5hYmxlOworfQorCitzdGF0aWMgdm9pZCBiY21hc3Bfc2V0 X21zZ2xldmVsKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUzMiBsZXZlbCkKK3sKKwlzdHJ1Y3Qg YmNtYXNwX2ludGYgKmludGYgPTNEIG5ldGRldl9wcml2KGRldik7CisKKwlpbnRmLT5tc2dfZW5h YmxlID0zRCBsZXZlbDsKK30KKworY29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzIGJjbWFzcF9ldGh0 b29sX29wcyA9M0QgeworCS5nZXRfZHJ2aW5mbwkJPTNEIGJjbWFzcF9nZXRfZHJ2aW5mbywKKwku Z2V0X2xpbmsJCT0zRCBldGh0b29sX29wX2dldF9saW5rLAorCS5nZXRfbGlua19rc2V0dGluZ3MJ PTNEIHBoeV9ldGh0b29sX2dldF9saW5rX2tzZXR0aW5ncywKKwkuc2V0X2xpbmtfa3NldHRpbmdz CT0zRCBwaHlfZXRodG9vbF9zZXRfbGlua19rc2V0dGluZ3MsCisJLmdldF9tc2dsZXZlbAkJPTNE IGJjbWFzcF9nZXRfbXNnbGV2ZWwsCisJLnNldF9tc2dsZXZlbAkJPTNEIGJjbWFzcF9zZXRfbXNn bGV2ZWwsCit9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNw Mi9iY21hc3BfaW50Zi5jIGIvZHJpdmVycy9uZXQ9Ci9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2Jj bWFzcF9pbnRmLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zODgy ZDY1NTQxYzAKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9hc3AyL2JjbWFzcF9pbnRmLmMKQEAgLTAsMCArMSwxMzU4IEBACisvLyBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogR1BMLTIuMAorI2RlZmluZSBwcl9mbXQoZm10KQkJCSJiY21hc3BfaW50Zjog IiBmbXQKKworI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9icmNt cGh5Lmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4K KyNpbmNsdWRlIDxsaW51eC9ldGhlcmRldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L25ldGRldmlj ZS5oPgorI2luY2x1ZGUgPGxpbnV4L29mX25ldC5oPgorI2luY2x1ZGUgPGxpbnV4L29mX21kaW8u aD4KKyNpbmNsdWRlIDxsaW51eC9waHkuaD4KKyNpbmNsdWRlIDxsaW51eC9waHlfZml4ZWQuaD4K KyNpbmNsdWRlIDxsaW51eC9wdHBfY2xhc3NpZnkuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9y bV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxuZXQvaXAuaD4KKyNpbmNsdWRlIDxuZXQvaXB2Ni5oPgor CisjaW5jbHVkZSAiYmNtYXNwLmgiCisjaW5jbHVkZSAiYmNtYXNwX2ludGZfZGVmcy5oIgorCitz dGF0aWMgaW50IGluY3JfcmluZyhpbnQgaW5kZXgsIGludCByaW5nX2NvdW50KQoreworCWluZGV4 Kys7CisJaWYgKGluZGV4ID0zRD0zRCByaW5nX2NvdW50KQorCQlyZXR1cm4gMDsKKworCXJldHVy biBpbmRleDsKK30KKworLyogUG9pbnRzIHRvIGxhc3QgYnl0ZSBvZiBkZXNjcmlwdG9yICovCitz dGF0aWMgZG1hX2FkZHJfdCBpbmNyX2xhc3RfYnl0ZShkbWFfYWRkcl90IGFkZHIsIGRtYV9hZGRy X3QgYmVnLAorCQkJCSBpbnQgcmluZ19jb3VudCkKK3sKKwlkbWFfYWRkcl90IGVuZCA9M0QgYmVn ICsgKHJpbmdfY291bnQgKiBERVNDX1NJWkUpOworCisJYWRkciArPTNEIERFU0NfU0laRTsKKwlp ZiAoYWRkciA+IGVuZCkKKwkJcmV0dXJuIGJlZyArIERFU0NfU0laRSAtIDE7CisKKwlyZXR1cm4g YWRkcjsKK30KKworLyogUG9pbnRzIHRvIGZpcnN0IGJ5dGUgb2YgZGVzY3JpcHRvciAqLworc3Rh dGljIGRtYV9hZGRyX3QgaW5jcl9maXJzdF9ieXRlKGRtYV9hZGRyX3QgYWRkciwgZG1hX2FkZHJf dCBiZWcsCisJCQkJICBpbnQgcmluZ19jb3VudCkKK3sKKwlkbWFfYWRkcl90IGVuZCA9M0QgYmVn ICsgKHJpbmdfY291bnQgKiBERVNDX1NJWkUpOworCisJYWRkciArPTNEIERFU0NfU0laRTsKKwlp ZiAoYWRkciA+PTNEIGVuZCkKKwkJcmV0dXJuIGJlZzsKKworCXJldHVybiBhZGRyOworfQorCitz dGF0aWMgdm9pZCBiY21hc3BfZW5hYmxlX3R4KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgaW50 IGVuKQoreworCWlmIChlbikgeworCQl0eF9zcGJfY3RybF93bChpbnRmLCBUWF9TUEJfQ1RSTF9F TkFCTEVfRU4sIFRYX1NQQl9DVFJMX0VOQUJMRSk7CisJCXR4X2Vwa3RfY29yZV93bChpbnRmLCAo VFhfRVBLVF9DX0NGR19NSVNDX0VOIHwKKwkJCQlUWF9FUEtUX0NfQ0ZHX01JU0NfUFQgfAorCQkJ CShpbnRmLT5wb3J0IDw8IFRYX0VQS1RfQ19DRkdfTUlTQ19QU19TSElGVCkpLAorCQkJCVRYX0VQ S1RfQ19DRkdfTUlTQyk7CisJfSBlbHNlIHsKKwkJdHhfc3BiX2N0cmxfd2woaW50ZiwgMHgwLCBU WF9TUEJfQ1RSTF9FTkFCTEUpOworCQl0eF9lcGt0X2NvcmVfd2woaW50ZiwgMHgwLCBUWF9FUEtU X0NfQ0ZHX01JU0MpOworCX0KK30KKworc3RhdGljIHZvaWQgYmNtYXNwX2VuYWJsZV9yeChzdHJ1 Y3QgYmNtYXNwX2ludGYgKmludGYsIGludCBlbikKK3sKKwlpZiAoZW4pCisJCXJ4X2VkcGt0X2Nm Z193bChpbnRmLCBSWF9FRFBLVF9DRkdfRU5BQkxFX0VOLAorCQkJCVJYX0VEUEtUX0NGR19FTkFC TEUpOworCWVsc2UKKwkJcnhfZWRwa3RfY2ZnX3dsKGludGYsIDB4MCwgUlhfRURQS1RfQ0ZHX0VO QUJMRSk7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9zZXRfcnhfbW9kZShzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2KQoreworCXVuc2lnbmVkIGNoYXIgbWFza1tdID0zRCB7MHhmZiwgMHhmZiwgMHhm ZiwgMHhmZiwgMHhmZiwgMHhmZn07CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRk ZXZfcHJpdihkZXYpOworCXN0cnVjdCBuZXRkZXZfaHdfYWRkciAqaGE7CisJaW50IHJldDsKKwor CXNwaW5fbG9ja19iaCgmaW50Zi0+cGFyZW50LT5tZGFfbG9jayk7CisKKwliY21hc3BfZGlzYWJs ZV9hbGxfZmlsdGVycyhpbnRmKTsKKworCWlmIChkZXYtPmZsYWdzICYgSUZGX1BST01JU0MpCisJ CWdvdG8gc2V0X3Byb21pc2M7CisKKwliY21hc3Bfc2V0X3Byb21pc2MoaW50ZiwgMCk7CisKKwli Y21hc3Bfc2V0X2Jyb2FkKGludGYsIDEpOworCisJYmNtYXNwX3NldF9vYWRkcihpbnRmLCBkZXYt PmRldl9hZGRyLCAxKTsKKworCWlmIChkZXYtPmZsYWdzICYgSUZGX0FMTE1VTFRJKSB7CisJCWJj bWFzcF9zZXRfYWxsbXVsdGkoaW50ZiwgMSk7CisJfSBlbHNlIHsKKwkJYmNtYXNwX3NldF9hbGxt dWx0aShpbnRmLCAwKTsKKworCQluZXRkZXZfZm9yX2VhY2hfbWNfYWRkcihoYSwgZGV2KSB7CisJ CQlyZXQgPTNEIGJjbWFzcF9zZXRfZW5fbWRhX2ZpbHRlcihpbnRmLCBoYS0+YWRkciwgbWFzayk7 CisJCQlpZiAocmV0KQorCQkJCWdvdG8gc2V0X3Byb21pc2M7CisJCX0KKwl9CisKKwluZXRkZXZf Zm9yX2VhY2hfdWNfYWRkcihoYSwgZGV2KSB7CisJCXJldCA9M0QgYmNtYXNwX3NldF9lbl9tZGFf ZmlsdGVyKGludGYsIGhhLT5hZGRyLCBtYXNrKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gc2V0X3By b21pc2M7CisJfQorCisJc3Bpbl91bmxvY2tfYmgoJmludGYtPnBhcmVudC0+bWRhX2xvY2spOwor CXJldHVybjsKKworc2V0X3Byb21pc2M6CisJYmNtYXNwX3NldF9wcm9taXNjKGludGYsIDEpOwor CisJLyogZGlzYWJsZSBhbGwgZmlsdGVycyB1c2VkIGJ5IHRoaXMgcG9ydCAqLworCWJjbWFzcF9k aXNhYmxlX2FsbF9maWx0ZXJzKGludGYpOworCisJc3Bpbl91bmxvY2tfYmgoJmludGYtPnBhcmVu dC0+bWRhX2xvY2spOworfQorCitzdGF0aWMgdm9pZCBiY21hc3BfY2xlYW5fdHhjYihzdHJ1Y3Qg YmNtYXNwX2ludGYgKmludGYsIGludCBpbmRleCkKK3sKKwlzdHJ1Y3QgYmNtYXNwX3R4X2NiICp0 eGNiID0zRCAmaW50Zi0+dHhfY2JzW2luZGV4XTsKKworCXR4Y2ItPnNrYiA9M0QgTlVMTDsKKwlk bWFfdW5tYXBfYWRkcl9zZXQodHhjYiwgZG1hX2FkZHIsIDApOworCWRtYV91bm1hcF9sZW5fc2V0 KHR4Y2IsIGRtYV9sZW4sIDApOworCXR4Y2ItPmxhc3QgPTNEIGZhbHNlOworfQorCitzdGF0aWMg aW50IHR4X3NwYl9yaW5nX2Z1bGwoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBpbnQgY250KQor eworCWludCBuZXh0X2luZGV4LCBpOworCisJLyogQ2hlY2sgaWYgd2UgaGF2ZSBlbm91Z2ggcm9v bSBmb3IgY250IGRlc2NyaXB0b3JzICovCisJZm9yIChpID0zRCAwOyBpIDwgY250OyBpKyspIHsK KwkJbmV4dF9pbmRleCA9M0QgaW5jcl9yaW5nKGludGYtPnR4X3NwYl9pbmRleCwgREVTQ19SSU5H X0NPVU5UKTsKKwkJaWYgKG5leHRfaW5kZXggPTNEPTNEIGludGYtPnR4X3NwYl9jbGVhbl9pbmRl eCkKKwkJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHNr X2J1ZmYgKmJjbWFzcF9jc3VtX29mZmxvYWQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKKwkJCQkJ ICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwKKwkJCQkJICAgYm9vbCAqY3N1bV9odykKK3sKKwl1MzIg aGVhZGVyID0zRCAwLCBoZWFkZXIyID0zRCAwLCBlcGt0ID0zRCAwOworCXN0cnVjdCBiY21hc3Bf cGt0X29mZmxvYWQgKm9mZmxvYWQ7CisJdW5zaWduZWQgaW50IGhlYWRlcl9jbnQgPTNEIDA7CisJ c3RydWN0IHNrX2J1ZmYgKm5ld19za2I7CisJdTggaXBfcHJvdG87CisKKwlpZiAoc2tiLT5pcF9z dW1tZWQgIT0zRCBDSEVDS1NVTV9QQVJUSUFMKQorCQlyZXR1cm4gc2tiOworCisJaWYgKHVubGlr ZWx5KHNrYl9oZWFkcm9vbShza2IpIDwgc2l6ZW9mKCpvZmZsb2FkKSkpIHsKKwkJbmV3X3NrYiA9 M0Qgc2tiX3JlYWxsb2NfaGVhZHJvb20oc2tiLCBzaXplb2YoKm9mZmxvYWQpKTsKKwkJaWYgKCFu ZXdfc2tiKQorCQkJZ290byBoZWxwOworCisJCWRldl9jb25zdW1lX3NrYl9hbnkoc2tiKTsKKwkJ c2tiID0zRCBuZXdfc2tiOworCX0KKworCXN3aXRjaCAoc2tiLT5wcm90b2NvbCkgeworCWNhc2Ug aHRvbnMoRVRIX1BfSVApOgorCQloZWFkZXIgfD0zRCBQS1RfT0ZGTE9BRF9IRFJfU0laRV8yKChp cF9oZHJsZW4oc2tiKSA+PiA4KSAmIDB4Zik7CisJCWhlYWRlcjIgfD0zRCBQS1RfT0ZGTE9BRF9I RFIyX1NJWkVfMihpcF9oZHJsZW4oc2tiKSAmIDB4ZmYpOworCQllcGt0IHw9M0QgUEtUX09GRkxP QURfRVBLVF9JUCgwKSB8IFBLVF9PRkZMT0FEX0VQS1RfQ1NVTV9MMjsKKwkJaXBfcHJvdG8gPTNE IGlwX2hkcihza2IpLT5wcm90b2NvbDsKKwkJaGVhZGVyX2NudCArPTNEIDI7CisJCWJyZWFrOwor CWNhc2UgaHRvbnMoRVRIX1BfSVBWNik6CisJCWhlYWRlciB8PTNEIFBLVF9PRkZMT0FEX0hEUl9T SVpFXzIoKElQNl9ITEVOID4+IDgpICYgMHhmKTsKKwkJaGVhZGVyMiB8PTNEIFBLVF9PRkZMT0FE X0hEUjJfU0laRV8yKElQNl9ITEVOICYgMHhmZik7CisJCWVwa3QgfD0zRCBQS1RfT0ZGTE9BRF9F UEtUX0lQKDEpIHwgUEtUX09GRkxPQURfRVBLVF9DU1VNX0wyOworCQlpcF9wcm90byA9M0QgaXB2 Nl9oZHIoc2tiKS0+bmV4dGhkcjsKKwkJaGVhZGVyX2NudCArPTNEIDI7CisJCWJyZWFrOworCWRl ZmF1bHQ6CisJCWdvdG8gaGVscDsKKwl9CisKKwlzd2l0Y2ggKGlwX3Byb3RvKSB7CisJY2FzZSBJ UFBST1RPX1RDUDoKKwkJaGVhZGVyMiB8PTNEIFBLVF9PRkZMT0FEX0hEUjJfU0laRV8zKHRjcF9o ZHJsZW4oc2tiKSk7CisJCWVwa3QgfD0zRCBQS1RfT0ZGTE9BRF9FUEtUX1RQKDApIHwgUEtUX09G RkxPQURfRVBLVF9DU1VNX0wzOworCQloZWFkZXJfY250Kys7CisJCWJyZWFrOworCWNhc2UgSVBQ Uk9UT19VRFA6CisJCWhlYWRlcjIgfD0zRCBQS1RfT0ZGTE9BRF9IRFIyX1NJWkVfMyhVRFBfSExF Tik7CisJCWVwa3QgfD0zRCBQS1RfT0ZGTE9BRF9FUEtUX1RQKDEpIHwgUEtUX09GRkxPQURfRVBL VF9DU1VNX0wzOworCQloZWFkZXJfY250Kys7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWdvdG8g aGVscDsKKwl9CisKKwlvZmZsb2FkID0zRCAoc3RydWN0IGJjbWFzcF9wa3Rfb2ZmbG9hZCAqKXNr Yl9wdXNoKHNrYiwgc2l6ZW9mKCpvZmZsb2FkKSk7CisKKwloZWFkZXIgfD0zRCBQS1RfT0ZGTE9B RF9IRFJfT1AgfCBQS1RfT0ZGTE9BRF9IRFJfQ09VTlQoaGVhZGVyX2NudCkgfAorCQkgIFBLVF9P RkZMT0FEX0hEUl9TSVpFXzEoRVRIX0hMRU4pOworCWVwa3QgfD0zRCBQS1RfT0ZGTE9BRF9FUEtU X09QOworCisJb2ZmbG9hZC0+bm9wID0zRCBodG9ubChQS1RfT0ZGTE9BRF9OT1ApOworCW9mZmxv YWQtPmhlYWRlciA9M0QgaHRvbmwoaGVhZGVyKTsKKwlvZmZsb2FkLT5oZWFkZXIyID0zRCBodG9u bChoZWFkZXIyKTsKKwlvZmZsb2FkLT5lcGt0ID0zRCBodG9ubChlcGt0KTsKKwlvZmZsb2FkLT5l bmQgPTNEIGh0b25sKFBLVF9PRkZMT0FEX0VORF9PUCk7CisJKmNzdW1faHcgPTNEIHRydWU7CisK KwlyZXR1cm4gc2tiOworCitoZWxwOgorCXNrYl9jaGVja3N1bV9oZWxwKHNrYik7CisKKwlyZXR1 cm4gc2tiOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBiY21hc3BfcnhfZWRwa3RfZG1hX3Jx KHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZikKK3sKKwlyZXR1cm4gcnhfZWRwa3RfZG1hX3JxKGlu dGYsIFJYX0VEUEtUX0RNQV9WQUxJRCk7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9yeF9lZHBr dF9jZmdfd3Eoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBkbWFfYWRkcl90IGFkPQpkcikKK3sK KwlyeF9lZHBrdF9jZmdfd3EoaW50ZiwgYWRkciwgUlhfRURQS1RfUklOR19CVUZGRVJfUkVBRCk7 Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9yeF9lZHBrdF9kbWFfd3Eoc3RydWN0IGJjbWFzcF9p bnRmICppbnRmLCBkbWFfYWRkcl90IGFkPQpkcikKK3sKKwlyeF9lZHBrdF9kbWFfd3EoaW50Ziwg YWRkciwgUlhfRURQS1RfRE1BX1JFQUQpOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBiY21h c3BfdHhfc3BiX2RtYV9ycShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpCit7CisJcmV0dXJuIHR4 X3NwYl9kbWFfcnEoaW50ZiwgVFhfU1BCX0RNQV9SRUFEKTsKK30KKworc3RhdGljIHZvaWQgYmNt YXNwX3R4X3NwYl9kbWFfd3Eoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLCBkbWFfYWRkcl90IGFk ZHIpCit7CisJdHhfc3BiX2RtYV93cShpbnRmLCBhZGRyLCBUWF9TUEJfRE1BX1ZBTElEKTsKK30K Kworc3RhdGljIGNvbnN0IHN0cnVjdCBiY21hc3BfaW50Zl9vcHMgYmNtYXNwX2ludGZfb3BzID0z RCB7CisJLnJ4X2Rlc2NfcmVhZCA9M0QgYmNtYXNwX3J4X2VkcGt0X2RtYV9ycSwKKwkucnhfYnVm ZmVyX3dyaXRlID0zRCBiY21hc3BfcnhfZWRwa3RfY2ZnX3dxLAorCS5yeF9kZXNjX3dyaXRlID0z RCBiY21hc3BfcnhfZWRwa3RfZG1hX3dxLAorCS50eF9yZWFkID0zRCBiY21hc3BfdHhfc3BiX2Rt YV9ycSwKKwkudHhfd3JpdGUgPTNEIGJjbWFzcF90eF9zcGJfZG1hX3dxLAorfTsKKworc3RhdGlj IG5ldGRldl90eF90IGJjbWFzcF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJp dihkZXYpOworCXVuc2lnbmVkIGludCB0b3RhbF9ieXRlcywgc2l6ZTsKKwlpbnQgc3BiX2luZGV4 LCBucl9mcmFncywgaSwgajsKKwlzdHJ1Y3QgYmNtYXNwX3R4X2NiICp0eGNiOworCWRtYV9hZGRy X3QgbWFwcGluZywgdmFsaWQ7CisJc3RydWN0IGJjbWFzcF9kZXNjICpkZXNjOworCWJvb2wgY3N1 bV9odyA9M0QgZmFsc2U7CisJc3RydWN0IGRldmljZSAqa2RldjsKKwlza2JfZnJhZ190ICpmcmFn OworCisJa2RldiA9M0QgJmludGYtPnBhcmVudC0+cGRldi0+ZGV2OworCisJbnJfZnJhZ3MgPTNE IHNrYl9zaGluZm8oc2tiKS0+bnJfZnJhZ3M7CisKKwlpZiAodHhfc3BiX3JpbmdfZnVsbChpbnRm LCBucl9mcmFncyArIDEpKSB7CisJCW5ldGlmX3N0b3BfcXVldWUoZGV2KTsKKwkJbmV0ZGV2X2Vy cihkZXYsICJUeCBSaW5nIEZ1bGwhXG4iKTsKKwkJcmV0dXJuIE5FVERFVl9UWF9CVVNZOworCX0K KworCS8qIFNhdmUgc2tiIGxlbiBiZWZvcmUgYWRkaW5nIGNzdW0gb2ZmbG9hZCBoZWFkZXIgKi8K Kwl0b3RhbF9ieXRlcyA9M0Qgc2tiLT5sZW47CisJc2tiID0zRCBiY21hc3BfY3N1bV9vZmZsb2Fk KGRldiwgc2tiLCAmY3N1bV9odyk7CisJaWYgKCFza2IpCisJCXJldHVybiBORVRERVZfVFhfT0s7 CisKKwlzcGJfaW5kZXggPTNEIGludGYtPnR4X3NwYl9pbmRleDsKKwl2YWxpZCA9M0QgaW50Zi0+ dHhfc3BiX2RtYV92YWxpZDsKKwlmb3IgKGkgPTNEIDA7IGkgPD0zRCBucl9mcmFnczsgaSsrKSB7 CisJCWlmICghaSkgeworCQkJc2l6ZSA9M0Qgc2tiX2hlYWRsZW4oc2tiKTsKKwkJCWlmICghbnJf ZnJhZ3MgJiYgc2l6ZSA8IChFVEhfWkxFTiArIEVUSF9GQ1NfTEVOKSkgeworCQkJCWlmIChza2Jf cHV0X3BhZHRvKHNrYiwgRVRIX1pMRU4gKyBFVEhfRkNTX0xFTikpCisJCQkJCXJldHVybiBORVRE RVZfVFhfT0s7CisJCQkJc2l6ZSA9M0Qgc2tiLT5sZW47CisJCQl9CisJCQltYXBwaW5nID0zRCBk bWFfbWFwX3NpbmdsZShrZGV2LCBza2ItPmRhdGEsIHNpemUsCisJCQkJCQkgRE1BX1RPX0RFVklD RSk7CisJCX0gZWxzZSB7CisJCQlmcmFnID0zRCAmc2tiX3NoaW5mbyhza2IpLT5mcmFnc1tpIC0g MV07CisJCQlzaXplID0zRCBza2JfZnJhZ19zaXplKGZyYWcpOworCQkJbWFwcGluZyA9M0Qgc2ti X2ZyYWdfZG1hX21hcChrZGV2LCBmcmFnLCAwLCBzaXplLAorCQkJCQkJICAgRE1BX1RPX0RFVklD RSk7CisJCX0KKworCQlpZiAoZG1hX21hcHBpbmdfZXJyb3Ioa2RldiwgbWFwcGluZykpIHsKKwkJ CXNwYl9pbmRleCA9M0QgaW50Zi0+dHhfc3BiX2luZGV4OworCQkJZm9yIChqID0zRCAwOyBqIDwg aTsgaisrKSB7CisJCQkJYmNtYXNwX2NsZWFuX3R4Y2IoaW50Ziwgc3BiX2luZGV4KTsKKwkJCQlz cGJfaW5kZXggPTNEIGluY3JfcmluZyhzcGJfaW5kZXgsCisJCQkJCQkgICAgICBERVNDX1JJTkdf Q09VTlQpOworCQkJfQorCQkJLyogUmV3aW5kIHNvIHdlIGRvIG5vdCBoYXZlIGEgaG9sZSAqLwor CQkJc3BiX2luZGV4ID0zRCBpbnRmLT50eF9zcGJfaW5kZXg7CisJCQlyZXR1cm4gTkVUREVWX1RY X09LOworCQl9CisKKwkJdHhjYiA9M0QgJmludGYtPnR4X2Nic1tzcGJfaW5kZXhdOworCQlkZXNj ID0zRCAmaW50Zi0+dHhfc3BiX2NwdVtzcGJfaW5kZXhdOworCQltZW1zZXQoZGVzYywgMCwgc2l6 ZW9mKCpkZXNjKSk7CisJCXR4Y2ItPnNrYiA9M0Qgc2tiOworCQl0eGNiLT5ieXRlc19zZW50ID0z RCB0b3RhbF9ieXRlczsKKwkJZG1hX3VubWFwX2FkZHJfc2V0KHR4Y2IsIGRtYV9hZGRyLCBtYXBw aW5nKTsKKwkJZG1hX3VubWFwX2xlbl9zZXQodHhjYiwgZG1hX2xlbiwgc2l6ZSk7CisJCWlmICgh aSkgeworCQkJZGVzYy0+ZmxhZ3MgfD0zRCBERVNDX1NPRjsKKwkJCWlmIChjc3VtX2h3KQorCQkJ CWRlc2MtPmZsYWdzIHw9M0QgREVTQ19FUEtUX0NNRDsKKwkJfQorCisJCWlmIChpID0zRD0zRCBu cl9mcmFncykgeworCQkJZGVzYy0+ZmxhZ3MgfD0zRCBERVNDX0VPRjsKKwkJCXR4Y2ItPmxhc3Qg PTNEIHRydWU7CisJCX0KKworCQlkZXNjLT5idWYgPTNEIG1hcHBpbmc7CisJCWRlc2MtPnNpemUg PTNEIHNpemU7CisJCWRlc2MtPmZsYWdzIHw9M0QgREVTQ19JTlRfRU47CisKKwkJbmV0aWZfZGJn KGludGYsIHR4X3F1ZXVlZCwgZGV2LAorCQkJICAiJXMgZG1hX2J1Zj0zRCVwYWQgZG1hX2xlbj0z RDB4JXggZmxhZ3M9M0QweCV4IGluZGV4PTNEMHgleFxuIiwKKwkJCSAgX19mdW5jX18sICZtYXBw aW5nLCBkZXNjLT5zaXplLCBkZXNjLT5mbGFncywKKwkJCSAgc3BiX2luZGV4KTsKKworCQlzcGJf aW5kZXggPTNEIGluY3JfcmluZyhzcGJfaW5kZXgsIERFU0NfUklOR19DT1VOVCk7CisJCXZhbGlk ID0zRCBpbmNyX2xhc3RfYnl0ZSh2YWxpZCwgaW50Zi0+dHhfc3BiX2RtYV9hZGRyLAorCQkJCSAg ICAgICBERVNDX1JJTkdfQ09VTlQpOworCX0KKworCS8qIEVuc3VyZSBhbGwgZGVzY3JpcHRvcnMg aGF2ZSBiZWVuIHdyaXR0ZW4gdG8gRFJBTSBmb3IgdGhlCisJICogaGFyZHdhcmUgdG8gc2VlIHVw LXRvLWRhdGUgY29udGVudHMuCisJICovCisJd21iKCk7CisKKwlpbnRmLT50eF9zcGJfaW5kZXgg PTNEIHNwYl9pbmRleDsKKwlpbnRmLT50eF9zcGJfZG1hX3ZhbGlkID0zRCB2YWxpZDsKKwliY21h c3BfaW50Zl90eF93cml0ZShpbnRmLCBpbnRmLT50eF9zcGJfZG1hX3ZhbGlkKTsKKworCWlmICh0 eF9zcGJfcmluZ19mdWxsKGludGYsIE1BWF9TS0JfRlJBR1MgKyAxKSkKKwkJbmV0aWZfc3RvcF9x dWV1ZShkZXYpOworCisJcmV0dXJuIE5FVERFVl9UWF9PSzsKK30KKworc3RhdGljIHZvaWQgYmNt YXNwX25ldGlmX3N0YXJ0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGJjbWFz cF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOworCisJYmNtYXNwX3NldF9yeF9tb2Rl KGRldik7CisJbmFwaV9lbmFibGUoJmludGYtPnR4X25hcGkpOworCW5hcGlfZW5hYmxlKCZpbnRm LT5yeF9uYXBpKTsKKworCWJjbWFzcF9lbmFibGVfcnhfaXJxKGludGYsIDEpOworCWJjbWFzcF9l bmFibGVfdHhfaXJxKGludGYsIDEpOworCisJcGh5X3N0YXJ0KGRldi0+cGh5ZGV2KTsKK30KKwor c3RhdGljIHZvaWQgdW1hY19yZXNldChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpCit7CisJdW1h Y193bChpbnRmLCAweDAsIFVNQ19DTUQpOworCXVtYWNfd2woaW50ZiwgVU1DX0NNRF9TV19SRVNF VCwgVU1DX0NNRCk7CisJdXNsZWVwX3JhbmdlKDEwLCAxMDApOworCXVtYWNfd2woaW50ZiwgMHgw LCBVTUNfQ01EKTsKK30KKworc3RhdGljIHZvaWQgdW1hY19zZXRfaHdfYWRkcihzdHJ1Y3QgYmNt YXNwX2ludGYgKmludGYsCisJCQkgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZHIpCit7CisJ dTMyIG1hYzAgPTNEIChhZGRyWzBdIDw8IDI0KSB8IChhZGRyWzFdIDw8IDE2KSB8IChhZGRyWzJd IDw8IDgpIHwKKwkJICAgIGFkZHJbM107CisJdTMyIG1hYzEgPTNEIChhZGRyWzRdIDw8IDgpIHwg YWRkcls1XTsKKworCXVtYWNfd2woaW50ZiwgbWFjMCwgVU1DX01BQzApOworCXVtYWNfd2woaW50 ZiwgbWFjMSwgVU1DX01BQzEpOworfQorCitzdGF0aWMgdm9pZCB1bWFjX2VuYWJsZV9zZXQoc3Ry dWN0IGJjbWFzcF9pbnRmICppbnRmLCB1MzIgbWFzaywKKwkJCSAgICB1bnNpZ25lZCBpbnQgZW5h YmxlKQoreworCXUzMiByZWc7CisKKwlyZWcgPTNEIHVtYWNfcmwoaW50ZiwgVU1DX0NNRCk7CisJ aWYgKGVuYWJsZSkKKwkJcmVnIHw9M0QgbWFzazsKKwllbHNlCisJCXJlZyAmPTNEIH5tYXNrOwor CXVtYWNfd2woaW50ZiwgcmVnLCBVTUNfQ01EKTsKKworCS8qIFVuaU1BQyBzdG9wcyBvbiBhIHBh Y2tldCBib3VuZGFyeSwgd2FpdCBmb3IgYSBmdWxsLXNpemVkIHBhY2tldAorCSAqIHRvIGJlIHBy b2Nlc3NlZCAoMSBtc2VjKS4KKwkgKi8KKwlpZiAoZW5hYmxlID0zRD0zRCAwKQorCQl1c2xlZXBf cmFuZ2UoMTAwMCwgMjAwMCk7Cit9CisKK3N0YXRpYyB2b2lkIHVtYWNfaW5pdChzdHJ1Y3QgYmNt YXNwX2ludGYgKmludGYpCit7CisJdW1hY193bChpbnRmLCAweDgwMCwgVU1DX0ZSTV9MRU4pOwor CXVtYWNfd2woaW50ZiwgMHhmZmZmLCBVTUNfUEFVU0VfQ05UUkwpOworCXVtYWNfd2woaW50Ziwg MHg4MDAsIFVNQ19SWF9NQVhfUEtUX1NaKTsKKwl1bWFjX2VuYWJsZV9zZXQoaW50ZiwgVU1DX0NN RF9QUk9NSVNDLCAxKTsKK30KKworc3RhdGljIGludCBiY21hc3BfdHhfcG9sbChzdHJ1Y3QgbmFw aV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRm ID0zRAorCQljb250YWluZXJfb2YobmFwaSwgc3RydWN0IGJjbWFzcF9pbnRmLCB0eF9uYXBpKTsK KwlzdHJ1Y3QgYmNtYXNwX2ludGZfc3RhdHM2NCAqc3RhdHMgPTNEICZpbnRmLT5zdGF0czY0Owor CXN0cnVjdCBkZXZpY2UgKmtkZXYgPTNEICZpbnRmLT5wYXJlbnQtPnBkZXYtPmRldjsKKwl1bnNp Z25lZCBsb25nIHJlYWQsIHJlbGVhc2VkID0zRCAwOworCXN0cnVjdCBiY21hc3BfdHhfY2IgKnR4 Y2I7CisJc3RydWN0IGJjbWFzcF9kZXNjICpkZXNjOworCWRtYV9hZGRyX3QgbWFwcGluZzsKKwor CXJlYWQgPTNEIGJjbWFzcF9pbnRmX3R4X3JlYWQoaW50Zik7CisJd2hpbGUgKGludGYtPnR4X3Nw Yl9kbWFfcmVhZCAhPTNEIHJlYWQpIHsKKwkJdHhjYiA9M0QgJmludGYtPnR4X2Nic1tpbnRmLT50 eF9zcGJfY2xlYW5faW5kZXhdOworCQltYXBwaW5nID0zRCBkbWFfdW5tYXBfYWRkcih0eGNiLCBk bWFfYWRkcik7CisKKwkJZG1hX3VubWFwX3NpbmdsZShrZGV2LCBtYXBwaW5nLAorCQkJCSBkbWFf dW5tYXBfbGVuKHR4Y2IsIGRtYV9sZW4pLAorCQkJCSBETUFfVE9fREVWSUNFKTsKKworCQlpZiAo dHhjYi0+bGFzdCkgeworCQkJZGV2X2NvbnN1bWVfc2tiX2FueSh0eGNiLT5za2IpOworCisJCQl1 NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZzdGF0cy0+c3luY3ApOworCQkJdTY0X3N0YXRzX2luYygm c3RhdHMtPnR4X3BhY2tldHMpOworCQkJdTY0X3N0YXRzX2FkZCgmc3RhdHMtPnR4X2J5dGVzLCB0 eGNiLT5ieXRlc19zZW50KTsKKwkJCXU2NF9zdGF0c191cGRhdGVfZW5kKCZzdGF0cy0+c3luY3Ap OworCQl9CisKKwkJZGVzYyA9M0QgJmludGYtPnR4X3NwYl9jcHVbaW50Zi0+dHhfc3BiX2NsZWFu X2luZGV4XTsKKworCQluZXRpZl9kYmcoaW50ZiwgdHhfZG9uZSwgaW50Zi0+bmRldiwKKwkJCSAg IiVzIGRtYV9idWY9M0QlcGFkIGRtYV9sZW49M0QweCV4IGZsYWdzPTNEMHgleCBjX2luZGV4PTNE MHgleFxuIiwKKwkJCSAgX19mdW5jX18sICZtYXBwaW5nLCBkZXNjLT5zaXplLCBkZXNjLT5mbGFn cywKKwkJCSAgaW50Zi0+dHhfc3BiX2NsZWFuX2luZGV4KTsKKworCQliY21hc3BfY2xlYW5fdHhj YihpbnRmLCBpbnRmLT50eF9zcGJfY2xlYW5faW5kZXgpOworCQlyZWxlYXNlZCsrOworCisJCWlu dGYtPnR4X3NwYl9jbGVhbl9pbmRleCA9M0QgaW5jcl9yaW5nKGludGYtPnR4X3NwYl9jbGVhbl9p bmRleCwKKwkJCQkJCSAgICAgREVTQ19SSU5HX0NPVU5UKTsKKwkJaW50Zi0+dHhfc3BiX2RtYV9y ZWFkID0zRCBpbmNyX2ZpcnN0X2J5dGUoaW50Zi0+dHhfc3BiX2RtYV9yZWFkLAorCQkJCQkJCWlu dGYtPnR4X3NwYl9kbWFfYWRkciwKKwkJCQkJCQlERVNDX1JJTkdfQ09VTlQpOworCX0KKworCS8q IEVuc3VyZSBhbGwgZGVzY3JpcHRvcnMgaGF2ZSBiZWVuIHdyaXR0ZW4gdG8gRFJBTSBmb3IgdGhl IGhhcmR3YXJlCisJICogdG8gc2VlIHVwZGF0ZWQgY29udGVudHMuCisJICovCisJd21iKCk7CisK KwluYXBpX2NvbXBsZXRlKCZpbnRmLT50eF9uYXBpKTsKKworCWJjbWFzcF9lbmFibGVfdHhfaXJx KGludGYsIDEpOworCisJaWYgKHJlbGVhc2VkKQorCQluZXRpZl93YWtlX3F1ZXVlKGludGYtPm5k ZXYpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYmNtYXNwX3J4X3BvbGwoc3RydWN0 IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KQoreworCXN0cnVjdCBiY21hc3BfaW50ZiAq aW50ZiA9M0QKKwkJY29udGFpbmVyX29mKG5hcGksIHN0cnVjdCBiY21hc3BfaW50ZiwgcnhfbmFw aSk7CisJc3RydWN0IGJjbWFzcF9pbnRmX3N0YXRzNjQgKnN0YXRzID0zRCAmaW50Zi0+c3RhdHM2 NDsKKwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0zRCAmaW50Zi0+cGFyZW50LT5wZGV2LT5kZXY7CisJ dW5zaWduZWQgbG9uZyBwcm9jZXNzZWQgPTNEIDA7CisJc3RydWN0IGJjbWFzcF9kZXNjICpkZXNj OworCXN0cnVjdCBza19idWZmICpza2I7CisJZG1hX2FkZHJfdCB2YWxpZDsKKwl2b2lkICpkYXRh OworCXU2NCBmbGFnczsKKwl1MzIgbGVuOworCisJdmFsaWQgPTNEIGJjbWFzcF9pbnRmX3J4X2Rl c2NfcmVhZChpbnRmKSArIDE7CisJaWYgKHZhbGlkID0zRD0zRCBpbnRmLT5yeF9lZHBrdF9kbWFf YWRkciArIERFU0NfUklOR19TSVpFKQorCQl2YWxpZCA9M0QgaW50Zi0+cnhfZWRwa3RfZG1hX2Fk ZHI7CisKKwl3aGlsZSAoKHByb2Nlc3NlZCA8IGJ1ZGdldCkgJiYgKHZhbGlkICE9M0QgaW50Zi0+ cnhfZWRwa3RfZG1hX3JlYWQpKSB7CisJCWRlc2MgPTNEICZpbnRmLT5yeF9lZHBrdF9jcHVbaW50 Zi0+cnhfZWRwa3RfaW5kZXhdOworCisJCS8qIEVuc3VyZSB0aGF0IGRlc2NyaXB0b3IgaGFzIGJl ZW4gZnVsbHkgd3JpdHRlbiB0byBEUkFNIGJ5CisJCSAqIGhhcmR3YXJlIGJlZm9yZSByZWFkaW5n IGJ5IHRoZSBDUFUKKwkJICovCisJCXJtYigpOworCisJCS8qIENhbGN1bGF0ZSB2aXJ0IGFkZHIg Ynkgb2Zmc2V0dGluZyBmcm9tIHBoeXNpY2FsIGFkZHIgKi8KKwkJZGF0YSA9M0QgaW50Zi0+cnhf cmluZ19jcHUgKworCQkJKERFU0NfQUREUihkZXNjLT5idWYpIC0gaW50Zi0+cnhfcmluZ19kbWEp OworCisJCWZsYWdzID0zRCBERVNDX0ZMQUdTKGRlc2MtPmJ1Zik7CisJCWlmICh1bmxpa2VseShm bGFncyAmIChERVNDX0NSQ19FUlIgfCBERVNDX1JYX1NZTV9FUlIpKSkgeworCQkJbmV0aWZfZXJy KGludGYsIHJ4X3N0YXR1cywgaW50Zi0+bmRldiwgImZsYWdzPTNEMHglbGx4XG4iLAorCQkJCSAg ZmxhZ3MpOworCisJCQl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZzdGF0cy0+c3luY3ApOworCQkJ aWYgKGZsYWdzICYgREVTQ19DUkNfRVJSKQorCQkJCXU2NF9zdGF0c19pbmMoJnN0YXRzLT5yeF9j cmNfZXJycyk7CisJCQlpZiAoZmxhZ3MgJiBERVNDX1JYX1NZTV9FUlIpCisJCQkJdTY0X3N0YXRz X2luYygmc3RhdHMtPnJ4X3N5bV9lcnJzKTsKKwkJCXU2NF9zdGF0c19pbmMoJnN0YXRzLT5yeF9k cm9wcGVkKTsKKwkJCXU2NF9zdGF0c191cGRhdGVfZW5kKCZzdGF0cy0+c3luY3ApOworCisJCQln b3RvIG5leHQ7CisJCX0KKworCQlkbWFfc3luY19zaW5nbGVfZm9yX2NwdShrZGV2LCBERVNDX0FE RFIoZGVzYy0+YnVmKSwgZGVzYy0+c2l6ZSwKKwkJCQkJRE1BX0ZST01fREVWSUNFKTsKKworCQls ZW4gPTNEIGRlc2MtPnNpemU7CisKKwkJc2tiID0zRCBfX25ldGRldl9hbGxvY19za2IoaW50Zi0+ bmRldiwgbGVuLAorCQkJCQkgR0ZQX0FUT01JQyB8IF9fR0ZQX05PV0FSTik7CisJCWlmICghc2ti KSB7CisJCQl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZzdGF0cy0+c3luY3ApOworCQkJdTY0X3N0 YXRzX2luYygmc3RhdHMtPnJ4X2Vycm9ycyk7CisJCQl1NjRfc3RhdHNfdXBkYXRlX2VuZCgmc3Rh dHMtPnN5bmNwKTsKKworCQkJbmV0aWZfd2FybihpbnRmLCByeF9lcnIsIGludGYtPm5kZXYsCisJ CQkJICAgIlNLQiBhbGxvYyBmYWlsZWRcbiIpOworCQkJZ290byBuZXh0OworCQl9CisKKwkJc2ti X3B1dChza2IsIGxlbik7CisJCW1lbWNweShza2ItPmRhdGEsIGRhdGEsIGxlbik7CisKKwkJc2ti X3B1bGwoc2tiLCAyKTsKKwkJbGVuIC09M0QgMjsKKwkJaWYgKGxpa2VseShpbnRmLT5jcmNfZndk KSkgeworCQkJc2tiX3RyaW0oc2tiLCBsZW4gLSBFVEhfRkNTX0xFTik7CisJCQlsZW4gLT0zRCBF VEhfRkNTX0xFTjsKKwkJfQorCisJCWlmICgoaW50Zi0+bmRldi0+ZmVhdHVyZXMgJiBORVRJRl9G X1JYQ1NVTSkgJiYKKwkJICAgIChkZXNjLT5idWYgJiBERVNDX0NIS1NVTSkpCisJCQlza2ItPmlw X3N1bW1lZCA9M0QgQ0hFQ0tTVU1fVU5ORUNFU1NBUlk7CisKKwkJc2tiLT5wcm90b2NvbCA9M0Qg ZXRoX3R5cGVfdHJhbnMoc2tiLCBpbnRmLT5uZGV2KTsKKworCQluYXBpX2dyb19yZWNlaXZlKG5h cGksIHNrYik7CisKKwkJdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbigmc3RhdHMtPnN5bmNwKTsKKwkJ dTY0X3N0YXRzX2luYygmc3RhdHMtPnJ4X3BhY2tldHMpOworCQl1NjRfc3RhdHNfYWRkKCZzdGF0 cy0+cnhfYnl0ZXMsIGxlbik7CisJCXU2NF9zdGF0c191cGRhdGVfZW5kKCZzdGF0cy0+c3luY3Ap OworCituZXh0OgorCQliY21hc3BfaW50Zl9yeF9idWZmZXJfd3JpdGUoaW50ZiwgKERFU0NfQURE UihkZXNjLT5idWYpICsKKwkJCQkJICAgIGRlc2MtPnNpemUpKTsKKworCQlwcm9jZXNzZWQrKzsK KwkJaW50Zi0+cnhfZWRwa3RfZG1hX3JlYWQgPTNECisJCQlpbmNyX2ZpcnN0X2J5dGUoaW50Zi0+ cnhfZWRwa3RfZG1hX3JlYWQsCisJCQkJCWludGYtPnJ4X2VkcGt0X2RtYV9hZGRyLAorCQkJCQlE RVNDX1JJTkdfQ09VTlQpOworCQlpbnRmLT5yeF9lZHBrdF9pbmRleCA9M0QgaW5jcl9yaW5nKGlu dGYtPnJ4X2VkcGt0X2luZGV4LAorCQkJCQkJIERFU0NfUklOR19DT1VOVCk7CisJfQorCisJYmNt YXNwX2ludGZfcnhfZGVzY193cml0ZShpbnRmLCBpbnRmLT5yeF9lZHBrdF9kbWFfcmVhZCk7CisK KwlpZiAocHJvY2Vzc2VkIDwgYnVkZ2V0KSB7CisJCW5hcGlfY29tcGxldGVfZG9uZSgmaW50Zi0+ cnhfbmFwaSwgcHJvY2Vzc2VkKTsKKwkJYmNtYXNwX2VuYWJsZV9yeF9pcnEoaW50ZiwgMSk7CisJ fQorCisJcmV0dXJuIHByb2Nlc3NlZDsKK30KKworc3RhdGljIHZvaWQgYmNtYXNwX2Fkal9saW5r KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0z RCBuZXRkZXZfcHJpdihkZXYpOworCXN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPTNEIGRldi0+ cGh5ZGV2OworCXUzMiBjbWRfYml0cyA9M0QgMCwgcmVnOworCWludCBjaGFuZ2VkID0zRCAwOwor CisJaWYgKGludGYtPm9sZF9saW5rICE9M0QgcGh5ZGV2LT5saW5rKSB7CisJCWNoYW5nZWQgPTNE IDE7CisJCWludGYtPm9sZF9saW5rID0zRCBwaHlkZXYtPmxpbms7CisJfQorCisJaWYgKGludGYt Pm9sZF9kdXBsZXggIT0zRCBwaHlkZXYtPmR1cGxleCkgeworCQljaGFuZ2VkID0zRCAxOworCQlp bnRmLT5vbGRfZHVwbGV4ID0zRCBwaHlkZXYtPmR1cGxleDsKKwl9CisKKwlzd2l0Y2ggKHBoeWRl di0+c3BlZWQpIHsKKwljYXNlIFNQRUVEXzI1MDA6CisJCWNtZF9iaXRzID0zRCBVTUNfQ01EX1NQ RUVEXzI1MDA7CisJCWJyZWFrOworCWNhc2UgU1BFRURfMTAwMDoKKwkJY21kX2JpdHMgPTNEIFVN Q19DTURfU1BFRURfMTAwMDsKKwkJYnJlYWs7CisJY2FzZSBTUEVFRF8xMDA6CisJCWNtZF9iaXRz ID0zRCBVTUNfQ01EX1NQRUVEXzEwMDsKKwkJYnJlYWs7CisJY2FzZSBTUEVFRF8xMDoKKwkJY21k X2JpdHMgPTNEIFVNQ19DTURfU1BFRURfMTA7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFr OworCX0KKwljbWRfYml0cyA8PD0zRCBVTUNfQ01EX1NQRUVEX1NISUZUOworCisJaWYgKHBoeWRl di0+ZHVwbGV4ID0zRD0zRCBEVVBMRVhfSEFMRikKKwkJY21kX2JpdHMgfD0zRCBVTUNfQ01EX0hE X0VOOworCisJaWYgKGludGYtPm9sZF9wYXVzZSAhPTNEIHBoeWRldi0+cGF1c2UpIHsKKwkJY2hh bmdlZCA9M0QgMTsKKwkJaW50Zi0+b2xkX3BhdXNlID0zRCBwaHlkZXYtPnBhdXNlOworCX0KKwor CWlmICghcGh5ZGV2LT5wYXVzZSkKKwkJY21kX2JpdHMgfD0zRCBVTUNfQ01EX1JYX1BBVVNFX0lH Tk9SRSB8IFVNQ19DTURfVFhfUEFVU0VfSUdOT1JFOworCisJaWYgKCFjaGFuZ2VkKQorCQlyZXR1 cm47CisKKwlpZiAocGh5ZGV2LT5saW5rKSB7CisJCXJlZyA9M0QgdW1hY19ybChpbnRmLCBVTUNf Q01EKTsKKwkJcmVnICY9M0QgfigoVU1DX0NNRF9TUEVFRF9NQVNLIDw8IFVNQ19DTURfU1BFRURf U0hJRlQpIHwKKwkJCVVNQ19DTURfSERfRU4gfCBVTUNfQ01EX1JYX1BBVVNFX0lHTk9SRSB8CisJ CQlVTUNfQ01EX1RYX1BBVVNFX0lHTk9SRSk7CisJCXJlZyB8PTNEIGNtZF9iaXRzOworCQl1bWFj X3dsKGludGYsIHJlZywgVU1DX0NNRCk7CisJfQorCisJcmVnID0zRCByZ21paV9ybChpbnRmLCBS R01JSV9PT0JfQ05UUkwpOworCWlmIChwaHlkZXYtPmxpbmspCisJCXJlZyB8PTNEIFJHTUlJX0xJ Tks7CisJZWxzZQorCQlyZWcgJj0zRCB+UkdNSUlfTElOSzsKKwlyZ21paV93bChpbnRmLCByZWcs IFJHTUlJX09PQl9DTlRSTCk7CisKKwlpZiAoY2hhbmdlZCkKKwkJcGh5X3ByaW50X3N0YXR1cyhw aHlkZXYpOworfQorCitzdGF0aWMgaW50IGJjbWFzcF9pbml0X3J4KHN0cnVjdCBiY21hc3BfaW50 ZiAqaW50ZikKK3sKKwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0zRCAmaW50Zi0+cGFyZW50LT5wZGV2 LT5kZXY7CisJc3RydWN0IHBhZ2UgKmJ1ZmZlcl9wZzsKKwlkbWFfYWRkcl90IGRtYTsKKwl2b2lk ICpwOworCXUzMiByZWc7CisJaW50IHJldDsKKworCWludGYtPnJ4X2J1Zl9vcmRlciA9M0QgZ2V0 X29yZGVyKFJJTkdfQlVGRkVSX1NJWkUpOworCWJ1ZmZlcl9wZyA9M0QgYWxsb2NfcGFnZXMoR0ZQ X0tFUk5FTCwgaW50Zi0+cnhfYnVmX29yZGVyKTsKKworCWRtYSA9M0QgZG1hX21hcF9wYWdlKGtk ZXYsIGJ1ZmZlcl9wZywgMCwgUklOR19CVUZGRVJfU0laRSwKKwkJCSAgIERNQV9GUk9NX0RFVklD RSk7CisJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKGtkZXYsIGRtYSkpIHsKKwkJX19mcmVlX3BhZ2Vz KGJ1ZmZlcl9wZywgaW50Zi0+cnhfYnVmX29yZGVyKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQor CWludGYtPnJ4X3JpbmdfY3B1ID0zRCBwYWdlX3RvX3ZpcnQoYnVmZmVyX3BnKTsKKwlpbnRmLT5y eF9yaW5nX2RtYSA9M0QgZG1hOworCWludGYtPnJ4X3JpbmdfZG1hX3ZhbGlkID0zRCBpbnRmLT5y eF9yaW5nX2RtYSArIFJJTkdfQlVGRkVSX1NJWkUgLSAxOworCisJcCA9M0QgZG1hX2FsbG9jX2Nv aGVyZW50KGtkZXYsIERFU0NfUklOR19TSVpFLCAmaW50Zi0+cnhfZWRwa3RfZG1hX2FkZHIsCisJ CQkgICAgICAgR0ZQX0tFUk5FTCk7CisJaWYgKCFwKSB7CisJCXJldCA9M0QgLUVOT01FTTsKKwkJ Z290byBmcmVlX3J4X3Jpbmc7CisJfQorCWludGYtPnJ4X2VkcGt0X2NwdSA9M0QgcDsKKworCW5l dGlmX25hcGlfYWRkKGludGYtPm5kZXYsICZpbnRmLT5yeF9uYXBpLCBiY21hc3BfcnhfcG9sbCk7 CisKKwlpbnRmLT5yeF9lZHBrdF9kbWFfcmVhZCA9M0QgaW50Zi0+cnhfZWRwa3RfZG1hX2FkZHI7 CisJaW50Zi0+cnhfZWRwa3RfaW5kZXggPTNEIDA7CisKKwkvKiBNYWtlIHN1cmUgY2hhbm5lbHMg YXJlIGRpc2FibGVkICovCisJcnhfZWRwa3RfY2ZnX3dsKGludGYsIDB4MCwgUlhfRURQS1RfQ0ZH X0VOQUJMRSk7CisKKwkvKiBSeCBTUEIgKi8KKwlyeF9lZHBrdF9jZmdfd3EoaW50ZiwgaW50Zi0+ cnhfcmluZ19kbWEsIFJYX0VEUEtUX1JJTkdfQlVGRkVSX1JFQUQpOworCXJ4X2VkcGt0X2NmZ193 cShpbnRmLCBpbnRmLT5yeF9yaW5nX2RtYSwgUlhfRURQS1RfUklOR19CVUZGRVJfV1JJVEUpOwor CXJ4X2VkcGt0X2NmZ193cShpbnRmLCBpbnRmLT5yeF9yaW5nX2RtYSwgUlhfRURQS1RfUklOR19C VUZGRVJfQkFTRSk7CisJcnhfZWRwa3RfY2ZnX3dxKGludGYsIGludGYtPnJ4X3JpbmdfZG1hX3Zh bGlkLAorCQkJUlhfRURQS1RfUklOR19CVUZGRVJfRU5EKTsKKwlyeF9lZHBrdF9jZmdfd3EoaW50 ZiwgaW50Zi0+cnhfcmluZ19kbWFfdmFsaWQsCisJCQlSWF9FRFBLVF9SSU5HX0JVRkZFUl9WQUxJ RCk7CisKKwkvKiBFRFBLVCAqLworCXJ4X2VkcGt0X2NmZ193bChpbnRmLCAoUlhfRURQS1RfQ0ZH X0NGRzBfUkJVRl80SyA8PAorCQkJUlhfRURQS1RfQ0ZHX0NGRzBfREJVRl9TSElGVCkgfAorCQkg ICAgICAgKFJYX0VEUEtUX0NGR19DRkcwXzY0X0FMTiA8PAorCQkJUlhfRURQS1RfQ0ZHX0NGRzBf QkFMTl9TSElGVCkgfAorCQkgICAgICAgKFJYX0VEUEtUX0NGR19DRkcwX0VGUk1fU1RVRiksCisJ CQlSWF9FRFBLVF9DRkdfQ0ZHMCk7CisJcnhfZWRwa3RfZG1hX3dxKGludGYsIGludGYtPnJ4X2Vk cGt0X2RtYV9hZGRyLCBSWF9FRFBLVF9ETUFfV1JJVEUpOworCXJ4X2VkcGt0X2RtYV93cShpbnRm LCBpbnRmLT5yeF9lZHBrdF9kbWFfYWRkciwgUlhfRURQS1RfRE1BX1JFQUQpOworCXJ4X2VkcGt0 X2RtYV93cShpbnRmLCBpbnRmLT5yeF9lZHBrdF9kbWFfYWRkciwgUlhfRURQS1RfRE1BX0JBU0Up OworCXJ4X2VkcGt0X2RtYV93cShpbnRmLCBpbnRmLT5yeF9lZHBrdF9kbWFfYWRkciArIChERVND X1JJTkdfU0laRSAtIDEpLAorCQkJUlhfRURQS1RfRE1BX0VORCk7CisJcnhfZWRwa3RfZG1hX3dx KGludGYsIGludGYtPnJ4X2VkcGt0X2RtYV9hZGRyICsgKERFU0NfUklOR19TSVpFIC0gMSksCisJ CQlSWF9FRFBLVF9ETUFfVkFMSUQpOworCisJcmVnID0zRCBVTUFDMkZCX0NGR19ERUZBVUxUX0VO IHwKKwkgICAgICAoKGludGYtPmNoYW5uZWwgKyAxMSkgPDwgVU1BQzJGQl9DRkdfQ0hJRF9TSElG VCk7CisJcmVnIHw9M0QgKDB4ZCA8PCBVTUFDMkZCX0NGR19PS19TRU5EX1NISUZUKTsKKwl1bWFj MmZiX3dsKGludGYsIHJlZywgVU1BQzJGQl9DRkcpOworCisJcmV0dXJuIDA7CisKK2ZyZWVfcnhf cmluZzoKKwlkbWFfdW5tYXBfcGFnZShrZGV2LCBpbnRmLT5yeF9yaW5nX2RtYSwgUklOR19CVUZG RVJfU0laRSwKKwkJICAgICAgIERNQV9GUk9NX0RFVklDRSk7CisJX19mcmVlX3BhZ2VzKHZpcnRf dG9fcGFnZShpbnRmLT5yeF9yaW5nX2NwdSksIGludGYtPnJ4X2J1Zl9vcmRlcik7CisKKwlyZXR1 cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBiY21hc3BfcmVjbGFpbV9mcmVlX2FsbF9yeChzdHJ1 Y3QgYmNtYXNwX2ludGYgKmludGYpCit7CisJc3RydWN0IGRldmljZSAqa2RldiA9M0QgJmludGYt PnBhcmVudC0+cGRldi0+ZGV2OworCisJZG1hX2ZyZWVfY29oZXJlbnQoa2RldiwgREVTQ19SSU5H X1NJWkUsIGludGYtPnJ4X2VkcGt0X2NwdSwKKwkJCSAgaW50Zi0+cnhfZWRwa3RfZG1hX2FkZHIp OworCWRtYV91bm1hcF9wYWdlKGtkZXYsIGludGYtPnJ4X3JpbmdfZG1hLCBSSU5HX0JVRkZFUl9T SVpFLAorCQkgICAgICAgRE1BX0ZST01fREVWSUNFKTsKKwlfX2ZyZWVfcGFnZXModmlydF90b19w YWdlKGludGYtPnJ4X3JpbmdfY3B1KSwgaW50Zi0+cnhfYnVmX29yZGVyKTsKK30KKworc3RhdGlj IGludCBiY21hc3BfaW5pdF90eChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpCit7CisJc3RydWN0 IGRldmljZSAqa2RldiA9M0QgJmludGYtPnBhcmVudC0+cGRldi0+ZGV2OworCXZvaWQgKnA7CisJ aW50IHJldDsKKworCXAgPTNEIGRtYV9hbGxvY19jb2hlcmVudChrZGV2LCBERVNDX1JJTkdfU0la RSwgJmludGYtPnR4X3NwYl9kbWFfYWRkciwKKwkJCSAgICAgICBHRlBfS0VSTkVMKTsKKwlpZiAo IXApCisJCXJldHVybiAtRU5PTUVNOworCisJaW50Zi0+dHhfc3BiX2NwdSA9M0QgcDsKKwlpbnRm LT50eF9zcGJfZG1hX3ZhbGlkID0zRCBpbnRmLT50eF9zcGJfZG1hX2FkZHIgKyBERVNDX1JJTkdf U0laRSAtIDE7CisJaW50Zi0+dHhfc3BiX2RtYV9yZWFkID0zRCBpbnRmLT50eF9zcGJfZG1hX2Fk ZHI7CisKKwlpbnRmLT50eF9jYnMgPTNEIGtjYWxsb2MoREVTQ19SSU5HX0NPVU5ULCBzaXplb2Yo c3RydWN0IGJjbWFzcF90eF9jYiksCisJCQkgICAgICAgR0ZQX0tFUk5FTCk7CisJaWYgKCFpbnRm LT50eF9jYnMpIHsKKwkJcmV0ID0zRCAtRU5PTUVNOworCQlnb3RvIGZyZWVfdHhfc3BiOworCX0K KworCWludGYtPnR4X3NwYl9pbmRleCA9M0QgMDsKKwlpbnRmLT50eF9zcGJfY2xlYW5faW5kZXgg PTNEIDA7CisKKwluZXRpZl9uYXBpX2FkZF90eChpbnRmLT5uZGV2LCAmaW50Zi0+dHhfbmFwaSwg YmNtYXNwX3R4X3BvbGwpOworCisJLyogTWFrZSBzdXJlIGNoYW5uZWxzIGFyZSBkaXNhYmxlZCAq LworCXR4X3NwYl9jdHJsX3dsKGludGYsIDB4MCwgVFhfU1BCX0NUUkxfRU5BQkxFKTsKKwl0eF9l cGt0X2NvcmVfd2woaW50ZiwgMHgwLCBUWF9FUEtUX0NfQ0ZHX01JU0MpOworCisJLyogVHggU1BC ICovCisJdHhfc3BiX2N0cmxfd2woaW50ZiwgKChpbnRmLT5jaGFubmVsICsgOCkgPDwgVFhfU1BC X0NUUkxfWEZfQklEX1NISUZUKSwKKwkJICAgICAgIFRYX1NQQl9DVFJMX1hGX0NUUkwyKTsKKwl0 eF9wYXVzZV9jdHJsX3dsKGludGYsICgxIDw8IChpbnRmLT5jaGFubmVsICsgOCkpLCBUWF9QQVVT RV9NQVBfVkVDVE9SKTsKKwl0eF9zcGJfdG9wX3dsKGludGYsIDB4MWUsIFRYX1NQQl9UT1BfQkxL T1VUKTsKKwl0eF9zcGJfdG9wX3dsKGludGYsIDB4MCwgVFhfU1BCX1RPUF9TUFJFX0JXX0NUUkwp OworCisJdHhfc3BiX2RtYV93cShpbnRmLCBpbnRmLT50eF9zcGJfZG1hX2FkZHIsIFRYX1NQQl9E TUFfUkVBRCk7CisJdHhfc3BiX2RtYV93cShpbnRmLCBpbnRmLT50eF9zcGJfZG1hX2FkZHIsIFRY X1NQQl9ETUFfQkFTRSk7CisJdHhfc3BiX2RtYV93cShpbnRmLCBpbnRmLT50eF9zcGJfZG1hX3Zh bGlkLCBUWF9TUEJfRE1BX0VORCk7CisJdHhfc3BiX2RtYV93cShpbnRmLCBpbnRmLT50eF9zcGJf ZG1hX3ZhbGlkLCBUWF9TUEJfRE1BX1ZBTElEKTsKKworCXJldHVybiAwOworCitmcmVlX3R4X3Nw YjoKKwlkbWFfZnJlZV9jb2hlcmVudChrZGV2LCBERVNDX1JJTkdfU0laRSwgaW50Zi0+dHhfc3Bi X2NwdSwKKwkJCSAgaW50Zi0+dHhfc3BiX2RtYV9hZGRyKTsKKworCXJldHVybiByZXQ7Cit9CisK K3N0YXRpYyB2b2lkIGJjbWFzcF9yZWNsYWltX2ZyZWVfYWxsX3R4KHN0cnVjdCBiY21hc3BfaW50 ZiAqaW50ZikKK3sKKwlzdHJ1Y3QgZGV2aWNlICprZGV2ID0zRCAmaW50Zi0+cGFyZW50LT5wZGV2 LT5kZXY7CisKKwkvKiBGcmVlIGRlc2NyaXB0b3JzICovCisJZG1hX2ZyZWVfY29oZXJlbnQoa2Rl diwgREVTQ19SSU5HX1NJWkUsIGludGYtPnR4X3NwYl9jcHUsCisJCQkgIGludGYtPnR4X3NwYl9k bWFfYWRkcik7CisKKwkvKiBGcmVlIGNicyAqLworCWtmcmVlKGludGYtPnR4X2Nicyk7Cit9CisK K3N0YXRpYyB2b2lkIGJjbWFzcF9lcGh5X2VuYWJsZV9zZXQoc3RydWN0IGJjbWFzcF9pbnRmICpp bnRmLCBib29sIGVuYWJsZSkKK3sKKwl1MzIgbWFzayA9M0QgUkdNSUlfRVBIWV9DRkdfSUREUV9C SUFTIHwgUkdNSUlfRVBIWV9DRkdfRVhUX1BXUkRPV04gfAorCQkgICBSR01JSV9FUEhZX0NGR19J RERRX0dMT0JBTDsKKwl1MzIgcmVnOworCisJcmVnID0zRCByZ21paV9ybChpbnRmLCBSR01JSV9F UEhZX0NOVFJMKTsKKwlpZiAoZW5hYmxlKSB7CisJCXJlZyAmPTNEIH5SR01JSV9FUEhZX0NLMjVf RElTOworCQlyZ21paV93bChpbnRmLCByZWcsIFJHTUlJX0VQSFlfQ05UUkwpOworCQltZGVsYXko MSk7CisKKwkJcmVnICY9M0Qgfm1hc2s7CisJCXJlZyB8PTNEIFJHTUlJX0VQSFlfUkVTRVQ7CisJ CXJnbWlpX3dsKGludGYsIHJlZywgUkdNSUlfRVBIWV9DTlRSTCk7CisJCW1kZWxheSgxKTsKKwor CQlyZWcgJj0zRCB+UkdNSUlfRVBIWV9SRVNFVDsKKwl9IGVsc2UgeworCQlyZWcgfD0zRCBtYXNr IHwgUkdNSUlfRVBIWV9SRVNFVDsKKwkJcmdtaWlfd2woaW50ZiwgcmVnLCBSR01JSV9FUEhZX0NO VFJMKTsKKwkJbWRlbGF5KDEpOworCQlyZWcgfD0zRCBSR01JSV9FUEhZX0NLMjVfRElTOworCX0K KwlyZ21paV93bChpbnRmLCByZWcsIFJHTUlJX0VQSFlfQ05UUkwpOworCW1kZWxheSgxKTsKKwor CS8qIFNldCBvciBjbGVhciB0aGUgTEVEIGNvbnRyb2wgb3ZlcnJpZGUgdG8gYXZvaWQgbGlnaHRp bmcgdXAgTEVEcworCSAqIHdoaWxlIHRoZSBFUEhZIGlzIHBvd2VyZWQgb2ZmIGFuZCBkcmF3aW5n IHVubmVjZXNzYXJ5IGN1cnJlbnQuCisJICovCisJcmVnID0zRCByZ21paV9ybChpbnRmLCBSR01J SV9TWVNfTEVEX0NOVFJMKTsKKwlpZiAoZW5hYmxlKQorCQlyZWcgJj0zRCB+UkdNSUlfU1lTX0xF RF9DTlRSTF9MSU5LX09WUkQ7CisJZWxzZQorCQlyZWcgfD0zRCBSR01JSV9TWVNfTEVEX0NOVFJM X0xJTktfT1ZSRDsKKwlyZ21paV93bChpbnRmLCByZWcsIFJHTUlJX1NZU19MRURfQ05UUkwpOwor fQorCitzdGF0aWMgdm9pZCBiY21hc3BfcmdtaWlfbW9kZV9lbl9zZXQoc3RydWN0IGJjbWFzcF9p bnRmICppbnRmLCBib29sIGVuYWJsZSkKK3sKKwl1MzIgcmVnOworCisJcmVnID0zRCByZ21paV9y bChpbnRmLCBSR01JSV9PT0JfQ05UUkwpOworCXJlZyAmPTNEIH5SR01JSV9PT0JfRElTOworCWlm IChlbmFibGUpCisJCXJlZyB8PTNEIFJHTUlJX01PREVfRU47CisJZWxzZQorCQlyZWcgJj0zRCB+ UkdNSUlfTU9ERV9FTjsKKwlyZ21paV93bChpbnRmLCByZWcsIFJHTUlJX09PQl9DTlRSTCk7Cit9 CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9uZXRpZl9kZWluaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRl dikKK3sKKwlzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYgPTNEIG5ldGRldl9wcml2KGRldik7CisJ dTMyIHJlZywgdGltZW91dCA9M0QgMTAwMDsKKworCW5hcGlfZGlzYWJsZSgmaW50Zi0+dHhfbmFw aSk7CisKKwliY21hc3BfZW5hYmxlX3R4KGludGYsIDApOworCisJLyogRmx1c2ggYW55IFRYIHBh Y2tldHMgaW4gdGhlIHBpcGUgKi8KKwl0eF9zcGJfZG1hX3dsKGludGYsIFRYX1NQQl9ETUFfRklG T19GTFVTSCwgVFhfU1BCX0RNQV9GSUZPX0NUUkwpOworCWRvIHsKKwkJcmVnID0zRCB0eF9zcGJf ZG1hX3JsKGludGYsIFRYX1NQQl9ETUFfRklGT19TVEFUVVMpOworCQlpZiAoIShyZWcgJiBUWF9T UEJfRE1BX0ZJRk9fRkxVU0gpKQorCQkJYnJlYWs7CisJCXVzbGVlcF9yYW5nZSgxMDAwLCAyMDAw KTsKKwl9IHdoaWxlICh0aW1lb3V0LS0gPiAwKTsKKwl0eF9zcGJfZG1hX3dsKGludGYsIDB4MCwg VFhfU1BCX0RNQV9GSUZPX0NUUkwpOworCisJdW1hY19lbmFibGVfc2V0KGludGYsIFVNQ19DTURf VFhfRU4sIDApOworCisJcGh5X3N0b3AoZGV2LT5waHlkZXYpOworCisJdW1hY19lbmFibGVfc2V0 KGludGYsIFVNQ19DTURfUlhfRU4sIDApOworCisJYmNtYXNwX2ZsdXNoX3J4X3BvcnQoaW50Zik7 CisJdXNsZWVwX3JhbmdlKDEwMDAsIDIwMDApOworCWJjbWFzcF9lbmFibGVfcngoaW50ZiwgMCk7 CisKKwluYXBpX2Rpc2FibGUoJmludGYtPnJ4X25hcGkpOworCisJLyogRGlzYWJsZSBpbnRlcnJ1 cHRzICovCisJYmNtYXNwX2VuYWJsZV90eF9pcnEoaW50ZiwgMCk7CisJYmNtYXNwX2VuYWJsZV9y eF9pcnEoaW50ZiwgMCk7CisKKwluZXRpZl9uYXBpX2RlbCgmaW50Zi0+dHhfbmFwaSk7CisJYmNt YXNwX3JlY2xhaW1fZnJlZV9hbGxfdHgoaW50Zik7CisKKwluZXRpZl9uYXBpX2RlbCgmaW50Zi0+ cnhfbmFwaSk7CisJYmNtYXNwX3JlY2xhaW1fZnJlZV9hbGxfcngoaW50Zik7Cit9CisKK3N0YXRp YyBpbnQgYmNtYXNwX3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgYmNt YXNwX2ludGYgKmludGYgPTNEIG5ldGRldl9wcml2KGRldik7CisKKwluZXRpZl9kYmcoaW50Ziwg aWZkb3duLCBkZXYsICJiY21hc3Agc3RvcFxuIik7CisKKwkvKiBTdG9wIHR4IGZyb20gdXBkYXRp bmcgSFcgKi8KKwluZXRpZl90eF9kaXNhYmxlKGRldik7CisKKwliY21hc3BfbmV0aWZfZGVpbml0 KGRldik7CisKKwlwaHlfZGlzY29ubmVjdChkZXYtPnBoeWRldik7CisKKwkvKiBEaXNhYmxlIGlu dGVybmFsIEVQSFkgb3IgZXh0ZXJuYWwgUEhZICovCisJaWYgKGludGYtPmludGVybmFsX3BoeSkK KwkJYmNtYXNwX2VwaHlfZW5hYmxlX3NldChpbnRmLCBmYWxzZSk7CisJZWxzZQorCQliY21hc3Bf cmdtaWlfbW9kZV9lbl9zZXQoaW50ZiwgZmFsc2UpOworCisJLyogRGlzYWJsZSB0aGUgaW50ZXJm YWNlIGNsb2NrcyAqLworCWJjbWFzcF9jb3JlX2Nsb2NrX3NldF9pbnRmKGludGYsIGZhbHNlKTsK KworCWNsa19kaXNhYmxlX3VucHJlcGFyZShpbnRmLT5wYXJlbnQtPmNsayk7CisKKwlyZXR1cm4g MDsKK30KKworc3RhdGljIHZvaWQgYmNtYXNwX2NvbmZpZ3VyZV9wb3J0KHN0cnVjdCBiY21hc3Bf aW50ZiAqaW50ZikKK3sKKwl1MzIgcmVnLCBpZF9tb2RlX2RpcyA9M0QgMDsKKworCXJlZyA9M0Qg cmdtaWlfcmwoaW50ZiwgUkdNSUlfUE9SVF9DTlRSTCk7CisJcmVnICY9M0QgflJHTUlJX1BPUlRf TU9ERV9NQVNLOworCisJc3dpdGNoIChpbnRmLT5waHlfaW50ZXJmYWNlKSB7CisJY2FzZSBQSFlf SU5URVJGQUNFX01PREVfUkdNSUk6CisJCS8qIFJHTUlJX05PX0lEOiBUWEMgdHJhbnNpdGlvbnMg YXQgdGhlIHNhbWUgdGltZSBhcyBUWEQKKwkJICoJCShyZXF1aXJlcyBQQ0Igb3IgcmVjZWl2ZXIt c2lkZSBkZWxheSkKKwkJICogUkdNSUk6CUFkZCAybnMgZGVsYXkgb24gVFhDICg5MCBkZWdyZWUg c2hpZnQpCisJCSAqCisJCSAqIElEIGlzIGltcGxpY2l0bHkgZGlzYWJsZWQgZm9yIDEwME1icHMg KFJHKU1JSSBvcGVyYXRpb24uCisJCSAqLworCQlpZF9tb2RlX2RpcyA9M0QgUkdNSUlfSURfTU9E RV9ESVM7CisJCWZhbGx0aHJvdWdoOworCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX1RY SUQ6CisJCXJlZyB8PTNEIFJHTUlJX1BPUlRfTU9ERV9FWFRfR1BIWTsKKwkJYnJlYWs7CisJY2Fz ZSBQSFlfSU5URVJGQUNFX01PREVfTUlJOgorCQlyZWcgfD0zRCBSR01JSV9QT1JUX01PREVfRVhU X0VQSFk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKworCWlmIChpbnRmLT5p bnRlcm5hbF9waHkpCisJCXJlZyB8PTNEIFJHTUlJX1BPUlRfTU9ERV9FUEhZOworCisJcmdtaWlf d2woaW50ZiwgcmVnLCBSR01JSV9QT1JUX0NOVFJMKTsKKworCXJlZyA9M0QgcmdtaWlfcmwoaW50 ZiwgUkdNSUlfT09CX0NOVFJMKTsKKwlyZWcgJj0zRCB+UkdNSUlfSURfTU9ERV9ESVM7CisJcmVn IHw9M0QgaWRfbW9kZV9kaXM7CisJcmdtaWlfd2woaW50ZiwgcmVnLCBSR01JSV9PT0JfQ05UUkwp OworfQorCitzdGF0aWMgaW50IGJjbWFzcF9uZXRpZl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYsIGJvb2wgcGh5X2Nvbm5lY3QpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBu ZXRkZXZfcHJpdihkZXYpOworCXBoeV9pbnRlcmZhY2VfdCBwaHlfaWZhY2UgPTNEIGludGYtPnBo eV9pbnRlcmZhY2U7CisJdTMyIHBoeV9mbGFncyA9M0QgUEhZX0JSQ01fQVVUT19QV1JEV05fRU5B QkxFIHwKKwkJCVBIWV9CUkNNX0RJU19UWENSWENfTk9FTlJHWSB8CisJCQlQSFlfQlJDTV9JRERR X1NVU1BFTkQ7CisJc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiA9M0QgTlVMTDsKKwlpbnQgcmV0 OworCisJLyogQWx3YXlzIGVuYWJsZSBpbnRlcmZhY2UgY2xvY2tzICovCisJYmNtYXNwX2NvcmVf Y2xvY2tfc2V0X2ludGYoaW50ZiwgdHJ1ZSk7CisKKwkvKiBFbmFibGUgaW50ZXJuYWwgUEhZIG9y IGV4dGVybmFsIFBIWSBiZWZvcmUgYW55IE1BQyBhY3Rpdml0eSAqLworCWlmIChpbnRmLT5pbnRl cm5hbF9waHkpCisJCWJjbWFzcF9lcGh5X2VuYWJsZV9zZXQoaW50ZiwgdHJ1ZSk7CisJZWxzZQor CQliY21hc3BfcmdtaWlfbW9kZV9lbl9zZXQoaW50ZiwgdHJ1ZSk7CisJYmNtYXNwX2NvbmZpZ3Vy ZV9wb3J0KGludGYpOworCisJLyogVGhpcyBpcyBhbiB1Z2x5IHF1aXJrIGJ1dCB3ZSBoYXZlIG5v dCBiZWVuIGNvcnJlY3RseQorCSAqIGludGVycHJldGluZyB0aGUgcGh5X2ludGVyZmFjZSB2YWx1 ZXMgYW5kIHdlIGhhdmUgZG9uZSB0aGF0CisJICogYWNyb3NzIGRpZmZlcmVudCBkcml2ZXJzLCBz byBhdCBsZWFzdCB3ZSBhcmUgY29uc2lzdGVudCBpbgorCSAqIG91ciBtaXN0YWtlcy4KKwkgKgor CSAqIFdoZW4gdGhlIEdlbmVyaWMgUEhZIGRyaXZlciBpcyBpbiB1c2UgZWl0aGVyIHRoZSBQSFkg aGFzCisJICogYmVlbiBzdHJhcHBlZCBvciBwcm9ncmFtbWVkIGNvcnJlY3RseSBieSB0aGUgYm9v dCBsb2FkZXIgc28KKwkgKiB3ZSBzaG91bGQgc3RpY2sgdG8gb3VyIGluY29ycmVjdCBpbnRlcnBy ZXRhdGlvbiBzaW5jZSB3ZQorCSAqIGhhdmUgdmFsaWRhdGVkIGl0LgorCSAqCisJICogTm93IHdo ZW4gYSBkZWRpY2F0ZWQgUEhZIGRyaXZlciBpcyBpbiB1c2UsIHdlIG5lZWQgdG8KKwkgKiByZXZl cnNlIHRoZSBtZWFuaW5nIG9mIHRoZSBwaHlfaW50ZXJmYWNlX21vZGUgdmFsdWVzIHRvCisJICog c29tZXRoaW5nIHRoYXQgdGhlIFBIWSBkcml2ZXIgd2lsbCBpbnRlcnByZXQgYW5kIGFjdCBvbiBz dWNoCisJICogdGhhdCB3ZSBoYXZlIHR3byBtaXN0YWtlcyBjYW5jZWxpbmcgdGhlbXNlbHZlcyBz byB0byBzcGVhay4KKwkgKiBXZSBvbmx5IGRvIHRoaXMgZm9yIHRoZSB0d28gbW9kZXMgdGhhdCBH RU5FVCBkcml2ZXIKKwkgKiBvZmZpY2lhbGx5IHN1cHBvcnRzIG9uIEJyb2FkY29tIFNUQiBjaGlw czoKKwkgKiBQSFlfSU5URVJGQUNFX01PREVfUkdNSUkgYW5kIFBIWV9JTlRFUkZBQ0VfTU9ERV9S R01JSV9UWElELgorCSAqIE90aGVyIG1vZGVzIGFyZSBub3QgKm9mZmljaWFsbHkqIHN1cHBvcnRl ZCB3aXRoIHRoZSBib290CisJICogbG9hZGVyIGFuZCB0aGUgc2NyaXB0ZWQgZW52aXJvbm1lbnQg Z2VuZXJhdGluZyBEZXZpY2UgVHJlZQorCSAqIGJsb2JzIGZvciB0aG9zZSBwbGF0Zm9ybXMuCisJ ICoKKwkgKiBOb3RlIHRoYXQgaW50ZXJuYWwgUEhZIGFuZCBmaXhlZC1saW5rIGNvbmZpZ3VyYXRp b25zIGFyZSBub3QKKwkgKiBhZmZlY3RlZCBiZWNhdXNlIHRoZXkgdXNlIGRpZmZlcmVudCBwaHlf aW50ZXJmYWNlX3QgdmFsdWVzCisJICogb3IgdGhlIEdlbmVyaWMgUEhZIGRyaXZlci4KKwkgKi8K Kwlzd2l0Y2ggKHBoeV9pZmFjZSkgeworCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJOgor CQlwaHlfaWZhY2UgPTNEIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSV9JRDsKKwkJYnJlYWs7CisJ Y2FzZSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUlfVFhJRDoKKwkJcGh5X2lmYWNlID0zRCBQSFlf SU5URVJGQUNFX01PREVfUkdNSUlfUlhJRDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7 CisJfQorCisJaWYgKHBoeV9jb25uZWN0KSB7CisJCXBoeWRldiA9M0Qgb2ZfcGh5X2Nvbm5lY3Qo ZGV2LCBpbnRmLT5waHlfZG4sCisJCQkJCWJjbWFzcF9hZGpfbGluaywgcGh5X2ZsYWdzLAorCQkJ CQlwaHlfaWZhY2UpOworCQlpZiAoIXBoeWRldikgeworCQkJcmV0ID0zRCAtRU5PREVWOworCQkJ bmV0ZGV2X2VycihkZXYsICJjb3VsZCBub3QgYXR0YWNoIHRvIFBIWVxuIik7CisJCQlnb3RvIGVy cl9waHlfZGlzYWJsZTsKKwkJfQorCX0gZWxzZSB7CisJCXJldCA9M0QgcGh5X3Jlc3VtZShkZXYt PnBoeWRldik7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycl9waHlfZGlzYWJsZTsKKwl9CisKKwl1 bWFjX3Jlc2V0KGludGYpOworCisJdW1hY19pbml0KGludGYpOworCisJLyogRGlzYWJsZSB0aGUg VW5pTUFDIFJYL1RYICovCisJdW1hY19lbmFibGVfc2V0KGludGYsIChVTUNfQ01EX1JYX0VOIHwg VU1DX0NNRF9UWF9FTiksIDApOworCisJdW1hY19zZXRfaHdfYWRkcihpbnRmLCBkZXYtPmRldl9h ZGRyKTsKKworCWludGYtPm9sZF9kdXBsZXggPTNEIC0xOworCWludGYtPm9sZF9saW5rID0zRCAt MTsKKwlpbnRmLT5vbGRfcGF1c2UgPTNEIC0xOworCisJcmV0ID0zRCBiY21hc3BfaW5pdF90eChp bnRmKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9waHlfZGlzY29ubmVjdDsKKworCS8qIFR1cm4g b24gYXNwICovCisJYmNtYXNwX2VuYWJsZV90eChpbnRmLCAxKTsKKworCXJldCA9M0QgYmNtYXNw X2luaXRfcngoaW50Zik7CisJaWYgKHJldCkKKwkJZ290byBlcnJfcmVjbGFpbV90eDsKKworCWJj bWFzcF9lbmFibGVfcngoaW50ZiwgMSk7CisKKwkvKiBUdXJuIG9uIFVuaU1BQyBUWC9SWCAqLwor CXVtYWNfZW5hYmxlX3NldChpbnRmLCAoVU1DX0NNRF9SWF9FTiB8IFVNQ19DTURfVFhfRU4pLCAx KTsKKworCWludGYtPmNyY19md2QgPTNEICEhKHVtYWNfcmwoaW50ZiwgVU1DX0NNRCkgJiBVTUNf Q01EX0NSQ19GV0QpOworCisJYmNtYXNwX25ldGlmX3N0YXJ0KGRldik7CisKKwluZXRpZl9zdGFy dF9xdWV1ZShkZXYpOworCisJcmV0dXJuIDA7CisKK2Vycl9yZWNsYWltX3R4OgorCWJjbWFzcF9y ZWNsYWltX2ZyZWVfYWxsX3R4KGludGYpOworZXJyX3BoeV9kaXNjb25uZWN0OgorCWlmIChwaHlk ZXYpCisJCXBoeV9kaXNjb25uZWN0KHBoeWRldik7CitlcnJfcGh5X2Rpc2FibGU6CisJaWYgKGlu dGYtPmludGVybmFsX3BoeSkKKwkJYmNtYXNwX2VwaHlfZW5hYmxlX3NldChpbnRmLCBmYWxzZSk7 CisJZWxzZQorCQliY21hc3BfcmdtaWlfbW9kZV9lbl9zZXQoaW50ZiwgZmFsc2UpOworCXJldHVy biByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYmNtYXNwX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRl dikKK3sKKwlzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYgPTNEIG5ldGRldl9wcml2KGRldik7CisJ aW50IHJldDsKKworCW5ldGlmX2RiZyhpbnRmLCBpZnVwLCBkZXYsICJiY21hc3Agb3BlblxuIik7 CisKKwlyZXQgPTNEIGNsa19wcmVwYXJlX2VuYWJsZShpbnRmLT5wYXJlbnQtPmNsayk7CisJaWYg KHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9M0QgYmNtYXNwX25ldGlmX2luaXQoZGV2LCB0 cnVlKTsKKwlpZiAocmV0KQorCQljbGtfZGlzYWJsZV91bnByZXBhcmUoaW50Zi0+cGFyZW50LT5j bGspOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgYmNtYXNwX3R4X3RpbWVvdXQo c3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHR4cXVldWUpCit7CisJc3RydWN0 IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOworCXN0cnVjdCBiY21hc3Bf aW50Zl9zdGF0czY0ICpzdGF0czsKKworCXN0YXRzID0zRCAmaW50Zi0+c3RhdHM2NDsKKworCW5l dGlmX2RiZyhpbnRmLCB0eF9lcnIsIGRldiwgInRyYW5zbWl0IHRpbWVvdXQhXG4iKTsKKworCXU2 NF9zdGF0c191cGRhdGVfYmVnaW4oJnN0YXRzLT5zeW5jcCk7CisJdTY0X3N0YXRzX2luYygmc3Rh dHMtPnJ4X2Vycm9ycyk7CisJdTY0X3N0YXRzX3VwZGF0ZV9lbmQoJnN0YXRzLT5zeW5jcCk7Cit9 CisKK3N0YXRpYyBpbnQgYmNtYXNwX2dldF9waHlzX3BvcnRfbmFtZShzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LAorCQkJCSAgICAgY2hhciAqbmFtZSwgc2l6ZV90IGxlbikKK3sKKwlzdHJ1Y3QgYmNt YXNwX2ludGYgKmludGYgPTNEIG5ldGRldl9wcml2KGRldik7CisKKwlpZiAoc25wcmludGYobmFt ZSwgbGVuLCAicCVkIiwgaW50Zi0+cG9ydCkgPj0zRCBsZW4pCisJCXJldHVybiAtRUlOVkFMOwor CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9nZXRfc3RhdHM2NChzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LAorCQkJICAgICAgIHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NCAqc3Rh dHMpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOwor CXN0cnVjdCBiY21hc3BfaW50Zl9zdGF0czY0ICpsc3RhdHM7CisJdW5zaWduZWQgaW50IHN0YXJ0 OworCisJbHN0YXRzID0zRCAmaW50Zi0+c3RhdHM2NDsKKworCWRvIHsKKwkJc3RhcnQgPTNEIHU2 NF9zdGF0c19mZXRjaF9iZWdpbigmbHN0YXRzLT5zeW5jcCk7CisJCXN0YXRzLT5yeF9wYWNrZXRz ID0zRCB1NjRfc3RhdHNfcmVhZCgmbHN0YXRzLT5yeF9wYWNrZXRzKTsKKwkJc3RhdHMtPnJ4X2J5 dGVzID0zRCB1NjRfc3RhdHNfcmVhZCgmbHN0YXRzLT5yeF9ieXRlcyk7CisJCXN0YXRzLT5yeF9k cm9wcGVkID0zRCB1NjRfc3RhdHNfcmVhZCgmbHN0YXRzLT5yeF9kcm9wcGVkKTsKKwkJc3RhdHMt PnJ4X2NyY19lcnJvcnMgPTNEIHU2NF9zdGF0c19yZWFkKCZsc3RhdHMtPnJ4X2NyY19lcnJzKTsK KwkJc3RhdHMtPnJ4X2ZyYW1lX2Vycm9ycyA9M0QgdTY0X3N0YXRzX3JlYWQoJmxzdGF0cy0+cnhf c3ltX2VycnMpOworCQlzdGF0cy0+cnhfZXJyb3JzID0zRCB1NjRfc3RhdHNfcmVhZCgmbHN0YXRz LT5yeF9lcnJvcnMpICsKKwkJCQkgICBzdGF0cy0+cnhfY3JjX2Vycm9ycyArIHN0YXRzLT5yeF9m cmFtZV9lcnJvcnM7CisKKwkJc3RhdHMtPnR4X3BhY2tldHMgPTNEIHU2NF9zdGF0c19yZWFkKCZs c3RhdHMtPnR4X3BhY2tldHMpOworCQlzdGF0cy0+dHhfYnl0ZXMgPTNEIHU2NF9zdGF0c19yZWFk KCZsc3RhdHMtPnR4X2J5dGVzKTsKKwkJc3RhdHMtPnR4X2Vycm9ycyA9M0QgdTY0X3N0YXRzX3Jl YWQoJmxzdGF0cy0+dHhfZXJyb3JzKTsKKwl9IHdoaWxlICh1NjRfc3RhdHNfZmV0Y2hfcmV0cnko JmxzdGF0cy0+c3luY3AsIHN0YXJ0KSk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2Rl dmljZV9vcHMgYmNtYXNwX25ldGRldl9vcHMgPTNEIHsKKwkubmRvX29wZW4JCT0zRCBiY21hc3Bf b3BlbiwKKwkubmRvX3N0b3AJCT0zRCBiY21hc3Bfc3RvcCwKKwkubmRvX3N0YXJ0X3htaXQJCT0z RCBiY21hc3BfeG1pdCwKKwkubmRvX3R4X3RpbWVvdXQJCT0zRCBiY21hc3BfdHhfdGltZW91dCwK KwkubmRvX3NldF9yeF9tb2RlCT0zRCBiY21hc3Bfc2V0X3J4X21vZGUsCisJLm5kb19nZXRfcGh5 c19wb3J0X25hbWUJPTNEIGJjbWFzcF9nZXRfcGh5c19wb3J0X25hbWUsCisJLm5kb19ldGhfaW9j dGwJCT0zRCBwaHlfZG9faW9jdGxfcnVubmluZywKKwkubmRvX3NldF9tYWNfYWRkcmVzcwk9M0Qg ZXRoX21hY19hZGRyLAorCS5uZG9fZ2V0X3N0YXRzNjQJPTNEIGJjbWFzcF9nZXRfc3RhdHM2NCwK K307CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9tYXBfcmVzKHN0cnVjdCBiY21hc3BfcHJpdiAqcHJp diwgc3RydWN0IGJjbWFzcF9pbnRmICppPQpudGYpCit7CisJLyogUGVyIHBvcnQgKi8KKwlpbnRm LT5yZXMudW1hYyA9M0QgcHJpdi0+YmFzZSArIFVNQ19PRkZTRVQoaW50Zik7CisJaW50Zi0+cmVz LnVtYWMyZmIgPTNEIHByaXYtPmJhc2UgKyAocHJpdi0+aHdfaW5mby0+dW1hYzJmYiArCisJCQkJ CSAgKGludGYtPnBvcnQgKiAweDQpKTsKKwlpbnRmLT5yZXMucmdtaWkgPTNEIHByaXYtPmJhc2Ug KyBSR01JSV9PRkZTRVQoaW50Zik7CisKKwkvKiBQZXIgY2ggKi8KKwlpbnRmLT50eF9zcGJfZG1h ID0zRCBwcml2LT5iYXNlICsgVFhfU1BCX0RNQV9PRkZTRVQoaW50Zik7CisJaW50Zi0+cmVzLnR4 X3NwYl9jdHJsID0zRCBwcml2LT5iYXNlICsgVFhfU1BCX0NUUkxfT0ZGU0VUKGludGYpOworCWlu dGYtPnJlcy50eF9zcGJfdG9wID0zRCBwcml2LT5iYXNlICsgVFhfU1BCX1RPUF9PRkZTRVQoaW50 Zik7CisJaW50Zi0+cmVzLnR4X2Vwa3RfY29yZSA9M0QgcHJpdi0+YmFzZSArIFRYX0VQS1RfQ19P RkZTRVQoaW50Zik7CisJaW50Zi0+cmVzLnR4X3BhdXNlX2N0cmwgPTNEIHByaXYtPmJhc2UgKyBU WF9QQVVTRV9DVFJMX09GRlNFVChpbnRmKTsKKworCWludGYtPnJ4X2VkcGt0X2RtYSA9M0QgcHJp di0+YmFzZSArIFJYX0VEUEtUX0RNQV9PRkZTRVQoaW50Zik7CisJaW50Zi0+cnhfZWRwa3RfY2Zn ID0zRCBwcml2LT5iYXNlICsgUlhfRURQS1RfQ0ZHX09GRlNFVChpbnRmKTsKK30KKworI2RlZmlu ZSBNQVhfSVJRX1NUUl9MRU4JCTY0CitzdHJ1Y3QgYmNtYXNwX2ludGYgKmJjbWFzcF9pbnRlcmZh Y2VfY3JlYXRlKHN0cnVjdCBiY21hc3BfcHJpdiAqcHJpdiwKKwkJCQkJICAgIHN0cnVjdCBkZXZp Y2Vfbm9kZSAqbmRldl9kbiwgaW50IGkpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0zRCAmcHJp di0+cGRldi0+ZGV2OworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZjsKKwlzdHJ1Y3QgbmV0X2Rl dmljZSAqbmRldjsKKwlpbnQgY2gsIHBvcnQsIHJldDsKKworCWlmIChvZl9wcm9wZXJ0eV9yZWFk X3UzMihuZGV2X2RuLCAicmVnIiwgJnBvcnQpKSB7CisJCWRldl93YXJuKGRldiwgIiVzOiBpbnZh bGlkIGNoIG51bWJlclxuIiwgbmRldl9kbi0+bmFtZSk7CisJCWdvdG8gZXJyOworCX0KKworCWlm IChvZl9wcm9wZXJ0eV9yZWFkX3UzMihuZGV2X2RuLCAiYnJjbSxjaGFubmVsIiwgJmNoKSkgewor CQlkZXZfd2FybihkZXYsICIlczogaW52YWxpZCBjaCBudW1iZXJcbiIsIG5kZXZfZG4tPm5hbWUp OworCQlnb3RvIGVycjsKKwl9CisKKwluZGV2ID0zRCBhbGxvY19ldGhlcmRldihzaXplb2Yoc3Ry dWN0IGJjbWFzcF9pbnRmKSk7CisJaWYgKCFuZGV2KSB7CisJCWRldl93YXJuKGRldiwgIiVzOiB1 bmFibGUgdG8gYWxsb2MgbmRldlxuIiwgbmRldl9kbi0+bmFtZSk7CisJCWdvdG8gZXJyOworCX0K KwlpbnRmID0zRCBuZXRkZXZfcHJpdihuZGV2KTsKKworCWludGYtPnBhcmVudCA9M0QgcHJpdjsK KwlpbnRmLT5uZGV2ID0zRCBuZGV2OworCWludGYtPmNoYW5uZWwgPTNEIGNoOworCWludGYtPnBv cnQgPTNEIHBvcnQ7CisJaW50Zi0+bmRldl9kbiA9M0QgbmRldl9kbjsKKwlpbnRmLT5pbmRleCA9 M0QgaTsKKworCXJldCA9M0Qgb2ZfZ2V0X3BoeV9tb2RlKG5kZXZfZG4sICZpbnRmLT5waHlfaW50 ZXJmYWNlKTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKGRldiwgImludmFsaWQgUEhZIG1v ZGUgcHJvcGVydHlcbiIpOworCQlnb3RvIGVycl9mcmVlX25ldGRldjsKKwl9CisKKwlpZiAoaW50 Zi0+cGh5X2ludGVyZmFjZSA9M0Q9M0QgUEhZX0lOVEVSRkFDRV9NT0RFX0lOVEVSTkFMKQorCQlp bnRmLT5pbnRlcm5hbF9waHkgPTNEIHRydWU7CisKKwlpbnRmLT5waHlfZG4gPTNEIG9mX3BhcnNl X3BoYW5kbGUobmRldl9kbiwgInBoeS1oYW5kbGUiLCAwKTsKKwlpZiAoIWludGYtPnBoeV9kbiAm JiBvZl9waHlfaXNfZml4ZWRfbGluayhuZGV2X2RuKSkgeworCQlyZXQgPTNEIG9mX3BoeV9yZWdp c3Rlcl9maXhlZF9saW5rKG5kZXZfZG4pOworCQlpZiAocmV0KSB7CisJCQlkZXZfd2FybihkZXYs ICIlczogZmFpbGVkIHRvIHJlZ2lzdGVyIGZpeGVkIFBIWVxuIiwKKwkJCQkgbmRldl9kbi0+bmFt ZSk7CisJCQlnb3RvIGVycl9mcmVlX25ldGRldjsKKwkJfQorCQlpbnRmLT5waHlfZG4gPTNEIG5k ZXZfZG47CisJfQorCisJLyogTWFwIHJlc291cmNlICovCisJYmNtYXNwX21hcF9yZXMocHJpdiwg aW50Zik7CisKKwlpZiAoKCFwaHlfaW50ZXJmYWNlX21vZGVfaXNfcmdtaWkoaW50Zi0+cGh5X2lu dGVyZmFjZSkgJiYKKwkgICAgIGludGYtPnBoeV9pbnRlcmZhY2UgIT0zRCBQSFlfSU5URVJGQUNF X01PREVfTUlJICYmCisJICAgICBpbnRmLT5waHlfaW50ZXJmYWNlICE9M0QgUEhZX0lOVEVSRkFD RV9NT0RFX0lOVEVSTkFMKSB8fAorCSAgICAoaW50Zi0+cG9ydCAhPTNEIDEgJiYgaW50Zi0+aW50 ZXJuYWxfcGh5KSkgeworCQluZXRkZXZfZXJyKGludGYtPm5kZXYsICJpbnZhbGlkIFBIWSBtb2Rl OiAlcyBmb3IgcG9ydCAlZFxuIiwKKwkJCSAgIHBoeV9tb2RlcyhpbnRmLT5waHlfaW50ZXJmYWNl KSwgaW50Zi0+cG9ydCk7CisJCXJldCA9M0QgLUVJTlZBTDsKKwkJZ290byBlcnJfZnJlZV9uZXRk ZXY7CisJfQorCisJcmV0ID0zRCBvZl9nZXRfZXRoZGV2X2FkZHJlc3MobmRldl9kbiwgbmRldik7 CisJaWYgKHJldCkgeworCQluZXRkZXZfd2FybihuZGV2LCAidXNpbmcgcmFuZG9tIEV0aGVybmV0 IE1BQ1xuIik7CisJCWV0aF9od19hZGRyX3JhbmRvbShuZGV2KTsKKwl9CisKKwlTRVRfTkVUREVW X0RFVihuZGV2LCBkZXYpOworCWludGYtPm9wcyA9M0QgJmJjbWFzcF9pbnRmX29wczsKKwluZGV2 LT5uZXRkZXZfb3BzID0zRCAmYmNtYXNwX25ldGRldl9vcHM7CisJbmRldi0+ZXRodG9vbF9vcHMg PTNEICZiY21hc3BfZXRodG9vbF9vcHM7CisJaW50Zi0+bXNnX2VuYWJsZSA9M0QgbmV0aWZfbXNn X2luaXQoLTEsIE5FVElGX01TR19EUlYgfAorCQkJCQkgIE5FVElGX01TR19QUk9CRSB8CisJCQkJ CSAgTkVUSUZfTVNHX0xJTkspOworCW5kZXYtPmZlYXR1cmVzIHw9M0QgTkVUSUZfRl9JUF9DU1VN IHwgTkVUSUZfRl9JUFY2X0NTVU0gfCBORVRJRl9GX1NHIHwKKwkJCSAgTkVUSUZfRl9SWENTVU07 CisJbmRldi0+aHdfZmVhdHVyZXMgfD0zRCBuZGV2LT5mZWF0dXJlczsKKwluZGV2LT5uZWVkZWRf aGVhZHJvb20gKz0zRCBzaXplb2Yoc3RydWN0IGJjbWFzcF9wa3Rfb2ZmbG9hZCk7CisKKwlyZXR1 cm4gaW50ZjsKKworZXJyX2ZyZWVfbmV0ZGV2OgorCWZyZWVfbmV0ZGV2KG5kZXYpOworZXJyOgor CXJldHVybiBOVUxMOworfQorCit2b2lkIGJjbWFzcF9pbnRlcmZhY2VfZGVzdHJveShzdHJ1Y3Qg YmNtYXNwX2ludGYgKmludGYsIGJvb2wgdW5yZWdpc3RlcikKK3sKKwlpZiAodW5yZWdpc3RlcikK KwkJdW5yZWdpc3Rlcl9uZXRkZXYoaW50Zi0+bmRldik7CisJaWYgKG9mX3BoeV9pc19maXhlZF9s aW5rKGludGYtPm5kZXZfZG4pKQorCQlvZl9waHlfZGVyZWdpc3Rlcl9maXhlZF9saW5rKGludGYt Pm5kZXZfZG4pOworCWZyZWVfbmV0ZGV2KGludGYtPm5kZXYpOworfQorCitpbnQgYmNtYXNwX2lu dGVyZmFjZV9zdXNwZW5kKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZikKK3sKKwlzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2ID0zRCBpbnRmLT5uZGV2OworCWludCByZXQgPTNEIDA7CisKKwlpZiAoIW5l dGlmX3J1bm5pbmcoZGV2KSkKKwkJcmV0dXJuIDA7CisKKwluZXRpZl9kZXZpY2VfZGV0YWNoKGRl dik7CisKKwliY21hc3BfbmV0aWZfZGVpbml0KGRldik7CisKKwlyZXQgPTNEIHBoeV9zdXNwZW5k KGRldi0+cGh5ZGV2KTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKworCWlmIChpbnRmLT5pbnRl cm5hbF9waHkpCisJCWJjbWFzcF9lcGh5X2VuYWJsZV9zZXQoaW50ZiwgZmFsc2UpOworCWVsc2UK KwkJYmNtYXNwX3JnbWlpX21vZGVfZW5fc2V0KGludGYsIGZhbHNlKTsKKworCS8qIElmIFdha2Ut b24tTEFOIGlzIGRpc2FibGVkLCB3ZSBjYW4gc2FmZWx5CisJICogZGlzYWJsZSB0aGUgbmV0d29y ayBpbnRlcmZhY2UgY2xvY2tzLgorCSAqLworCWJjbWFzcF9jb3JlX2Nsb2NrX3NldF9pbnRmKGlu dGYsIGZhbHNlKTsKKworCWNsa19kaXNhYmxlX3VucHJlcGFyZShpbnRmLT5wYXJlbnQtPmNsayk7 CisKKwlyZXR1cm4gcmV0OworCitvdXQ6CisJYmNtYXNwX25ldGlmX2luaXQoZGV2LCBmYWxzZSk7 CisJcmV0dXJuIHJldDsKK30KKworaW50IGJjbWFzcF9pbnRlcmZhY2VfcmVzdW1lKHN0cnVjdCBi Y21hc3BfaW50ZiAqaW50ZikKK3sKKwlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0zRCBpbnRmLT5u ZGV2OworCWludCByZXQ7CisKKwlpZiAoIW5ldGlmX3J1bm5pbmcoZGV2KSkKKwkJcmV0dXJuIDA7 CisKKwlyZXQgPTNEIGNsa19wcmVwYXJlX2VuYWJsZShpbnRmLT5wYXJlbnQtPmNsayk7CisJaWYg KHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9M0QgYmNtYXNwX25ldGlmX2luaXQoZGV2LCBm YWxzZSk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisKKwluZXRpZl9kZXZpY2VfYXR0YWNoKGRl dik7CisKKwlyZXR1cm4gMDsKKworb3V0OgorCWNsa19kaXNhYmxlX3VucHJlcGFyZShpbnRmLT5w YXJlbnQtPmNsayk7CisJcmV0dXJuIHJldDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2ludGZfZGVmcy5oIGIvZHJpdmVyPQpzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmX2RlZnMuaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmIyNTlhNDc1MjA3ZgotLS0gL2Rldi9udWxsCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2ludGZfZGVmcy5oCkBA IC0wLDAgKzEsMTk2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwor I2lmbmRlZiBfX0JDTUFTUF9JTlRGX0RFRlNfSAorI2RlZmluZSBfX0JDTUFTUF9JTlRGX0RFRlNf SAorCisjZGVmaW5lIFVNQ19PRkZTRVQoaW50ZikJCVwKKwkoKCgoaW50ZiktPnBvcnQpICogMHg4 MDApICsgMHhjMDAwKQorI2RlZmluZSAgVU1DX0NNRAkJCTB4MDA4CisjZGVmaW5lICAgVU1DX0NN RF9UWF9FTgkJCUJJVCgwKQorI2RlZmluZSAgIFVNQ19DTURfUlhfRU4JCQlCSVQoMSkKKyNkZWZp bmUgICBVTUNfQ01EX1NQRUVEX1NISUZUCQkweDIKKyNkZWZpbmUgICAgVU1DX0NNRF9TUEVFRF9N QVNLCQkweDMKKyNkZWZpbmUgICAgVU1DX0NNRF9TUEVFRF8xMAkJMHgwCisjZGVmaW5lICAgIFVN Q19DTURfU1BFRURfMTAwCQkweDEKKyNkZWZpbmUgICAgVU1DX0NNRF9TUEVFRF8xMDAwCQkweDIK KyNkZWZpbmUgICAgVU1DX0NNRF9TUEVFRF8yNTAwCQkweDMKKyNkZWZpbmUgICBVTUNfQ01EX1BS T01JU0MJCUJJVCg0KQorI2RlZmluZSAgIFVNQ19DTURfUEFEX0VOCQlCSVQoNSkKKyNkZWZpbmUg ICBVTUNfQ01EX0NSQ19GV0QJCUJJVCg2KQorI2RlZmluZSAgIFVNQ19DTURfUEFVU0VfRldECQlC SVQoNykKKyNkZWZpbmUgICBVTUNfQ01EX1JYX1BBVVNFX0lHTk9SRQlCSVQoOCkKKyNkZWZpbmUg ICBVTUNfQ01EX1RYX0FERFJfSU5TCQlCSVQoOSkKKyNkZWZpbmUgICBVTUNfQ01EX0hEX0VOCQkJ QklUKDEwKQorI2RlZmluZSAgIFVNQ19DTURfU1dfUkVTRVQJCUJJVCgxMykKKyNkZWZpbmUgICBV TUNfQ01EX0xDTF9MT09QX0VOCQlCSVQoMTUpCisjZGVmaW5lICAgVU1DX0NNRF9BVVRPX0NPTkZJ RwkJQklUKDIyKQorI2RlZmluZSAgIFVNQ19DTURfQ05UTF9GUk1fRU4JCUJJVCgyMykKKyNkZWZp bmUgICBVTUNfQ01EX05PX0xFTl9DSEsJCUJJVCgyNCkKKyNkZWZpbmUgICBVTUNfQ01EX1JNVF9M T09QX0VOCQlCSVQoMjUpCisjZGVmaW5lICAgVU1DX0NNRF9QUkJMX0VOCQlCSVQoMjcpCisjZGVm aW5lICAgVU1DX0NNRF9UWF9QQVVTRV9JR05PUkUJQklUKDI4KQorI2RlZmluZSAgIFVNQ19DTURf VFhfUlhfRU4JCUJJVCgyOSkKKyNkZWZpbmUgICBVTUNfQ01EX1JVTlRfRklMVEVSX0RJUwlCSVQo MzApCisjZGVmaW5lICBVTUNfTUFDMAkJCTB4MGMKKyNkZWZpbmUgIFVNQ19NQUMxCQkJMHgxMAor I2RlZmluZSAgVU1DX0ZSTV9MRU4JCQkweDE0CisjZGVmaW5lICBVTUNfRUVFX0NUUkwJCQkweDY0 CisjZGVmaW5lICAgRU5fTFBJX1JYX1BBVVNFCQlCSVQoMCkKKyNkZWZpbmUgICBFTl9MUElfVFhf UEZDCQkJQklUKDEpCisjZGVmaW5lICAgRU5fTFBJX1RYX1BBVVNFCQlCSVQoMikKKyNkZWZpbmUg ICBFRUVfRU4JCQlCSVQoMykKKyNkZWZpbmUgICBSWF9GSUZPX0NIRUNLCQkJQklUKDQpCisjZGVm aW5lICAgRUVFX1RYX0NMS19ESVMJCUJJVCg1KQorI2RlZmluZSAgIERJU19FRUVfMTBNCQkJQklU KDYpCisjZGVmaW5lICAgTFBfSURMRV9QUkVESUNUSU9OX01PREUJQklUKDcpCisjZGVmaW5lICBV TUNfRUVFX0xQSV9USU1FUgkJMHg2OAorI2RlZmluZSAgVU1DX1BBVVNFX0NOVFJMCQkweDMzMAor I2RlZmluZSAgVU1DX1RYX0ZMVVNICQkJMHgzMzQKKyNkZWZpbmUgIFVNQ19NSUJfU1RBUlQJCQkw eDQwMAorI2RlZmluZSAgVU1DX01JQl9DTlRSTAkJCTB4NTgwCisjZGVmaW5lICAgVU1DX01JQl9D TlRSTF9SWF9DTlRfUlNUCUJJVCgwKQorI2RlZmluZSAgIFVNQ19NSUJfQ05UUkxfUlVOVF9DTlRf UlNUCUJJVCgxKQorI2RlZmluZSAgIFVNQ19NSUJfQ05UUkxfVFhfQ05UX1JTVAlCSVQoMikKKyNk ZWZpbmUgIFVNQ19SWF9NQVhfUEtUX1NaCQkweDYwOAorI2RlZmluZSAgVU1DX01QRF9DVFJMCQkJ MHg2MjAKKyNkZWZpbmUgICBVTUNfTVBEX0NUUkxfTVBEX0VOCQlCSVQoMCkKKyNkZWZpbmUgICBV TUNfTVBEX0NUUkxfUFNXX0VOCQlCSVQoMjcpCisjZGVmaW5lICBVTUNfUFNXX01TCQkJMHg2MjQK KyNkZWZpbmUgIFVNQ19QU1dfTFMJCQkweDYyOAorCisjZGVmaW5lIFVNQUMyRkJfT0ZGU0VUXzJf MQkJMHg5ZjA0NAorI2RlZmluZSBVTUFDMkZCX09GRlNFVAkJCTB4OWYwM2MKKyNkZWZpbmUgIFVN QUMyRkJfQ0ZHCQkJMHgwCisjZGVmaW5lICAgVU1BQzJGQl9DRkdfT1BVVF9FTgkJQklUKDApCisj ZGVmaW5lICAgVU1BQzJGQl9DRkdfVkxBTl9FTgkJQklUKDEpCisjZGVmaW5lICAgVU1BQzJGQl9D RkdfU05BUF9FTgkJQklUKDIpCisjZGVmaW5lICAgVU1BQzJGQl9DRkdfQkNNX1RHX0VOCQlCSVQo MykKKyNkZWZpbmUgICBVTUFDMkZCX0NGR19JUFVUX0VOCQlCSVQoNCkKKyNkZWZpbmUgICBVTUFD MkZCX0NGR19DSElEX1NISUZUCTgKKyNkZWZpbmUgICBVTUFDMkZCX0NGR19PS19TRU5EX1NISUZU CTI0CisjZGVmaW5lICAgVU1BQzJGQl9DRkdfREVGQVVMVF9FTglcCisJCShVTUFDMkZCX0NGR19P UFVUX0VOIHwgVU1BQzJGQl9DRkdfVkxBTl9FTiBcCisJCXwgVU1BQzJGQl9DRkdfU05BUF9FTiB8 IFVNQUMyRkJfQ0ZHX0lQVVRfRU4pCisKKyNkZWZpbmUgUkdNSUlfT0ZGU0VUKGludGYpCVwKKwko KCgoaW50ZiktPnBvcnQpICogMHgxMDApICsgMHhkMDAwKQorI2RlZmluZSAgUkdNSUlfRVBIWV9D TlRSTAkJMHgwMAorI2RlZmluZSAgICBSR01JSV9FUEhZX0NGR19JRERRX0JJQVMJQklUKDApCisj ZGVmaW5lICAgIFJHTUlJX0VQSFlfQ0ZHX0VYVF9QV1JET1dOCUJJVCgxKQorI2RlZmluZSAgICBS R01JSV9FUEhZX0NGR19GT1JDRV9ETExfRU4JQklUKDIpCisjZGVmaW5lICAgIFJHTUlJX0VQSFlf Q0ZHX0lERFFfR0xPQkFMCUJJVCgzKQorI2RlZmluZSAgICBSR01JSV9FUEhZX0NLMjVfRElTCQlC SVQoNCkKKyNkZWZpbmUgICAgUkdNSUlfRVBIWV9SRVNFVAkJQklUKDcpCisjZGVmaW5lICBSR01J SV9PT0JfQ05UUkwJCTB4MGMKKyNkZWZpbmUgICBSR01JSV9MSU5LCQkJQklUKDQpCisjZGVmaW5l ICAgUkdNSUlfT09CX0RJUwkJCUJJVCg1KQorI2RlZmluZSAgIFJHTUlJX01PREVfRU4JCQlCSVQo NikKKyNkZWZpbmUgICBSR01JSV9JRF9NT0RFX0RJUwkJQklUKDE2KQorCisjZGVmaW5lIFJHTUlJ X1BPUlRfQ05UUkwJCTB4NjAKKyNkZWZpbmUgICBSR01JSV9QT1JUX01PREVfRVBIWQkJMAorI2Rl ZmluZSAgIFJHTUlJX1BPUlRfTU9ERV9HUEhZCQkxCisjZGVmaW5lICAgUkdNSUlfUE9SVF9NT0RF X0VYVF9FUEhZCTIKKyNkZWZpbmUgICBSR01JSV9QT1JUX01PREVfRVhUX0dQSFkJMworI2RlZmlu ZSAgIFJHTUlJX1BPUlRfTU9ERV9FWFRfUlZNSUkJNAorI2RlZmluZSAgIFJHTUlJX1BPUlRfTU9E RV9NQVNLCQlHRU5NQVNLKDIsIDApCisKKyNkZWZpbmUgUkdNSUlfU1lTX0xFRF9DTlRSTAkJMHg3 NAorI2RlZmluZSAgUkdNSUlfU1lTX0xFRF9DTlRSTF9MSU5LX09WUkQJQklUKDE1KQorCisjZGVm aW5lIFRYX1NQQl9ETUFfT0ZGU0VUKGludGYpIFwKKwkoKCgoaW50ZiktPmNoYW5uZWwpICogMHgz MCkgKyAweDQ4MTgwKQorI2RlZmluZSAgVFhfU1BCX0RNQV9SRUFECQkweDAwCisjZGVmaW5lICBU WF9TUEJfRE1BX0JBU0UJCTB4MDgKKyNkZWZpbmUgIFRYX1NQQl9ETUFfRU5ECQkJMHgxMAorI2Rl ZmluZSAgVFhfU1BCX0RNQV9WQUxJRAkJMHgxOAorI2RlZmluZSAgVFhfU1BCX0RNQV9GSUZPX0NU UkwJCTB4MjAKKyNkZWZpbmUgICBUWF9TUEJfRE1BX0ZJRk9fRkxVU0gJCUJJVCgwKQorI2RlZmlu ZSAgVFhfU1BCX0RNQV9GSUZPX1NUQVRVUwkJMHgyNAorCisjZGVmaW5lIFRYX1NQQl9DVFJMX09G RlNFVChpbnRmKSBcCisJKCgoKGludGYpLT5jaGFubmVsKSAqIDB4NjgpICsgMHg0OTM0MCkKKyNk ZWZpbmUgIFRYX1NQQl9DVFJMX0VOQUJMRQkJMHgwCisjZGVmaW5lICAgVFhfU1BCX0NUUkxfRU5B QkxFX0VOCQlCSVQoMCkKKyNkZWZpbmUgIFRYX1NQQl9DVFJMX1hGX0NUUkwyCQkweDIwCisjZGVm aW5lICAgVFhfU1BCX0NUUkxfWEZfQklEX1NISUZUCTE2CisKKyNkZWZpbmUgVFhfU1BCX1RPUF9P RkZTRVQoaW50ZikgXAorCSgoKChpbnRmKS0+Y2hhbm5lbCkgKiAweDFjKSArIDB4NGEwZTApCisj ZGVmaW5lIFRYX1NQQl9UT1BfQkxLT1VUCQkweDAKKyNkZWZpbmUgVFhfU1BCX1RPUF9TUFJFX0JX X0NUUkwJCTB4NAorCisjZGVmaW5lIFRYX0VQS1RfQ19PRkZTRVQoaW50ZikgXAorCSgoKChpbnRm KS0+Y2hhbm5lbCkgKiAweDEyMCkgKyAweDQwOTAwKQorI2RlZmluZSAgVFhfRVBLVF9DX0NGR19N SVNDCQkweDAKKyNkZWZpbmUgICBUWF9FUEtUX0NfQ0ZHX01JU0NfRU4JCUJJVCgwKQorI2RlZmlu ZSAgIFRYX0VQS1RfQ19DRkdfTUlTQ19QVAkJQklUKDEpCisjZGVmaW5lICAgVFhfRVBLVF9DX0NG R19NSVNDX1BTX1NISUZUCTE0CisjZGVmaW5lICAgVFhfRVBLVF9DX0NGR19NSVNDX0ZEX1NISUZU CTIwCisKKyNkZWZpbmUgVFhfUEFVU0VfQ1RSTF9PRkZTRVQoaW50ZikgXAorCSgoKChpbnRmKS0+ Y2hhbm5lbCAqIDB4YykgKyAweDQ5YTIwKSkKKyNkZWZpbmUgIFRYX1BBVVNFX01BUF9WRUNUT1IJ CTB4OAorCisjZGVmaW5lIFJYX0VEUEtUX0RNQV9PRkZTRVQoaW50ZikgXAorCSgoKChpbnRmKS0+ Y2hhbm5lbCkgKiAweDM4KSArIDB4OWNhMDApCisjZGVmaW5lICBSWF9FRFBLVF9ETUFfV1JJVEUJ CTB4MDAKKyNkZWZpbmUgIFJYX0VEUEtUX0RNQV9SRUFECQkweDA4CisjZGVmaW5lICBSWF9FRFBL VF9ETUFfQkFTRQkJMHgxMAorI2RlZmluZSAgUlhfRURQS1RfRE1BX0VORAkJMHgxOAorI2RlZmlu ZSAgUlhfRURQS1RfRE1BX1ZBTElECQkweDIwCisjZGVmaW5lICBSWF9FRFBLVF9ETUFfRlVMTE5F U1MJCTB4MjgKKyNkZWZpbmUgIFJYX0VEUEtUX0RNQV9NSU5fVEhSRVMJCTB4MmMKKyNkZWZpbmUg IFJYX0VEUEtUX0RNQV9DSF9YT05PRkYJCTB4MzAKKworI2RlZmluZSBSWF9FRFBLVF9DRkdfT0ZG U0VUKGludGYpIFwKKwkoKCgoaW50ZiktPmNoYW5uZWwpICogMHg3MCkgKyAweDljNjAwKQorI2Rl ZmluZSAgUlhfRURQS1RfQ0ZHX0NGRzAJCTB4MAorI2RlZmluZSAgIFJYX0VEUEtUX0NGR19DRkcw X0RCVUZfU0hJRlQJOQorI2RlZmluZSAgICBSWF9FRFBLVF9DRkdfQ0ZHMF9SQlVGCTB4MAorI2Rl ZmluZSAgICBSWF9FRFBLVF9DRkdfQ0ZHMF9SQlVGXzRLCTB4MQorI2RlZmluZSAgICBSWF9FRFBL VF9DRkdfQ0ZHMF9CVUZfNEsJMHgyCisvKiBFRlJNIFNUVUZGLCAwID0zRCBubyBieXRlIHN0dWZm LCAxID0zRCB0d28gYnl0ZSBzdHVmZiAqLworI2RlZmluZSAgIFJYX0VEUEtUX0NGR19DRkcwX0VG Uk1fU1RVRglCSVQoMTEpCisjZGVmaW5lICAgUlhfRURQS1RfQ0ZHX0NGRzBfQkFMTl9TSElGVAkx MgorI2RlZmluZSAgICBSWF9FRFBLVF9DRkdfQ0ZHMF9OT19BTE4JMAorI2RlZmluZSAgICBSWF9F RFBLVF9DRkdfQ0ZHMF80X0FMTgkyCisjZGVmaW5lICAgIFJYX0VEUEtUX0NGR19DRkcwXzY0X0FM Tgk2CisjZGVmaW5lICBSWF9FRFBLVF9SSU5HX0JVRkZFUl9XUklURQkweDM4CisjZGVmaW5lICBS WF9FRFBLVF9SSU5HX0JVRkZFUl9SRUFECTB4NDAKKyNkZWZpbmUgIFJYX0VEUEtUX1JJTkdfQlVG RkVSX0JBU0UJMHg0OAorI2RlZmluZSAgUlhfRURQS1RfUklOR19CVUZGRVJfRU5ECTB4NTAKKyNk ZWZpbmUgIFJYX0VEUEtUX1JJTkdfQlVGRkVSX1ZBTElECTB4NTgKKyNkZWZpbmUgIFJYX0VEUEtU X0NGR19FTkFCTEUJCTB4NmMKKyNkZWZpbmUgICBSWF9FRFBLVF9DRkdfRU5BQkxFX0VOCUJJVCgw KQorCisjZGVmaW5lIFJYX1NQQl9ETUFfT0ZGU0VUKGludGYpIFwKKwkoKCgoaW50ZiktPmNoYW5u ZWwpICogMHgzMCkgKyAweGEwMDAwKQorI2RlZmluZSAgUlhfU1BCX0RNQV9SRUFECQkweDAwCisj ZGVmaW5lICBSWF9TUEJfRE1BX0JBU0UJCTB4MDgKKyNkZWZpbmUgIFJYX1NQQl9ETUFfRU5ECQkJ MHgxMAorI2RlZmluZSAgUlhfU1BCX0RNQV9WQUxJRAkJMHgxOAorI2RlZmluZSAgUlhfU1BCX0RN QV9GSUZPX0NUUkwJCTB4MjAKKyNkZWZpbmUgICBSWF9TUEJfRE1BX0ZJRk9fRkxVU0gJCUJJVCgw KQorI2RlZmluZSAgUlhfU1BCX0RNQV9GSUZPX1NUQVRVUwkJMHgyNAorCisjZGVmaW5lIFJYX1NQ Ql9DVFJMX09GRlNFVChpbnRmKSBcCisJKCgoKGludGYpLT5jaGFubmVsIC0gNikgKiAweDY4KSAr IDB4YTEwMDApCisjZGVmaW5lICBSWF9TUEJfQ1RSTF9FTkFCTEUJCTB4MDAKKyNkZWZpbmUgICBS WF9TUEJfQ1RSTF9FTkFCTEVfRU4JCUJJVCgwKQorCisjZGVmaW5lIFJYX1BBVVNFX0NUUkxfT0ZG U0VUKGludGYpIFwKKwkoKCgoaW50ZiktPmNoYW5uZWwgLSA2KSAqIDB4NCkgKyAweGExMTM4KQor I2RlZmluZSAgUlhfUEFVU0VfTUFQX1ZFQ1RPUgkJMHgwMAorCisjZGVmaW5lIFJYX1NQQl9UT1Bf Q1RSTF9PRkZTRVQoaW50ZikgXAorCSgoKChpbnRmKS0+Y2hhbm5lbCAtIDYpICogMHgxNCkgKyAw eGEyMDAwKQorI2RlZmluZSAgUlhfU1BCX1RPUF9CTEtPVVQJCTB4MDAKKworI2RlZmluZSBOVU1f NEtfQlVGRkVSUwkJCTMyCisjZGVmaW5lIFJJTkdfQlVGRkVSX1NJWkUJCShQQUdFX1NJWkUgKiBO VU1fNEtfQlVGRkVSUykKKworI2RlZmluZSBERVNDX1JJTkdfQ09VTlQJCQkoNjQgKiBOVU1fNEtf QlVGRkVSUykKKyNkZWZpbmUgREVTQ19TSVpFCQkJMTYKKyNkZWZpbmUgREVTQ19SSU5HX1NJWkUJ CQkoREVTQ19SSU5HX0NPVU5UICogREVTQ19TSVpFKQorCisjZW5kaWYKLS09MjAKMi43LjQK --000000000000c29ef705fe4682ba 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 YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIIiu9gMNzTIM7v63hArGYE9y3Jae3YochliQ HOyUWd+BMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNjIy MTQzOFowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQB32f+sGK4VYcby88cXgTVWrM1WLXn9vA+43X20Cp4Mpp+wcHdnW4jJ 15t/RI3qZuRZA46EYpbe/FVPQpaAAAxp0ZvhHXfCaJc1QGdl013xeXV2fay8t2Aj/yfNKqNvIXWy gGA6B2Oiv5B8Z95BCMEV0c9Zfr3zQdeZMFIzdsHESKze9L4s5qPTMHZSLTbQFdMLRz1m5rR/D1mB yr48Mi/oRM5oiG1LaBsL+ys2Ncc5Yo1d85/E0EB8Y+JsIGT/BuryDwje59+VJYNREu7ukJ2HpMUE xUZTqq9T9hx8NxSgs9SzT2rZyYElgRX2snro7Ygfw6hGLW0Y56RuHSBjZPNQ --000000000000c29ef705fe4682ba-- From nobody Sat Feb 7 19:41:04 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 DB599EB64D7 for ; Fri, 16 Jun 2023 22:15:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345893AbjFPWPK (ORCPT ); Fri, 16 Jun 2023 18:15:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54386 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345847AbjFPWOv (ORCPT ); Fri, 16 Jun 2023 18:14:51 -0400 Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A12B43C0F for ; Fri, 16 Jun 2023 15:14:40 -0700 (PDT) Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-1b52d14df27so8332825ad.0 for ; Fri, 16 Jun 2023 15:14:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686953680; x=1689545680; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=gESmpZxi3RTFActIv3jTD86faREGFGF860iA0ffAUjU=; b=YdxXWTXMtHBT+ValKFjcce5vqVY5kWNAxZznKEtjPK3Yum7JOAP+Zc7T4UKWhnngPl EnVfdbmxwUwV5Hxmx9dFnHacJCVRQVJkHAeWJGS9PlIxPSv82wSypDaAZ+qeJ3I+D8Hl 4RSQsrhEDLQgodXwrNeeu/sCHEuSRTnijhNlw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686953680; x=1689545680; 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=gESmpZxi3RTFActIv3jTD86faREGFGF860iA0ffAUjU=; b=HT9sCyL3Ru9YWXzruZUTxD1q+NrV8awR+WuNH11kLr+CVnf5BSurVRe0MTh55w/S+u 6n9wPheNr89NL5FnK2dqB9X9GXYOW8ujNiQzUxk1B2gxT/y1sv5M+Nhsrg8A1Vq/2K2s rRRVvgdpF0aH/haZV/DB2FmVBZTuY48B9BUzi1wh53PmhfBRvfMKR57NvIJZpHdFZDEv BlKkZK4LGFWqFL7gv7nBbtwwZP4IZQe89Bk5G00LjulZ0sbo+CwR/90xD7JwZ1xwyGm0 fOoQKkcuFnLDVJXj+M96ObKO7NINUxFx5deAqKu4psIbRx8JfwFEO/nW6HAOW3zJtPgH +BMg== X-Gm-Message-State: AC+VfDwSQnlKa0VSacG+QPR/aQhrRNsPq9sDTD5SxDn+b20REDdO3WOJ k47vwtB8AtiWps4i6lN4UjWw8A== X-Google-Smtp-Source: ACHHUZ6nTZ2WYYYgx2Wu0dkJsto4k2nb/B1seUuYs1ysZUw/FSB3thwFCErMWea5ustbgAevtHvlfw== X-Received: by 2002:a17:902:a705:b0:1b0:74f5:beee with SMTP id w5-20020a170902a70500b001b074f5beeemr2285713plq.34.1686953679641; Fri, 16 Jun 2023 15:14:39 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id f12-20020a170902ab8c00b001aaed524541sm16220860plr.227.2023.06.16.15.14.37 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Jun 2023 15:14:39 -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 v8 04/11] net: bcmasp: Add support for WoL magic packet Date: Fri, 16 Jun 2023 15:14:17 -0700 Message-Id: <1686953664-17498-5-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> References: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000da5d1d05fe4682c3" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --000000000000da5d1d05fe4682c3 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIFdha2UtT24tTGFuIG1hZ2ljIHBhY2tldCBhbmQgbWFnaWMgcGFja2V0 IHdpdGggcGFzc3dvcmQuCgpTaWduZWQtb2ZmLWJ5OiBKdXN0aW4gQ2hlbiA8anVzdGluLmNoZW5A YnJvYWRjb20uY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNt YXNwLmMgICAgICAgIHwgMTQ4ICsrKysrKysrKysrKysrKysrPQorKysrCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5oICAgICAgICB8ICAxOCArKysKIC4uLi9uZXQv ZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfZXRodG9vbC5jICAgIHwgIDM2ICsrKysrCiBk cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmLmMgICB8ICA3NiAr KysrKysrKystLQogNCBmaWxlcyBjaGFuZ2VkLCAyNjYgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9i Y21hc3AuYyBiL2RyaXZlcnMvbmV0L2V0aGU9CnJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3AuYwpp bmRleCAzNGEwYzc1NDVlYmQuLjQwMTQzYmI1NjZlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3AuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9icm9hZGNvbS9hc3AyL2JjbWFzcC5jCkBAIC00NDAsNiArNDQwLDEzOSBAQCBzdGF0aWMgaW50 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 Q1RSTF9GTFVTSCwKIAkudW1hYzJmYiA9M0QgVU1BQzJGQl9PRkZTRVQsCkBAIC00NDksNiArNTgy LDkgQEAgc3RhdGljIHN0cnVjdCBiY21hc3BfaHdfaW5mbyB2MjBfaHdfaW5mbyA9M0QgewogfTsK PTIwCiBzdGF0aWMgY29uc3Qgc3RydWN0IGJjbWFzcF9wbGF0X2RhdGEgdjIwX3BsYXRfZGF0YSA9 M0QgeworCS5pbml0X3dvbCA9M0QgYmNtYXNwX2luaXRfd29sX3Blcl9pbnRmLAorCS5lbmFibGVf d29sID0zRCBiY21hc3BfZW5hYmxlX3dvbF9wZXJfaW50ZiwKKwkuZGVzdHJveV93b2wgPTNEIGJj bWFzcF93b2xfaXJxX2Rlc3Ryb3lfcGVyX2ludGYsCiAJLmh3X2luZm8gPTNEICZ2MjBfaHdfaW5m bywKIH07Cj0yMApAQCAtNDYyLDYgKzU5OCw5IEBAIHN0YXRpYyBzdHJ1Y3QgYmNtYXNwX2h3X2lu Zm8gdjIxX2h3X2luZm8gPTNEIHsKIH07Cj0yMAogc3RhdGljIGNvbnN0IHN0cnVjdCBiY21hc3Bf cGxhdF9kYXRhIHYyMV9wbGF0X2RhdGEgPTNEIHsKKwkuaW5pdF93b2wgPTNEIGJjbWFzcF9pbml0 X3dvbF9zaGFyZWQsCisJLmVuYWJsZV93b2wgPTNEIGJjbWFzcF9lbmFibGVfd29sX3NoYXJlZCwK KwkuZGVzdHJveV93b2wgPTNEIGJjbWFzcF93b2xfaXJxX2Rlc3Ryb3lfc2hhcmVkLAogCS5od19p bmZvID0zRCAmdjIxX2h3X2luZm8sCiB9Owo9MjAKQEAgLTUxNCwxMSArNjUzLDE1IEBAIHN0YXRp YyBpbnQgYmNtYXNwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcHJpdi0+ cGRldiA9M0QgcGRldjsKIAlzcGluX2xvY2tfaW5pdCgmcHJpdi0+bWRhX2xvY2spOwogCXNwaW5f bG9ja19pbml0KCZwcml2LT5jbGtfbG9jayk7CisJbXV0ZXhfaW5pdCgmcHJpdi0+d29sX2xvY2sp Owo9MjAKIAlwZGF0YSA9M0QgZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYpOwogCWlm ICghcGRhdGEpCiAJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgLUVJTlZBTCwgInVuYWJsZSB0 byBmaW5kIHBsYXRmb3JtIGRhdGFcbiIpOwo9MjAKKwlwcml2LT5pbml0X3dvbCA9M0QgcGRhdGEt PmluaXRfd29sOworCXByaXYtPmVuYWJsZV93b2wgPTNEIHBkYXRhLT5lbmFibGVfd29sOworCXBy aXYtPmRlc3Ryb3lfd29sID0zRCBwZGF0YS0+ZGVzdHJveV93b2w7CiAJcHJpdi0+aHdfaW5mbyA9 M0QgcGRhdGEtPmh3X2luZm87Cj0yMAogCS8qIEVuYWJsZSBhbGwgY2xvY2tzIHRvIGVuc3VyZSBz dWNjZXNzZnVsIHByb2JpbmcgKi8KQEAgLTU3OCw2ICs3MjEsOSBAQCBzdGF0aWMgaW50IGJjbWFz cF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlpKys7CiAJfQo9MjAKKwkv KiBDaGVjayBhbmQgZW5hYmxlIFdvTCAqLworCXByaXYtPmluaXRfd29sKHByaXYpOworCiAJLyog RHJvcCB0aGUgY2xvY2sgcmVmZXJlbmNlIGNvdW50IG5vdyBhbmQgbGV0IG5kb19vcGVuKCkvbmRv X2Nsb3NlKCkKIAkgKiBtYW5hZ2UgaXQgZm9yIHVzIGZyb20gbm93IG9uLgogCSAqLwpAQCAtNjE2 LDYgKzc2Miw4IEBAIHN0YXRpYyBpbnQgYmNtYXNwX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQogCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZjsKIAlpbnQgaTsKPTIwCisJcHJp di0+ZGVzdHJveV93b2wocHJpdik7CisKIAlmb3IgKGkgPTNEIDA7IGkgPCBwcml2LT5pbnRmX2Nv dW50OyBpKyspIHsKIAkJaW50ZiA9M0QgcHJpdi0+aW50ZnNbaV07CiAJCWlmICghaW50ZikKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmggYi9k cml2ZXJzL25ldC9ldGhlPQpybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmgKaW5kZXggMGY1YzI4 NWM2MTg3Li5jOGI2NmE2YWY1ODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jy 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 IDM4ODJkNjU1NDFjMC4uMWY2ZjA1MGY5MDU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zi5jCkBAIC0xMDQxLDcgKzEwNDEsNyBAQCBzdGF0 aWMgaW50IGJjbWFzcF9uZXRpZl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsID0KYm9vbCBw aHlfY29ubmVjdCkKIAkJCW5ldGRldl9lcnIoZGV2LCAiY291bGQgbm90IGF0dGFjaCB0byBQSFlc biIpOwogCQkJZ290byBlcnJfcGh5X2Rpc2FibGU7CiAJCX0KLQl9IGVsc2UgeworCX0gZWxzZSBp ZiAoIWludGYtPndvbG9wdHMpIHsKIAkJcmV0ID0zRCBwaHlfcmVzdW1lKGRldi0+cGh5ZGV2KTsK IAkJaWYgKHJldCkKIAkJCWdvdG8gZXJyX3BoeV9kaXNhYmxlOwpAQCAtMTI5Nyw4ICsxMjk3LDM5 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 MjAKQEAgLTEzMDksMTkgKzEzNDAsMjQgQEAgaW50IGJjbWFzcF9pbnRlcmZhY2Vfc3VzcGVuZChz dHJ1Y3QgYmNtYXNwX2ludGYgKmluPQp0ZikKPTIwCiAJYmNtYXNwX25ldGlmX2RlaW5pdChkZXYp Owo9MjAKLQlyZXQgPTNEIHBoeV9zdXNwZW5kKGRldi0+cGh5ZGV2KTsKLQlpZiAocmV0KQotCQln b3RvIG91dDsKKwlpZiAoIWludGYtPndvbG9wdHMpIHsKKwkJcmV0ID0zRCBwaHlfc3VzcGVuZChk ZXYtPnBoeWRldik7CisJCWlmIChyZXQpCisJCQlnb3RvIG91dDsKPTIwCi0JaWYgKGludGYtPmlu dGVybmFsX3BoeSkKLQkJYmNtYXNwX2VwaHlfZW5hYmxlX3NldChpbnRmLCBmYWxzZSk7Ci0JZWxz ZQotCQliY21hc3BfcmdtaWlfbW9kZV9lbl9zZXQoaW50ZiwgZmFsc2UpOworCQlpZiAoaW50Zi0+ aW50ZXJuYWxfcGh5KQorCQkJYmNtYXNwX2VwaHlfZW5hYmxlX3NldChpbnRmLCBmYWxzZSk7CisJ CWVsc2UKKwkJCWJjbWFzcF9yZ21paV9tb2RlX2VuX3NldChpbnRmLCBmYWxzZSk7Cj0yMAotCS8q IElmIFdha2Utb24tTEFOIGlzIGRpc2FibGVkLCB3ZSBjYW4gc2FmZWx5Ci0JICogZGlzYWJsZSB0 aGUgbmV0d29yayBpbnRlcmZhY2UgY2xvY2tzLgotCSAqLwotCWJjbWFzcF9jb3JlX2Nsb2NrX3Nl dF9pbnRmKGludGYsIGZhbHNlKTsKKwkJLyogSWYgV2FrZS1vbi1MQU4gaXMgZGlzYWJsZWQsIHdl IGNhbiBzYWZlbHkKKwkJICogZGlzYWJsZSB0aGUgbmV0d29yayBpbnRlcmZhY2UgY2xvY2tzLgor CQkgKi8KKwkJYmNtYXNwX2NvcmVfY2xvY2tfc2V0X2ludGYoaW50ZiwgZmFsc2UpOworCX0KKwor CWlmIChkZXZpY2VfbWF5X3dha2V1cChrZGV2KSAmJiBpbnRmLT53b2xvcHRzKQorCQliY21hc3Bf c3VzcGVuZF90b193b2woaW50Zik7Cj0yMAogCWNsa19kaXNhYmxlX3VucHJlcGFyZShpbnRmLT5w YXJlbnQtPmNsayk7Cj0yMApAQCAtMTMzMiw2ICsxMzY4LDIwIEBAIGludCBiY21hc3BfaW50ZXJm YWNlX3N1c3BlbmQoc3RydWN0IGJjbWFzcF9pbnRmICppbnQ9CmYpCiAJcmV0dXJuIHJldDsKIH0K PTIwCitzdGF0aWMgdm9pZCBiY21hc3BfcmVzdW1lX2Zyb21fd29sKHN0cnVjdCBiY21hc3BfaW50 ZiAqaW50ZikKK3sKKwl1MzIgcmVnOworCisJcmVnID0zRCB1bWFjX3JsKGludGYsIFVNQ19NUERf Q1RSTCk7CisJcmVnICY9M0QgflVNQ19NUERfQ1RSTF9NUERfRU47CisJdW1hY193bChpbnRmLCBy ZWcsIFVNQ19NUERfQ1RSTCk7CisKKwlpZiAoaW50Zi0+cGFyZW50LT53b2xfaXJxID4gMCkgewor CQl3YWtldXBfaW50cjJfY29yZV93bChpbnRmLT5wYXJlbnQsIDB4ZmZmZmZmZmYsCisJCQkJICAg ICBBU1BfV0FLRVVQX0lOVFIyX01BU0tfU0VUKTsKKwl9Cit9CisKIGludCBiY21hc3BfaW50ZXJm YWNlX3Jlc3VtZShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpCiB7CiAJc3RydWN0IG5ldF9kZXZp Y2UgKmRldiA9M0QgaW50Zi0+bmRldjsKQEAgLTEzNDgsNiArMTM5OCw4IEBAIGludCBiY21hc3Bf aW50ZXJmYWNlX3Jlc3VtZShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpCiAJaWYgKHJldCkKIAkJ Z290byBvdXQ7Cj0yMAorCWJjbWFzcF9yZXN1bWVfZnJvbV93b2woaW50Zik7CisKIAluZXRpZl9k ZXZpY2VfYXR0YWNoKGRldik7Cj0yMAogCXJldHVybiAwOwotLT0yMAoyLjcuNAo= --000000000000da5d1d05fe4682c3 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 YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEICTO4/2kCZwN3QtsO0GGJUw32U1Kvqe4AJAH DeV+RFReMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNjIy MTQ0MFowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQCbEU9bc0HApXi3F7j+VS8cNX66bZU1aruQ9xxTLrBm7rM5o+IkaVEz NTZavWwUeHFTsxpaHQjSub9HzS7yAp1be3ihMZXIQ+eQKwSJBTjCWYUBUG46AilnQdD5hygCwJor xg8RRVwxbSxKRFd1/296xEvw3hsao5yjS7VDjiNKOyoapbJUlpvtwelS5IvXCSnT+Q5kRWfjGqz9 8fWDuQmSUjea+dEndQl04xEynlq9oVY/yHhxZKHtVw3PqLfGkjgP++7ubJZMpcx77/k+F0ZuCPRq vkqNBAbh1s8wLvrViB3BX/eh9cW5cnc5FwbZqR/qw/HLGqje/iRPZ4nYldss --000000000000da5d1d05fe4682c3-- From nobody Sat Feb 7 19:41:04 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 B1A92EB64D7 for ; Fri, 16 Jun 2023 22:15:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345897AbjFPWPN (ORCPT ); Fri, 16 Jun 2023 18:15:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54520 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345984AbjFPWO7 (ORCPT ); Fri, 16 Jun 2023 18:14:59 -0400 Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com [IPv6:2607:f8b0:4864:20::633]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A90003AB9 for ; Fri, 16 Jun 2023 15:14:42 -0700 (PDT) Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-1b3c578c602so8678395ad.2 for ; Fri, 16 Jun 2023 15:14:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686953682; x=1689545682; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=Msf00HL04bQRMRyCngrC1aLF2rYC5in2oOkUlzOmPcI=; b=CMywdfBvJWddjLpsPLTadmjRqAJVrHnMIvmDhMHBuNr5D7uPYI0KoOGy7qGzb2h4Cr UNM3SZfK1JwYQfwFwW+8Y4g5VoLurXfyALLtXbMkeIKTVfOGONGUbqCmR15xkSaL6Swy Fg3+01IHyqwSqwP60Ad5dmp5THxJCtLTF+1As= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686953682; x=1689545682; 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=Msf00HL04bQRMRyCngrC1aLF2rYC5in2oOkUlzOmPcI=; b=jxTBBVIVbZkQS+HTTFERcjlD9rZJG8+IXXSmFweD3BNbTtQsclH/P+G6wHyreElbqK jIhGYpnw//ZvPogAfQBT6Lrxv8+7K0Jy5wmHrzacEq/LOSb5pwi4ZXzM1+XjiCcXahVT 2gv4dH8GNoe0HmCn/RHkaMFcMataqS3CsQI+WFM6ZRulW3TwpaUeN6lU5DnMZTYwLHkM Qjkv9PksWvxPXgM0V1ftKC/SMG/jVZr360V2n8qd6wsdM1uaCAuyD/VIUzAjwRFfOY7L MtMudmYYZoSuhmYw2Gw9Fxn61/QXslo7K+whEjVo1GNRwfCtPVNw3ZuO8y08opqHIdLh gbRw== X-Gm-Message-State: AC+VfDx/5Z2yx5f0Nuo5VkyBVY4hUoMUFXXEC3IcKZlEL7T6rQeyFcIS uXCmkQHUX9bKXRBZuWn/PwfzmQ== X-Google-Smtp-Source: ACHHUZ6deOAJNk5WUWFeQIB4cNda6MtwgJrO48DTkcDVo7kJxQhQp/HlCfD2KY1C1jX2sKhvB3HWiw== X-Received: by 2002:a17:902:e74e:b0:1b3:8865:aaae with SMTP id p14-20020a170902e74e00b001b38865aaaemr3276961plf.53.1686953681718; Fri, 16 Jun 2023 15:14:41 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id f12-20020a170902ab8c00b001aaed524541sm16220860plr.227.2023.06.16.15.14.39 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Jun 2023 15:14:41 -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 v8 05/11] net: bcmasp: Add support for wake on net filters Date: Fri, 16 Jun 2023 15:14:18 -0700 Message-Id: <1686953664-17498-6-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> References: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000fac19805fe468263" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --000000000000fac19805fe468263 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 L25ldC9ldGhlPQpybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMKaW5kZXggNDAxNDNiYjU2NmVm Li41MWI3YWE4MzY1YzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t 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 CiAJKmhpZ2ggPTNEICh1MzIpKGFkZHJbMF0gPDwgOCB8IGFkZHJbMV0pOwpAQCAtMzI5LDYgKzky MCw5IEBAIHN0YXRpYyB2b2lkIGJjbWFzcF9jb3JlX2luaXRfZmlsdGVycyhzdHJ1Y3QgYmNtYXNw X3ByaXY9CiAqcHJpdikKIAkJcHJpdi0+bWRhX2ZpbHRlcnNbaV0uZW4gPTNEIDA7CiAJfQo9MjAK Kwlmb3IgKGkgPTNEIDA7IGkgPCBOVU1fTkVUX0ZJTFRFUlM7IGkrKykKKwkJcnhfZmlsdGVyX2Nv cmVfd2wocHJpdiwgMHgwLCBBU1BfUlhfRklMVEVSX05FVF9DRkcoaSkpOworCiAJLyogVG9wIGxl dmVsIGZpbHRlciBlbmFibGUgYml0IHNob3VsZCBiZSBlbmFibGVkIGF0IGFsbCB0aW1lcywgc2V0 CiAJICogR0VOX1dBS0VfQ0xFQVIgdG8gY2xlYXIgdGhlIG5ldHdvcmsgZmlsdGVyIHdha2UtdXAg d2hpY2ggd291bGQKIAkgKiBvdGhlcndpc2UgYmUgc3RpY2t5CkBAIC02NTQsNiArMTI0OCw3IEBA IHN0YXRpYyBpbnQgYmNtYXNwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJ c3Bpbl9sb2NrX2luaXQoJnByaXYtPm1kYV9sb2NrKTsKIAlzcGluX2xvY2tfaW5pdCgmcHJpdi0+ Y2xrX2xvY2spOwogCW11dGV4X2luaXQoJnByaXYtPndvbF9sb2NrKTsKKwltdXRleF9pbml0KCZw cml2LT5uZXRfbG9jayk7Cj0yMAogCXBkYXRhID0zRCBkZXZpY2VfZ2V0X21hdGNoX2RhdGEoJnBk ZXYtPmRldik7CiAJaWYgKCFwZGF0YSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmggYi9kcml2ZXJzL25ldC9ldGhlPQpybmV0L2Jyb2FkY29t L2FzcDIvYmNtYXNwLmgKaW5kZXggYzhiNjZhNmFmNTg0Li5lNzkxYjg2OTAwNmUgMTAwNjQ0Ci0t 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 L25ldD0KL2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2ludGYuYwppbmRleCAxZjZmMDUw ZjkwNTkuLmUyMjFmMDdiZjc0MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJv YWRjb20vYXNwMi9iY21hc3BfaW50Zi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2FzcDIvYmNtYXNwX2ludGYuYwpAQCAtMTMxNiw2ICsxMzE2LDkgQEAgc3RhdGljIHZvaWQg YmNtYXNwX3N1c3BlbmRfdG9fd29sKHN0cnVjdCBiY21hc3BfaW50ZiA9CippbnRmKQogCX0KIAl1 bWFjX3dsKGludGYsIHJlZywgVU1DX01QRF9DVFJMKTsKPTIwCisJaWYgKGludGYtPndvbG9wdHMg JiBXQUtFX0ZJTFRFUikKKwkJYmNtYXNwX25ldGZpbHRfc3VzcGVuZChpbnRmKTsKKwogCS8qIFVu aU1BQyByZWNlaXZlIG5lZWRzIHRvIGJlIHR1cm5lZCBvbiAqLwogCXVtYWNfZW5hYmxlX3NldChp bnRmLCBVTUNfQ01EX1JYX0VOLCAxKTsKPTIwCi0tPTIwCjIuNy40Cg== --000000000000fac19805fe468263 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIIQagYJKoZIhvcNAQcCoIIQWzCCEFcCAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0BBwGg gg3BMIIFDTCCA/WgAwIBAgIQeEqpED+lv77edQixNJMdADANBgkqhkiG9w0BAQsFADBMMSAwHgYD VQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UE AxMKR2xvYmFsU2lnbjAeFw0yMDA5MTYwMDAwMDBaFw0yODA5MTYwMDAwMDBaMFsxCzAJBgNVBAYT AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhHbG9iYWxTaWduIEdDQyBS MyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA vbCmXCcsbZ/a0fRIQMBxp4gJnnyeneFYpEtNydrZZ+GeKSMdHiDgXD1UnRSIudKo+moQ6YlCOu4t rVWO/EiXfYnK7zeop26ry1RpKtogB7/O115zultAz64ydQYLe+a1e/czkALg3sgTcOOcFZTXk38e aqsXsipoX1vsNurqPtnC27TWsA7pk4uKXscFjkeUE8JZu9BDKaswZygxBOPBQBwrA5+20Wxlk6k1 e6EKaaNaNZUy30q3ArEf30ZDpXyfCtiXnupjSK8WU2cK4qsEtj09JS4+mhi0CTCrCnXAzum3tgcH cHRg0prcSzzEUDQWoFxyuqwiwhHu3sPQNmFOMwIDAQABo4IB2jCCAdYwDgYDVR0PAQH/BAQDAgGG MGAGA1UdJQRZMFcGCCsGAQUFBwMCBggrBgEFBQcDBAYKKwYBBAGCNxQCAgYKKwYBBAGCNwoDBAYJ KwYBBAGCNxUGBgorBgEEAYI3CgMMBggrBgEFBQcDBwYIKwYBBQUHAxEwEgYDVR0TAQH/BAgwBgEB /wIBADAdBgNVHQ4EFgQUljPR5lgXWzR1ioFWZNW+SN6hj88wHwYDVR0jBBgwFoAUj/BLf6guRSSu TVD6Y5qL3uLdG7wwegYIKwYBBQUHAQEEbjBsMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9i YWxzaWduLmNvbS9yb290cjMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5j b20vY2FjZXJ0L3Jvb3QtcjMuY3J0MDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs c2lnbi5jb20vcm9vdC1yMy5jcmwwWgYDVR0gBFMwUTALBgkrBgEEAaAyASgwQgYKKwYBBAGgMgEo CjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAN BgkqhkiG9w0BAQsFAAOCAQEAdAXk/XCnDeAOd9nNEUvWPxblOQ/5o/q6OIeTYvoEvUUi2qHUOtbf jBGdTptFsXXe4RgjVF9b6DuizgYfy+cILmvi5hfk3Iq8MAZsgtW+A/otQsJvK2wRatLE61RbzkX8 9/OXEZ1zT7t/q2RiJqzpvV8NChxIj+P7WTtepPm9AIj0Keue+gS2qvzAZAY34ZZeRHgA7g5O4TPJ /oTd+4rgiU++wLDlcZYd/slFkaT3xg4qWDepEMjT4T1qFOQIL+ijUArYS4owpPg9NISTKa1qqKWJ jFoyms0d0GwOniIIbBvhI2MJ7BSY9MYtWVT5jJO3tsVHwj4cp92CSFuGwunFMzCCA18wggJHoAMC AQICCwQAAAAAASFYUwiiMA0GCSqGSIb3DQEBCwUAMEwxIDAeBgNVBAsTF0dsb2JhbFNpZ24gUm9v dCBDQSAtIFIzMRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTA5 MDMxODEwMDAwMFoXDTI5MDMxODEwMDAwMFowTDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENB IC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMJXaQeQZ4Ihb1wIO2hMoonv0FdhHFrYhy/EYCQ8eyip0E XyTLLkvhYIJG4VKrDIFHcGzdZNHr9SyjD4I9DCuul9e2FIYQebs7E4B3jAjhSdJqYi8fXvqWaN+J J5U4nwbXPsnLJlkNc96wyOkmDoMVxu9bi9IEYMpJpij2aTv2y8gokeWdimFXN6x0FNx04Druci8u nPvQu7/1PQDhBjPogiuuU6Y6FnOM3UEOIDrAtKeh6bJPkC4yYOlXy7kEkmho5TgmYHWyn3f/kRTv riBJ/K1AFUjRAjFhGV64l++td7dkmnq/X8ET75ti+w1s4FRpFqkD2m7pg5NxdsZphYIXAgMBAAGj QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSP8Et/qC5FJK5N UPpjmove4t0bvDANBgkqhkiG9w0BAQsFAAOCAQEAS0DbwFCq/sgM7/eWVEVJu5YACUGssxOGhigH M8pr5nS5ugAtrqQK0/Xx8Q+Kv3NnSoPHRHt44K9ubG8DKY4zOUXDjuS5V2yq/BKW7FPGLeQkbLmU Y/vcU2hnVj6DuM81IcPJaP7O2sJTqsyQiunwXUaMld16WCgaLx3ezQA3QY/tRG3XUyiXfvNnBB4V 14qWtNPeTCekTBtzc3b0F5nCH3oO4y0IrQocLP88q1UOD5F+NuvDV0m+4S4tfGCLw0FREyOdzvcy a5QBqJnnLDMfOjsl0oZAzjsshnjJYS8Uuu7bVW/fhO4FCU29KNhyztNiUGUe65KXgzHZs7XKR1g/ XzCCBUkwggQxoAMCAQICDCPwEotc2kAt96Z1EDANBgkqhkiG9w0BAQsFADBbMQswCQYDVQQGEwJC RTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTExMC8GA1UEAxMoR2xvYmFsU2lnbiBHQ0MgUjMg UGVyc29uYWxTaWduIDIgQ0EgMjAyMDAeFw0yMjA5MTAxMjM5NTBaFw0yNTA5MTAxMjM5NTBaMIGM MQswCQYDVQQGEwJJTjESMBAGA1UECBMJS2FybmF0YWthMRIwEAYDVQQHEwlCYW5nYWxvcmUxFjAU BgNVBAoTDUJyb2FkY29tIEluYy4xFDASBgNVBAMTC0p1c3RpbiBDaGVuMScwJQYJKoZIhvcNAQkB FhhqdXN0aW4uY2hlbkBicm9hZGNvbS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB AQDKX7oyRqaeT81UCy+OTzAUHJeHABD6GDVZu7IJxt8GWSGx+ebFexFz/gnRO/sgwnPzzrC2DwM1 kaDgYe+pI1lMzUZvAB5DfS1qXKNGoeeNv7FoNFlv3iD4bvOykX/K/voKtjS3QNs0EDnwkvETUWWu yiXtMiGENBBJcbGirKuFTT3U/2iPoSL5OeMSEqKLdkNTT9O79KN+Rf7Zi4Duz0LUqqpz9hZl4zGc 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 YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIO1+crPrs31/hglWw9dnzbSWqfd/Qyas2+0Z q2fRNjJbMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNjIy MTQ0MlowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQCTVmpA+QSWQag8WxfQN6DnnxgoehyauSE0K6DRfcnBMnZxtyJ6miSo 5Lf+QOYqUACo+DnQRf0zeL2IlsuUo4EeEswSRU3X2EnpMtFozLoHmjOxRilsCuxc5Zkjm9SzVz88 /ZSgnpRMI6Q4R4JMd7K7ImkrwOD/m24bd0Mq5MeeHGx4CDEWmy6LLxX6alCBPs+MAd+lnpSducoE jJ1bzt5TdsedOe1r5GJoX2KnQAa/JD+X5WhTp6UvbeAoEhh6k/5tFd3/rJgnpZChe5YdbwP8rZOd zUa75QhTiX3WVYsI4d9oPHFgqV3KycgTi80Q8jWpNGZOdFO9etwBlDNgiAX1 --000000000000fac19805fe468263-- From nobody Sat Feb 7 19:41:04 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 151FEEB64DA for ; Fri, 16 Jun 2023 22:15:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345943AbjFPWPf (ORCPT ); Fri, 16 Jun 2023 18:15:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54578 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345668AbjFPWPC (ORCPT ); Fri, 16 Jun 2023 18:15:02 -0400 Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com [IPv6:2607:f8b0:4864:20::629]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 58FB23C22 for ; Fri, 16 Jun 2023 15:14:44 -0700 (PDT) Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-1b517ee9157so8654055ad.3 for ; Fri, 16 Jun 2023 15:14:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686953683; x=1689545683; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=JGI36TfAMbHppwGcmyn/F9ivlJvVAyDDQcZEGdAG8EA=; b=FhPhOF3H0OdGveTnzdZOBU9eRuh40fYlkE147Bs41PXA0b23nZUMCohxKOUUx+1T9Q evaX+OGoz3piNRL10iRRC/sAx4pTWKHaRYyM2FY1qAMlKvTM5FVG7/1Oc/9qWks8aAF6 x3Dm7ygTtprCwSTHmnPy7ixsMwkJv0cUhHIl0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686953683; x=1689545683; 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=JGI36TfAMbHppwGcmyn/F9ivlJvVAyDDQcZEGdAG8EA=; b=TvAYfTSmFaZToqcim0OZYU6IodkYIjIQORcLViOjwuEBNbNc/iq5nP4Y8xVGSTs5vB OSJIDHlaUiH2TLaZY0ooS7RoJDHGwz3xyiaNBzVekdvR3lnASelRktfOKb/UOXXEe8zR ZQHc9E3Fo169ODm7Cp/0NYZRnFEtdOxHHOcwoWGB74JpsVRxihio0weqRvokAsTA9A+H Up0CiXDt/5gOeNJrCNq+gfz7QShV2UayNDJ/6ES96CghuBQMQ4AyFLND+fvh28umPPRV 1A1UG69QbuEujQrqr+IrMAFOR11cVuN4PaDjImbVznXXYmpN+zseXOMLdD2tnb6KhDmm OPHg== X-Gm-Message-State: AC+VfDyM4/c9l4CM30coSxHELiuqYu1ZTi/iAQxkaxvWrUZzYYh8M/Id 6SjvbE97yt5+pYGNKW9oCooaQw== X-Google-Smtp-Source: ACHHUZ77u5VHB0u0DFSQt7WK8dxMR9hEYcsd+r1L9BQUi8qb1YB1XF55uP1jscdppXTdIgavyfjk7g== X-Received: by 2002:a17:903:442:b0:1b1:d39e:28bb with SMTP id iw2-20020a170903044200b001b1d39e28bbmr2426746plb.34.1686953683626; Fri, 16 Jun 2023 15:14:43 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id f12-20020a170902ab8c00b001aaed524541sm16220860plr.227.2023.06.16.15.14.41 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Jun 2023 15:14: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 v8 06/11] net: bcmasp: Add support for eee mode Date: Fri, 16 Jun 2023 15:14:19 -0700 Message-Id: <1686953664-17498-7-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> References: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000001593c205fe4683d8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --0000000000001593c205fe4683d8 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIGVlZSBtb2RlLgoKU2lnbmVkLW9mZi1ieTogSnVzdGluIENoZW4gPGp1 c3Rpbi5jaGVuQGJyb2FkY29tLmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9hc3AyL2JjbWFzcC5oICAgICAgICB8ICA0ICsrCiAuLi4vbmV0L2V0aGVybmV0L2Jyb2FkY29t L2FzcDIvYmNtYXNwX2V0aHRvb2wuYyAgICB8IDYxICsrKysrKysrKysrKysrKysrKz0KKysrKwog ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zi5jICAgfCAgNiAr KysKIDMgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmggYi9kcml2ZXJzL25ldC9ldGhl PQpybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmgKaW5kZXggZTc5MWI4NjkwMDZlLi5kNjc0MDA3 Nzg3N2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNt 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 ZGNvbS9hc3AyL2JjbWFzcF9pbnRmLmMKaW5kZXggZTIyMWYwN2JmNzQzLi4yYzhhOWQ1NzExZGUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2lu dGYuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRm LmMKQEAgLTY1Myw2ICs2NTMsOSBAQCBzdGF0aWMgdm9pZCBiY21hc3BfYWRqX2xpbmsoc3RydWN0 IG5ldF9kZXZpY2UgKmRldikKIAkJCVVNQ19DTURfVFhfUEFVU0VfSUdOT1JFKTsKIAkJcmVnIHw9 M0QgY21kX2JpdHM7CiAJCXVtYWNfd2woaW50ZiwgcmVnLCBVTUNfQ01EKTsKKworCQlpbnRmLT5l ZWUuZWVlX2FjdGl2ZSA9M0QgcGh5X2luaXRfZWVlKHBoeWRldiwgMCkgPj0zRCAwOworCQliY21h c3BfZWVlX2VuYWJsZV9zZXQoaW50ZiwgaW50Zi0+ZWVlLmVlZV9hY3RpdmUpOwogCX0KPTIwCiAJ cmVnID0zRCByZ21paV9ybChpbnRmLCBSR01JSV9PT0JfQ05UUkwpOwpAQCAtMTQwMyw2ICsxNDA2 LDkgQEAgaW50IGJjbWFzcF9pbnRlcmZhY2VfcmVzdW1lKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50 ZikKPTIwCiAJYmNtYXNwX3Jlc3VtZV9mcm9tX3dvbChpbnRmKTsKPTIwCisJaWYgKGludGYtPmVl ZS5lZWVfZW5hYmxlZCkKKwkJYmNtYXNwX2VlZV9lbmFibGVfc2V0KGludGYsIHRydWUpOworCiAJ bmV0aWZfZGV2aWNlX2F0dGFjaChkZXYpOwo9MjAKIAlyZXR1cm4gMDsKLS09MjAKMi43LjQK --0000000000001593c205fe4683d8 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 YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIOi8JH/EUtf9LamFHvRPEWh/NQSXWF8NHRUc wUeL6GriMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNjIy MTQ0M1owaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQBysdwBkzBIYhKw5W9N4QMw9gLzdgPWtXWxF81y+2QYX6LEaxg8QtqN MhcUixwSg7cAYXAmAnUTqql48Wkypx3Kj5439jmSrmduFPIDNKTTSu+XR2O22BOPzjICVpXo5Q/A GloJy0EVU4Uw1DQ2G1cBAvQ5vL2axbCjmcokz0Akr8UYrcFgcTv1Axj1h0TSSc2uPr5asY66U503 xPVW40KG4M0/phILSJ8iWLT1GVotLCbl4Kg9vwapvzVs4/3xT674Vo+RJHD0OOGkHm5d9z7dioAJ rwa/4xPH44RdZ7wUolPLMb5lO6oh7TLyB23MaoJs0yyBvGycapMnOu/4xT01 --0000000000001593c205fe4683d8-- From nobody Sat Feb 7 19:41:04 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 5E017EB64D7 for ; Fri, 16 Jun 2023 22:15:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345964AbjFPWPk (ORCPT ); Fri, 16 Jun 2023 18:15:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54564 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345932AbjFPWP1 (ORCPT ); Fri, 16 Jun 2023 18:15:27 -0400 Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com [IPv6:2607:f8b0:4864:20::631]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4D0113C2F for ; Fri, 16 Jun 2023 15:14:46 -0700 (PDT) Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-1b3d44e3d1cso10276605ad.0 for ; Fri, 16 Jun 2023 15:14:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686953685; x=1689545685; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=6wv8HZPX/utpDVRk+HpSJ3y2ITtMtFp8ot2V80Rcek8=; b=dxXCosjHW43Uk5ya9K+1iHeGNjEDcI8LyCHIgrV+YH/yIUDKjrFjxZq4RjzKMvuA8A 77zqOCvnANhDKDqMvQR6htzhmn5tGhCshLhcnUCIaMfv2SdGmOxQsEA+8QnYqD/yf/nl zPmmTsnslle5yfmJXeljtA+8pgG3bY+gAwEVY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686953685; x=1689545685; 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=6wv8HZPX/utpDVRk+HpSJ3y2ITtMtFp8ot2V80Rcek8=; b=Lz3NiCCzkyRGRhfX+Xy27E5ZpOORrDkLDzDgq8Erl2iVMSDQZb0ZMD1QyHaS/JpIBD mc+2QZKFK9OxJc4ljVP17jid5bGq/OJrVfHkfKNG3O/TJ65GVrFYBMuJ8nT3SjGTIqRx gB1CUiJLsPMjH+8+Tj4GTNTaa0N4RbDHS/dY4k0SxbHP3HRlvvyKC5zT9kv7e/GgRza4 himt7x37UW+JVedbrgS4d+Ti6faBXL40mpNj7LESg9Ie4eS5vth1rstdnrpBPYchyZCv 0tReqFoSMzmm6ud39og7COJ7Pw+i2kAozY1nPjslQmTxKFI5Ume3i89ZK2bn1bp0ZJSP u0kw== X-Gm-Message-State: AC+VfDyOVV7863aoWEwEB0h3kFYg9r0QGQDuD3A8dfu4SkwRghVVBgO1 9mwjijgtHF0/IxOjOTzrihAXLg== X-Google-Smtp-Source: ACHHUZ5XIYSIBq9rkgks+qnbMwTiWrZUa5cnP+lPvKV8P8/k52wZYMxNGj97vhqdiRlZxKsr5/E9Ew== X-Received: by 2002:a17:902:e810:b0:1ad:f407:37d2 with SMTP id u16-20020a170902e81000b001adf40737d2mr4077370plg.5.1686953685567; Fri, 16 Jun 2023 15:14:45 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id f12-20020a170902ab8c00b001aaed524541sm16220860plr.227.2023.06.16.15.14.43 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Jun 2023 15:14:45 -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 v8 07/11] net: bcmasp: Add support for ethtool standard stats Date: Fri, 16 Jun 2023 15:14:20 -0700 Message-Id: <1686953664-17498-8-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> References: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000328af905fe4683ed" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --000000000000328af905fe4683ed 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= --000000000000328af905fe4683ed Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIIQagYJKoZIhvcNAQcCoIIQWzCCEFcCAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0BBwGg gg3BMIIFDTCCA/WgAwIBAgIQeEqpED+lv77edQixNJMdADANBgkqhkiG9w0BAQsFADBMMSAwHgYD VQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UE AxMKR2xvYmFsU2lnbjAeFw0yMDA5MTYwMDAwMDBaFw0yODA5MTYwMDAwMDBaMFsxCzAJBgNVBAYT AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhHbG9iYWxTaWduIEdDQyBS MyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA vbCmXCcsbZ/a0fRIQMBxp4gJnnyeneFYpEtNydrZZ+GeKSMdHiDgXD1UnRSIudKo+moQ6YlCOu4t rVWO/EiXfYnK7zeop26ry1RpKtogB7/O115zultAz64ydQYLe+a1e/czkALg3sgTcOOcFZTXk38e aqsXsipoX1vsNurqPtnC27TWsA7pk4uKXscFjkeUE8JZu9BDKaswZygxBOPBQBwrA5+20Wxlk6k1 e6EKaaNaNZUy30q3ArEf30ZDpXyfCtiXnupjSK8WU2cK4qsEtj09JS4+mhi0CTCrCnXAzum3tgcH cHRg0prcSzzEUDQWoFxyuqwiwhHu3sPQNmFOMwIDAQABo4IB2jCCAdYwDgYDVR0PAQH/BAQDAgGG MGAGA1UdJQRZMFcGCCsGAQUFBwMCBggrBgEFBQcDBAYKKwYBBAGCNxQCAgYKKwYBBAGCNwoDBAYJ KwYBBAGCNxUGBgorBgEEAYI3CgMMBggrBgEFBQcDBwYIKwYBBQUHAxEwEgYDVR0TAQH/BAgwBgEB /wIBADAdBgNVHQ4EFgQUljPR5lgXWzR1ioFWZNW+SN6hj88wHwYDVR0jBBgwFoAUj/BLf6guRSSu TVD6Y5qL3uLdG7wwegYIKwYBBQUHAQEEbjBsMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9i YWxzaWduLmNvbS9yb290cjMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5j b20vY2FjZXJ0L3Jvb3QtcjMuY3J0MDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs c2lnbi5jb20vcm9vdC1yMy5jcmwwWgYDVR0gBFMwUTALBgkrBgEEAaAyASgwQgYKKwYBBAGgMgEo CjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAN BgkqhkiG9w0BAQsFAAOCAQEAdAXk/XCnDeAOd9nNEUvWPxblOQ/5o/q6OIeTYvoEvUUi2qHUOtbf jBGdTptFsXXe4RgjVF9b6DuizgYfy+cILmvi5hfk3Iq8MAZsgtW+A/otQsJvK2wRatLE61RbzkX8 9/OXEZ1zT7t/q2RiJqzpvV8NChxIj+P7WTtepPm9AIj0Keue+gS2qvzAZAY34ZZeRHgA7g5O4TPJ /oTd+4rgiU++wLDlcZYd/slFkaT3xg4qWDepEMjT4T1qFOQIL+ijUArYS4owpPg9NISTKa1qqKWJ jFoyms0d0GwOniIIbBvhI2MJ7BSY9MYtWVT5jJO3tsVHwj4cp92CSFuGwunFMzCCA18wggJHoAMC AQICCwQAAAAAASFYUwiiMA0GCSqGSIb3DQEBCwUAMEwxIDAeBgNVBAsTF0dsb2JhbFNpZ24gUm9v dCBDQSAtIFIzMRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTA5 MDMxODEwMDAwMFoXDTI5MDMxODEwMDAwMFowTDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENB IC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMJXaQeQZ4Ihb1wIO2hMoonv0FdhHFrYhy/EYCQ8eyip0E XyTLLkvhYIJG4VKrDIFHcGzdZNHr9SyjD4I9DCuul9e2FIYQebs7E4B3jAjhSdJqYi8fXvqWaN+J J5U4nwbXPsnLJlkNc96wyOkmDoMVxu9bi9IEYMpJpij2aTv2y8gokeWdimFXN6x0FNx04Druci8u nPvQu7/1PQDhBjPogiuuU6Y6FnOM3UEOIDrAtKeh6bJPkC4yYOlXy7kEkmho5TgmYHWyn3f/kRTv riBJ/K1AFUjRAjFhGV64l++td7dkmnq/X8ET75ti+w1s4FRpFqkD2m7pg5NxdsZphYIXAgMBAAGj QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSP8Et/qC5FJK5N UPpjmove4t0bvDANBgkqhkiG9w0BAQsFAAOCAQEAS0DbwFCq/sgM7/eWVEVJu5YACUGssxOGhigH M8pr5nS5ugAtrqQK0/Xx8Q+Kv3NnSoPHRHt44K9ubG8DKY4zOUXDjuS5V2yq/BKW7FPGLeQkbLmU Y/vcU2hnVj6DuM81IcPJaP7O2sJTqsyQiunwXUaMld16WCgaLx3ezQA3QY/tRG3XUyiXfvNnBB4V 14qWtNPeTCekTBtzc3b0F5nCH3oO4y0IrQocLP88q1UOD5F+NuvDV0m+4S4tfGCLw0FREyOdzvcy a5QBqJnnLDMfOjsl0oZAzjsshnjJYS8Uuu7bVW/fhO4FCU29KNhyztNiUGUe65KXgzHZs7XKR1g/ XzCCBUkwggQxoAMCAQICDCPwEotc2kAt96Z1EDANBgkqhkiG9w0BAQsFADBbMQswCQYDVQQGEwJC RTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTExMC8GA1UEAxMoR2xvYmFsU2lnbiBHQ0MgUjMg UGVyc29uYWxTaWduIDIgQ0EgMjAyMDAeFw0yMjA5MTAxMjM5NTBaFw0yNTA5MTAxMjM5NTBaMIGM MQswCQYDVQQGEwJJTjESMBAGA1UECBMJS2FybmF0YWthMRIwEAYDVQQHEwlCYW5nYWxvcmUxFjAU BgNVBAoTDUJyb2FkY29tIEluYy4xFDASBgNVBAMTC0p1c3RpbiBDaGVuMScwJQYJKoZIhvcNAQkB FhhqdXN0aW4uY2hlbkBicm9hZGNvbS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB AQDKX7oyRqaeT81UCy+OTzAUHJeHABD6GDVZu7IJxt8GWSGx+ebFexFz/gnRO/sgwnPzzrC2DwM1 kaDgYe+pI1lMzUZvAB5DfS1qXKNGoeeNv7FoNFlv3iD4bvOykX/K/voKtjS3QNs0EDnwkvETUWWu yiXtMiGENBBJcbGirKuFTT3U/2iPoSL5OeMSEqKLdkNTT9O79KN+Rf7Zi4Duz0LUqqpz9hZl4zGc 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 0owaEGCuMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNjIy MTQ0NVowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQCeMUxHy/IhYdyRmgrQaWifzsxhkWW8eaG80kUCdpTc1/FfRBavkzef BMkzN4sgRu83TDlYrppdFu5cIhBa1/t1YyD3ij1eYTSYiw9Uo+RRh71zyPrqm62K2SiwpDB4MMX8 fIz9458yper/SjHEEvImJZwQgMafgUJk9CPvhdFp9gsydtjvN7dJg7mZ7LlNz/L6AHbo5pm0I+rT /HC6u992YXJc4h/kBNvFw1qDx6qqa4gTuCUg8sCfP7A4Xiu2sN4dV12In+C/Xw5t8A2fqtPnhAbT Pf6nNzMhS3jLUDSR71c1GkUAXlZn365k0OvENBluLrb14KZQ1VR9b7xCk8+x --000000000000328af905fe4683ed-- From nobody Sat Feb 7 19:41:04 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 F2EA9EB64D7 for ; Fri, 16 Jun 2023 22:15:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346156AbjFPWP5 (ORCPT ); Fri, 16 Jun 2023 18:15:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55026 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346024AbjFPWPf (ORCPT ); Fri, 16 Jun 2023 18:15:35 -0400 Received: from mail-pg1-x529.google.com (mail-pg1-x529.google.com [IPv6:2607:f8b0:4864:20::529]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5DD3B3C0D for ; Fri, 16 Jun 2023 15:14:58 -0700 (PDT) Received: by mail-pg1-x529.google.com with SMTP id 41be03b00d2f7-54fbcfe65caso1801571a12.1 for ; Fri, 16 Jun 2023 15:14:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686953687; x=1689545687; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=hA+WqaiGz3+Y75AqAH4KS2VQNw7d1cuU/ifaxS3u0G4=; b=bgzf5DnT81F9XrOTsJ5Lib7DbX3brSN6pJgJX4GYdA5h+sGAM9G+PRw8CcjXWqSX2j o8IDBlmpywudkNgC/iZ6F6ZTAfz00H6rPBeOAbSyKD0z+uq4JfSnEIaEiJ06RrV8LmUw Ey5WdoLvvuNC7oH9Z4cP3JnZeng+SoJAK6WI0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686953687; x=1689545687; 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=hA+WqaiGz3+Y75AqAH4KS2VQNw7d1cuU/ifaxS3u0G4=; b=MkrnFWx9qsOwYUm61eA5p6jL2YMatCPgegAUzbf3shQW2dUbAlPOxGl34L6sgH48VD qoP2s0oTjuM4+vHph/1SBd0ulqOxlxue49wLOzeKzafhDRNhCnqiPZ9oFXYxEIA3O2gO 5blEPb8nAAKnq5iHi4oQ2R2jsPU2BGomcuZ8IK5/SJgWPqUDuNBcNqkhR/hbVkQn3pJQ kpctb77mxc7De4YJOxPEU3RAzS+ZOHbL7iOHXLdLSfJDgDtzcK/k8QkyMWlGhlYC2+yg HVwYDIC4gZKeaiOAwNX8obof4+swYwRnbn7aTgzdXz4+WcirMXIn9QBd+bTFyluYKcq1 J7Ew== X-Gm-Message-State: AC+VfDxZtkUBUuFVEPHoEItHB+x6BLWKumS073C9mEn5zIonhMvGBOll WLcMXXqfZPGb7INCmCH64MgoIQ== X-Google-Smtp-Source: ACHHUZ4AlVlspqqh6xijQ70UUoab/xjCp9+w0eidcODmBKiruGbXHAkMRftVDOKHw13VVWNm9PdIkw== X-Received: by 2002:a17:902:ecd2:b0:1b3:c62d:71b7 with SMTP id a18-20020a170902ecd200b001b3c62d71b7mr4837997plh.18.1686953687521; Fri, 16 Jun 2023 15:14:47 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id f12-20020a170902ab8c00b001aaed524541sm16220860plr.227.2023.06.16.15.14.45 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Jun 2023 15:14:47 -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 v8 08/11] net: bcmasp: Add support for ethtool driver stats Date: Fri, 16 Jun 2023 15:14:21 -0700 Message-Id: <1686953664-17498-9-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> References: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="00000000000050ee8105fe4683d4" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --00000000000050ee8105fe4683d4 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIGV0aGVybmV0IGRyaXZlciBzcGVjaWZpYyBzdGF0cy4KClNpZ25lZC1v ZmYtYnk6IEp1c3RpbiBDaGVuIDxqdXN0aW4uY2hlbkBicm9hZGNvbS5jb20+Ci0tLQp2OAoJLSBB ZGRyZXNzIG1heWJlIHVuaW5pdCB2YXJpYWJsZSB3YXJuaW5nCgogZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYXNwMi9iY21hc3AuYyAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmggICAgICAgIHwgIDIxICsrKwogLi4uL25ldC9l dGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29sLmMgICAgfCAxNjAgKysrKysrKysr KysrKysrKys9CisrKysKIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNw X2ludGYuYyAgIHwgIDE3ICsrLQogNCBmaWxlcyBjaGFuZ2VkLCAxOTggaW5zZXJ0aW9ucygrKSwg NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9hc3AyL2JjbWFzcC5jIGIvZHJpdmVycy9uZXQvZXRoZT0Kcm5ldC9icm9hZGNvbS9hc3AyL2Jj bWFzcC5jCmluZGV4IDUxYjdhYTgzNjVjOC4uYTg5MDVmZWY0ZjhhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5jCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMKQEAgLTg5MCw4ICs4OTAsMTAgQEAgaW50 IGJjbWFzcF9zZXRfZW5fbWRhX2ZpbHRlcihzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsPQogdW5z aWduZWQgY2hhciAqYWRkciwKPTIwCiAJCS8qIEF0dGVtcHQgdG8gY29tYmluZSBmaWx0ZXJzICov CiAJCXJldCA9M0QgYmNtYXNwX2NvbWJpbmVfc2V0X2ZpbHRlcihpbnRmLCBhZGRyLCBtYXNrLCBp KTsKLQkJaWYgKCFyZXQpCisJCWlmICghcmV0KSB7CisJCQlpbnRmLT5taWIuZmlsdGVyc19jb21i aW5lX2NudCsrOwogCQkJcmV0dXJuIDA7CisJCX0KIAl9Cj0yMAogCS8qIENyZWF0ZSBuZXcgZmls dGVyIGlmIHBvc3NpYmxlICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9h ZGNvbS9hc3AyL2JjbWFzcC5oIGIvZHJpdmVycy9uZXQvZXRoZT0Kcm5ldC9icm9hZGNvbS9hc3Ay L2JjbWFzcC5oCmluZGV4IGQ2NzQwMDc3ODc3YS4uMWQ1YzNiZTU3NWQ3IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5oCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmgKQEAgLTI0NSw2ICsyNDUsMjYgQEAg c3RydWN0IGJjbWFzcF9pbnRmX3N0YXRzNjQgewogCXN0cnVjdCB1NjRfc3RhdHNfc3luYwkJc3lu Y3A7CiB9Owo9MjAKK3N0cnVjdCBiY21hc3BfbWliX2NvdW50ZXJzIHsKKwl1MzIJZWRwa3RfdHM7 CisJdTMyCWVkcGt0X3J4X3BrdF9jbnQ7CisJdTMyCWVkcGt0X2hkcl9leHRfY250OworCXUzMgll ZHBrdF9oZHJfb3V0X2NudDsKKwl1MzIJdW1hY19mcm1fY250OworCXUzMglmYl9mcm1fY250Owor CXUzMglmYl9yeF9maWZvX2RlcHRoOworCXUzMglmYl9vdXRfZnJtX2NudDsKKwl1MzIJZmJfZmls dF9vdXRfZnJtX2NudDsKKwl1MzIJYWxsb2Nfcnhfc2tiX2ZhaWxlZDsKKwl1MzIJdHhfZG1hX2Zh aWxlZDsKKwl1MzIJbWNfZmlsdGVyc19mdWxsX2NudDsKKwl1MzIJdWNfZmlsdGVyc19mdWxsX2Nu dDsKKwl1MzIJZmlsdGVyc19jb21iaW5lX2NudDsKKwl1MzIJcHJvbWlzY19maWx0ZXJzX2NudDsK Kwl1MzIJdHhfcmVhbGxvY19vZmZsb2FkX2ZhaWxlZDsKKwl1MzIJdHhfcmVhbGxvY19vZmZsb2Fk OworfTsKKwogc3RydWN0IGJjbWFzcF9pbnRmX29wcyB7CiAJdW5zaWduZWQgbG9uZyAoKnJ4X2Rl c2NfcmVhZCkoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmKTsKIAl2b2lkICgqcnhfYnVmZmVyX3dy aXRlKShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsIGRtYV9hZGRyX3QgYWRkcik7CkBAIC0zMDcs NiArMzI3LDcgQEAgc3RydWN0IGJjbWFzcF9pbnRmIHsKPTIwCiAJLyogU3RhdGlzdGljcyAqLwog CXN0cnVjdCBiY21hc3BfaW50Zl9zdGF0czY0CXN0YXRzNjQ7CisJc3RydWN0IGJjbWFzcF9taWJf Y291bnRlcnMJbWliOwo9MjAKIAl1MzIJCQl3b2xvcHRzOwogCXU4CQkJc29wYXNzW1NPUEFTU19N QVhdOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21h c3BfZXRodG9vbC5jIGIvZHJpdmVycy89Cm5ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFz cF9ldGh0b29sLmMKaW5kZXggNTlkODUzYzIyOTNjLi44MWE4NGJhN2EzOTQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2V0aHRvb2wuYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29sLmMKQEAg LTEsNiArMSw3IEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogI2RlZmlu ZSBwcl9mbXQoZm10KQkJCQkiYmNtYXNwX2V0aHRvb2w6ICIgZm10Cj0yMAorI2luY2x1ZGUgPGFz bS1nZW5lcmljL3VuYWxpZ25lZC5oPgogI2luY2x1ZGUgPGxpbnV4L2V0aHRvb2wuaD4KICNpbmNs dWRlIDxsaW51eC9uZXRkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2Uu aD4KQEAgLTgsNiArOSwxNjIgQEAKICNpbmNsdWRlICJiY21hc3AuaCIKICNpbmNsdWRlICJiY21h c3BfaW50Zl9kZWZzLmgiCj0yMAorZW51bSBiY21hc3Bfc3RhdF90eXBlIHsKKwlCQ01BU1BfU1RB VF9SWF9FRFBLVCwKKwlCQ01BU1BfU1RBVF9SWF9DVFJMLAorCUJDTUFTUF9TVEFUX1JYX0NUUkxf UEVSX0lOVEYsCisJQkNNQVNQX1NUQVRfU09GVCwKK307CisKK3N0cnVjdCBiY21hc3Bfc3RhdHMg eworCWNoYXIgc3RhdF9zdHJpbmdbRVRIX0dTVFJJTkdfTEVOXTsKKwllbnVtIGJjbWFzcF9zdGF0 X3R5cGUgdHlwZTsKKwl1MzIgcmVnX29mZnNldDsKK307CisKKyNkZWZpbmUgU1RBVF9CQ01BU1Bf U09GVF9NSUIoc3RyKSB7IFwKKwkuc3RhdF9zdHJpbmcgPTNEIHN0ciwgXAorCS50eXBlID0zRCBC Q01BU1BfU1RBVF9TT0ZULCBcCit9CisKKyNkZWZpbmUgU1RBVF9CQ01BU1BfT0ZGU0VUKHN0ciwg X3R5cGUsIG9mZnNldCkgeyBcCisJLnN0YXRfc3RyaW5nID0zRCBzdHIsIFwKKwkudHlwZSA9M0Qg X3R5cGUsIFwKKwkucmVnX29mZnNldCA9M0Qgb2Zmc2V0LCBcCit9CisKKyNkZWZpbmUgU1RBVF9C Q01BU1BfUlhfRURQS1Qoc3RyLCBvZmZzZXQpIFwKKwlTVEFUX0JDTUFTUF9PRkZTRVQoc3RyLCBC Q01BU1BfU1RBVF9SWF9FRFBLVCwgb2Zmc2V0KQorI2RlZmluZSBTVEFUX0JDTUFTUF9SWF9DVFJM KHN0ciwgb2Zmc2V0KSBcCisJU1RBVF9CQ01BU1BfT0ZGU0VUKHN0ciwgQkNNQVNQX1NUQVRfUlhf Q1RSTCwgb2Zmc2V0KQorI2RlZmluZSBTVEFUX0JDTUFTUF9SWF9DVFJMX1BFUl9JTlRGKHN0ciwg b2Zmc2V0KSBcCisJU1RBVF9CQ01BU1BfT0ZGU0VUKHN0ciwgQkNNQVNQX1NUQVRfUlhfQ1RSTF9Q RVJfSU5URiwgb2Zmc2V0KQorCisvKiBNdXN0IG1hdGNoIHRoZSBvcmRlciBvZiBzdHJ1Y3QgYmNt YXNwX21pYl9jb3VudGVycyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBiY21hc3Bfc3RhdHMgYmNt YXNwX2dzdHJpbmdzX3N0YXRzW10gPTNEIHsKKwkvKiBFRFBLVCBjb3VudGVycyAqLworCVNUQVRf QkNNQVNQX1JYX0VEUEtUKCJSWCBUaW1lIFN0YW1wIiwgQVNQX0VEUEtUX1JYX1RTX0NPVU5URVIp LAorCVNUQVRfQkNNQVNQX1JYX0VEUEtUKCJSWCBQS1QgQ291bnQiLCBBU1BfRURQS1RfUlhfUEtU X0NOVCksCisJU1RBVF9CQ01BU1BfUlhfRURQS1QoIlJYIFBLVCBCdWZmZXJlZCIsIEFTUF9FRFBL VF9IRFJfRVhUUl9DTlQpLAorCVNUQVRfQkNNQVNQX1JYX0VEUEtUKCJSWCBQS1QgUHVzaGVkIHRv IERSQU0iLCBBU1BfRURQS1RfSERSX09VVF9DTlQpLAorCS8qIEFTUCBSWCBjb250cm9sICovCisJ U1RBVF9CQ01BU1BfUlhfQ1RSTF9QRVJfSU5URigiRnJhbWVzIEZyb20gVW5pbWFjIiwKKwkJCQkg ICAgIEFTUF9SWF9DVFJMX1VNQUNfMF9GUkFNRV9DT1VOVCksCisJU1RBVF9CQ01BU1BfUlhfQ1RS TF9QRVJfSU5URigiRnJhbWVzIEZyb20gUG9ydCIsCisJCQkJICAgICBBU1BfUlhfQ1RSTF9GQl8w X0ZSQU1FX0NPVU5UKSwKKwlTVEFUX0JDTUFTUF9SWF9DVFJMX1BFUl9JTlRGKCJSWCBCdWZmZXIg RklGTyBEZXB0aCIsCisJCQkJICAgICBBU1BfUlhfQ1RSTF9GQl9SWF9GSUZPX0RFUFRIKSwKKwlT VEFUX0JDTUFTUF9SWF9DVFJMKCJGcmFtZXMgT3V0KEJ1ZmZlcikiLAorCQkJICAgIEFTUF9SWF9D VFJMX0ZCX09VVF9GUkFNRV9DT1VOVCksCisJU1RBVF9CQ01BU1BfUlhfQ1RSTCgiRnJhbWVzIE91 dChGaWx0ZXJzKSIsCisJCQkgICAgQVNQX1JYX0NUUkxfRkJfRklMVF9PVVRfRlJBTUVfQ09VTlQp LAorCS8qIFNvZnR3YXJlIG1haW50YWluZWQgc3RhdGlzdGljcyAqLworCVNUQVRfQkNNQVNQX1NP RlRfTUlCKCJSWCBTS0IgQWxsb2MgRmFpbGVkIiksCisJU1RBVF9CQ01BU1BfU09GVF9NSUIoIlRY IERNQSBGYWlsZWQiKSwKKwlTVEFUX0JDTUFTUF9TT0ZUX01JQigiTXVsdGljYXN0IEZpbHRlcnMg RnVsbCIpLAorCVNUQVRfQkNNQVNQX1NPRlRfTUlCKCJVbmljYXN0IEZpbHRlcnMgRnVsbCIpLAor CVNUQVRfQkNNQVNQX1NPRlRfTUlCKCJNREEgRmlsdGVycyBDb21iaW5lZCIpLAorCVNUQVRfQkNN QVNQX1NPRlRfTUlCKCJQcm9taXNjIEZpbHRlciBTZXQiKSwKKwlTVEFUX0JDTUFTUF9TT0ZUX01J QigiVFggUmVhbGxvYyBGb3IgT2ZmbG9hZCBGYWlsZWQiKSwKKwlTVEFUX0JDTUFTUF9TT0ZUX01J QigiVHggUmVhbGxvYyBGb3IgT2ZmbG9hZCIpLAorfTsKKworI2RlZmluZSBCQ01BU1BfU1RBVFNf TEVOCUFSUkFZX1NJWkUoYmNtYXNwX2dzdHJpbmdzX3N0YXRzKQorCitzdGF0aWMgdTE2IGJjbWFz cF9zdGF0X2ZpeHVwX29mZnNldChzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYsCisJCQkJICAgIGNv bnN0IHN0cnVjdCBiY21hc3Bfc3RhdHMgKnMpCit7CisJc3RydWN0IGJjbWFzcF9wcml2ICpwcml2 ID0zRCBpbnRmLT5wYXJlbnQ7CisKKwlpZiAoIXN0cmNtcCgiRnJhbWVzIE91dChCdWZmZXIpIiwg cy0+c3RhdF9zdHJpbmcpKQorCQlyZXR1cm4gcHJpdi0+aHdfaW5mby0+cnhfY3RybF9mYl9vdXRf ZnJhbWVfY291bnQ7CisKKwlpZiAoIXN0cmNtcCgiRnJhbWVzIE91dChGaWx0ZXJzKSIsIHMtPnN0 YXRfc3RyaW5nKSkKKwkJcmV0dXJuIHByaXYtPmh3X2luZm8tPnJ4X2N0cmxfZmJfZmlsdF9vdXRf ZnJhbWVfY291bnQ7CisKKwlpZiAoIXN0cmNtcCgiUlggQnVmZmVyIEZJRk8gRGVwdGgiLCBzLT5z dGF0X3N0cmluZykpCisJCXJldHVybiBwcml2LT5od19pbmZvLT5yeF9jdHJsX2ZiX3J4X2ZpZm9f ZGVwdGg7CisKKwlyZXR1cm4gcy0+cmVnX29mZnNldDsKK30KKworc3RhdGljIGludCBiY21hc3Bf Z2V0X3NzZXRfY291bnQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHN0cmluZ19zZXQpCit7 CisJc3dpdGNoIChzdHJpbmdfc2V0KSB7CisJY2FzZSBFVEhfU1NfU1RBVFM6CisJCXJldHVybiBC Q01BU1BfU1RBVFNfTEVOOworCWRlZmF1bHQ6CisJCXJldHVybiAtRU9QTk9UU1VQUDsKKwl9Cit9 CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9nZXRfc3RyaW5ncyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 LCB1MzIgc3RyaW5nc2V0LAorCQkJICAgICAgIHU4ICpkYXRhKQoreworCWludCBpOworCisJc3dp dGNoIChzdHJpbmdzZXQpIHsKKwljYXNlIEVUSF9TU19TVEFUUzoKKwkJZm9yIChpID0zRCAwOyBp IDwgQkNNQVNQX1NUQVRTX0xFTjsgaSsrKSB7CisJCQltZW1jcHkoZGF0YSArIGkgKiBFVEhfR1NU UklOR19MRU4sCisJCQkgICAgICAgYmNtYXNwX2dzdHJpbmdzX3N0YXRzW2ldLnN0YXRfc3RyaW5n LAorCQkJICAgICAgIEVUSF9HU1RSSU5HX0xFTik7CisJCX0KKwkJYnJlYWs7CisJZGVmYXVsdDoK KwkJcmV0dXJuOworCX0KK30KKworc3RhdGljIHZvaWQgYmNtYXNwX3VwZGF0ZV9taWJfY291bnRl cnMoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmKQoreworCWludCBpOworCisJZm9yIChpID0zRCAw OyBpIDwgQkNNQVNQX1NUQVRTX0xFTjsgaSsrKSB7CisJCWNvbnN0IHN0cnVjdCBiY21hc3Bfc3Rh dHMgKnM7CisJCXUzMiBvZmZzZXQsIHZhbDsKKwkJY2hhciAqcDsKKworCQlzID0zRCAmYmNtYXNw X2dzdHJpbmdzX3N0YXRzW2ldOworCQlvZmZzZXQgPTNEIGJjbWFzcF9zdGF0X2ZpeHVwX29mZnNl dChpbnRmLCBzKTsKKwkJc3dpdGNoIChzLT50eXBlKSB7CisJCWNhc2UgQkNNQVNQX1NUQVRfU09G VDoKKwkJCWNvbnRpbnVlOworCQljYXNlIEJDTUFTUF9TVEFUX1JYX0VEUEtUOgorCQkJdmFsID0z RCByeF9lZHBrdF9jb3JlX3JsKGludGYtPnBhcmVudCwgb2Zmc2V0KTsKKwkJCWJyZWFrOworCQlj YXNlIEJDTUFTUF9TVEFUX1JYX0NUUkw6CisJCQl2YWwgPTNEIHJ4X2N0cmxfY29yZV9ybChpbnRm LT5wYXJlbnQsIG9mZnNldCk7CisJCQlicmVhazsKKwkJY2FzZSBCQ01BU1BfU1RBVF9SWF9DVFJM X1BFUl9JTlRGOgorCQkJb2Zmc2V0ICs9M0Qgc2l6ZW9mKHUzMikgKiBpbnRmLT5wb3J0OworCQkJ dmFsID0zRCByeF9jdHJsX2NvcmVfcmwoaW50Zi0+cGFyZW50LCBvZmZzZXQpOworCQkJYnJlYWs7 CisJCWRlZmF1bHQ6CisJCQljb250aW51ZTsKKwkJfQorCQlwID0zRCAoY2hhciAqKSgmaW50Zi0+ bWliKSArIChpICogc2l6ZW9mKHUzMikpOworCQlwdXRfdW5hbGlnbmVkKHZhbCwgKHUzMiAqKXAp OworCX0KK30KKworc3RhdGljIHZvaWQgYmNtYXNwX2dldF9ldGh0b29sX3N0YXRzKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsCisJCQkJICAgICBzdHJ1Y3QgZXRodG9vbF9zdGF0cyAqc3RhdHMsCisJ CQkJICAgICB1NjQgKmRhdGEpCit7CisJc3RydWN0IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRk ZXZfcHJpdihkZXYpOworCWNoYXIgKnA7CisJaW50IGk7CisKKwlpZiAobmV0aWZfcnVubmluZyhk ZXYpKQorCQliY21hc3BfdXBkYXRlX21pYl9jb3VudGVycyhpbnRmKTsKKworCWZvciAoaSA9M0Qg MDsgaSA8IEJDTUFTUF9TVEFUU19MRU47IGkrKykgeworCQlwID0zRCAoY2hhciAqKSgmaW50Zi0+ bWliKSArIChpICogc2l6ZW9mKHUzMikpOworCQlkYXRhW2ldID0zRCAqKHUzMiAqKXA7CisJfQor fQorCiBzdGF0aWMgdm9pZCBiY21hc3BfZ2V0X2RydmluZm8oc3RydWN0IG5ldF9kZXZpY2UgKmRl diwKIAkJCSAgICAgICBzdHJ1Y3QgZXRodG9vbF9kcnZpbmZvICppbmZvKQogewpAQCAtMzQwLDQg KzQ5Nyw3IEBAIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBiY21hc3BfZXRodG9vbF9vcHMgPTNE IHsKIAkuZ2V0X2V0aF9tYWNfc3RhdHMJPTNEIGJjbWFzcF9nZXRfZXRoX21hY19zdGF0cywKIAku Z2V0X3Jtb25fc3RhdHMJCT0zRCBiY21hc3BfZ2V0X3Jtb25fc3RhdHMsCiAJLmdldF9ldGhfY3Ry bF9zdGF0cwk9M0QgYmNtYXNwX2dldF9ldGhfY3RybF9zdGF0cywKKwkuZ2V0X3N0cmluZ3MJCT0z RCBiY21hc3BfZ2V0X3N0cmluZ3MsCisJLmdldF9ldGh0b29sX3N0YXRzCT0zRCBiY21hc3BfZ2V0 X2V0aHRvb2xfc3RhdHMsCisJLmdldF9zc2V0X2NvdW50CQk9M0QgYmNtYXNwX2dldF9zc2V0X2Nv dW50LAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIv YmNtYXNwX2ludGYuYyBiL2RyaXZlcnMvbmV0PQovZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21h c3BfaW50Zi5jCmluZGV4IDJjOGE5ZDU3MTFkZS4uODJkNDQwMTQ3NWE2IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3BfaW50Zi5jCkBAIC0xMDQsMTUg KzEwNCwxOSBAQCBzdGF0aWMgdm9pZCBiY21hc3Bfc2V0X3J4X21vZGUoc3RydWN0IG5ldF9kZXZp Y2UgKmRldikKPTIwCiAJCW5ldGRldl9mb3JfZWFjaF9tY19hZGRyKGhhLCBkZXYpIHsKIAkJCXJl dCA9M0QgYmNtYXNwX3NldF9lbl9tZGFfZmlsdGVyKGludGYsIGhhLT5hZGRyLCBtYXNrKTsKLQkJ CWlmIChyZXQpCisJCQlpZiAocmV0KSB7CisJCQkJaW50Zi0+bWliLm1jX2ZpbHRlcnNfZnVsbF9j bnQrKzsKIAkJCQlnb3RvIHNldF9wcm9taXNjOworCQkJfQogCQl9CiAJfQo9MjAKIAluZXRkZXZf Zm9yX2VhY2hfdWNfYWRkcihoYSwgZGV2KSB7CiAJCXJldCA9M0QgYmNtYXNwX3NldF9lbl9tZGFf ZmlsdGVyKGludGYsIGhhLT5hZGRyLCBtYXNrKTsKLQkJaWYgKHJldCkKKwkJaWYgKHJldCkgewor CQkJaW50Zi0+bWliLnVjX2ZpbHRlcnNfZnVsbF9jbnQrKzsKIAkJCWdvdG8gc2V0X3Byb21pc2M7 CisJCX0KIAl9Cj0yMAogCXNwaW5fdW5sb2NrX2JoKCZpbnRmLT5wYXJlbnQtPm1kYV9sb2NrKTsK QEAgLTEyMCw2ICsxMjQsNyBAQCBzdGF0aWMgdm9pZCBiY21hc3Bfc2V0X3J4X21vZGUoc3RydWN0 IG5ldF9kZXZpY2UgKmRldikKPTIwCiBzZXRfcHJvbWlzYzoKIAliY21hc3Bfc2V0X3Byb21pc2Mo aW50ZiwgMSk7CisJaW50Zi0+bWliLnByb21pc2NfZmlsdGVyc19jbnQrKzsKPTIwCiAJLyogZGlz YWJsZSBhbGwgZmlsdGVycyB1c2VkIGJ5IHRoaXMgcG9ydCAqLwogCWJjbWFzcF9kaXNhYmxlX2Fs bF9maWx0ZXJzKGludGYpOwpAQCAtMTU1LDYgKzE2MCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVm ZiAqYmNtYXNwX2NzdW1fb2ZmbG9hZChzdHJ1Y3QgbmV0X2Q9CmV2aWNlICpkZXYsCiAJCQkJCSAg IHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJCSAgIGJvb2wgKmNzdW1faHcpCiB7CisJc3RydWN0 IGJjbWFzcF9pbnRmICppbnRmID0zRCBuZXRkZXZfcHJpdihkZXYpOwogCXUzMiBoZWFkZXIgPTNE IDAsIGhlYWRlcjIgPTNEIDAsIGVwa3QgPTNEIDA7CiAJc3RydWN0IGJjbWFzcF9wa3Rfb2ZmbG9h ZCAqb2ZmbG9hZDsKIAl1bnNpZ25lZCBpbnQgaGVhZGVyX2NudCA9M0QgMDsKQEAgLTE2NiwxMSAr MTcyLDE0IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqYmNtYXNwX2NzdW1fb2ZmbG9hZChzdHJ1 Y3QgbmV0PQpfZGV2aWNlICpkZXYsCj0yMAogCWlmICh1bmxpa2VseShza2JfaGVhZHJvb20oc2ti KSA8IHNpemVvZigqb2ZmbG9hZCkpKSB7CiAJCW5ld19za2IgPTNEIHNrYl9yZWFsbG9jX2hlYWRy b29tKHNrYiwgc2l6ZW9mKCpvZmZsb2FkKSk7Ci0JCWlmICghbmV3X3NrYikKKwkJaWYgKCFuZXdf c2tiKSB7CisJCQlpbnRmLT5taWIudHhfcmVhbGxvY19vZmZsb2FkX2ZhaWxlZCsrOwogCQkJZ290 byBoZWxwOworCQl9Cj0yMAogCQlkZXZfY29uc3VtZV9za2JfYW55KHNrYik7CiAJCXNrYiA9M0Qg bmV3X3NrYjsKKwkJaW50Zi0+bWliLnR4X3JlYWxsb2Nfb2ZmbG9hZCsrOwogCX0KPTIwCiAJc3dp dGNoIChza2ItPnByb3RvY29sKSB7CkBAIC0zMDksNiArMzE4LDcgQEAgc3RhdGljIG5ldGRldl90 eF90IGJjbWFzcF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cj0KdWN0IG5ldF9kZXZpY2Ug KmRldikKIAkJfQo9MjAKIAkJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKGtkZXYsIG1hcHBpbmcpKSB7 CisJCQlpbnRmLT5taWIudHhfZG1hX2ZhaWxlZCsrOwogCQkJc3BiX2luZGV4ID0zRCBpbnRmLT50 eF9zcGJfaW5kZXg7CiAJCQlmb3IgKGogPTNEIDA7IGogPCBpOyBqKyspIHsKIAkJCQliY21hc3Bf Y2xlYW5fdHhjYihpbnRmLCBzcGJfaW5kZXgpOwpAQCAtNTQ2LDYgKzU1Niw3IEBAIHN0YXRpYyBp bnQgYmNtYXNwX3J4X3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQ9CiBidWRnZXQp CiAJCQl1NjRfc3RhdHNfaW5jKCZzdGF0cy0+cnhfZXJyb3JzKTsKIAkJCXU2NF9zdGF0c191cGRh dGVfZW5kKCZzdGF0cy0+c3luY3ApOwo9MjAKKwkJCWludGYtPm1pYi5hbGxvY19yeF9za2JfZmFp bGVkKys7CiAJCQluZXRpZl93YXJuKGludGYsIHJ4X2VyciwgaW50Zi0+bmRldiwKIAkJCQkgICAi U0tCIGFsbG9jIGZhaWxlZFxuIik7CiAJCQlnb3RvIG5leHQ7Ci0tPTIwCjIuNy40Cg== --00000000000050ee8105fe4683d4 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 YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIDO0S2b5Iuurek+lcwRCVWdruXx57gu1PUCK BH+a/LPuMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNjIy MTQ0N1owaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQCreOvpdQ2Uw5J66BuB5LeUOHobwr2ijmuYifX+pDGvNmc8QLIDjYo1 JKrJ7iG9LHTY4wNvU3CQJukEZ40LcjgLFuhvJwd/GQXHD0mrwTVJVkNFCrXKNsbaQ8zT3ltoMjQW VO1EAf0j2hnXdeAauT+VacXRWJhLI//J8fbwYrw9cqZsI/4OL0TRD6hP69z5XLIgVoRNkdzjLPKD jg9S3hs2P3nUwjJ7S6yGI8UEPI7zJ/STlTu9QUDBYKAzRvpICxZvKP84Orq+kP5m/AoQIcyM1Oij n0f/mmWn2fATx7n+2J/F9+vA5YbFcTux8tHl5Z3gfHg6trvwbYV01TsrYy5A --00000000000050ee8105fe4683d4-- From nobody Sat Feb 7 19:41:04 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 DFED6EB64DA for ; Fri, 16 Jun 2023 22:16:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346005AbjFPWQL (ORCPT ); Fri, 16 Jun 2023 18:16:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54578 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346101AbjFPWPw (ORCPT ); Fri, 16 Jun 2023 18:15:52 -0400 Received: from mail-pf1-x435.google.com (mail-pf1-x435.google.com [IPv6:2607:f8b0:4864:20::435]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6AA3F4222 for ; Fri, 16 Jun 2023 15:15:12 -0700 (PDT) Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-666edfc50deso213594b3a.0 for ; Fri, 16 Jun 2023 15:15:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686953689; x=1689545689; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=YxsvjCyonQ/RB5yz17au8pXUknvv8kTIfLzvDCWv5a8=; b=RzKoE/9XEdUxVlktrWq80hB6pSTzZLb5Q6om49iHC4Mm4MqDoRFRUpbBZavIopPOqV IjBsNZH13dscLJ0HtU399E9mOm0Uapa+aD556wPe90gxx2TJ82g29GjDDDblrLow8QWn cXS0HykBlFa4ppFz74Id7XgOqLeWoD/1GEy9U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686953689; x=1689545689; 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=YxsvjCyonQ/RB5yz17au8pXUknvv8kTIfLzvDCWv5a8=; b=DiG/R+/arGqvUrhwntv4+h6iWSj+8TF1GMXvQjXrmS7up05gHEmMI3HKMe5yTx9LLa ONtBVSz6xOE3KE7nt5fQ39NFSg8ENA2sR78Jo2Qy/BMFAAW779jIMzW3LrQ2QVuaJw5n cP4hg/L7ulHPK2OwEZNygDKI8Wq+kwUeUJ3re1eqz+v2UUN/2pnUQ1xCcfHYOCnZef7J m1Zxsgev14nARFVvrPuP7DXW/hSNIAbIUmonIEfDWNF+PEaYEGshUfRMehEr2WfhlNi9 XWivDSJQEF88Jr2Dz56pLkMzHfHyjcEXgmpsZ9ycjGGiBrcj0+II67OXlwn/5Pqu18Nq Y/Jw== X-Gm-Message-State: AC+VfDzPF9di2dHrpbWXgyMgK2NFPXvEcff+XRtuuotUPbfjpQsG496J hrGHQzzHg3QduErwHHWnnDj5uw== X-Google-Smtp-Source: ACHHUZ4mrsMpGE8cntBt1WDageArYxG6v4rePyq56ougSTzgUP6uczOcn+YapYIv2lVRstv0mZZDXA== X-Received: by 2002:a17:902:c944:b0:1a2:a904:c42e with SMTP id i4-20020a170902c94400b001a2a904c42emr4853810pla.24.1686953689510; Fri, 16 Jun 2023 15:14:49 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id f12-20020a170902ab8c00b001aaed524541sm16220860plr.227.2023.06.16.15.14.47 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Jun 2023 15:14:49 -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 v8 09/11] net: phy: mdio-bcm-unimac: Add asp v2.0 support Date: Fri, 16 Jun 2023 15:14:22 -0700 Message-Id: <1686953664-17498-10-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> References: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000006e6a5b05fe468371" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --0000000000006e6a5b05fe468371 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= --0000000000006e6a5b05fe468371 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/t8bKFNMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNjIy MTQ0OVowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQAK/wOZ8DxpIF4tRSWQw67PA40B6P7freToW8iXZTwVFtKIf9i48sgM eUyc7F7t2vLAbr147H10ob8a70pdkVa3Tm8Oer1m/QvVx43bdry1p1NGEH5T9JXyzOeCMuEYmid2 jcFyVP4QFeDVK+UlL5MHhRByfLDYXCFvfANos8ZPfLNraAUZPC5YmMChgwkzF8UP3jpcBkBNf1Bi /+njYrvlPgDsa9MQJVSlzNC0Ue8Oh7KimfFzFgRI5JrAh44iGF1dMsYaT/Ec3Tp/zG65ZS0Qidln 7okRPv0krj3RDyx53e8Bpv3alylKfo9ot9Tjdk+/RwUGXBXdi23iBFWiPygS --0000000000006e6a5b05fe468371-- From nobody Sat Feb 7 19:41:04 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 39B3DEB64D7 for ; Fri, 16 Jun 2023 22:16:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345793AbjFPWQP (ORCPT ); Fri, 16 Jun 2023 18:16:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55392 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346103AbjFPWPw (ORCPT ); Fri, 16 Jun 2023 18:15:52 -0400 Received: from mail-pg1-x52f.google.com (mail-pg1-x52f.google.com [IPv6:2607:f8b0:4864:20::52f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CAF4A422D for ; Fri, 16 Jun 2023 15:15:15 -0700 (PDT) Received: by mail-pg1-x52f.google.com with SMTP id 41be03b00d2f7-54f71fa7e41so792729a12.3 for ; Fri, 16 Jun 2023 15:15:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686953691; x=1689545691; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=GjIQLNdSp7Iu0d8CooFca2GaNzqIuNtqv3bkViwtMKU=; b=XMxo/8DZbOx956O2mpq6zfjq0esClmSIP6I88aLzz2Vl0WaQ3V2HP/zDZQFNcNSUaP y6r1gWAFWNkEJjBDcnZ1bXlacR9rACF8550jL+/L9TB4bs+dIB9mYSZIiBFeoauPoZpl RW9XV/+mkPQgR4JRLQTPMYBLuyYCDZdGbidyk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686953691; x=1689545691; 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=GjIQLNdSp7Iu0d8CooFca2GaNzqIuNtqv3bkViwtMKU=; b=Uc9ic2dolp9vxrCpROza+I/l50SzWaEAS9aGKAbiCMy4RVn0CLCA/h2s28STMSDY35 RzA+IkDzA6q3o0PYRlRpmtf8bBMpaujaQ8soSp3EjsXXNZGoFIuWPIXDP0j6mQQsVfNk 3l8ZAb76hJGj4Hm3ydBwSyZaIZp57X+Lf4Oe7++Ux3G5IuMy0LIWY7WNou50/UaAMJmW RzO93Um5InP5L5zUNMUPUT5FYOFNqduVAlPECgWMhRkrWHOLF5j6sJLM+LOoxDwoTR4k di4m9yLlIyMJNNi52boGag2iAWxaJTGzzlUZf2tIcVZEJp1mOsCl1+cx6NVgbEj5ZaLu SH+A== X-Gm-Message-State: AC+VfDycZGSb9iSNuD5ty0LDVcVjYllFony5EACf9+8R9428CEPLpG7w 5ZQDjPybnT4t8zPfvbbA3eq1DQ== X-Google-Smtp-Source: ACHHUZ7qXafwnrRCNJJTX8prsXwKgvhYXrYPHL4KkFryI17z7LV0uq9LLx7Tbt4Jbrj+WifGTrKm5g== X-Received: by 2002:a05:6a21:6d87:b0:10b:97c8:2e15 with SMTP id wl7-20020a056a216d8700b0010b97c82e15mr3657913pzb.45.1686953691446; Fri, 16 Jun 2023 15:14:51 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id f12-20020a170902ab8c00b001aaed524541sm16220860plr.227.2023.06.16.15.14.49 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Jun 2023 15:14: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 v8 10/11] net: phy: bcm7xxx: Add EPHY entry for 74165 Date: Fri, 16 Jun 2023 15:14:23 -0700 Message-Id: <1686953664-17498-11-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> References: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000008c0e1905fe4683ba" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --0000000000008c0e1905fe4683ba 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== --0000000000008c0e1905fe4683ba 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 eOL4CtXLMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNjIy MTQ1MVowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQBzAicVwK4U3/QYPlF33SwRzySNvN+OsTzFv05FptMw+ZgyegR+9qsB rfIo4wvojB6X2HybMjiRYe0gw6xKNbg/wLhsGPxty/k1229g4S4ueDQHm6L2khqqC+Iky/gfedjv FgVu8GE/AI7Ec8ddprZFj1Qy8T3D9JNJefsMN+6u5629RkVs8whT5XS1yBBWtEPdzcZX4BQoijfN reDmt4iGWz/k0X4zUjdjkvF+cbMCkWJJ70M8EotQR3UfHoTwIwTxWgy6TzKqPRk/q3NVHAoVPSbo wPW8325KukoOL7l2CwAJEox1qjUzLQkTUxIwI9PznwIRzClN1zvnCeHW5qVi --0000000000008c0e1905fe4683ba-- From nobody Sat Feb 7 19:41:04 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 C6861EB64D8 for ; Fri, 16 Jun 2023 22:16:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346140AbjFPWQV (ORCPT ); Fri, 16 Jun 2023 18:16:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54916 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345996AbjFPWPw (ORCPT ); Fri, 16 Jun 2023 18:15:52 -0400 Received: from mail-pf1-x432.google.com (mail-pf1-x432.google.com [IPv6:2607:f8b0:4864:20::432]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AB6634232 for ; Fri, 16 Jun 2023 15:15:17 -0700 (PDT) Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-666a228d244so1066574b3a.1 for ; Fri, 16 Jun 2023 15:15:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1686953693; x=1689545693; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=jVe+VeLM3mKm8fISr7iSmhX3AJ6DGvYhy4BfmE6p4Z4=; b=HRkZC704I2X4eiq+bGafTOpoJ7M0dg41dm2ews6fVmxeSmuJah9oqi8MPAYlHBgC+t jlQcSHXv4zkpth30ug8nycd5rcwAzwY8p7KEHQN32QUsRto3aLVh0gcRVCmrJ33RIXZO ufGs9pIIFUQZhYpm7C5XjvJxWt7ywWYvS6ey0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686953693; x=1689545693; 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=jVe+VeLM3mKm8fISr7iSmhX3AJ6DGvYhy4BfmE6p4Z4=; b=LA2U4DxCUZCq5Brd8FVcRShkzt3OHNFCDV6TOqa46pqGkoKtRoAdA+oYfpEWFGEP0W ZfAXuUgiIm5BuJUc4OsIUj/AYBV47F1aUPZ8d9Ps2tVTO1OOeIosnwf9+H8pOo20Z9A4 prOhs6MPvyVx9ZdeF8h8Gl4RhPYS7Tqbbano0G9y/QKkJ3Q5swWNrSPSyOZtfDXTl3Tj 74DOmt4A9Ctv+8dXcMXHF5bc4bpcTTuX1WDhHM9aVmuiZY5e7LATLA0kre8KhTMWSYJK /TZ2RfhKVP0eujVfWRLHh2+0mqM4AlExRnBmk5H4+QPn11M2o56qr5JF4aiyz7ykgxJe y76A== X-Gm-Message-State: AC+VfDxScT3n55RFcVWrigaKYE9jmBBwDcROPoScYcfga8Khqjtdv9tN O2jfbzRTJHsxayWDoT5WgmOZUQ== X-Google-Smtp-Source: ACHHUZ6sLlzS1iErp4Ndgv8inLHVhMi3IpJTKV5niFPqlH8Cn2coRHOGphoY8OU2ExuDKGbBMjJOYw== X-Received: by 2002:a05:6a20:3ca1:b0:110:9b0b:71a5 with SMTP id b33-20020a056a203ca100b001109b0b71a5mr3641877pzj.23.1686953693310; Fri, 16 Jun 2023 15:14:53 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id f12-20020a170902ab8c00b001aaed524541sm16220860plr.227.2023.06.16.15.14.51 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Jun 2023 15:14:53 -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 v8 11/11] MAINTAINERS: ASP 2.0 Ethernet driver maintainers Date: Fri, 16 Jun 2023 15:14:24 -0700 Message-Id: <1686953664-17498-12-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> References: <1686953664-17498-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="000000000000a942f105fe4683ce" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --000000000000a942f105fe4683ce MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIG1haW50YWluZXJzIGVudHJ5IGZvciBBU1AgMi4wIEV0aGVybmV0IGRyaXZlci4KClJldmll d2VkLWJ5OiBTaW1vbiBIb3JtYW4gPHNpbW9uLmhvcm1hbkBjb3JpZ2luZS5jb20+ClNpZ25lZC1v ZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGZsb3JpYW4uZmFpbmVsbGlAYnJvYWRjb20uY29tPgpT aWduZWQtb2ZmLWJ5OiBKdXN0aW4gQ2hlbiA8anVzdGluLmNoZW5AYnJvYWRjb20uY29tPgotLS0K djMKCS0gQ2hhbmdlIGZyb20gZ21haWwgdG8gYnJvYWRjb20gZW1haWxzCgogTUFJTlRBSU5FUlMg fCA5ICsrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKaW5kZXggNzMyMjk2M2IwNjcwLi5hZGJiZmU2 MzZjMGMgMTAwNjQ0Ci0tLSBhL01BSU5UQUlORVJTCisrKyBiL01BSU5UQUlORVJTCkBAIC00MTk1 LDYgKzQxOTUsMTUgQEAgRjoJZHJpdmVycy9uZXQvbWRpby9tZGlvLWJjbS11bmltYWMuYwogRjoJ aW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRhL2JjbWdlbmV0LmgKIEY6CWluY2x1ZGUvbGludXgv cGxhdGZvcm1fZGF0YS9tZGlvLWJjbS11bmltYWMuaAo9MjAKK0JST0FEQ09NIEFTUCAyLjAgRVRI RVJORVQgRFJJVkVSCitNOglKdXN0aW4gQ2hlbiA8anVzdGluLmNoZW5AYnJvYWRjb20uY29tPgor TToJRmxvcmlhbiBGYWluZWxsaSA8Zmxvcmlhbi5mYWluZWxsaUBicm9hZGNvbS5jb20+CitMOgli Y20ta2VybmVsLWZlZWRiYWNrLWxpc3RAYnJvYWRjb20uY29tCitMOgluZXRkZXZAdmdlci5rZXJu ZWwub3JnCitTOglTdXBwb3J0ZWQKK0Y6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5n cy9uZXQvYnJjbSxhc3AtdjIuMC55YW1sCitGOglkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9hc3AyLworCiBCUk9BRENPTSBJUFJPQyBBUk0gQVJDSElURUNUVVJFCiBNOglSYXkgSnVpIDxy anVpQGJyb2FkY29tLmNvbT4KIE06CVNjb3R0IEJyYW5kZW4gPHNicmFuZGVuQGJyb2FkY29tLmNv bT4KLS09MjAKMi43LjQK --000000000000a942f105fe4683ce 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 YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIEevBldeYLJlVafSImKalr8oVUhQ10U8Mn8n VsnfuLRZMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDYxNjIy MTQ1M1owaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQCueLXu7rksUYHpJn92DoSEJhtikk5n1TwUquShAj0m70aFxEY5gy75 d6UZdFrSqsc2FX+EUgppAhYNkqWhSd1ow/v3M0tM9DAVgk5sOf6HbPhsbVpaLDEaUoZDP4CwGywS e1pH4hTH2/QYIcg1zRst3esemxvHxQp0PVR6FmcQ2jR3IzTV8fgzDeye0gGPldKOYErsmIvdtVBl 1Y++RVpc7bIZhhg1DUz1T0NesPYdwxA4Fsogh+H3EsCfOBsQpDMnBCXPNMV45rauecIyDpjvXdcS FQQd95GtKeXBDeL6RrCaDLpBQ1B889nb+nlzzKBgmsu0qyOb4Wlm6YeFP5gS --000000000000a942f105fe4683ce--