From nobody Sun Feb 8 20:32:58 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--