On Thu, Apr 20, 2023 at 06:15:16AM +0000, Tian, Kevin wrote: > > > which internal list? group has a list for attached devices but regarding > > > to hwpt it's stored in a single field igroup->hwpt. > > > > It is added to > > > > list_add_tail(&hwpt->hwpt_item, &hwpt->ioas->hwpt_list); > > this is called under ioas->mutex. Yes.. But.. that is troubled too, we are calling destroy under the same mutex, there is a missing a fault point to catch it in the test, and hwpt_alloc doesn't have the lock wide enough :\ So you want to argue that it is safe to do this: mutex_lock(&ioas->mutex); alloc attach detach abort mutex_unlock(&ioas->mutex); Even if attach/detach lock/unlock the group mutex during their cycle? It seems OK.. I don't see any places that Though I don't much like the locking pattern where we succeed attach, drop all the locks and the fail and then relock and do error unwind.. Sketchy.. Jason