On Mon, Jul 07, 2025 at 05:32:11PM +0200, Yann Ylavic wrote: > On Fri, Jul 4, 2025 at 3:54 PM Mike Rapoport <rppt@xxxxxxxxxx> wrote: > > + > > +static void execmem_cache_free_slow(struct work_struct *work) > > +{ > > + struct maple_tree *busy_areas = &execmem_cache.busy_areas; > > + MA_STATE(mas, busy_areas, 0, ULONG_MAX); > > + void *area; > > + > > + guard(mutex)(&execmem_cache.mutex); > > + > > + if (!execmem_cache.pending_free_cnt) > > + return; > > + > > + mas_for_each(&mas, area, ULONG_MAX) { > > + if (!is_pending_free(area)) > > + continue; > > + > > + pending_free_clear(area); > > Probably: > area = pending_free_clear(area); > ? Right, thanks! > > + if (__execmem_cache_free(&mas, area, GFP_KERNEL)) > > + continue; > > + > > + execmem_cache.pending_free_cnt--; > > + } > > + > > + if (execmem_cache.pending_free_cnt) > > + schedule_delayed_work(&execmem_cache_free_work, FREE_DELAY); > > + else > > + schedule_work(&execmem_cache_clean_work); > > +} > > > Regards; > Yann. -- Sincerely yours, Mike.