Messages in this thread | | | Date | Tue, 9 Apr 2013 12:51:41 -0700 | From | Andrew Morton <> | Subject | Re: [UPDATE][PATCH v2 2/3] resource: Add release_mem_region_adjustable() |
| |
On Tue, 09 Apr 2013 13:02:30 -0600 Toshi Kani <toshi.kani@hp.com> wrote:
> > > + /* look for the next resource if it does not fit into */ > > > + if (res->start > start || res->end < end) { > > > + p = &res->sibling; > > > + continue; > > > + } > > > > What if the resource overlaps. In other words, the res->start > start > > but res->end > end ? > > > > Also do you handle the case where the range <start,end> spans > > across multiple adjacent resources? > > Good questions! The two cases above are handled as error cases > (-EINVAL) by design. A requested region must either match exactly or > fit into a single resource entry. There are basically two design > choices in release -- restrictive or non-restrictive. Restrictive only > releases under certain conditions, and non-restrictive releases under > any conditions. Since the existing release interfaces, > __release_region() and __release_resource(), are restrictive, I intend > to follow the same policy and made this new interface restrictive as > well. This new interface handles the common scenarios of memory > hot-plug operations well. I think your example cases are non-typical > scenarios for memory hot-plug, and I am not sure if they happen under > normal cases at this point. Hence, they are handled as error cases for > now. We can always enhance this interface when we find them necessary > to support as this interface is dedicated for memory hot-plug. In other > words, we should make such enhancement after we understand their > scenarios well. Does it make sense?
Can you please update the comment to describe the above? Because if one reviewer was wondering then later readers will also wonder.
| |