diff options
author | Bjorn Helgaas <bjorn.helgaas@hp.com> | 2010-10-26 15:41:33 -0600 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2010-10-26 15:33:31 -0700 |
commit | e7f8567db9a7f6b3151b0b275e245c1cef0d9c70 (patch) | |
tree | f04a01581e86ec2b8c175b9f27648679c70d592c /include/linux/enclosure.h | |
parent | a1862e31079149a52b6223776228c3aee493d4a7 (diff) | |
download | talos-op-linux-e7f8567db9a7f6b3151b0b275e245c1cef0d9c70.tar.gz talos-op-linux-e7f8567db9a7f6b3151b0b275e245c1cef0d9c70.zip |
resources: support allocating space within a region from the top down
Allocate space from the top of a region first, then work downward,
if an architecture desires this.
When we allocate space from a resource, we look for gaps between children
of the resource. Previously, we always looked at gaps from the bottom up.
For example, given this:
[mem 0xbff00000-0xf7ffffff] PCI Bus 0000:00
[mem 0xbff00000-0xbfffffff] gap -- available
[mem 0xc0000000-0xdfffffff] PCI Bus 0000:02
[mem 0xe0000000-0xf7ffffff] gap -- available
we attempted to allocate from the [mem 0xbff00000-0xbfffffff] gap first,
then the [mem 0xe0000000-0xf7ffffff] gap.
With this patch an architecture can choose to allocate from the top gap
[mem 0xe0000000-0xf7ffffff] first.
We can't do this across the board because iomem_resource.end is initialized
to 0xffffffff_ffffffff on 64-bit architectures, and most machines can't
address the entire 64-bit physical address space. Therefore, we only
allocate top-down if the arch requests it by clearing
"resource_alloc_from_bottom".
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'include/linux/enclosure.h')
0 files changed, 0 insertions, 0 deletions