From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 732A2C48260 for ; Thu, 8 Feb 2024 16:22:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=BkxTu44FYr9nxVo9mnjyHNJCLdt33VUpSNhGWEGA9jU=; b=VDC+dCbFTkf6IaUaoHt3QDAn6f hivP47Xo1tiBfBkiRh03NwJOIocDK3JgrQoKyGOIcEU9Y6N5diQlDPo69BJnoIZ5YppG8mDM2HN6R elW0lvaYCAYf/TvIbHztWkINEBMEMuM9bsia1y6bw4w6Qpe+DBcKGnnZrjnMMsolG0S9by/3qn37d gONl/5KFGg3WjOb/pux6Oo8gHGRbf3ngS4H8BpPMuXub8ogtdhGuDaYJocwJe/ExcenX441dtROlh XZozkWqO3swlLUa8bODVynCM6/Vk0W6OYUT3jJCQwi/OddBvGNIOzEZCzd5PPQLoA9/+8kJ8Yh/4y UPAdDOgA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rY7Aq-0000000EIbc-2dKc; Thu, 08 Feb 2024 16:22:52 +0000 Received: from pidgin.makrotopia.org ([185.142.180.65]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rY7An-0000000EIa6-2aF1; Thu, 08 Feb 2024 16:22:50 +0000 Received: from local by pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.96.2) (envelope-from ) id 1rY7AH-0004wG-0D; Thu, 08 Feb 2024 16:22:17 +0000 Date: Thu, 8 Feb 2024 16:22:07 +0000 From: Daniel Golle To: arinc.unal@arinc9.com Cc: DENG Qingfang , Sean Wang , Andrew Lunn , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthias Brugger , AngeloGioacchino Del Regno , Russell King , mithat.guner@xeront.com, erkin.bozoglu@xeront.com, Bartel Eerdekens , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: Re: [PATCH netnext 8/8] net: dsa: mt7530: simplify link operations and force link down on all ports Message-ID: References: <20240208-for-netnext-mt7530-improvements-3-v1-0-d7c1cfd502ca@arinc9.com> <20240208-for-netnext-mt7530-improvements-3-v1-8-d7c1cfd502ca@arinc9.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20240208-for-netnext-mt7530-improvements-3-v1-8-d7c1cfd502ca@arinc9.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240208_082249_676962_58DC4F77 X-CRM114-Status: GOOD ( 27.52 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org On Thu, Feb 08, 2024 at 08:51:36AM +0300, Arınç ÜNAL via B4 Relay wrote: > From: Arınç ÜNAL > > Currently, the link operations for switch MACs are scattered across > port_enable, port_disable, phylink_mac_config, phylink_mac_link_up, and > phylink_mac_link_down. > > port_enable and port_disable clears the link settings. Move that to > mt7530_setup() and mt7531_setup_common() which set up the switches. This > way, the link settings are cleared on all ports at setup, and then only > once with phylink_mac_link_down() when a link goes down. > > Enable force mode at setup to apply the force part of the link settings. > This ensures that only active ports will have their link up. > > Now that the bit for setting the port on force mode is done on > mt7530_setup() and mt7531_setup_common(), get rid of PMCR_FORCE_MODE_ID() > which helped determine which bit to use for the switch model. > > The "MT7621 Giga Switch Programming Guide v0.3", "MT7531 Reference Manual > for Development Board v1.0", and "MT7988A Wi-Fi 7 Generation Router > Platform: Datasheet (Open Version) v0.1" documents show that these bits are > enabled at reset: > > PMCR_IFG_XMIT(1) (not part of PMCR_LINK_SETTINGS_MASK) > PMCR_MAC_MODE (not part of PMCR_LINK_SETTINGS_MASK) > PMCR_TX_EN > PMCR_RX_EN > PMCR_BACKOFF_EN (not part of PMCR_LINK_SETTINGS_MASK) > PMCR_BACKPR_EN (not part of PMCR_LINK_SETTINGS_MASK) > PMCR_TX_FC_EN > PMCR_RX_FC_EN > > These bits also don't exist on the MT7530_PMCR_P(6) register of the switch > on the MT7988 SoC: > > PMCR_IFG_XMIT() > PMCR_MAC_MODE > PMCR_BACKOFF_EN > PMCR_BACKPR_EN > > Remove the setting of the bits not part of PMCR_LINK_SETTINGS_MASK on > phylink_mac_config as they're already set. > > Suggested-by: Vladimir Oltean > Signed-off-by: Arınç ÜNAL > --- > drivers/net/dsa/mt7530.c | 26 +++++++++++++------------- > drivers/net/dsa/mt7530.h | 2 -- > 2 files changed, 13 insertions(+), 15 deletions(-) > > diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c > index 5c8ad41ce8cd..f67db577d1c0 100644 > --- a/drivers/net/dsa/mt7530.c > +++ b/drivers/net/dsa/mt7530.c > @@ -1018,7 +1018,6 @@ mt7530_port_enable(struct dsa_switch *ds, int port, > priv->ports[port].enable = true; > mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK, > priv->ports[port].pm); > - mt7530_clear(priv, MT7530_PMCR_P(port), PMCR_LINK_SETTINGS_MASK); > > mutex_unlock(&priv->reg_mutex); > > @@ -1038,7 +1037,6 @@ mt7530_port_disable(struct dsa_switch *ds, int port) > priv->ports[port].enable = false; > mt7530_rmw(priv, MT7530_PCR_P(port), PCR_MATRIX_MASK, > PCR_MATRIX_CLR); > - mt7530_clear(priv, MT7530_PMCR_P(port), PMCR_LINK_SETTINGS_MASK); > > mutex_unlock(&priv->reg_mutex); > } > @@ -2257,6 +2255,12 @@ mt7530_setup(struct dsa_switch *ds) > mt7530_mib_reset(ds); > > for (i = 0; i < MT7530_NUM_PORTS; i++) { > + /* Clear link settings and enable force mode to force link down > + * on all ports until they're enabled later. > + */ > + mt7530_clear(priv, MT7530_PMCR_P(i), PMCR_LINK_SETTINGS_MASK); > + mt7530_set(priv, MT7530_PMCR_P(i), PMCR_FORCE_MODE); Any reason to not combine the two lines above into a single call: mt7530_rmw(priv, MT7530_PMCR_P(i), PMCR_LINK_SETTINGS_MASK | PMCR_FORCE_MODE, PMCR_FORCE_MODE); > + > /* Disable forwarding by default on all ports */ > mt7530_rmw(priv, MT7530_PCR_P(i), PCR_MATRIX_MASK, > PCR_MATRIX_CLR); > @@ -2359,6 +2363,12 @@ mt7531_setup_common(struct dsa_switch *ds) > UNU_FFP_MASK); > > for (i = 0; i < MT7530_NUM_PORTS; i++) { > + /* Clear link settings and enable force mode to force link down > + * on all ports until they're enabled later. > + */ > + mt7530_clear(priv, MT7530_PMCR_P(i), PMCR_LINK_SETTINGS_MASK); > + mt7530_set(priv, MT7530_PMCR_P(i), MT7531_FORCE_MODE); > + Same here obviously. > /* Disable forwarding by default on all ports */ > mt7530_rmw(priv, MT7530_PCR_P(i), PCR_MATRIX_MASK, > PCR_MATRIX_CLR); > @@ -2657,23 +2667,13 @@ mt753x_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode, > const struct phylink_link_state *state) > { > struct mt7530_priv *priv = ds->priv; > - u32 mcr_cur, mcr_new; > > if ((port == 5 || port == 6) && priv->info->mac_port_config) > priv->info->mac_port_config(ds, port, mode, state->interface); > > - mcr_cur = mt7530_read(priv, MT7530_PMCR_P(port)); > - mcr_new = mcr_cur; > - mcr_new &= ~PMCR_LINK_SETTINGS_MASK; > - mcr_new |= PMCR_IFG_XMIT(1) | PMCR_MAC_MODE | PMCR_BACKOFF_EN | > - PMCR_BACKPR_EN | PMCR_FORCE_MODE_ID(priv->id); > - > /* Are we connected to external phy */ > if (port == 5 && dsa_is_user_port(ds, 5)) > - mcr_new |= PMCR_EXT_PHY; > - > - if (mcr_new != mcr_cur) > - mt7530_write(priv, MT7530_PMCR_P(port), mcr_new); > + mt7530_set(priv, MT7530_PMCR_P(port), PMCR_EXT_PHY); > } > > static void mt753x_phylink_mac_link_down(struct dsa_switch *ds, int port, > diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h > index 8a8144868eaa..a71166e0a7fc 100644 > --- a/drivers/net/dsa/mt7530.h > +++ b/drivers/net/dsa/mt7530.h > @@ -304,8 +304,6 @@ enum mt7530_vlan_port_acc_frm { > MT7531_FORCE_DPX | \ > MT7531_FORCE_RX_FC | \ > MT7531_FORCE_TX_FC) > -#define PMCR_FORCE_MODE_ID(id) ((((id) == ID_MT7531) || ((id) == ID_MT7988)) ? \ > - MT7531_FORCE_MODE : PMCR_FORCE_MODE) > #define PMCR_LINK_SETTINGS_MASK (PMCR_TX_EN | PMCR_FORCE_SPEED_1000 | \ > PMCR_RX_EN | PMCR_FORCE_SPEED_100 | \ > PMCR_TX_FC_EN | PMCR_RX_FC_EN | \ > > -- > 2.40.1 > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 475FDC4828F for ; Thu, 8 Feb 2024 16:23:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=pxRPJTsbndVN3lY7BHr2BduDvo4UXrml4oPO3T4HyTk=; b=pfIgrLo1z9bdbX Wfty0RhsoUdy2jb2PDAYKQime93A1/PBeFTse8WTURUM5lCJq56KJyTX+mqNGoxQHrjVRbu0RilaH U33B4Ka1cTCdj0WyvdqmiftxiyPPBnlW/8snbIjqLB+4FENUGdAzXaJfvWDJmW/4+QJOc54KLqN2R A2L6ScdCRCwTvaFpgssAMt5VdkQobm7Hw98WabyzcKTDpb4SzlNg6ftaSGxHJKc8zrg/fw9aKsKP6 Gj/CbiD/pha0Bk/sy9xQg9F21v0PkUgqcvsJcVHIYGjFH5JV+2B+VYc0K1uG++T9iiMrlKI5+7Slo XGHQ2tFCcctvwFn/RxZg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rY7Aq-0000000EIbV-048p; Thu, 08 Feb 2024 16:22:52 +0000 Received: from pidgin.makrotopia.org ([185.142.180.65]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rY7An-0000000EIa6-2aF1; Thu, 08 Feb 2024 16:22:50 +0000 Received: from local by pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.96.2) (envelope-from ) id 1rY7AH-0004wG-0D; Thu, 08 Feb 2024 16:22:17 +0000 Date: Thu, 8 Feb 2024 16:22:07 +0000 From: Daniel Golle To: arinc.unal@arinc9.com Cc: DENG Qingfang , Sean Wang , Andrew Lunn , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthias Brugger , AngeloGioacchino Del Regno , Russell King , mithat.guner@xeront.com, erkin.bozoglu@xeront.com, Bartel Eerdekens , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: Re: [PATCH netnext 8/8] net: dsa: mt7530: simplify link operations and force link down on all ports Message-ID: References: <20240208-for-netnext-mt7530-improvements-3-v1-0-d7c1cfd502ca@arinc9.com> <20240208-for-netnext-mt7530-improvements-3-v1-8-d7c1cfd502ca@arinc9.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240208-for-netnext-mt7530-improvements-3-v1-8-d7c1cfd502ca@arinc9.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240208_082249_676962_58DC4F77 X-CRM114-Status: GOOD ( 27.52 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVGh1LCBGZWIgMDgsIDIwMjQgYXQgMDg6NTE6MzZBTSArMDMwMCwgQXLEsW7DpyDDnE5BTCB2 aWEgQjQgUmVsYXkgd3JvdGU6Cj4gRnJvbTogQXLEsW7DpyDDnE5BTCA8YXJpbmMudW5hbEBhcmlu YzkuY29tPgo+IAo+IEN1cnJlbnRseSwgdGhlIGxpbmsgb3BlcmF0aW9ucyBmb3Igc3dpdGNoIE1B Q3MgYXJlIHNjYXR0ZXJlZCBhY3Jvc3MKPiBwb3J0X2VuYWJsZSwgcG9ydF9kaXNhYmxlLCBwaHls aW5rX21hY19jb25maWcsIHBoeWxpbmtfbWFjX2xpbmtfdXAsIGFuZAo+IHBoeWxpbmtfbWFjX2xp bmtfZG93bi4KPiAKPiBwb3J0X2VuYWJsZSBhbmQgcG9ydF9kaXNhYmxlIGNsZWFycyB0aGUgbGlu ayBzZXR0aW5ncy4gTW92ZSB0aGF0IHRvCj4gbXQ3NTMwX3NldHVwKCkgYW5kIG10NzUzMV9zZXR1 cF9jb21tb24oKSB3aGljaCBzZXQgdXAgdGhlIHN3aXRjaGVzLiBUaGlzCj4gd2F5LCB0aGUgbGlu ayBzZXR0aW5ncyBhcmUgY2xlYXJlZCBvbiBhbGwgcG9ydHMgYXQgc2V0dXAsIGFuZCB0aGVuIG9u bHkKPiBvbmNlIHdpdGggcGh5bGlua19tYWNfbGlua19kb3duKCkgd2hlbiBhIGxpbmsgZ29lcyBk b3duLgo+IAo+IEVuYWJsZSBmb3JjZSBtb2RlIGF0IHNldHVwIHRvIGFwcGx5IHRoZSBmb3JjZSBw YXJ0IG9mIHRoZSBsaW5rIHNldHRpbmdzLgo+IFRoaXMgZW5zdXJlcyB0aGF0IG9ubHkgYWN0aXZl IHBvcnRzIHdpbGwgaGF2ZSB0aGVpciBsaW5rIHVwLgo+IAo+IE5vdyB0aGF0IHRoZSBiaXQgZm9y IHNldHRpbmcgdGhlIHBvcnQgb24gZm9yY2UgbW9kZSBpcyBkb25lIG9uCj4gbXQ3NTMwX3NldHVw KCkgYW5kIG10NzUzMV9zZXR1cF9jb21tb24oKSwgZ2V0IHJpZCBvZiBQTUNSX0ZPUkNFX01PREVf SUQoKQo+IHdoaWNoIGhlbHBlZCBkZXRlcm1pbmUgd2hpY2ggYml0IHRvIHVzZSBmb3IgdGhlIHN3 aXRjaCBtb2RlbC4KPiAKPiBUaGUgIk1UNzYyMSBHaWdhIFN3aXRjaCBQcm9ncmFtbWluZyBHdWlk ZSB2MC4zIiwgIk1UNzUzMSBSZWZlcmVuY2UgTWFudWFsCj4gZm9yIERldmVsb3BtZW50IEJvYXJk IHYxLjAiLCBhbmQgIk1UNzk4OEEgV2ktRmkgNyBHZW5lcmF0aW9uIFJvdXRlcgo+IFBsYXRmb3Jt OiBEYXRhc2hlZXQgKE9wZW4gVmVyc2lvbikgdjAuMSIgZG9jdW1lbnRzIHNob3cgdGhhdCB0aGVz ZSBiaXRzIGFyZQo+IGVuYWJsZWQgYXQgcmVzZXQ6Cj4gCj4gUE1DUl9JRkdfWE1JVCgxKSAobm90 IHBhcnQgb2YgUE1DUl9MSU5LX1NFVFRJTkdTX01BU0spCj4gUE1DUl9NQUNfTU9ERSAobm90IHBh cnQgb2YgUE1DUl9MSU5LX1NFVFRJTkdTX01BU0spCj4gUE1DUl9UWF9FTgo+IFBNQ1JfUlhfRU4K PiBQTUNSX0JBQ0tPRkZfRU4gKG5vdCBwYXJ0IG9mIFBNQ1JfTElOS19TRVRUSU5HU19NQVNLKQo+ IFBNQ1JfQkFDS1BSX0VOIChub3QgcGFydCBvZiBQTUNSX0xJTktfU0VUVElOR1NfTUFTSykKPiBQ TUNSX1RYX0ZDX0VOCj4gUE1DUl9SWF9GQ19FTgo+IAo+IFRoZXNlIGJpdHMgYWxzbyBkb24ndCBl eGlzdCBvbiB0aGUgTVQ3NTMwX1BNQ1JfUCg2KSByZWdpc3RlciBvZiB0aGUgc3dpdGNoCj4gb24g dGhlIE1UNzk4OCBTb0M6Cj4gCj4gUE1DUl9JRkdfWE1JVCgpCj4gUE1DUl9NQUNfTU9ERQo+IFBN Q1JfQkFDS09GRl9FTgo+IFBNQ1JfQkFDS1BSX0VOCj4gCj4gUmVtb3ZlIHRoZSBzZXR0aW5nIG9m IHRoZSBiaXRzIG5vdCBwYXJ0IG9mIFBNQ1JfTElOS19TRVRUSU5HU19NQVNLIG9uCj4gcGh5bGlu a19tYWNfY29uZmlnIGFzIHRoZXkncmUgYWxyZWFkeSBzZXQuCj4gCj4gU3VnZ2VzdGVkLWJ5OiBW bGFkaW1pciBPbHRlYW4gPG9sdGVhbnZAZ21haWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEFyxLFu w6cgw5xOQUwgPGFyaW5jLnVuYWxAYXJpbmM5LmNvbT4KPiAtLS0KPiAgZHJpdmVycy9uZXQvZHNh L210NzUzMC5jIHwgMjYgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9uZXQv ZHNhL210NzUzMC5oIHwgIDIgLS0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCsp LCAxNSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL210NzUz MC5jIGIvZHJpdmVycy9uZXQvZHNhL210NzUzMC5jCj4gaW5kZXggNWM4YWQ0MWNlOGNkLi5mNjdk YjU3N2QxYzAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9uZXQvZHNhL210NzUzMC5jCj4gKysrIGIv ZHJpdmVycy9uZXQvZHNhL210NzUzMC5jCj4gQEAgLTEwMTgsNyArMTAxOCw2IEBAIG10NzUzMF9w b3J0X2VuYWJsZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LAo+ICAJcHJpdi0+cG9y dHNbcG9ydF0uZW5hYmxlID0gdHJ1ZTsKPiAgCW10NzUzMF9ybXcocHJpdiwgTVQ3NTMwX1BDUl9Q KHBvcnQpLCBQQ1JfTUFUUklYX01BU0ssCj4gIAkJICAgcHJpdi0+cG9ydHNbcG9ydF0ucG0pOwo+ IC0JbXQ3NTMwX2NsZWFyKHByaXYsIE1UNzUzMF9QTUNSX1AocG9ydCksIFBNQ1JfTElOS19TRVRU SU5HU19NQVNLKTsKPiAgCj4gIAltdXRleF91bmxvY2soJnByaXYtPnJlZ19tdXRleCk7Cj4gIAo+ IEBAIC0xMDM4LDcgKzEwMzcsNiBAQCBtdDc1MzBfcG9ydF9kaXNhYmxlKHN0cnVjdCBkc2Ffc3dp dGNoICpkcywgaW50IHBvcnQpCj4gIAlwcml2LT5wb3J0c1twb3J0XS5lbmFibGUgPSBmYWxzZTsK PiAgCW10NzUzMF9ybXcocHJpdiwgTVQ3NTMwX1BDUl9QKHBvcnQpLCBQQ1JfTUFUUklYX01BU0ss Cj4gIAkJICAgUENSX01BVFJJWF9DTFIpOwo+IC0JbXQ3NTMwX2NsZWFyKHByaXYsIE1UNzUzMF9Q TUNSX1AocG9ydCksIFBNQ1JfTElOS19TRVRUSU5HU19NQVNLKTsKPiAgCj4gIAltdXRleF91bmxv Y2soJnByaXYtPnJlZ19tdXRleCk7Cj4gIH0KPiBAQCAtMjI1Nyw2ICsyMjU1LDEyIEBAIG10NzUz MF9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpCj4gIAltdDc1MzBfbWliX3Jlc2V0KGRzKTsK PiAgCj4gIAlmb3IgKGkgPSAwOyBpIDwgTVQ3NTMwX05VTV9QT1JUUzsgaSsrKSB7Cj4gKwkJLyog Q2xlYXIgbGluayBzZXR0aW5ncyBhbmQgZW5hYmxlIGZvcmNlIG1vZGUgdG8gZm9yY2UgbGluayBk b3duCj4gKwkJICogb24gYWxsIHBvcnRzIHVudGlsIHRoZXkncmUgZW5hYmxlZCBsYXRlci4KPiAr CQkgKi8KPiArCQltdDc1MzBfY2xlYXIocHJpdiwgTVQ3NTMwX1BNQ1JfUChpKSwgUE1DUl9MSU5L X1NFVFRJTkdTX01BU0spOwo+ICsJCW10NzUzMF9zZXQocHJpdiwgTVQ3NTMwX1BNQ1JfUChpKSwg UE1DUl9GT1JDRV9NT0RFKTsKCkFueSByZWFzb24gdG8gbm90IGNvbWJpbmUgdGhlIHR3byBsaW5l cyBhYm92ZSBpbnRvIGEgc2luZ2xlIGNhbGw6CgptdDc1MzBfcm13KHByaXYsIE1UNzUzMF9QTUNS X1AoaSksCgkgICBQTUNSX0xJTktfU0VUVElOR1NfTUFTSyB8IFBNQ1JfRk9SQ0VfTU9ERSwKCSAg IFBNQ1JfRk9SQ0VfTU9ERSk7Cgo+ICsKPiAgCQkvKiBEaXNhYmxlIGZvcndhcmRpbmcgYnkgZGVm YXVsdCBvbiBhbGwgcG9ydHMgKi8KPiAgCQltdDc1MzBfcm13KHByaXYsIE1UNzUzMF9QQ1JfUChp KSwgUENSX01BVFJJWF9NQVNLLAo+ICAJCQkgICBQQ1JfTUFUUklYX0NMUik7Cj4gQEAgLTIzNTks NiArMjM2MywxMiBAQCBtdDc1MzFfc2V0dXBfY29tbW9uKHN0cnVjdCBkc2Ffc3dpdGNoICpkcykK PiAgCQkgICAgIFVOVV9GRlBfTUFTSyk7Cj4gIAo+ICAJZm9yIChpID0gMDsgaSA8IE1UNzUzMF9O VU1fUE9SVFM7IGkrKykgewo+ICsJCS8qIENsZWFyIGxpbmsgc2V0dGluZ3MgYW5kIGVuYWJsZSBm b3JjZSBtb2RlIHRvIGZvcmNlIGxpbmsgZG93bgo+ICsJCSAqIG9uIGFsbCBwb3J0cyB1bnRpbCB0 aGV5J3JlIGVuYWJsZWQgbGF0ZXIuCj4gKwkJICovCj4gKwkJbXQ3NTMwX2NsZWFyKHByaXYsIE1U NzUzMF9QTUNSX1AoaSksIFBNQ1JfTElOS19TRVRUSU5HU19NQVNLKTsKPiArCQltdDc1MzBfc2V0 KHByaXYsIE1UNzUzMF9QTUNSX1AoaSksIE1UNzUzMV9GT1JDRV9NT0RFKTsKPiArCgpTYW1lIGhl cmUgb2J2aW91c2x5LgoKPiAgCQkvKiBEaXNhYmxlIGZvcndhcmRpbmcgYnkgZGVmYXVsdCBvbiBh bGwgcG9ydHMgKi8KPiAgCQltdDc1MzBfcm13KHByaXYsIE1UNzUzMF9QQ1JfUChpKSwgUENSX01B VFJJWF9NQVNLLAo+ICAJCQkgICBQQ1JfTUFUUklYX0NMUik7Cj4gQEAgLTI2NTcsMjMgKzI2Njcs MTMgQEAgbXQ3NTN4X3BoeWxpbmtfbWFjX2NvbmZpZyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGlu dCBwb3J0LCB1bnNpZ25lZCBpbnQgbW9kZSwKPiAgCQkJICBjb25zdCBzdHJ1Y3QgcGh5bGlua19s aW5rX3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJc3RydWN0IG10NzUzMF9wcml2ICpwcml2ID0gZHMt PnByaXY7Cj4gLQl1MzIgbWNyX2N1ciwgbWNyX25ldzsKPiAgCj4gIAlpZiAoKHBvcnQgPT0gNSB8 fCBwb3J0ID09IDYpICYmIHByaXYtPmluZm8tPm1hY19wb3J0X2NvbmZpZykKPiAgCQlwcml2LT5p bmZvLT5tYWNfcG9ydF9jb25maWcoZHMsIHBvcnQsIG1vZGUsIHN0YXRlLT5pbnRlcmZhY2UpOwo+ ICAKPiAtCW1jcl9jdXIgPSBtdDc1MzBfcmVhZChwcml2LCBNVDc1MzBfUE1DUl9QKHBvcnQpKTsK PiAtCW1jcl9uZXcgPSBtY3JfY3VyOwo+IC0JbWNyX25ldyAmPSB+UE1DUl9MSU5LX1NFVFRJTkdT X01BU0s7Cj4gLQltY3JfbmV3IHw9IFBNQ1JfSUZHX1hNSVQoMSkgfCBQTUNSX01BQ19NT0RFIHwg UE1DUl9CQUNLT0ZGX0VOIHwKPiAtCQkgICBQTUNSX0JBQ0tQUl9FTiB8IFBNQ1JfRk9SQ0VfTU9E RV9JRChwcml2LT5pZCk7Cj4gLQo+ICAJLyogQXJlIHdlIGNvbm5lY3RlZCB0byBleHRlcm5hbCBw aHkgKi8KPiAgCWlmIChwb3J0ID09IDUgJiYgZHNhX2lzX3VzZXJfcG9ydChkcywgNSkpCj4gLQkJ bWNyX25ldyB8PSBQTUNSX0VYVF9QSFk7Cj4gLQo+IC0JaWYgKG1jcl9uZXcgIT0gbWNyX2N1cikK PiAtCQltdDc1MzBfd3JpdGUocHJpdiwgTVQ3NTMwX1BNQ1JfUChwb3J0KSwgbWNyX25ldyk7Cj4g KwkJbXQ3NTMwX3NldChwcml2LCBNVDc1MzBfUE1DUl9QKHBvcnQpLCBQTUNSX0VYVF9QSFkpOwo+ ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBtdDc1M3hfcGh5bGlua19tYWNfbGlua19kb3duKHN0cnVj dCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2Rz YS9tdDc1MzAuaCBiL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaAo+IGluZGV4IDhhODE0NDg2OGVh YS4uYTcxMTY2ZTBhN2ZjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaAo+ ICsrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaAo+IEBAIC0zMDQsOCArMzA0LDYgQEAgZW51 bSBtdDc1MzBfdmxhbl9wb3J0X2FjY19mcm0gewo+ICAJCQkJCSBNVDc1MzFfRk9SQ0VfRFBYIHwg XAo+ICAJCQkJCSBNVDc1MzFfRk9SQ0VfUlhfRkMgfCBcCj4gIAkJCQkJIE1UNzUzMV9GT1JDRV9U WF9GQykKPiAtI2RlZmluZSAgUE1DUl9GT1JDRV9NT0RFX0lEKGlkKQkJKCgoKGlkKSA9PSBJRF9N VDc1MzEpIHx8ICgoaWQpID09IElEX01UNzk4OCkpID8JXAo+IC0JCQkJCSBNVDc1MzFfRk9SQ0Vf TU9ERSA6IFBNQ1JfRk9SQ0VfTU9ERSkKPiAgI2RlZmluZSAgUE1DUl9MSU5LX1NFVFRJTkdTX01B U0sJKFBNQ1JfVFhfRU4gfCBQTUNSX0ZPUkNFX1NQRUVEXzEwMDAgfCBcCj4gIAkJCQkJIFBNQ1Jf UlhfRU4gfCBQTUNSX0ZPUkNFX1NQRUVEXzEwMCB8IFwKPiAgCQkJCQkgUE1DUl9UWF9GQ19FTiB8 IFBNQ1JfUlhfRkNfRU4gfCBcCj4gCj4gLS0gCj4gMi40MC4xCj4gCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcg bGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==