powerpc: trivial context refresh
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
diff --git a/queue/powerpc-iommu-Stop-using-current-in-mm_iommu_xxx.patch b/queue/powerpc-iommu-Stop-using-current-in-mm_iommu_xxx.patch
index ce195ed..e91d765 100644
--- a/queue/powerpc-iommu-Stop-using-current-in-mm_iommu_xxx.patch
+++ b/queue/powerpc-iommu-Stop-using-current-in-mm_iommu_xxx.patch
@@ -1,4 +1,4 @@
-From d7baee6901b34c4895eb78efdbf13a49079d7404 Mon Sep 17 00:00:00 2001
+From 379e1ebb34144d05b1332d4028b595a4ddad3d30 Mon Sep 17 00:00:00 2001
From: Alexey Kardashevskiy <aik@ozlabs.ru>
Date: Wed, 30 Nov 2016 17:52:00 +1100
Subject: [PATCH] powerpc/iommu: Stop using @current in mm_iommu_xxx
@@ -23,15 +23,16 @@
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
diff --git a/arch/powerpc/include/asm/mmu_context.h b/arch/powerpc/include/asm/mmu_context.h
-index 424844bc2a57..b9e3f0aca261 100644
+index 31deb7d813e8..b85cc7bd1c03 100644
--- a/arch/powerpc/include/asm/mmu_context.h
+++ b/arch/powerpc/include/asm/mmu_context.h
-@@ -19,16 +19,18 @@ extern void destroy_context(struct mm_struct *mm);
+@@ -18,16 +18,18 @@ extern void destroy_context(struct mm_struct *mm);
+ #ifdef CONFIG_SPAPR_TCE_IOMMU
struct mm_iommu_table_group_mem_t;
- extern int isolate_lru_page(struct page *page); /* from internal.h */
-extern bool mm_iommu_preregistered(void);
-extern long mm_iommu_get(unsigned long ua, unsigned long entries,
+extern bool mm_iommu_preregistered(struct mm_struct *mm);
@@ -55,10 +56,10 @@
unsigned long ua, unsigned long *hpa);
extern long mm_iommu_mapped_inc(struct mm_iommu_table_group_mem_t *mem);
diff --git a/arch/powerpc/mm/mmu_context_iommu.c b/arch/powerpc/mm/mmu_context_iommu.c
-index ad2e575fd418..4c6db09e77ad 100644
+index 699cd80f4e39..a0b6c34e7c04 100644
--- a/arch/powerpc/mm/mmu_context_iommu.c
+++ b/arch/powerpc/mm/mmu_context_iommu.c
-@@ -56,7 +56,7 @@ static long mm_iommu_adjust_locked_vm(struct mm_struct *mm,
+@@ -53,7 +53,7 @@ static long mm_iommu_adjust_locked_vm(struct mm_struct *mm,
}
pr_debug("[%d] RLIMIT_MEMLOCK HASH64 %c%ld %ld/%ld\n",
@@ -67,7 +68,7 @@
incr ? '+' : '-',
npages << PAGE_SHIFT,
mm->locked_vm << PAGE_SHIFT,
-@@ -66,12 +66,9 @@ static long mm_iommu_adjust_locked_vm(struct mm_struct *mm,
+@@ -63,28 +63,22 @@ static long mm_iommu_adjust_locked_vm(struct mm_struct *mm,
return ret;
}
@@ -82,10 +83,6 @@
}
EXPORT_SYMBOL_GPL(mm_iommu_preregistered);
-@@ -124,19 +121,16 @@ static int mm_iommu_move_page_from_cma(struct page *page)
- return 0;
- }
-
-long mm_iommu_get(unsigned long ua, unsigned long entries,
+long mm_iommu_get(struct mm_struct *mm, unsigned long ua, unsigned long entries,
struct mm_iommu_table_group_mem_t **pmem)
@@ -104,7 +101,7 @@
next) {
if ((mem->ua == ua) && (mem->entries == entries)) {
++mem->used;
-@@ -154,7 +148,7 @@ long mm_iommu_get(unsigned long ua, unsigned long entries,
+@@ -102,7 +96,7 @@ long mm_iommu_get(unsigned long ua, unsigned long entries,
}
@@ -113,7 +110,7 @@
if (ret)
goto unlock_exit;
-@@ -215,11 +209,11 @@ populate:
+@@ -142,11 +136,11 @@ long mm_iommu_get(unsigned long ua, unsigned long entries,
mem->entries = entries;
*pmem = mem;
@@ -127,7 +124,7 @@
mutex_unlock(&mem_list_mutex);
-@@ -264,17 +258,13 @@ static void mm_iommu_free(struct rcu_head *head)
+@@ -191,17 +185,13 @@ static void mm_iommu_free(struct rcu_head *head)
static void mm_iommu_release(struct mm_iommu_table_group_mem_t *mem)
{
list_del_rcu(&mem->next);
@@ -146,7 +143,7 @@
mutex_lock(&mem_list_mutex);
if (mem->used == 0) {
-@@ -297,6 +287,8 @@ long mm_iommu_put(struct mm_iommu_table_group_mem_t *mem)
+@@ -224,6 +214,8 @@ long mm_iommu_put(struct mm_iommu_table_group_mem_t *mem)
/* @mapped became 0 so now mappings are disabled, release the region */
mm_iommu_release(mem);
@@ -155,7 +152,7 @@
unlock_exit:
mutex_unlock(&mem_list_mutex);
-@@ -304,14 +296,12 @@ unlock_exit:
+@@ -231,14 +223,12 @@ unlock_exit:
}
EXPORT_SYMBOL_GPL(mm_iommu_put);
@@ -173,7 +170,7 @@
if ((mem->ua <= ua) &&
(ua + size <= mem->ua +
(mem->entries << PAGE_SHIFT))) {
-@@ -324,14 +314,12 @@ struct mm_iommu_table_group_mem_t *mm_iommu_lookup(unsigned long ua,
+@@ -251,14 +241,12 @@ struct mm_iommu_table_group_mem_t *mm_iommu_lookup(unsigned long ua,
}
EXPORT_SYMBOL_GPL(mm_iommu_lookup);
@@ -192,7 +189,7 @@
ret = mem;
break;
diff --git a/drivers/vfio/vfio_iommu_spapr_tce.c b/drivers/vfio/vfio_iommu_spapr_tce.c
-index 80378ddadc5c..d0c38b201267 100644
+index 2a6e13892397..4efd2b20c35c 100644
--- a/drivers/vfio/vfio_iommu_spapr_tce.c
+++ b/drivers/vfio/vfio_iommu_spapr_tce.c
@@ -107,14 +107,17 @@ static long tce_iommu_unregister_pages(struct tce_container *container,