On 9/3/21 08:22, Mike Galbraith wrote: >> > so that when you read that function on its own, it's clear that the >> > lock is always held over that critical section - and the issue is that >> > perhaps the lock was already taken by the caller. >> >> Actually that "already taken" becomes "caller does not need it/can't Meant to say "... later in the series becomes ...". >> even take the local lock as it's not local" (it's a cpu hot remove >> handler on behalf of another, dead cpu). >> >> So would it work with something like the following cleanup on top later >> after proper testing? (now just compile tested). > > To my eyeballs, below duplication of a couple lines of initialization > needed by the lockless function is less icky than the double return. Yeah, that's better, thanks Mike.