Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 864af0d4 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'akpm' (patches from Andrew)

Merge misc fixes from Andrew Morton:
 "11 fixes"

* emailed patches from Andrew Morton <akpm@linux-foundation.org>:
  kvm, mm: account shadow page tables to kmemcg
  zswap: re-check zswap_is_full() after do zswap_shrink()
  include/linux/eventfd.h: include linux/errno.h
  mm: fix vma_is_anonymous() false-positives
  mm: use vma_init() to initialize VMAs on stack and data segments
  mm: introduce vma_init()
  mm: fix exports that inadvertently make put_page() EXPORT_SYMBOL_GPL
  ipc/sem.c: prevent queue.status tearing in semop
  mm: disallow mappings that conflict for devm_memremap_pages()
  kasan: only select SLUB_DEBUG with SYSFS=y
  delayacct: fix crash in delayacct_blkio_end() after delayacct init failure
parents 1a3d8691 d97e5e61
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -338,6 +338,7 @@ static struct vm_area_struct gate_vma = {

static int __init gate_vma_init(void)
{
	vma_init(&gate_vma, NULL);
	gate_vma.vm_page_prot = PAGE_READONLY_EXEC;
	return 0;
}
+1 −1
Original line number Diff line number Diff line
@@ -237,8 +237,8 @@ static void ecard_init_pgtables(struct mm_struct *mm)

	memcpy(dst_pgd, src_pgd, sizeof(pgd_t) * (EASI_SIZE / PGDIR_SIZE));

	vma_init(&vma, mm);
	vma.vm_flags = VM_EXEC;
	vma.vm_mm = mm;

	flush_tlb_range(&vma, IO_START, IO_START + IO_SIZE);
	flush_tlb_range(&vma, EASI_START, EASI_START + EASI_SIZE);
+3 −1
Original line number Diff line number Diff line
@@ -37,7 +37,9 @@ static inline void __tlb_remove_table(void *_table)

static inline void tlb_flush(struct mmu_gather *tlb)
{
	struct vm_area_struct vma = { .vm_mm = tlb->mm, };
	struct vm_area_struct vma;

	vma_init(&vma, tlb->mm);

	/*
	 * The ASID allocator will either invalidate the ASID or mark
+5 −2
Original line number Diff line number Diff line
@@ -108,11 +108,13 @@ static pte_t get_clear_flush(struct mm_struct *mm,
			     unsigned long pgsize,
			     unsigned long ncontig)
{
	struct vm_area_struct vma = { .vm_mm = mm };
	struct vm_area_struct vma;
	pte_t orig_pte = huge_ptep_get(ptep);
	bool valid = pte_valid(orig_pte);
	unsigned long i, saddr = addr;

	vma_init(&vma, mm);

	for (i = 0; i < ncontig; i++, addr += pgsize, ptep++) {
		pte_t pte = ptep_get_and_clear(mm, addr, ptep);

@@ -145,9 +147,10 @@ static void clear_flush(struct mm_struct *mm,
			     unsigned long pgsize,
			     unsigned long ncontig)
{
	struct vm_area_struct vma = { .vm_mm = mm };
	struct vm_area_struct vma;
	unsigned long i, saddr = addr;

	vma_init(&vma, mm);
	for (i = 0; i < ncontig; i++, addr += pgsize, ptep++)
		pte_clear(mm, addr, ptep);

+1 −1
Original line number Diff line number Diff line
@@ -120,7 +120,7 @@ ia64_tlb_flush_mmu_tlbonly(struct mmu_gather *tlb, unsigned long start, unsigned
		 */
		struct vm_area_struct vma;

		vma.vm_mm = tlb->mm;
		vma_init(&vma, tlb->mm);
		/* flush the address range from the tlb: */
		flush_tlb_range(&vma, start, end);
		/* now flush the virt. page-table area mapping the address range: */
Loading