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