> Avri, > > > On Sat, 2020-05-30 at 06:56 +0000, Avri Altman wrote: > > > > > > > > From: Bean Huo <beanhuo@xxxxxxxxxx> > > > > > > For UFS 3.1, the normal unit descriptor is 10 bytes larger > > > than the RPMB unit, however, both descriptors share the same > > > desc_idn, to cover both unit descriptors with one length, we > > > choose the normal unit descriptor length by desc_index. > > > > This is not what your code is doing. > > For RPMB - desc size will not be 0x2d but remain 256. > > sorry, I'm afraid I didn't quite get your point here. > would you go over it again in detail please? > > > > > > Your strategy is still correct IMO - if you assign the larger size, > > The device will not reply with error, but with the proper buffer. > > > > You can also rely that reading the rpmb unit descriptor will not > > happen before > > Reading regular luns, because this is happening in the first > > slave_alloc. > > > > On my side, I saw the Well-know LU descriptor is read before > regulaer/normal LU descritptor. see ufshcd_add_lus(); > > I did further debug to verify my patch, and the unit descriptor read > sequence: > > 1. read RPMB descriptor: desc_id 2, desc_index 0xc4 > 2. read LU 0 descriptor: desc_id 2, desc_index 0 > 3. read LU 0 descriptor: desc_id 2, desc_index 1 > 4. read LU 0 descriptor: desc_id 2, desc_index 2 > 5. read LU 0 descriptor: desc_id 2, desc_index 4 > .... > > > Hence, I think you can drop the extra if, and just add the comment. > > > > so, this 'if' is still needed. otherwise, LU descriptor length will be > initialized as 0x23(RPMB descriptor length). > Ahha, ok. I see your point now, Fair enough. Reviewed-by: Avri Altman <avri.altman@xxxxxxx>