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: <eb47587159484abca8e6d65dddcf0844822ce99f.camel@mediatek.com>
Date: Fri, 14 Jun 2024 06:34:25 +0000
From: Peter Wang (王信友) <peter.wang@...iatek.com>
To: "linux-scsi@...r.kernel.org" <linux-scsi@...r.kernel.org>,
	"angelogioacchino.delregno@...labora.com"
	<angelogioacchino.delregno@...labora.com>
CC: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"linux-mediatek@...ts.infradead.org" <linux-mediatek@...ts.infradead.org>,
	"wenst@...omium.org" <wenst@...omium.org>, "jejb@...ux.ibm.com"
	<jejb@...ux.ibm.com>, "devicetree@...r.kernel.org"
	<devicetree@...r.kernel.org>, "avri.altman@....com" <avri.altman@....com>,
	"bvanassche@....org" <bvanassche@....org>, "martin.petersen@...cle.com"
	<martin.petersen@...cle.com>, "broonie@...nel.org" <broonie@...nel.org>,
	"alim.akhtar@...sung.com" <alim.akhtar@...sung.com>, "michael@...le.cc"
	<michael@...le.cc>, "conor+dt@...nel.org" <conor+dt@...nel.org>,
	"robh@...nel.org" <robh@...nel.org>, "lgirdwood@...il.com"
	<lgirdwood@...il.com>, "linux-arm-kernel@...ts.infradead.org"
	<linux-arm-kernel@...ts.infradead.org>, "krzysztof.kozlowski+dt@...aro.org"
	<krzysztof.kozlowski+dt@...aro.org>, "matthias.bgg@...il.com"
	<matthias.bgg@...il.com>
Subject: Re: [PATCH v5 3/8] scsi: ufs: ufs-mediatek: Remove useless
 mediatek,ufs-boost-crypt property

On Wed, 2024-06-12 at 09:43 +0200, AngeloGioacchino Del Regno wrote:
> There is no need to have a property that activates the inline crypto
> boost feature, as this needs many things: a regulator, three clocks,
> and the mediatek,boost-crypt-microvolt property to be set.
> 
> If any one of these is missing, the feature won't be activated,
> hence, it is useless to have yet one more property to enable that.
> 
> While at it, also address another two issues:
> 1. Give back the return value to the caller and make sure to fail
>    probing if we get an -EPROBE_DEFER or -ENOMEM; and
> 2. Free the ufs_mtk_crypt_cfg structure allocated in the crypto
>    boost function if said functionality could not be enabled because
>    it's not supported, as that'd be only wasted memory.
> 
> Last but not least, move the devm_kzalloc() call for
> ufs_mtk_crypt_cfg
> to after getting the dvfsrc-vcore regulator and the boost microvolt
> property, as if those fail there's no reason to even allocate that.
> 
> Fixes: ac8c2459091c ("scsi: ufs-mediatek: Decouple features from
> platform bindings")
> Signed-off-by: AngeloGioacchino Del Regno <
> angelogioacchino.delregno@...labora.com>
> ---
>  drivers/ufs/host/ufs-mediatek.c | 55 ++++++++++++++++++-------------
> --
>  1 file changed, 30 insertions(+), 25 deletions(-)
> 
> diff --git a/drivers/ufs/host/ufs-mediatek.c b/drivers/ufs/host/ufs-
> mediatek.c
> index 23271eb1a244..8d0e7ea52541 100644
> --- a/drivers/ufs/host/ufs-mediatek.c
> +++ b/drivers/ufs/host/ufs-mediatek.c
> @@ -576,51 +576,55 @@ static int ufs_mtk_init_host_clk(struct ufs_hba
> *hba, const char *name,
>  	return ret;
>  }
>  
> -static void ufs_mtk_init_boost_crypt(struct ufs_hba *hba)
> +static int ufs_mtk_init_boost_crypt(struct ufs_hba *hba)
>  {
>  	struct ufs_mtk_host *host = ufshcd_get_variant(hba);
>  	struct ufs_mtk_crypt_cfg *cfg;
>  	struct device *dev = hba->dev;
>  	struct regulator *reg;
>  	u32 volt;
> -
> -	host->crypt = devm_kzalloc(dev, sizeof(*(host->crypt)),
> -				   GFP_KERNEL);
> -	if (!host->crypt)
> -		goto disable_caps;
> +	int ret;
>  
>  	reg = devm_regulator_get_optional(dev, "dvfsrc-vcore");
>  	if (IS_ERR(reg)) {
> -		dev_info(dev, "failed to get dvfsrc-vcore: %ld",
> -			 PTR_ERR(reg));
> -		goto disable_caps;
> +		ret = PTR_ERR(reg);
> +		if (ret == -EPROBE_DEFER)
> +			return ret;
> +
> +		return 0;
>  	}
>  
> -	if (of_property_read_u32(dev->of_node, "mediatek,boost-crypt-
> microvolt",
> -				 &volt)) {
> +	ret = of_property_read_u32(dev->of_node, "mediatek,boost-crypt-
> microvolt", &volt);
> +	if (ret) {
>  		dev_info(dev, "failed to get mediatek,boost-crypt-
> microvolt");
> -		goto disable_caps;
> +		return 0;
>  	}
>  
> +	host->crypt = devm_kzalloc(dev, sizeof(*host->crypt),
> GFP_KERNEL);
> +	if (!host->crypt)
> +		return -ENOMEM;
> +
>  	cfg = host->crypt;
> -	if (ufs_mtk_init_host_clk(hba, "crypt_mux",
> -				  &cfg->clk_crypt_mux))
> -		goto disable_caps;
> +	ret = ufs_mtk_init_host_clk(hba, "crypt_mux", &cfg-
> >clk_crypt_mux);
> +	if (ret)
> +		goto out;
>  
> -	if (ufs_mtk_init_host_clk(hba, "crypt_lp",
> -				  &cfg->clk_crypt_lp))
> -		goto disable_caps;
> +	ret = ufs_mtk_init_host_clk(hba, "crypt_lp", &cfg-
> >clk_crypt_lp);
> +	if (ret)
> +		goto out;
>  
> -	if (ufs_mtk_init_host_clk(hba, "crypt_perf",
> -				  &cfg->clk_crypt_perf))
> -		goto disable_caps;
> +	ret = ufs_mtk_init_host_clk(hba, "crypt_perf", &cfg-
> >clk_crypt_perf);
> +	if (ret)
> +		goto out;
>  
>  	cfg->reg_vcore = reg;
>  	cfg->vcore_volt = volt;
>  	host->caps |= UFS_MTK_CAP_BOOST_CRYPT_ENGINE;
>  
> -disable_caps:
> -	return;
> +out:
> +	if (ret)
> +		devm_kfree(dev, host->crypt);
> +	return 0;
>  }
>  
>  static int ufs_mtk_init_va09_pwr_ctrl(struct ufs_hba *hba)
> @@ -649,8 +653,9 @@ static int ufs_mtk_init_host_caps(struct ufs_hba
> *hba)
>  	struct device_node *np = hba->dev->of_node;
>  	int ret;
>  
> -	if (of_property_read_bool(np, "mediatek,ufs-boost-crypt"))
> -		ufs_mtk_init_boost_crypt(hba);
> 

Hi AngeloGioacchino,

As previously explained, removing these DTS settings will make what was
originally a simple task 
more complicated. In addition, it will require MediaTek to put in extra
effort to migrate the kernel. 
We do not believe that such changes have any benefits.

Thanks.
Peter




> +	ret = ufs_mtk_init_boost_crypt(hba);
> +	if (ret)
> +		return ret;
>  
>  	ret = ufs_mtk_init_va09_pwr_ctrl(hba);
>  	if (ret)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ