On Mon, 9 Dec 2019 21:53:00 -0800 John Hubbard wrote:
> > Correction: this is somehow missing the fixes that resulted from Jan Kara's
> > review (he
> > noted that we can't take a page lock in this context). I must have picked
> > up the
> > wrong version of it, when I rebased for -rc1.
> >
>
On 12/9/19 3:46 PM, John Hubbard wrote:
On 12/9/19 2:53 PM, John Hubbard wrote:
...
@@ -212,10 +211,9 @@ static void mm_iommu_unpin(struct
mm_iommu_table_group_mem_t *mem)
if (!page)
continue;
- if (mem->hpas[i] & MM_IOMMU_TABLE_GROUP_PAGE_DIRTY)
-
On 12/9/19 2:53 PM, John Hubbard wrote:
...
> @@ -212,10 +211,9 @@ static void mm_iommu_unpin(struct
> mm_iommu_table_group_mem_t *mem)
> if (!page)
> continue;
>
> - if (mem->hpas[i] & MM_IOMMU_TABLE_GROUP_PAGE_DIRTY)
> - SetPa
1. Convert from get_user_pages() to pin_user_pages().
2. As required by pin_user_pages(), release these pages via
put_user_page(). In this case, do so via put_user_pages_dirty_lock().
That has the side effect of calling set_page_dirty_lock(), instead
of set_page_dirty(). This is probably more acc