> > > 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. Thanks, Avri