target/i386: do not set LM for 32-bit emulation "-cpu host/max"
32-bit targets by definition do not support long mode; therefore, the
bit must be masked in the features supported by the accelerator.
As a side effect, this avoids setting up the 0x80000008 CPUID leaf
for
   qemu-system-i386 -cpu host
which since commit 5a140b255d ("x86/cpu: Use max host physical address
if -cpu max option is applied") would have printed this error:
  qemu-system-i386: phys-bits should be between 32 and 36  (but is 48)
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
			
			
This commit is contained in:
		
							parent
							
								
									fff7111fb9
								
							
						
					
					
						commit
						5ea9e9e239
					
				@ -5073,6 +5073,11 @@ static uint64_t x86_cpu_get_supported_feature_word(FeatureWord w,
 | 
				
			|||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        return ~0;
 | 
					        return ~0;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					#ifndef TARGET_X86_64
 | 
				
			||||||
 | 
					    if (w == FEAT_8000_0001_EDX) {
 | 
				
			||||||
 | 
					        r &= ~CPUID_EXT2_LM;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
    if (migratable_only) {
 | 
					    if (migratable_only) {
 | 
				
			||||||
        r &= x86_cpu_get_migratable_flags(w);
 | 
					        r &= x86_cpu_get_migratable_flags(w);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user