* Zachary Amsden <zach@xxxxxxxxxx> wrote: > >>- 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. why use up a GDT entry then for GDT_ENTRY_BAD_BIOS_CACHE? Just put it into a global variable, into the readmostly section. Ingo