mm: define memblock_virt_alloc_try_nid_raw
[sfrench/cifs-2.6.git] / include / linux / bootmem.h
index fdf40ca04b3ca03b1ad8d6c75a947a126a09269c..a53063e9d7d83b23c9d42dc954f6ea81339e06d5 100644 (file)
@@ -161,6 +161,9 @@ extern void *__alloc_bootmem_low_node(pg_data_t *pgdat,
 #define BOOTMEM_ALLOC_ANYWHERE         (~(phys_addr_t)0)
 
 /* FIXME: Move to memblock.h at a point where we remove nobootmem.c */
+void *memblock_virt_alloc_try_nid_raw(phys_addr_t size, phys_addr_t align,
+                                     phys_addr_t min_addr,
+                                     phys_addr_t max_addr, int nid);
 void *memblock_virt_alloc_try_nid_nopanic(phys_addr_t size,
                phys_addr_t align, phys_addr_t min_addr,
                phys_addr_t max_addr, int nid);
@@ -177,6 +180,14 @@ static inline void * __init memblock_virt_alloc(
                                            NUMA_NO_NODE);
 }
 
+static inline void * __init memblock_virt_alloc_raw(
+                                       phys_addr_t size,  phys_addr_t align)
+{
+       return memblock_virt_alloc_try_nid_raw(size, align, BOOTMEM_LOW_LIMIT,
+                                           BOOTMEM_ALLOC_ACCESSIBLE,
+                                           NUMA_NO_NODE);
+}
+
 static inline void * __init memblock_virt_alloc_nopanic(
                                        phys_addr_t size, phys_addr_t align)
 {
@@ -258,6 +269,14 @@ static inline void * __init memblock_virt_alloc(
        return __alloc_bootmem(size, align, BOOTMEM_LOW_LIMIT);
 }
 
+static inline void * __init memblock_virt_alloc_raw(
+                                       phys_addr_t size,  phys_addr_t align)
+{
+       if (!align)
+               align = SMP_CACHE_BYTES;
+       return __alloc_bootmem_nopanic(size, align, BOOTMEM_LOW_LIMIT);
+}
+
 static inline void * __init memblock_virt_alloc_nopanic(
                                        phys_addr_t size, phys_addr_t align)
 {
@@ -310,6 +329,14 @@ static inline void * __init memblock_virt_alloc_try_nid(phys_addr_t size,
                                          min_addr);
 }
 
+static inline void * __init memblock_virt_alloc_try_nid_raw(
+                       phys_addr_t size, phys_addr_t align,
+                       phys_addr_t min_addr, phys_addr_t max_addr, int nid)
+{
+       return ___alloc_bootmem_node_nopanic(NODE_DATA(nid), size, align,
+                               min_addr, max_addr);
+}
+
 static inline void * __init memblock_virt_alloc_try_nid_nopanic(
                        phys_addr_t size, phys_addr_t align,
                        phys_addr_t min_addr, phys_addr_t max_addr, int nid)