Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fix from Ingo Molnar: "This contains a single TLS ABI validation fix from Andy Lutomirski" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/tls: Don't validate lm in set_thread_area() after all
This commit is contained in:
		
				commit
				
					
						1092b596a5
					
				
			
		
					 2 changed files with 7 additions and 6 deletions
				
			
		|  | @ -28,6 +28,13 @@ struct user_desc { | |||
| 	unsigned int  seg_not_present:1; | ||||
| 	unsigned int  useable:1; | ||||
| #ifdef __x86_64__ | ||||
| 	/*
 | ||||
| 	 * Because this bit is not present in 32-bit user code, user | ||||
| 	 * programs can pass uninitialized values here.  Therefore, in | ||||
| 	 * any context in which a user_desc comes from a 32-bit program, | ||||
| 	 * the kernel must act as though lm == 0, regardless of the | ||||
| 	 * actual value. | ||||
| 	 */ | ||||
| 	unsigned int  lm:1; | ||||
| #endif | ||||
| }; | ||||
|  |  | |||
|  | @ -55,12 +55,6 @@ static bool tls_desc_okay(const struct user_desc *info) | |||
| 	if (info->seg_not_present) | ||||
| 		return false; | ||||
| 
 | ||||
| #ifdef CONFIG_X86_64 | ||||
| 	/* The L bit makes no sense for data. */ | ||||
| 	if (info->lm) | ||||
| 		return false; | ||||
| #endif | ||||
| 
 | ||||
| 	return true; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Linus Torvalds
				Linus Torvalds