Merge branch 'linus' into efi/core, to refresh the branch and to pick up recent fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
@@ -33,7 +33,7 @@ struct cpa_data {
|
||||
pgd_t *pgd;
|
||||
pgprot_t mask_set;
|
||||
pgprot_t mask_clr;
|
||||
int numpages;
|
||||
unsigned long numpages;
|
||||
int flags;
|
||||
unsigned long pfn;
|
||||
unsigned force_split : 1;
|
||||
@@ -66,6 +66,9 @@ void update_page_count(int level, unsigned long pages)
|
||||
|
||||
static void split_page_count(int level)
|
||||
{
|
||||
if (direct_pages_count[level] == 0)
|
||||
return;
|
||||
|
||||
direct_pages_count[level]--;
|
||||
direct_pages_count[level - 1] += PTRS_PER_PTE;
|
||||
}
|
||||
@@ -129,14 +132,16 @@ within(unsigned long addr, unsigned long start, unsigned long end)
|
||||
*/
|
||||
void clflush_cache_range(void *vaddr, unsigned int size)
|
||||
{
|
||||
unsigned long clflush_mask = boot_cpu_data.x86_clflush_size - 1;
|
||||
const unsigned long clflush_size = boot_cpu_data.x86_clflush_size;
|
||||
void *p = (void *)((unsigned long)vaddr & ~(clflush_size - 1));
|
||||
void *vend = vaddr + size;
|
||||
void *p;
|
||||
|
||||
if (p >= vend)
|
||||
return;
|
||||
|
||||
mb();
|
||||
|
||||
for (p = (void *)((unsigned long)vaddr & ~clflush_mask);
|
||||
p < vend; p += boot_cpu_data.x86_clflush_size)
|
||||
for (; p < vend; p += clflush_size)
|
||||
clflushopt(p);
|
||||
|
||||
mb();
|
||||
@@ -1340,7 +1345,7 @@ static int __change_page_attr_set_clr(struct cpa_data *cpa, int checkalias)
|
||||
* CPA operation. Either a large page has been
|
||||
* preserved or a single page update happened.
|
||||
*/
|
||||
BUG_ON(cpa->numpages > numpages);
|
||||
BUG_ON(cpa->numpages > numpages || !cpa->numpages);
|
||||
numpages -= cpa->numpages;
|
||||
if (cpa->flags & (CPA_PAGES_ARRAY | CPA_ARRAY))
|
||||
cpa->curpage++;
|
||||
|
Reference in New Issue
Block a user