[PATCH 4/21] i386 Broken bios common

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ingo Molnar wrote:

>* Zachary Amsden <zach@xxxxxxxxxx> wrote:
>
>  
>
>> 	gdt = get_cpu_gdt_table(cpu);
>> 	save_desc_40 = gdt[0x40 / 8];
>>-	gdt[0x40 / 8] = bad_bios_desc;
>>+	gdt[0x40 / 8] = gdt[GDT_ENTRY_BAD_BIOS_CACHE];
>> 
>>    
>>
>
>i like the cleanup, but wouldnt it be simpler to dedicate GDT entry #8 
>to the 0x40 descriptor, and hence be compatible with such broken BIOSes 
>by default? Right now entry #8 is taken up by TLS segment #2, but we 
>could change GDT_ENTRY_TLS_MIN from 6 to 9 and push the TLS segments to 
>entries 9,10,11. [ Could there be any buggy SMM code that relies on 
>having something at 0x40? ]
>  
>

I worry that there could be buggy userspace code that relies on having 
selector 0x40 - notably Wine.  So although I would like to make 0x40 the 
default, can't be guaranteed.

SMM code is safe, since it gets SMRAM mapped in on entry and has 
descriptor saved state so it can mess with tables as it sees fit without 
worrying about restoring anything.

Zach

[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux