aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/kvm/kvm_main.c
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2007-07-31 20:48:02 -0400
committerAvi Kivity <avi@qumranet.com>2007-10-13 04:18:22 -0400
commitf02424785ab83bab8283ad33044284f749c08db8 (patch)
tree020d73469f801e33012702c58233e776381d3008 /drivers/kvm/kvm_main.c
parent33830b4f5bdf2bc21d0c10d38beffdce8edcded7 (diff)
KVM: Add and use pr_unimpl for standard formatting of unimplemented features
All guest-invokable printks should be ratelimited to prevent malicious guests from flooding logs. This is a start. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'drivers/kvm/kvm_main.c')
-rw-r--r--drivers/kvm/kvm_main.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
index 9de3b1aba20f..1b86ab0d42f6 100644
--- a/drivers/kvm/kvm_main.c
+++ b/drivers/kvm/kvm_main.c
@@ -962,8 +962,7 @@ static int emulator_write_std(unsigned long addr,
962 unsigned int bytes, 962 unsigned int bytes,
963 struct kvm_vcpu *vcpu) 963 struct kvm_vcpu *vcpu)
964{ 964{
965 printk(KERN_ERR "emulator_write_std: addr %lx n %d\n", 965 pr_unimpl(vcpu, "emulator_write_std: addr %lx n %d\n", addr, bytes);
966 addr, bytes);
967 return X86EMUL_UNHANDLEABLE; 966 return X86EMUL_UNHANDLEABLE;
968} 967}
969 968
@@ -1138,8 +1137,7 @@ int emulator_get_dr(struct x86_emulate_ctxt* ctxt, int dr, unsigned long *dest)
1138 *dest = kvm_arch_ops->get_dr(vcpu, dr); 1137 *dest = kvm_arch_ops->get_dr(vcpu, dr);
1139 return X86EMUL_CONTINUE; 1138 return X86EMUL_CONTINUE;
1140 default: 1139 default:
1141 printk(KERN_DEBUG "%s: unexpected dr %u\n", 1140 pr_unimpl(vcpu, "%s: unexpected dr %u\n", __FUNCTION__, dr);
1142 __FUNCTION__, dr);
1143 return X86EMUL_UNHANDLEABLE; 1141 return X86EMUL_UNHANDLEABLE;
1144 } 1142 }
1145} 1143}
@@ -1488,7 +1486,7 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
1488 break; 1486 break;
1489#endif 1487#endif
1490 default: 1488 default:
1491 printk(KERN_ERR "kvm: unhandled rdmsr: 0x%x\n", msr); 1489 pr_unimpl(vcpu, "unhandled rdmsr: 0x%x\n", msr);
1492 return 1; 1490 return 1;
1493 } 1491 }
1494 *pdata = data; 1492 *pdata = data;
@@ -1543,11 +1541,11 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
1543 break; 1541 break;
1544#endif 1542#endif
1545 case MSR_IA32_MC0_STATUS: 1543 case MSR_IA32_MC0_STATUS:
1546 printk(KERN_WARNING "%s: MSR_IA32_MC0_STATUS 0x%llx, nop\n", 1544 pr_unimpl(vcpu, "%s: MSR_IA32_MC0_STATUS 0x%llx, nop\n",
1547 __FUNCTION__, data); 1545 __FUNCTION__, data);
1548 break; 1546 break;
1549 case MSR_IA32_MCG_STATUS: 1547 case MSR_IA32_MCG_STATUS:
1550 printk(KERN_WARNING "%s: MSR_IA32_MCG_STATUS 0x%llx, nop\n", 1548 pr_unimpl(vcpu, "%s: MSR_IA32_MCG_STATUS 0x%llx, nop\n",
1551 __FUNCTION__, data); 1549 __FUNCTION__, data);
1552 break; 1550 break;
1553 case MSR_IA32_UCODE_REV: 1551 case MSR_IA32_UCODE_REV:
@@ -1567,7 +1565,7 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
1567 return vcpu_register_para(vcpu, data); 1565 return vcpu_register_para(vcpu, data);
1568 1566
1569 default: 1567 default:
1570 printk(KERN_ERR "kvm: unhandled wrmsr: 0x%x\n", msr); 1568 pr_unimpl(vcpu, "unhandled wrmsr: 0x%x\n", msr);
1571 return 1; 1569 return 1;
1572 } 1570 }
1573 return 0; 1571 return 0;
@@ -1798,7 +1796,7 @@ int kvm_setup_pio(struct kvm_vcpu *vcpu, struct kvm_run *run, int in,
1798 /* 1796 /*
1799 * String I/O in reverse. Yuck. Kill the guest, fix later. 1797 * String I/O in reverse. Yuck. Kill the guest, fix later.
1800 */ 1798 */
1801 printk(KERN_ERR "kvm: guest string pio down\n"); 1799 pr_unimpl(vcpu, "guest string pio down\n");
1802 inject_gp(vcpu); 1800 inject_gp(vcpu);
1803 return 1; 1801 return 1;
1804 } 1802 }
@@ -1829,7 +1827,7 @@ int kvm_setup_pio(struct kvm_vcpu *vcpu, struct kvm_run *run, int in,
1829 ret = 1; 1827 ret = 1;
1830 } 1828 }
1831 } else if (pio_dev) 1829 } else if (pio_dev)
1832 printk(KERN_ERR "no string pio read support yet, " 1830 pr_unimpl(vcpu, "no string pio read support yet, "
1833 "port %x size %d count %ld\n", 1831 "port %x size %d count %ld\n",
1834 port, size, count); 1832 port, size, count);
1835 1833