lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d22285c6-8286-4db0-86ca-90fff08e3a42@lunn.ch>
Date: Tue, 12 Nov 2024 17:32:18 +0100
From: Andrew Lunn <andrew@...n.ch>
To: Jijie Shao <shaojijie@...wei.com>
Cc: davem@...emloft.net, edumazet@...gle.com, kuba@...nel.org,
	pabeni@...hat.com, andrew+netdev@...n.ch, horms@...nel.org,
	shenjian15@...wei.com, wangpeiyang1@...wei.com,
	liuyonglong@...wei.com, chenhao418@...wei.com,
	sudongming1@...wei.com, xujunsheng@...wei.com,
	shiyongbang@...wei.com, libaihan@...wei.com,
	jonathan.cameron@...wei.com, shameerali.kolothum.thodi@...wei.com,
	salil.mehta@...wei.com, netdev@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH V3 net-next 5/7] net: hibmcge: Add pauseparam supported
 in this module

On Tue, Nov 12, 2024 at 10:37:27PM +0800, Jijie Shao wrote:
> 
> on 2024/11/12 1:58, Andrew Lunn wrote:
> > On Mon, Nov 11, 2024 at 10:55:56PM +0800, Jijie Shao wrote:
> > > The MAC can automatically send or respond to pause frames.
> > > This patch supports the function of enabling pause frames
> > > by using ethtool.
> > > 
> > > Pause auto-negotiation is not supported currently.
> > What is actually missing to support auto-neg pause? You are using
> > phylib, so it will do most of the work. You just need your adjust_link
> > callback to configure the hardware to the result of the negotiation.
> > And call phy_support_asym_pause() to let phylib know what the MAC
> > supports.
> > 
> > 	Andrew
> 
> Thanks for your guidance,
> 
> I haven't really figured out the difference between phy_support_sym_pause()
> and phy_support_asym_paus().

sym_pause means that when the MAC pauses, it does it in both
directions, receive and transmit. Asymmetric pause means it can pause
just receive, or just transmit.

Since you have both tx_pause and rx_pause, you can do both.

> +static void hbg_ethtool_get_pauseparam(struct net_device *net_dev,
> +				       struct ethtool_pauseparam *param)
> +{
> +	struct hbg_priv *priv = netdev_priv(net_dev);
> +
> +	param->autoneg = priv->mac.pause_autoneg;
> +	hbg_hw_get_pause_enable(priv, &param->tx_pause, &param->rx_pause);
> +}
> +
> +static int hbg_ethtool_set_pauseparam(struct net_device *net_dev,
> +				      struct ethtool_pauseparam *param)
> +{
> +	struct hbg_priv *priv = netdev_priv(net_dev);
> +	struct phy_device *phydev = priv->mac.phydev;
> +
> +	phy_set_asym_pause(phydev, param->rx_pause, param->tx_pause);

Not needed. This just tells phylib what the MAC is capable of. The
capabilities does not change, so telling it once in hbg_phy_connect()
is sufficient.

	Andrew

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ