Let me make sure I'm grokking what you're trying to do here.

On 02/20/2017 05:15 AM, Kirill A. Shutemov wrote:
> +/* MPX cannot handle addresses above 47-bits yet. */
> +unsigned long mpx_unmapped_area_check(unsigned long addr, unsigned long len,
> +             unsigned long flags)
> +{
> +     if (!kernel_managing_mpx_tables(current->mm))
> +             return addr;
> +     if (addr + len <= DEFAULT_MAP_WINDOW)
> +             return addr;

At this point, we know MPX management is on and the hint is for memory
above DEFAULT_MAP_WINDOW?

> +     if (flags & MAP_FIXED)
> +             return -ENOMEM;

... and if it's a MAP_FIXED request, fail it.

> +     if (len > DEFAULT_MAP_WINDOW)
> +             return -ENOMEM;

What is this case for?  If addr+len wraps?

> +     /* Look for unmap area within DEFAULT_MAP_WINDOW */
> +     return 0;
> +}

Otherwise, blow away the hint, which we know is high and needs to
be discarded?

Reply via email to