X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=mm%2Fmemory-failure.c;h=d50f17fb9be2c2998c275a8b807316833513cb43;hb=7c8e0181e6e0b8079c4c2ce902bf52d7a2c6fa5d;hp=9ccef39a9de261c96f4e5775d7dca48b63d4d133;hpb=bd698cf6595b079ce36423e8c7eb4a69a31b1733;p=cascardo%2Flinux.git diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 9ccef39a9de2..d50f17fb9be2 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1298,7 +1298,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); @@ -1664,11 +1664,7 @@ int soft_offline_page(struct page *page, int flags) } } - /* - * The lock_memory_hotplug prevents a race with memory hotplug. - * This is a big hammer, a better would be nicer. - */ - lock_memory_hotplug(); + get_online_mems(); /* * Isolate the page, so that it doesn't get reallocated if it @@ -1679,7 +1675,7 @@ int soft_offline_page(struct page *page, int flags) set_migratetype_isolate(page, true); ret = get_any_page(page, pfn, flags); - unlock_memory_hotplug(); + put_online_mems(); if (ret > 0) { /* for in-use pages */ if (PageHuge(page)) ret = soft_offline_huge_page(page, flags);