[sorry for answering only now, this email slipped through somehow] 2018-02-16 16:28 GMT-08:00 Andrew Morton : > On Sat, 10 Feb 2018 12:02:52 +0100 Vitaly Wool > wrote: > > > Currently if z3fold couldn't find an unbuddied page it would first > > try to pull a page off the stale list. The problem with this > > approach is that we can't 100% guarantee that the page is not > > processed by the workqueue thread at the same time unless we run > > cancel_work_sync() on it, which we can't do if we're in an atomic > > context. So let's just limit stale list usage to non-atomic > > contexts only. > > This smells like a bugfix. What are the end-user visible effects of > the bug? > > I have only seen this happening in real life once, and then z3fold ended up using a page which had been already freed and got blocked on a spinlock. ~Vitaly