提交 df9c8b75 编写于 作者: J Jordan Justen 提交者: Anthony Liguori

kvm: add kvm_readonly_mem_enabled

Signed-off-by: NJordan Justen <jordan.l.justen@intel.com>
Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
Message-id: 1369816047-16384-3-git-send-email-jordan.l.justen@intel.com
Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
上级 dade922f
...@@ -45,6 +45,7 @@ extern bool kvm_async_interrupts_allowed; ...@@ -45,6 +45,7 @@ extern bool kvm_async_interrupts_allowed;
extern bool kvm_irqfds_allowed; extern bool kvm_irqfds_allowed;
extern bool kvm_msi_via_irqfd_allowed; extern bool kvm_msi_via_irqfd_allowed;
extern bool kvm_gsi_routing_allowed; extern bool kvm_gsi_routing_allowed;
extern bool kvm_readonly_mem_allowed;
#if defined CONFIG_KVM || !defined NEED_CPU_H #if defined CONFIG_KVM || !defined NEED_CPU_H
#define kvm_enabled() (kvm_allowed) #define kvm_enabled() (kvm_allowed)
...@@ -97,6 +98,14 @@ extern bool kvm_gsi_routing_allowed; ...@@ -97,6 +98,14 @@ extern bool kvm_gsi_routing_allowed;
*/ */
#define kvm_gsi_routing_enabled() (kvm_gsi_routing_allowed) #define kvm_gsi_routing_enabled() (kvm_gsi_routing_allowed)
/**
* kvm_readonly_mem_enabled:
*
* Returns: true if KVM readonly memory is enabled (ie the kernel
* supports it and we're running in a configuration that permits it).
*/
#define kvm_readonly_mem_enabled() (kvm_readonly_mem_allowed)
#else #else
#define kvm_enabled() (0) #define kvm_enabled() (0)
#define kvm_irqchip_in_kernel() (false) #define kvm_irqchip_in_kernel() (false)
...@@ -104,6 +113,7 @@ extern bool kvm_gsi_routing_allowed; ...@@ -104,6 +113,7 @@ extern bool kvm_gsi_routing_allowed;
#define kvm_irqfds_enabled() (false) #define kvm_irqfds_enabled() (false)
#define kvm_msi_via_irqfd_enabled() (false) #define kvm_msi_via_irqfd_enabled() (false)
#define kvm_gsi_routing_allowed() (false) #define kvm_gsi_routing_allowed() (false)
#define kvm_readonly_mem_enabled() (false)
#endif #endif
struct kvm_run; struct kvm_run;
......
...@@ -111,6 +111,7 @@ bool kvm_irqfds_allowed; ...@@ -111,6 +111,7 @@ bool kvm_irqfds_allowed;
bool kvm_msi_via_irqfd_allowed; bool kvm_msi_via_irqfd_allowed;
bool kvm_gsi_routing_allowed; bool kvm_gsi_routing_allowed;
bool kvm_allowed; bool kvm_allowed;
bool kvm_readonly_mem_allowed;
static const KVMCapabilityInfo kvm_required_capabilites[] = { static const KVMCapabilityInfo kvm_required_capabilites[] = {
KVM_CAP_INFO(USER_MEMORY), KVM_CAP_INFO(USER_MEMORY),
...@@ -1425,6 +1426,11 @@ int kvm_init(void) ...@@ -1425,6 +1426,11 @@ int kvm_init(void)
s->irq_set_ioctl = KVM_IRQ_LINE_STATUS; s->irq_set_ioctl = KVM_IRQ_LINE_STATUS;
} }
#ifdef KVM_CAP_READONLY_MEM
kvm_readonly_mem_allowed =
(kvm_check_extension(s, KVM_CAP_READONLY_MEM) > 0);
#endif
ret = kvm_arch_init(s); ret = kvm_arch_init(s);
if (ret < 0) { if (ret < 0) {
goto err; goto err;
......
...@@ -26,6 +26,7 @@ bool kvm_irqfds_allowed; ...@@ -26,6 +26,7 @@ bool kvm_irqfds_allowed;
bool kvm_msi_via_irqfd_allowed; bool kvm_msi_via_irqfd_allowed;
bool kvm_gsi_routing_allowed; bool kvm_gsi_routing_allowed;
bool kvm_allowed; bool kvm_allowed;
bool kvm_readonly_mem_allowed;
int kvm_init_vcpu(CPUState *cpu) int kvm_init_vcpu(CPUState *cpu)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册