On Mon, Mar 04, 2024 at 01:30:35PM -0500, Alan Stern wrote: > On Mon, Mar 04, 2024 at 05:36:19PM +0100, Greg KH wrote: > > On Mon, Mar 04, 2024 at 11:15:24AM -0500, Alan Stern wrote: > > > Third, this must be a generic problem. It will occur any time a sysfs > > > attribute callback tries to lock its device while another process is > > > trying to unregister that device. > > > > > > We faced this sort of problem some years ago when we were worrying > > > about "suicidal" attributes -- ones which would unregister their own > > > devices. I don't remember what the fix was or how it worked. But we > > > need something like it here. > > > > > > Greg and Tejun, any ideas? Is it possible somehow for an attribute file > > > to be removed while its callback is still running? > > > > Yes, it's a pain, and I hate it, but I think SCSI does this somehow for > > one of their attributes. I don't remember how at the moment, and I > > can't look it up (am traveling), but this should be a good hint. > > Are you thinking of the sysfs_break_active_protection() and > sysfs_unbreak_active_protection() functions? They seem to be the > appropriate ones to use here. Yes, that sounds correct.