]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
mm: replace __get_cpu_var uses with this_cpu_ptr
authorChristoph Lameter <cl@linux.com>
Thu, 6 Mar 2014 00:05:21 +0000 (11:05 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 6 Mar 2014 07:13:33 +0000 (18:13 +1100)
Replace places where __get_cpu_var() is used for an address calculation
with this_cpu_ptr().

Signed-off-by: Christoph Lameter <cl@linux.com>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
lib/radix-tree.c
mm/memcontrol.c
mm/memory-failure.c
mm/page-writeback.c
mm/slub.c
mm/swap.c
mm/vmalloc.c
mm/vmstat.c
mm/zsmalloc.c

index 9599aa72d7a024795b300750e55147a60f58ed19..55f7a9c2731248ba9b281fff5de7a98e868a5d5d 100644 (file)
@@ -194,7 +194,7 @@ radix_tree_node_alloc(struct radix_tree_root *root)
                 * succeed in getting a node here (and never reach
                 * kmem_cache_alloc)
                 */
-               rtp = &__get_cpu_var(radix_tree_preloads);
+               rtp = this_cpu_ptr(&radix_tree_preloads);
                if (rtp->nr) {
                        ret = rtp->nodes[rtp->nr - 1];
                        rtp->nodes[rtp->nr - 1] = NULL;
@@ -250,14 +250,14 @@ static int __radix_tree_preload(gfp_t gfp_mask)
        int ret = -ENOMEM;
 
        preempt_disable();
-       rtp = &__get_cpu_var(radix_tree_preloads);
+       rtp = this_cpu_ptr(&radix_tree_preloads);
        while (rtp->nr < ARRAY_SIZE(rtp->nodes)) {
                preempt_enable();
                node = kmem_cache_alloc(radix_tree_node_cachep, gfp_mask);
                if (node == NULL)
                        goto out;
                preempt_disable();
-               rtp = &__get_cpu_var(radix_tree_preloads);
+               rtp = this_cpu_ptr(&radix_tree_preloads);
                if (rtp->nr < ARRAY_SIZE(rtp->nodes))
                        rtp->nodes[rtp->nr++] = node;
                else
index 8a87614b6238eeb125d4cd5c4451e8031c1b13a3..bf383fd40e901f737aefdcd5083e6026c77278ce 100644 (file)
@@ -2441,7 +2441,7 @@ static void drain_stock(struct memcg_stock_pcp *stock)
  */
 static void drain_local_stock(struct work_struct *dummy)
 {
-       struct memcg_stock_pcp *stock = &__get_cpu_var(memcg_stock);
+       struct memcg_stock_pcp *stock = this_cpu_ptr(&memcg_stock);
        drain_stock(stock);
        clear_bit(FLUSHING_CACHED_CHARGE, &stock->flags);
 }
index 12ac5df4d49a500c3c8fcfdf9e549efe773bdd9c..5642cfbd61240deed6b1aa3d684ab42650dabdb6 100644 (file)
@@ -1295,7 +1295,7 @@ static void memory_failure_work_func(struct work_struct *work)
        unsigned long proc_flags;
        int gotten;
 
-       mf_cpu = &__get_cpu_var(memory_failure_cpu);
+       mf_cpu = this_cpu_ptr(&memory_failure_cpu);
        for (;;) {
                spin_lock_irqsave(&mf_cpu->lock, proc_flags);
                gotten = kfifo_get(&mf_cpu->fifo, &entry);
index 7106cb1aca8e3733059b344a773310aa4bf0fcd7..7d4594e017b304b010d06b4cd0677d048b077e47 100644 (file)
@@ -1623,7 +1623,7 @@ void balance_dirty_pages_ratelimited(struct address_space *mapping)
         * 1000+ tasks, all of them start dirtying pages at exactly the same
         * time, hence all honoured too large initial task->nr_dirtied_pause.
         */
-       p =  &__get_cpu_var(bdp_ratelimits);
+       p =  this_cpu_ptr(&bdp_ratelimits);
        if (unlikely(current->nr_dirtied >= ratelimit))
                *p = 0;
        else if (unlikely(*p >= ratelimit_pages)) {
@@ -1635,7 +1635,7 @@ void balance_dirty_pages_ratelimited(struct address_space *mapping)
         * short-lived tasks (eg. gcc invocations in a kernel build) escaping
         * the dirty throttling and livelock other long-run dirtiers.
         */
-       p = &__get_cpu_var(dirty_throttle_leaks);
+       p = this_cpu_ptr(&dirty_throttle_leaks);
        if (*p > 0 && current->nr_dirtied < ratelimit) {
                unsigned long nr_pages_dirtied;
                nr_pages_dirtied = min(*p, ratelimit - current->nr_dirtied);
index 3508edec19f9cb06e952b60c3b1815f9135bd002..c6eb29d65847c97318aac5f76b2544645d8f8283 100644 (file)
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -2196,7 +2196,7 @@ static inline void *new_slab_objects(struct kmem_cache *s, gfp_t flags,
 
        page = new_slab(s, flags, node);
        if (page) {
-               c = __this_cpu_ptr(s->cpu_slab);
+               c = raw_cpu_ptr(s->cpu_slab);
                if (c->page)
                        flush_slab(s, c);
 
@@ -2416,7 +2416,7 @@ redo:
         * and the retrieval of the tid.
         */
        preempt_disable();
-       c = __this_cpu_ptr(s->cpu_slab);
+       c = this_cpu_ptr(s->cpu_slab);
 
        /*
         * The transaction ids are globally unique per cpu and per operation on
@@ -2672,7 +2672,7 @@ redo:
         * during the cmpxchg then the free will succedd.
         */
        preempt_disable();
-       c = __this_cpu_ptr(s->cpu_slab);
+       c = this_cpu_ptr(s->cpu_slab);
 
        tid = c->tid;
        preempt_enable();
index f4d5f590d74bb337e5dd8a6e583a9ea286a16907..0f10743a5d34e306e76265811b1e5ace76e07bc8 100644 (file)
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -441,7 +441,7 @@ void rotate_reclaimable_page(struct page *page)
 
                page_cache_get(page);
                local_irq_save(flags);
-               pvec = &__get_cpu_var(lru_rotate_pvecs);
+               pvec = this_cpu_ptr(&lru_rotate_pvecs);
                if (!pagevec_add(pvec, page))
                        pagevec_move_tail(pvec);
                local_irq_restore(flags);
index a7b522f4851d3869e1ff502cde866e07494532df..b08b01dc2562b8ab93ab2573603e4324991fffe0 100644 (file)
@@ -1490,7 +1490,7 @@ void vfree(const void *addr)
        if (!addr)
                return;
        if (unlikely(in_interrupt())) {
-               struct vfree_deferred *p = &__get_cpu_var(vfree_deferred);
+               struct vfree_deferred *p = this_cpu_ptr(&vfree_deferred);
                if (llist_add((struct llist_node *)addr, &p->list))
                        schedule_work(&p->wq);
        } else
index 197b4c4a95879832e29e7b933b70c2f4f6e01d17..0a05c292895b7178331aafa50419389d002ecef4 100644 (file)
@@ -489,7 +489,7 @@ static void refresh_cpu_vm_stats(void)
                        continue;
 
                if (__this_cpu_read(p->pcp.count))
-                       drain_zone_pages(zone, __this_cpu_ptr(&p->pcp));
+                       drain_zone_pages(zone, this_cpu_ptr(&p->pcp));
 #endif
        }
        fold_diff(global_diff);
@@ -1226,7 +1226,7 @@ int sysctl_stat_interval __read_mostly = HZ;
 static void vmstat_update(struct work_struct *w)
 {
        refresh_cpu_vm_stats();
-       schedule_delayed_work(&__get_cpu_var(vmstat_work),
+       schedule_delayed_work(this_cpu_ptr(&vmstat_work),
                round_jiffies_relative(sysctl_stat_interval));
 }
 
index c03ca5e9fe15c8b9725db0ac41b6ba78f64b0e5d..27f827351073dca6121a5c874d7bb15c7ba6ca80 100644 (file)
@@ -1071,7 +1071,7 @@ void zs_unmap_object(struct zs_pool *pool, unsigned long handle)
        class = &pool->size_class[class_idx];
        off = obj_idx_to_offset(page, obj_idx, class->size);
 
-       area = &__get_cpu_var(zs_map_area);
+       area = this_cpu_ptr(&zs_map_area);
        if (off + class->size <= PAGE_SIZE)
                kunmap_atomic(area->vm_addr);
        else {