On Tue, Sep 15, 2020 at 11:15:53AM +0200, David Hildenbrand wrote: >On 15.09.20 11:06, Wei Yang wrote: >> On Tue, Sep 15, 2020 at 09:35:30AM +0200, David Hildenbrand wrote: >>> >>>>> static int __ref try_remove_memory(int nid, u64 start, u64 size) >>>>> { >>>>> int rc = 0; >>>>> @@ -1777,7 +1757,7 @@ static int __ref try_remove_memory(int nid, u64 start, u64 size) >>>>> memblock_remove(start, size); >>>>> } >>>>> >>>>> - __release_memory_resource(start, size); >>>>> + release_mem_region_adjustable(&iomem_resource, start, size); >>>>> >>>> >>>> Seems the only user of release_mem_region_adjustable() is here, can we move >>>> iomem_resource into the function body? Actually, we don't iterate the resource >>>> tree from any level. We always start from the root. >>> >>> You mean, making iomem_resource implicit? I can spot that something >>> similar was done for >>> >>> #define devm_release_mem_region(dev, start, n) \ >>> __devm_release_region(dev, &iomem_resource, (start), (n)) >>> >> >> What I prefer is remove iomem_resource from the parameter list. Just use is in >> the function body. >> >> For the example you listed, __release_region() would have varies of *parent*, >> which looks reasonable to keep it here. > >Yeah I got that ("making iomem_resource implicit"), as I said: > Thanks >>> I'll send an addon patch for that, ok? - thanks. > >-- >Thanks, > >David / dhildenb -- Wei Yang Help you, Help me