On Tue 03-10-17 12:01:08, Pasha Tatashin wrote: > Hi Michal, > > Are you OK, if I replace DEFERRED_FREE() macro with a function like this: > > /* > * Helper for deferred_init_range, free the given range, and reset the > * counters > */ > static inline unsigned long __def_free(unsigned long *nr_free, > unsigned long *free_base_pfn, > struct page **page) > { > unsigned long nr = *nr_free; > > deferred_free_range(*free_base_pfn, nr); > *free_base_pfn = 0; > *nr_free = 0; > *page = NULL; > > return nr; > } > > Since it is inline, and we operate with non-volatile counters, compiler will > be smart enough to remove all the unnecessary de-references. As a plus, we > won't be adding any new branches, and the code is still going to stay > compact. OK. It is a bit clunky but we are holding too much state there. I haven't checked whether that can be simplified but this can be always done later. -- Michal Hocko SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html