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] [day] [month] [year] [list]
Message-ID: <a2c62be6-7668-4bb9-96f8-cec60c25e9a2@rock-chips.com>
Date: Thu, 9 Jan 2025 09:49:32 +0800
From: Damon Ding <damon.ding@...k-chips.com>
To: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>,
 Vinod Koul <vkoul@...nel.org>, Kishon Vijay Abraham I <kishon@...nel.org>
Cc: linux-phy@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] phy: core: don't require set_mode() callback for
 phy_get_mode() to work

On 2025/1/7 19:34, Dmitry Baryshkov wrote:
> As reported by Diamond Ding, the phy_get_mode() call doesn't work as
> expected unless the PHY driver has a .set_mode() call. This prompts PHY
> drivers to have empty stubs for .set_mode() for the sake of being able
> to get the mode.
> 
> Make .set_mode() callback truly optional and update PHY's mode even if
> it there is none.
> 
> Cc: Damon Ding <damon.ding@...k-chips.com>
> Link: https://lore.kernel.org/r/96f8310f-93f1-4bcb-8637-137e1159ff83@rock-chips.com
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
> ---
>   drivers/phy/phy-core.c | 7 ++++---
>   1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c
> index 8dfdce605a905d7f38205727151258af41f807a9..067316dfcd83a6fc8428cddd27d3b7ebfc270831 100644
> --- a/drivers/phy/phy-core.c
> +++ b/drivers/phy/phy-core.c
> @@ -405,13 +405,14 @@ EXPORT_SYMBOL_GPL(phy_power_off);
>   
>   int phy_set_mode_ext(struct phy *phy, enum phy_mode mode, int submode)
>   {
> -	int ret;
> +	int ret = 0;
>   
> -	if (!phy || !phy->ops->set_mode)
> +	if (!phy)
>   		return 0;
>   
>   	mutex_lock(&phy->mutex);
> -	ret = phy->ops->set_mode(phy, mode, submode);
> +	if (phy->ops->set_mode)
> +		ret = phy->ops->set_mode(phy, mode, submode);
>   	if (!ret)
>   		phy->attrs.mode = mode;
>   	mutex_unlock(&phy->mutex);
> 
> ---
> base-commit: 7b4b9bf203da94fbeac75ed3116c84aa03e74578
> change-id: 20250107-phy-fix-set-moe-d275cff5e27b

Tested-by: Damon Ding <damon.ding@...k-chips.com>

Best regards
Damon


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ