Re: [PATCH 09/23] x86, kaiser: map dynamically-allocated LDTs

From: Eric Biggers
Date: Thu Nov 23 2017 - 14:47:22 EST


> 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