[PATCH] staging: zcache: fix possible sleep under lock
sjenning at linux.vnet.ibm.com
Mon Aug 22 12:20:42 PDT 2011
On 08/22/2011 02:09 PM, Dan Carpenter wrote:
> On Mon, Aug 22, 2011 at 01:47:49PM -0500, Seth Jennings wrote:
>> zcache_new_pool() calls kmalloc() with GFP_KERNEL which has
>> __GFP_WAIT set. However, zcache_new_pool() gets called on
>> a stack that holds the swap_lock spinlock, leading to a
>> possible sleep-with-lock situation. The lock is obtained
>> in enable_swap_info().
>> The patch replaces GFP_KERNEL with GFP_IOFS, which is
>> GFP_KERNEL & ~__GFP_WAIT.
> You should use GFP_ATOMIC. We don't want to do IO with the locks
> held. The only reason GFP_IOFS exists is so that we can turn off
> io during suspend and resume.
> dan carpenter
I guess I was looking to change it as little as possible and didn't
know what allocations should be allowed to use the "emergency pool" of
I'll update and resend.
More information about the devel