Merge branch 'percpu-for-linus' into percpu-for-next
Conflicts: arch/sparc/kernel/smp_64.c arch/x86/kernel/cpu/perf_counter.c arch/x86/kernel/setup_percpu.c drivers/cpufreq/cpufreq_ondemand.c mm/percpu.c Conflicts in core and arch percpu codes are mostly from commit ed78e1e078dd44249f88b1dd8c76dafb39567161 which substituted many num_possible_cpus() with nr_cpu_ids. As for-next branch has moved all the first chunk allocators into mm/percpu.c, the changes are moved from arch code to mm/percpu.c. Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
@@ -27,9 +27,9 @@
|
||||
#define pud_page_vaddr(pud) pgd_page_vaddr(pud)
|
||||
|
||||
#undef pud_free_tlb
|
||||
#define pud_free_tlb(tlb, x) do { } while (0)
|
||||
#define pud_free_tlb(tlb, x, addr) do { } while (0)
|
||||
#define pud_free(mm, x) do { } while (0)
|
||||
#define __pud_free_tlb(tlb, x) do { } while (0)
|
||||
#define __pud_free_tlb(tlb, x, addr) do { } while (0)
|
||||
|
||||
#undef pud_addr_end
|
||||
#define pud_addr_end(addr, end) (end)
|
||||
|
@@ -59,7 +59,7 @@ static inline pmd_t * pmd_offset(pud_t * pud, unsigned long address)
|
||||
static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
|
||||
{
|
||||
}
|
||||
#define __pmd_free_tlb(tlb, x) do { } while (0)
|
||||
#define __pmd_free_tlb(tlb, x, a) do { } while (0)
|
||||
|
||||
#undef pmd_addr_end
|
||||
#define pmd_addr_end(addr, end) (end)
|
||||
|
@@ -52,7 +52,7 @@ static inline pud_t * pud_offset(pgd_t * pgd, unsigned long address)
|
||||
*/
|
||||
#define pud_alloc_one(mm, address) NULL
|
||||
#define pud_free(mm, x) do { } while (0)
|
||||
#define __pud_free_tlb(tlb, x) do { } while (0)
|
||||
#define __pud_free_tlb(tlb, x, a) do { } while (0)
|
||||
|
||||
#undef pud_addr_end
|
||||
#define pud_addr_end(addr, end) (end)
|
||||
|
@@ -123,24 +123,24 @@ static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page)
|
||||
__tlb_remove_tlb_entry(tlb, ptep, address); \
|
||||
} while (0)
|
||||
|
||||
#define pte_free_tlb(tlb, ptep) \
|
||||
#define pte_free_tlb(tlb, ptep, address) \
|
||||
do { \
|
||||
tlb->need_flush = 1; \
|
||||
__pte_free_tlb(tlb, ptep); \
|
||||
__pte_free_tlb(tlb, ptep, address); \
|
||||
} while (0)
|
||||
|
||||
#ifndef __ARCH_HAS_4LEVEL_HACK
|
||||
#define pud_free_tlb(tlb, pudp) \
|
||||
#define pud_free_tlb(tlb, pudp, address) \
|
||||
do { \
|
||||
tlb->need_flush = 1; \
|
||||
__pud_free_tlb(tlb, pudp); \
|
||||
__pud_free_tlb(tlb, pudp, address); \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
#define pmd_free_tlb(tlb, pmdp) \
|
||||
#define pmd_free_tlb(tlb, pmdp, address) \
|
||||
do { \
|
||||
tlb->need_flush = 1; \
|
||||
__pmd_free_tlb(tlb, pmdp); \
|
||||
__pmd_free_tlb(tlb, pmdp, address); \
|
||||
} while (0)
|
||||
|
||||
#define tlb_migrate_finish(mm) do {} while (0)
|
||||
|
@@ -30,9 +30,7 @@
|
||||
* EXCEPTION_TABLE(...)
|
||||
* NOTES
|
||||
*
|
||||
* __bss_start = .;
|
||||
* BSS_SECTION(0, 0)
|
||||
* __bss_stop = .;
|
||||
* BSS_SECTION(0, 0, 0)
|
||||
* _end = .;
|
||||
*
|
||||
* STABS_DEBUG
|
||||
@@ -188,7 +186,7 @@
|
||||
. = ALIGN(align); \
|
||||
*(.data.cacheline_aligned)
|
||||
|
||||
#define INIT_TASK(align) \
|
||||
#define INIT_TASK_DATA(align) \
|
||||
. = ALIGN(align); \
|
||||
*(.data.init_task)
|
||||
|
||||
@@ -431,10 +429,10 @@
|
||||
/*
|
||||
* Init task
|
||||
*/
|
||||
#define INIT_TASK_DATA(align) \
|
||||
#define INIT_TASK_DATA_SECTION(align) \
|
||||
. = ALIGN(align); \
|
||||
.data.init_task : { \
|
||||
INIT_TASK \
|
||||
INIT_TASK_DATA(align) \
|
||||
}
|
||||
|
||||
#ifdef CONFIG_CONSTRUCTORS
|
||||
@@ -486,7 +484,8 @@
|
||||
* bss (Block Started by Symbol) - uninitialized data
|
||||
* zeroed during startup
|
||||
*/
|
||||
#define SBSS \
|
||||
#define SBSS(sbss_align) \
|
||||
. = ALIGN(sbss_align); \
|
||||
.sbss : AT(ADDR(.sbss) - LOAD_OFFSET) { \
|
||||
*(.sbss) \
|
||||
*(.scommon) \
|
||||
@@ -495,12 +494,10 @@
|
||||
#define BSS(bss_align) \
|
||||
. = ALIGN(bss_align); \
|
||||
.bss : AT(ADDR(.bss) - LOAD_OFFSET) { \
|
||||
VMLINUX_SYMBOL(__bss_start) = .; \
|
||||
*(.bss.page_aligned) \
|
||||
*(.dynbss) \
|
||||
*(.bss) \
|
||||
*(COMMON) \
|
||||
VMLINUX_SYMBOL(__bss_stop) = .; \
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -719,15 +716,15 @@
|
||||
* matches the requirment of PAGE_ALIGNED_DATA.
|
||||
*
|
||||
* use 0 as page_align if page_aligned data is not used */
|
||||
#define RW_DATA_SECTION(cacheline, nosave, pagealigned, inittask) \
|
||||
#define RW_DATA_SECTION(cacheline, pagealigned, inittask) \
|
||||
. = ALIGN(PAGE_SIZE); \
|
||||
.data : AT(ADDR(.data) - LOAD_OFFSET) { \
|
||||
INIT_TASK(inittask) \
|
||||
INIT_TASK_DATA(inittask) \
|
||||
CACHELINE_ALIGNED_DATA(cacheline) \
|
||||
READ_MOSTLY_DATA(cacheline) \
|
||||
DATA_DATA \
|
||||
CONSTRUCTORS \
|
||||
NOSAVE_DATA(nosave) \
|
||||
NOSAVE_DATA \
|
||||
PAGE_ALIGNED_DATA(pagealigned) \
|
||||
}
|
||||
|
||||
@@ -749,8 +746,10 @@
|
||||
INIT_RAM_FS \
|
||||
}
|
||||
|
||||
#define BSS_SECTION(sbss_align, bss_align) \
|
||||
SBSS \
|
||||
#define BSS_SECTION(sbss_align, bss_align, stop_align) \
|
||||
. = ALIGN(sbss_align); \
|
||||
VMLINUX_SYMBOL(__bss_start) = .; \
|
||||
SBSS(sbss_align) \
|
||||
BSS(bss_align) \
|
||||
. = ALIGN(4);
|
||||
|
||||
. = ALIGN(stop_align); \
|
||||
VMLINUX_SYMBOL(__bss_stop) = .;
|
||||
|
Reference in New Issue
Block a user