[PATCH] tpr optimization: clear the vapic area on boot

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

 



If the option rom is loaded with rep/insb (as newer seabios versions do), then
the writes to the vapic area may be corrupted by the kernel.

Fix by explicitly clearing the vapic area on option rom startup.

Signed-off-by: Avi Kivity <avi@xxxxxxxxxx>
---
 pc-bios/bios.bin          |  Bin 131072 -> 131072 bytes
 pc-bios/optionrom/vapic.S |   11 +++++++++++
 2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/pc-bios/bios.bin b/pc-bios/bios.bin
index f79c342264ebfce9b393d5809079cb4ec3c3a899..d0d4b6aa43b8f306062797b8e53ce469f8c2820f 100644
GIT binary patch
delta 20779
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
Mr)EpXJ><Fn0~9mb-T(jq

delta 30845
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

diff --git a/pc-bios/optionrom/vapic.S b/pc-bios/optionrom/vapic.S
index afe98a9..3c8dcf1 100644
--- a/pc-bios/optionrom/vapic.S
+++ b/pc-bios/optionrom/vapic.S
@@ -4,6 +4,17 @@
 _start:
 	.short 0xaa55
 	.byte (_end - _start) / 512
+	# clear vapic area: firmware load using rep insb may cause
+	# stale tpr/isr/irr data to corrupt the vapic area.
+	push %es
+	push %cs
+	pop %es
+	xor %ax, %ax
+	mov $vapic_size/2, %cx
+	lea vapic, %di
+	cld
+	rep stosw
+	pop %es
 	mov $vapic_base, %ax
 	out %ax, $0x7e
 	lret
-- 
1.7.3.1

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux