> 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.