Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.6.25-git14 /mm/slab.c

Filename:/mm/slab.c
Lines Added:9
Lines Deleted:13
Also changed in: (Previous) 2.6.25-git13  2.6.25-git12  2.6.25-git11  2.6.25-git10  2.6.25-git9  2.6.25-git8 
(Following) 2.6.25-git15  2.6.25-git16  2.6.25-git17  2.6.25-git18  2.6.25-git19  2.6.25-git20 

Location
[  2.6.25-git14
  [  mm
     o  slab.c

Patch

diff --git a/mm/slab.c b/mm/slab.c
index 04b308c..39d20f8 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -139,10 +139,6 @@
 #define   BYTES_PER_WORD      sizeof(void *)
 #define   REDZONE_ALIGN      max(BYTES_PER_WORD, __alignof__(unsigned long long))
 
-#ifndef cache_line_size
-#define cache_line_size()   L1_CACHE_BYTES
-#endif
-
 #ifndef ARCH_KMALLOC_MINALIGN
 /*
  * Enforce a minimum alignment for the kmalloc caches.
@@ -1160,14 +1156,13 @@ static void __cpuinit cpuup_canceled(long cpu)
    struct kmem_cache *cachep;
    struct kmem_list3 *l3 = NULL;
    int node = cpu_to_node(cpu);
+   node_to_cpumask_ptr(mask, node);
 
    list_for_each_entry(cachep, &cache_chain, next) {
       struct array_cache *nc;
       struct array_cache *shared;
       struct array_cache **alien;
-      cpumask_t mask;
 
-      mask = node_to_cpumask(node);
       /* cpu is dead; no one can alloc from it. */
       nc = cachep->array[cpu];
       cachep->array[cpu] = NULL;
@@ -1183,7 +1178,7 @@ static void __cpuinit cpuup_canceled(long cpu)
       if (nc)
          free_block(cachep, nc->entry, nc->avail, node);
 
-      if (!cpus_empty(mask)) {
+      if (!cpus_empty(*mask)) {
          spin_unlock_irq(&l3->list_lock);
          goto free_array_cache;
       }
@@ -3243,15 +3238,16 @@ static void *fallback_alloc(struct kmem_cache *cache, gfp_t flags)
 {
    struct zonelist *zonelist;
    gfp_t local_flags;
-   struct zone **z;
+   struct zoneref *z;
+   struct zone *zone;
+   enum zone_type high_zoneidx = gfp_zone(flags);
    void *obj = NULL;
    int nid;
 
    if (flags & __GFP_THISNODE)
       return NULL;
 
-   zonelist = &NODE_DATA(slab_node(current->mempolicy))
-         ->node_zonelists[gfp_zone(flags)];
+   zonelist = node_zonelist(slab_node(current->mempolicy), flags);
    local_flags = flags & (GFP_CONSTRAINT_MASK|GFP_RECLAIM_MASK);
 
 retry:
@@ -3259,10 +3255,10 @@ retry:
     * Look through allowed nodes for objects available
     * from existing per node queues.
     */
-   for (z = zonelist->zones; *z && !obj; z++) {
-      nid = zone_to_nid(*z);
+   for_each_zone_zonelist(zone, z, zonelist, high_zoneidx) {
+      nid = zone_to_nid(zone);
 
-      if (cpuset_zone_allowed_hardwall(*z, flags) &&
+      if (cpuset_zone_allowed_hardwall(zone, flags) &&
          cache->nodelists[nid] &&
          cache->nodelists[nid]->free_objects)
             obj = ____cache_alloc_node(cache,


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.