Messages in this thread | | | Subject | Re: [PATCH] mm/util.c: Make kvfree() safe for calling while holding spinlocks | From | Vasily Averin <> | Date | Thu, 23 Dec 2021 15:34:26 +0300 |
| |
On 23.12.2021 14:52, Manfred Spraul wrote: > Hello Vasily, > > On 12/23/21 08:21, Vasily Averin wrote: >> >> I would prefer to release memory ASAP if it's possible. >> What do you think about this change? >> --- a/mm/util.c >> +++ b/mm/util.c >> @@ -614,9 +614,12 @@ EXPORT_SYMBOL(kvmalloc_node); >> */ >> void kvfree(const void *addr) >> { >> - if (is_vmalloc_addr(addr)) >> - vfree(addr); >> - else >> + if (is_vmalloc_addr(addr)) { >> + if (in_atomic()) >> + vfree_atomic(); >> + else >> + vfree(addr); >> + } else >> kfree(addr); >> } >> EXPORT_SYMBOL(kvfree); >> > Unfortunately this cannot work:
yes, you're right and I do not see any better solution yet.
| |