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? thanks, greg k-h