On Wed, Oct 01, 2014 at 10:56:34AM +0200, Andrea Arcangeli wrote:
> From: Andres Lagar-Cavilla <[email protected]>

This needs a changelog....

> Reviewed-by: Radim Krčmář <[email protected]>
> Signed-off-by: Andres Lagar-Cavilla <[email protected]>
> Signed-off-by: Andrea Arcangeli <[email protected]>
> ---
>  include/linux/mm.h | 1 +
>  mm/gup.c           | 4 ++++
>  2 files changed, 5 insertions(+)
> 
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index 8981cc8..0f4196a 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -1985,6 +1985,7 @@ static inline struct page *follow_page(struct 
> vm_area_struct *vma,
>  #define FOLL_HWPOISON        0x100   /* check page is hwpoisoned */
>  #define FOLL_NUMA    0x200   /* force NUMA hinting page fault */
>  #define FOLL_MIGRATION       0x400   /* wait for page to replace migration 
> entry */
> +#define FOLL_TRIED   0x800   /* a retry, previous pass started an IO */
>  
>  typedef int (*pte_fn_t)(pte_t *pte, pgtable_t token, unsigned long addr,
>                       void *data);
> diff --git a/mm/gup.c b/mm/gup.c
> index 91d044b..af7ea3e 100644
> --- a/mm/gup.c
> +++ b/mm/gup.c
> @@ -281,6 +281,10 @@ static int faultin_page(struct task_struct *tsk, struct 
> vm_area_struct *vma,
>               fault_flags |= FAULT_FLAG_ALLOW_RETRY;
>       if (*flags & FOLL_NOWAIT)
>               fault_flags |= FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_RETRY_NOWAIT;
> +     if (*flags & FOLL_TRIED) {
> +             VM_WARN_ON_ONCE(fault_flags & FAULT_FLAG_ALLOW_RETRY);
> +             fault_flags |= FAULT_FLAG_TRIED;
> +     }
>  
>       ret = handle_mm_fault(mm, vma, address, fault_flags);
>       if (ret & VM_FAULT_ERROR) {
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to