@@ -145,16 +146,26 @@ smm_save_and_copy(void)
static void
smm_relocate_and_restore(void)
{
+ long long i = 0;
+ long long j =100000;
/* init APM status port */
outb(0x01, PORT_SMI_STATUS);
+while(i++ < 1000000000)
+{
+ if((i-j) == 0)
+ {dprintf(1, ".");
+ j +=100000;
+ }
+}
/* raise an SMI interrupt */
outb(0x00, PORT_SMI_CMD);
/* wait until SMM code executed */
while (inb(PORT_SMI_STATUS) != 0x00);
It seems kvm has something wrong in injecting SMI with common IRQ.
>Paolo
>
>> ==================my shell script===
>> #!/bin/bash