android_kernel_xiaomi_sm8350/drivers
Avi Kivity 6af11b9e82 KVM: Prevent system selectors leaking into guest on real->protected mode transition on vmx
Intel virtualization extensions do not support virtualizing real mode.  So
kvm uses virtualized vm86 mode to run real mode code.  Unfortunately, this
virtualized vm86 mode does not support the so called "big real" mode, where
the segment selector and base do not agree with each other according to the
real mode rules (base == selector << 4).

To work around this, kvm checks whether a selector/base pair violates the
virtualized vm86 rules, and if so, forces it into conformance.  On a
transition back to protected mode, if we see that the guest did not touch
a forced segment, we restore it back to the original protected mode value.

This pile of hacks breaks down if the gdt has changed in real mode, as it
can cause a segment selector to point to a system descriptor instead of a
normal data segment.  In fact, this happens with the Windows bootloader
and the qemu acpi bios, where a protected mode memcpy routine issues an
innocent 'pop %es' and traps on an attempt to load a system descriptor.

"Fix" by checking if the to-be-restored selector points at a system segment,
and if so, coercing it into a normal data segment.  The long term solution,
of course, is to abandon vm86 mode and use emulation for big real mode.

Signed-off-by: Avi Kivity <avi@qumranet.com>
2007-03-27 17:54:38 +02:00
..
acorn [ARM] Acorn: move the i2c bus driver into drivers/i2c 2007-03-04 20:40:50 +00:00
acpi [PATCH] i386: add command line option "local_apic_timer_c2_ok" 2007-03-23 10:21:02 -07:00
amba
ata pata_ixp4xx_cf: fix interrupt 2007-03-19 11:58:01 -04:00
atm [PATCH] zatm __init abuse 2007-03-14 15:27:49 -07:00
auxdisplay
base [PATCH] sysfs and driver core: add callback helper, used by SCSI and S390 2007-03-15 15:29:26 -07:00
block [PATCH] paride endianness annotations 2007-03-14 15:27:50 -07:00
bluetooth
cdrom [PATCH] Fix soft lockup with iSeries viocd driver 2007-03-05 07:57:51 -08:00
char [PATCH] tty: Fix two reported pid leaks 2007-03-18 13:40:06 -07:00
clocksource [PATCH] clocksource init adjustments (fix bug #7426) 2007-03-05 07:57:53 -08:00
connector [CONNECTOR]: Bugfix for cn_call_callback() 2007-03-07 16:08:08 -08:00
cpufreq
crypto [PATCH] geode-aes: use unsigned long for spin_lock_irqsave 2007-03-06 09:30:25 -08:00
dio
dma [PATCH] rm pointless dmaengine exports 2007-03-16 19:25:03 -07:00
edac
eisa
fc4
firmware
hid Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jikos/hid 2007-03-15 10:50:54 -07:00
hwmon [PATCH] hwmon: Build fix for SENSORS_W83793 2007-03-16 19:25:06 -07:00
i2c i2c/ds1374: Check workqueue creation status 2007-03-22 19:49:01 +01:00
ide ide: use correct IDE error recovery 2007-03-26 23:03:20 +02:00
ieee1394 ieee1394: fix oops on "modprobe -r ohci1394" after network class_device conversion 2007-03-23 10:55:25 +01:00
infiniband [NET]: Fix neighbour destructor handling. 2007-03-25 18:48:01 -07:00
input Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/dtor/input 2007-03-08 07:28:30 -08:00
isdn
kvm KVM: Prevent system selectors leaking into guest on real->protected mode transition on vmx 2007-03-27 17:54:38 +02:00
leds
macintosh
mca
md [PATCH] fix read past end of array in md/linear.c 2007-03-16 19:25:03 -07:00
media [PATCH] cx88-dvb: fix nxt200x rf input switching 2007-03-24 16:49:22 -07:00
message
mfd
misc asus-laptop: make code static 2007-03-09 21:06:40 -05:00
mmc [ARM] 4256/1: i.MX/MX1 SDHC fix/workaround of SD card recognition problems 2007-03-12 16:49:37 +00:00
mtd [MTD] [OneNAND] Classify the page data and oob buffer 2007-03-09 08:08:09 +00:00
net [SUNGEM]: Fix MAC address setting when interface is up. 2007-03-26 14:43:49 -07:00
nubus
oprofile
parisc
parport
pci PCI: Fix warning message in PCIE port driver 2007-03-26 14:13:08 -07:00
pcmcia
pnp [PATCH] reduce pnp syslog spam 2007-03-16 19:25:02 -07:00
ps3 [PATCH] C99 initializers, proper use of const in drivers/ps3 2007-03-14 15:27:50 -07:00
rapidio
rtc
s390 [S390] zcrypt: Fix ap_poll_requests counter in lost requests error path. 2007-03-26 20:43:47 +02:00
sbus
scsi [PATCH] sysfs and driver core: add callback helper, used by SCSI and S390 2007-03-15 15:29:26 -07:00
serial [PATCH] add Fujitsu Siemens Tablet PC devices to 8250_pnp.c 2007-03-23 11:01:22 -07:00
sh
sn
spi [PATCH] spi_s3c24xx.c: warning fix 2007-03-16 19:25:06 -07:00
tc
telephony
usb USB: fix usb-serial/ftdi build warning 2007-03-26 14:17:48 -07:00
video [PATCH] rivafb: fix initial brightness 2007-03-23 11:01:22 -07:00
w1
zorro
Kconfig
Makefile