)]}'
{
  "commit": "e7f8567db9a7f6b3151b0b275e245c1cef0d9c70",
  "tree": "f04a01581e86ec2b8c175b9f27648679c70d592c",
  "parents": [
    "a1862e31079149a52b6223776228c3aee493d4a7"
  ],
  "author": {
    "name": "Bjorn Helgaas",
    "email": "bjorn.helgaas@hp.com",
    "time": "Tue Oct 26 15:41:33 2010 -0600"
  },
  "committer": {
    "name": "Jesse Barnes",
    "email": "jbarnes@virtuousgeek.org",
    "time": "Tue Oct 26 15:33:31 2010 -0700"
  },
  "message": "resources: support allocating space within a region from the top down\n\nAllocate space from the top of a region first, then work downward,\nif an architecture desires this.\n\nWhen we allocate space from a resource, we look for gaps between children\nof the resource.  Previously, we always looked at gaps from the bottom up.\nFor example, given this:\n\n    [mem 0xbff00000-0xf7ffffff] PCI Bus 0000:00\n      [mem 0xbff00000-0xbfffffff] gap -- available\n      [mem 0xc0000000-0xdfffffff] PCI Bus 0000:02\n      [mem 0xe0000000-0xf7ffffff] gap -- available\n\nwe attempted to allocate from the [mem 0xbff00000-0xbfffffff] gap first,\nthen the [mem 0xe0000000-0xf7ffffff] gap.\n\nWith this patch an architecture can choose to allocate from the top gap\n[mem 0xe0000000-0xf7ffffff] first.\n\nWe can\u0027t do this across the board because iomem_resource.end is initialized\nto 0xffffffff_ffffffff on 64-bit architectures, and most machines can\u0027t\naddress the entire 64-bit physical address space.  Therefore, we only\nallocate top-down if the arch requests it by clearing\n\"resource_alloc_from_bottom\".\n\nSigned-off-by: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8dd7248508a9e12ac8908c24fb4a3649f157697a",
      "old_mode": 33188,
      "old_path": "Documentation/kernel-parameters.txt",
      "new_id": "fe50cbd315b093c817a8f749d8e1f5be39d21b44",
      "new_mode": 33188,
      "new_path": "Documentation/kernel-parameters.txt"
    },
    {
      "type": "modify",
      "old_id": "b22790268b64d5457a62994d1974ede5fe5351aa",
      "old_mode": 33188,
      "old_path": "include/linux/ioport.h",
      "new_id": "d377ea815d453b9ec232f22efc5503f5d456b0cf",
      "new_mode": 33188,
      "new_path": "include/linux/ioport.h"
    },
    {
      "type": "modify",
      "old_id": "e15b922d4ba4da2727298af2441562e277f9f69d",
      "old_mode": 33188,
      "old_path": "kernel/resource.c",
      "new_id": "716b6804077ef0988da621899dda9cb70a1ec76b",
      "new_mode": 33188,
      "new_path": "kernel/resource.c"
    }
  ]
}
