Merge branch 'linus' into perfcounters/core
Merge reason: merge almost-rc8 into perfcounters/core, which was -rc6 based - to pick up the latest upstream fixes. Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@ -26,12 +26,16 @@ static unsigned long page_table_shareable(struct vm_area_struct *svma,
|
||||
unsigned long sbase = saddr & PUD_MASK;
|
||||
unsigned long s_end = sbase + PUD_SIZE;
|
||||
|
||||
/* Allow segments to share if only one is marked locked */
|
||||
unsigned long vm_flags = vma->vm_flags & ~VM_LOCKED;
|
||||
unsigned long svm_flags = svma->vm_flags & ~VM_LOCKED;
|
||||
|
||||
/*
|
||||
* match the virtual addresses, permission and the alignment of the
|
||||
* page table page.
|
||||
*/
|
||||
if (pmd_index(addr) != pmd_index(saddr) ||
|
||||
vma->vm_flags != svma->vm_flags ||
|
||||
vm_flags != svm_flags ||
|
||||
sbase < svma->vm_start || svma->vm_end < s_end)
|
||||
return 0;
|
||||
|
||||
|
@ -153,7 +153,7 @@ static void __cpa_flush_all(void *arg)
|
||||
*/
|
||||
__flush_tlb_all();
|
||||
|
||||
if (cache && boot_cpu_data.x86_model >= 4)
|
||||
if (cache && boot_cpu_data.x86 >= 4)
|
||||
wbinvd();
|
||||
}
|
||||
|
||||
@ -208,20 +208,15 @@ static void cpa_flush_array(unsigned long *start, int numpages, int cache,
|
||||
int in_flags, struct page **pages)
|
||||
{
|
||||
unsigned int i, level;
|
||||
unsigned long do_wbinvd = cache && numpages >= 1024; /* 4M threshold */
|
||||
|
||||
BUG_ON(irqs_disabled());
|
||||
|
||||
on_each_cpu(__cpa_flush_range, NULL, 1);
|
||||
on_each_cpu(__cpa_flush_all, (void *) do_wbinvd, 1);
|
||||
|
||||
if (!cache)
|
||||
if (!cache || do_wbinvd)
|
||||
return;
|
||||
|
||||
/* 4M threshold */
|
||||
if (numpages >= 1024) {
|
||||
if (boot_cpu_data.x86_model >= 4)
|
||||
wbinvd();
|
||||
return;
|
||||
}
|
||||
/*
|
||||
* We only need to flush on one CPU,
|
||||
* clflush is a MESI-coherent instruction that
|
||||
|
Reference in New Issue
Block a user