Re: [PATCH] pvcalls-front: Use GFP_ATOMIC under spin_lock

From: Juergen Gross
Date: Thu Nov 29 2018 - 12:01:53 EST


On 29/11/2018 13:01, Wen Yang wrote:
> The problem is that we call this with a spin lock held.
> The call tree is:
> pvcalls_front_accept() holds bedata->socket_lock.
> -> create_active()
> -> __get_free_pages() uses GFP_KERNEL
>
> The create_active() function is only called from pvcalls_front_accept()
> with a spin_lock held, The allocation is not allowed to sleep and
> GFP_KERNEL is not sufficient, it has to be ATOMIC.

I'd rather have a function doing the allocations which is called
outside the lock and either passing the allocated data to
create_active() or hook it into map in the allocation function.


Juergen