RE: [PATCH] scsi: ufs-bsg: Remove ufs_bsg_get_query_desc_size function

From: Arthur Simchaev
Date: Wed Sep 21 2022 - 05:54:36 EST


Thank you Bean

> UFS descriptor size is no longer hardcoded (defined in the driver), the
> size of the descriptor is reported by UFS itself, check the latest
> kernel.
>
Invokes ufshcd_map_desc_id_to_length from bsg code, still problematic
also in the latest kernel. The function limited the ufs bsg functionality.
For example FBO descriptor published in Jedec UFS 4.0 spec and already exist in some UFS devices.
Or others reserved descriptors (RFU_0/1) which can be used as vendor's descriptor. The function returns len =0
We should be able to read any UFS descriptor of any size (up to QUERY_DESC_MAX_SIZE) or idn.
According to the spec, the device will return the actual size.

The ufs bsg driver should not impose any such limitation. It's one of its design guidelines.
E.g. as done for the attributes, flags the kernel doesn't check it size(for attributes is the max - 4 bytes),
nor access (read/write).
And just returns an appropriate error code should an error occur.

> This UFS driver is in the wrong location, I assume you are using an
> older kernel version?
Done

Regards
Arthur

> -----Original Message-----
> From: Bean Huo <huobean@xxxxxxxxx>
> Sent: Tuesday, September 20, 2022 12:38 PM
> To: Arthur Simchaev <Arthur.Simchaev@xxxxxxx>; James@xxxxxxxxxxxxxxx;
> E.J.Bottomley@xxxxxxxxxxxxxxx; jejb@xxxxxxxxxxxxxxxxxx;
> Martin@xxxxxxxxxxxxxxx; K.Petersen@xxxxxxxxxxxxxxx;
> martin.petersen@xxxxxxxxxx
> Cc: linux-scsi@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> Bean@xxxxxxxxxxxxxxx; Huo@xxxxxxxxxxxxxxx; beanhuo@xxxxxxxxxx
> Subject: Re: [PATCH] scsi: ufs-bsg: Remove ufs_bsg_get_query_desc_size
> function
>
> CAUTION: This email originated from outside of Western Digital. Do not click
> on links or open attachments unless you recognize the sender and know that
> the content is safe.
>
>
> Hi Arthur,
>
>
> On Mon, 2022-06-20 at 15:26 +0300, Arthur Simchaev wrote:
> > 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
>
> UFS descriptor size is no longer hardcoded (defined in the driver), the
> size of the descriptor is reported by UFS itself, check the latest
> kernel.
>
>
> > Descriptors that supports new features are not defined yet.
> >
> > Signed-off-by: Arthur Simchaev <Arthur.Simchaev@xxxxxxx>
> > ---
> > 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
>
> This UFS driver is in the wrong location, I assume you are using an
> older kernel version?
>
> Kind regards,
> Bean