Messages in this thread | | | Subject | Re: [PATCH] pvcalls-front: Use GFP_ATOMIC under spin_lock | From | Juergen Gross <> | Date | Thu, 29 Nov 2018 18:01:46 +0100 |
| |
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
| |