> diff -puN arch/x86/kernel/ldt.c~kaiser-user-map-new-ldts arch/x86/kernel/ldt.c
> --- a/arch/x86/kernel/ldt.c~kaiser-user-map-new-ldts  2017-11-22 
> 15:45:49.059619739 -0800
> +++ b/arch/x86/kernel/ldt.c   2017-11-22 15:45:49.062619739 -0800
> @@ -11,6 +11,7 @@
[...]
> +     ret = kaiser_add_mapping((unsigned long)new_ldt->entries, alloc_size,
> +                              __PAGE_KERNEL | _PAGE_GLOBAL);
> +     if (ret) {
> +             __free_ldt_struct(new_ldt);
> +             return NULL;
> +     }
>       new_ldt->nr_entries = num_entries;
>       return new_ldt;

__free_ldt_struct() uses new_ldt->nr_entries, so new_ldt->nr_entries needs to be
set earlier.

Eric

Reply via email to