RE: [PATCH v2] scsi: ufs: Zero utp_upiu_req at the beginning of each command

From: Avri Altman
Date: Thu Sep 19 2024 - 02:59:57 EST


> On 9/17/24 11:03 PM, Avri Altman wrote:
> > My proposal is making 4 changes, attending the 5 upiu types:
> > 1) Zero query upiu and nop upiu in ufshcd_compose_devman_upiu
> > 2) zero command upiu in ufshcd_comp_scsi_upiu
> > 3) zero raw query upiu in ufshcd_issue_devman_upiu_cmd, and
> > 4) zero rpmb extended header (raw command upiu) in
> > ufshcd_advanced_rpmb_req_handler
> >
> > Your proposal is making 3 changes:
> > - zero query upiu in ufshcd_prepare_utp_query_req_upiu
> > - zero nop upiu in ufshcd_prepare_utp_nop_upiu
> > - zero command upiu in ufshcd_prepare_utp_scsi_cmd_upiu And you
> > haven't zero the raw query upiu nor the rpmb extended header .
> Hi Avri,
>
> Would it be possible to combine our patches in such a way that all UPIU types are
> covered and such that the memset() calls for query, nop and command UPIUs
> occur in the functions that initialize *ucd_req_ptr->header?
I guess so.
One approach is to use the fact that all prep instances calls ufshcd_prepare_req_desc_hdr which instantiate the UTRD header.
Although it reduces the memset() calls to a single call,
this option is less good IMO because the UTRD header shouldn't have anything to do with the upiu itself.

Alternatively, we can move it to ufshcd_setup_dev_cmd in which we'll end up with 2 calls:
One for command upiu in ufshcd_comp_scsi_upiu and one for all others in ufshcd_setup_dev_cmd,
Which makes more sense to me.

Thanks,
Avri
>
> Thanks,
>
> Bart.