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: <BY5PR04MB632776263A4B37AEB7373DE4ED8D9@BY5PR04MB6327.namprd04.prod.outlook.com>
Date:   Sun, 17 Jul 2022 11:28:07 +0000
From:   Arthur Simchaev <Arthur.Simchaev@....com>
To:     Arthur Simchaev <Arthur.Simchaev@....com>,
        "martin.petersen@...cle.com" <martin.petersen@...cle.com>
CC:     "linux-scsi@...r.kernel.org" <linux-scsi@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        "beanhuo@...ron.com" <beanhuo@...ron.com>,
        Avi Shchislowski <Avi.Shchislowski@....com>
Subject: RE: [PATCH] scsi: ufs-bsg: Remove ufs_bsg_get_query_desc_size
 function

Hi Martin

The bsg driver allows user space to send device management commands.
As such, it is often used by field application engineers to debug various problems, and as a test bed for new features as well.

Let's not bound ourself to hard coded descriptor sizes, as the new Descriptors that supports new features are not defined yet.

Please consider this patch series for kernel v5.20

Regards
Arthur

> -----Original Message-----
> From: Arthur Simchaev <Arthur.Simchaev@....com>
> Sent: Monday, June 20, 2022 3:26 PM
> To: James; E.J.Bottomley; jejb@...ux.vnet.ibm.com; Martin; K.Petersen;
> martin.petersen@...cle.com
> Cc: linux-scsi@...r.kernel.org; linux-kernel@...r.kernel.org; Bean; Huo;
> beanhuo@...ron.com; Arthur Simchaev <Arthur.Simchaev@....com>
> Subject: [PATCH] scsi: ufs-bsg: Remove ufs_bsg_get_query_desc_size function
> 
> The bsg driver allows user space to send device management commands.
> As such, it is often used by field application engineers to debug various
> problems,
> and as a test bed for new features as well.
> 
> Let's not bound ourself to hard coded descriptor sizes, as the new
> Descriptors that supports new features are not defined yet.
> 
> Signed-off-by: Arthur Simchaev <Arthur.Simchaev@....com>
> ---
>  drivers/scsi/ufs/ufs_bsg.c | 28 ++++------------------------
>  1 file changed, 4 insertions(+), 24 deletions(-)
> 
> diff --git a/drivers/scsi/ufs/ufs_bsg.c b/drivers/scsi/ufs/ufs_bsg.c
> index 39bf204..7c56eba 100644
> --- a/drivers/scsi/ufs/ufs_bsg.c
> +++ b/drivers/scsi/ufs/ufs_bsg.c
> @@ -6,24 +6,6 @@
>   */
>  #include "ufs_bsg.h"
> 
> -static int ufs_bsg_get_query_desc_size(struct ufs_hba *hba, int *desc_len,
> -				       struct utp_upiu_query *qr)
> -{
> -	int desc_size = be16_to_cpu(qr->length);
> -	int desc_id = qr->idn;
> -
> -	if (desc_size <= 0)
> -		return -EINVAL;
> -
> -	ufshcd_map_desc_id_to_length(hba, desc_id, desc_len);
> -	if (!*desc_len)
> -		return -EINVAL;
> -
> -	*desc_len = min_t(int, *desc_len, desc_size);
> -
> -	return 0;
> -}
> -
>  static int ufs_bsg_verify_query_size(struct ufs_hba *hba,
>  				     unsigned int request_len,
>  				     unsigned int reply_len)
> @@ -52,13 +34,11 @@ static int ufs_bsg_alloc_desc_buffer(struct ufs_hba
> *hba, struct bsg_job *job,
>  		goto out;
> 
>  	qr = &bsg_request->upiu_req.qr;
> -	if (ufs_bsg_get_query_desc_size(hba, desc_len, qr)) {
> -		dev_err(hba->dev, "Illegal desc size\n");
> -		return -EINVAL;
> -	}
> +	*desc_len = be16_to_cpu(qr->length);
> 
> -	if (*desc_len > job->request_payload.payload_len) {
> -		dev_err(hba->dev, "Illegal desc size\n");
> +	if (*desc_len <= 0 || *desc_len > QUERY_DESC_MAX_SIZE ||
> +	    *desc_len > job->request_payload.payload_len) {
> +		dev_err(hba->dev, "Illegal desc size %d\n", *desc_len);
>  		return -EINVAL;
>  	}
> 
> --
> 2.7.4

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ