vm: minimum and maximum zone IDs are now defined in arch/../vm.h
This commit is contained in:
@@ -18,4 +18,7 @@
|
||||
#define VM_PAGE_MIN_ORDER VM_PAGE_4K
|
||||
#define VM_PAGE_MAX_ORDER VM_PAGE_8M
|
||||
|
||||
#define VM_ZONE_MIN VM_ZONE_DMA
|
||||
#define VM_ZONE_MAX VM_ZONE_NORMAL
|
||||
|
||||
#endif
|
||||
|
||||
@@ -56,12 +56,12 @@ enum vm_flags {
|
||||
|
||||
enum vm_zone_id {
|
||||
/* NOTE that these are used as indices into the node_zones array in vm/zone.c
|
||||
they need to be continuous, and must start at 0! */
|
||||
they need to be continuous, and must start at 0!
|
||||
|
||||
not all of these zones are implemented for every architecture. */
|
||||
VM_ZONE_DMA = 0u,
|
||||
VM_ZONE_NORMAL = 1u,
|
||||
VM_ZONE_HIGHMEM = 2u,
|
||||
VM_ZONE_MIN = VM_ZONE_DMA,
|
||||
VM_ZONE_MAX = VM_ZONE_HIGHMEM,
|
||||
};
|
||||
|
||||
enum vm_page_order {
|
||||
|
||||
@@ -82,6 +82,10 @@ void vm_cache_destroy(struct vm_cache *cache)
|
||||
static struct vm_slab *alloc_slab(struct vm_cache *cache, enum vm_flags flags)
|
||||
{
|
||||
struct vm_page *slab_page = vm_page_alloc(cache->c_page_order, flags);
|
||||
if (!slab_page) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct vm_slab *slab_hdr = NULL;
|
||||
void *slab_data = vm_page_get_vaddr(slab_page);
|
||||
|
||||
|
||||
@@ -155,7 +155,7 @@ struct vm_page *vm_page_alloc(enum vm_page_order order, enum vm_flags flags)
|
||||
{
|
||||
/* TODO prefer nodes closer to us */
|
||||
struct vm_pg_data *node = vm_pg_data_get(0);
|
||||
enum vm_zone_id zone_id = VM_ZONE_HIGHMEM;
|
||||
enum vm_zone_id zone_id = VM_ZONE_MAX;
|
||||
if (flags & VM_GET_DMA) {
|
||||
zone_id = VM_ZONE_DMA;
|
||||
}
|
||||
@@ -168,7 +168,7 @@ struct vm_page *vm_page_alloc(enum vm_page_order order, enum vm_flags flags)
|
||||
return pg;
|
||||
}
|
||||
|
||||
if (zone_id == VM_ZONE_MIN) {
|
||||
if (zone_id <= VM_ZONE_MIN) {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user