Hi Greg, Avri > On Sat, Dec 19, 2020 at 12:48:31PM +0000, Avri Altman wrote: > > > > > > > > > On Sat, Dec 19, 2020 at 06:18:47PM +0900, Daejun Park wrote: > > > > +static int ufshpb_get_state(struct ufshpb_lu *hpb) > > > > +{ > > > > + return atomic_read(&hpb->hpb_state); > > > > +} > > > > + > > > > +static void ufshpb_set_state(struct ufshpb_lu *hpb, int state) > > > > +{ > > > > + atomic_set(&hpb->hpb_state, state); > > > > +} > > > > > > You have a lock for the state, and yet the state is an atomic variable > > > and you do not use the lock here at all. You don't use the lock at all > > > infact... > > > > > > So either the lock needs to be dropped, or you need to use the lock and > > > make the state a normal variable please. > > hpb_state_lock is mainly protecting the list of active regions. > > Just grep lh_lru_rgn in patch 2/3. > > Then why is the lock added in this patch if it is not used here? I think it comes from that the name of the lock and related comment is different from the actual usage. I will modify the name and related comments, and introduce the lock to the patch 2/3. Thanks, Daejun