On Sat, Jul 20, 2019 at 12:23:08AM +0100, Al Viro wrote: > On Fri, Jul 19, 2019 at 07:07:49PM -0400, Jeff Layton wrote: > > > Al pointed out on IRC that vfree should be callable under spinlock. > > Al had been near-terminally low on caffeine at the time, posted > a retraction a few minutes later and went to grab some coffee... > > > It > > only sleeps if !in_interrupt(), and I think that should return true if > > we're holding a spinlock. > > It can be used from RCU callbacks and all such; it *can't* be used from > under spinlock - on non-preempt builds there's no way to recognize that. Re original patch: looks like the sane way to handle that. Alternatively, we could add kvfree_atomic() for use in such situations, but I rather doubt that it's a good idea - not unless you need to free something under a spinlock held over a large area, which is generally a bad idea to start with... Note that vfree_atomic() has only one caller in the entire tree, BTW.