Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e37fa785 authored by Xiao Guangrong's avatar Xiao Guangrong Committed by Avi Kivity
Browse files

KVM: MMU: audit: inline audit function



inline audit function and little cleanup

Signed-off-by: default avatarXiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent d750ea28
Loading
Loading
Loading
Loading
+7 −21
Original line number Diff line number Diff line
@@ -59,21 +59,6 @@ enum {
	AUDIT_POST_SYNC
};

char *audit_point_name[] = {
	"pre page fault",
	"post page fault",
	"pre pte write",
	"post pte write",
	"pre sync",
	"post sync"
};

#ifdef CONFIG_KVM_MMU_AUDIT
static void kvm_mmu_audit(struct kvm_vcpu *vcpu, int point);
#else
static void kvm_mmu_audit(struct kvm_vcpu *vcpu, int point) { }
#endif

#undef MMU_DEBUG

#ifdef MMU_DEBUG
@@ -1539,6 +1524,13 @@ static int kvm_sync_page_transient(struct kvm_vcpu *vcpu,
	return ret;
}

#ifdef CONFIG_KVM_MMU_AUDIT
#include "mmu_audit.c"
#else
static void kvm_mmu_audit(struct kvm_vcpu *vcpu, int point) { }
static void mmu_audit_disable(void) { }
#endif

static int kvm_sync_page(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp,
			 struct list_head *invalid_list)
{
@@ -4035,12 +4027,6 @@ void kvm_mmu_destroy(struct kvm_vcpu *vcpu)
	mmu_free_memory_caches(vcpu);
}

#ifdef CONFIG_KVM_MMU_AUDIT
#include "mmu_audit.c"
#else
static void mmu_audit_disable(void) { }
#endif

void kvm_mmu_module_exit(void)
{
	mmu_destroy_caches();
+21 −8
Original line number Diff line number Diff line
@@ -19,6 +19,15 @@

#include <linux/ratelimit.h>

char const *audit_point_name[] = {
	"pre page fault",
	"post page fault",
	"pre pte write",
	"post pte write",
	"pre sync",
	"post sync"
};

#define audit_printk(kvm, fmt, args...)		\
	printk(KERN_ERR "audit: (%s) error: "	\
		fmt, audit_point_name[kvm->arch.audit_point], ##args)
@@ -227,11 +236,10 @@ static void audit_vcpu_spte(struct kvm_vcpu *vcpu)
static bool mmu_audit;
static struct jump_label_key mmu_audit_key;

static void kvm_mmu_audit(struct kvm_vcpu *vcpu, int point)
static void __kvm_mmu_audit(struct kvm_vcpu *vcpu, int point)
{
	static DEFINE_RATELIMIT_STATE(ratelimit_state, 5 * HZ, 10);

	if (static_branch((&mmu_audit_key))) {
	if (!__ratelimit(&ratelimit_state))
		return;

@@ -239,6 +247,11 @@ static void kvm_mmu_audit(struct kvm_vcpu *vcpu, int point)
	audit_all_active_sps(vcpu->kvm);
	audit_vcpu_spte(vcpu);
}

static inline void kvm_mmu_audit(struct kvm_vcpu *vcpu, int point)
{
	if (static_branch((&mmu_audit_key)))
		__kvm_mmu_audit(vcpu, point);
}

static void mmu_audit_enable(void)