RE: RE: RE: [PATCH v22 2/4] scsi: ufs: L2P map management for HPB read

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

 



> 
> > +/*
> > > + * This function will parse recommended active subregion information in
> > > sense
> > > + * data field of response UPIU with SAM_STAT_GOOD state.
> > > + */
> > > +void ufshpb_rsp_upiu(struct ufs_hba *hba, struct ufshcd_lrb *lrbp)
> > > +{
> > > +       struct ufshpb_lu *hpb;
> > > +       struct scsi_device *sdev;
> > > +       struct utp_hpb_rsp *rsp_field = &lrbp->ucd_rsp_ptr->hr;
> > > +       int data_seg_len;
> > > +       bool found = false;
> > > +
> > > +       __shost_for_each_device(sdev, hba->host) {
> > > +               hpb = ufshpb_get_hpb_data(sdev);
> > > +
> > > +               if (!hpb)
> > > +                       continue;
> > > +
> > > +               if (rsp_field->lun == hpb->lun) {
> > > +                       found = true;
> > > +                       break;
> > This piece of code looks awkward, although it is probably working.
> > Why not just having a reference to the hpb luns, e.g. something like:
> > struct ufshpb_lu *hpb_luns[8] in struct ufs_hba.
> > Less elegant - but much more effective than iterating the scsi host on every
> completion interrupt.
> 
> How about checking (cmd->lun == rsp->lun) before the iteration?
> Major case will be have same lun. And, it is hard to add struct ufshpb_lu
> *hpb_luns[128]
> in struct ufs_hba, because LUN can be upto 127.
Oh - yes, 8 is for write booster.
OK.  Whatever you think.

However, I think there can be up to 32 regular luns,
meaning UFS_UPIU_MAX_UNIT_NUM_ID need to be fixed as well.

Thanks,
Avri

> 
> Thanks,
> Daejun




[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