Re: Please check ufshpb init flow

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



it's for "Inactivating all HPB regions" after reboot      

scsi_add_lun()...>ufshpb_issue_umap_all_req(hpb);

if it is a cold reboot on both host side and UFS device side, it is not
necessary to issue this write buffer.


On Fri, 2021-11-19 at 02:31 +0000, 정요한(JOUNG YOHAN) Mobile SE wrote:
> Hi daejun
> 
> Please check ufshpb init flow.
> sending write buffer(0x03) seems spec violation (JESD220 Commands for
> exceptional behavior on UAC, SAM 5r05) before UAC clear (sd_probe).
> Anyway hpb reset query(ufshpb_check_hpb_reset_query) seems
> sufficient.
> Why do we need to send write buffer?
> 
> void ufshpb_init_hpb_lu(struct ufs_hba *hba, struct scsi_device
> *sdev)
> {
> out:
>     /* All LUs are initialized */
>     if (atomic_dec_and_test(&hba->ufshpb_dev.slave_conf_cnt))
> 	There seems to be a problem with this logic.
> 	If hpb is set on the last LUN, write buffer command is sent
> before sd_probe completes.
>         ufshpb_hpb_lu_prepared(hba);
> }
> 
> static void ufshpb_hpb_lu_prepared(struct ufs_hba *hba)
> {
> 
>     init_success = !ufshpb_check_hpb_reset_query(hba);
> 
>     shost_for_each_device(sdev, hba->host) {
>         hpb = ufshpb_get_hpb_data(sdev);
>         if (!hpb)
>             continue;
> 
>         if (init_success) {
>             ufshpb_set_state(hpb, HPB_PRESENT);
>             if ((hpb->lu_pinned_end - hpb->lu_pinned_start) > 0)
>                 queue_work(ufshpb_wq, &hpb->map_work);
>             if (!hpb->is_hcm)
>                 ufshpb_issue_umap_all_req(hpb); 
> 		This seems unnecessary.
> 		
>         } else {
> 
> Thanks 
> yohan




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux