Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5af72502 authored by Glauber de Oliveira Costa's avatar Glauber de Oliveira Costa Committed by Ingo Molnar
Browse files

x86: modify write_ldt function



This patch modifies the write_ldt() function to make use
of the new struct desc_struct instead of entry_1 and entry_2
entries

Signed-off-by: default avatarGlauber de Oliveira Costa <gcosta@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 25deca53
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -186,7 +186,7 @@ static int read_default_ldt(void __user *ptr, unsigned long bytecount)
static int write_ldt(void __user *ptr, unsigned long bytecount, int oldmode)
{
	struct mm_struct *mm = current->mm;
	__u32 entry_1, entry_2;
	struct desc_struct ldt;
	int error;
	struct user_desc ldt_info;

@@ -218,21 +218,20 @@ static int write_ldt(void __user *ptr, unsigned long bytecount, int oldmode)
	/* Allow LDTs to be cleared by the user. */
	if (ldt_info.base_addr == 0 && ldt_info.limit == 0) {
		if (oldmode || LDT_empty(&ldt_info)) {
			entry_1 = 0;
			entry_2 = 0;
			memset(&ldt, 0, sizeof(ldt));
			goto install;
		}
	}

	entry_1 = LDT_entry_a(&ldt_info);
	entry_2 = LDT_entry_b(&ldt_info);
	ldt.a = LDT_entry_a(&ldt_info);
	ldt.b = LDT_entry_b(&ldt_info);
	if (oldmode)
		entry_2 &= ~(1 << 20);
		ldt.avl = 0;

	/* Install the new entry ...  */
install:
	write_ldt_entry(mm->context.ldt, ldt_info.entry_number, entry_1,
			entry_2);
	write_ldt_entry(mm->context.ldt, ldt_info.entry_number,
			ldt.a, ldt.b);
	error = 0;

out_unlock: