Please check ufshpb init flow

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

 



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