Add function to set the guestmem attributes.
diff --git a/include/kvm/kvm.h b/include/kvm/kvm.h
index f972bc1..7bea712 100644
--- a/include/kvm/kvm.h
+++ b/include/kvm/kvm.h
@@ -229,6 +229,7 @@
 void map_guest(struct kvm *kvm);
 void unmap_guest_private(struct kvm *kvm);
 void set_guest_memory_private(struct kvm *kvm);
+int set_guest_memory_attributes(struct kvm *kvm, u64 gpa, u64 size, u64 attributes);
 
 bool kvm__arch_load_kernel_image(struct kvm *kvm, int fd_kernel, int fd_initrd,
 				 const char *kernel_cmdline);
diff --git a/kvm.c b/kvm.c
index 99f4535..76955ff 100644
--- a/kvm.c
+++ b/kvm.c
@@ -603,31 +603,14 @@
 
 static int set_guest_bank_private(struct kvm *kvm, struct kvm_mem_bank *bank, void *data)
 {
-	struct kvm_memory_attributes attr = {
-		.address = bank->guest_phys_addr,
-		.size = bank->size,
-		.attributes = KVM_MEMORY_ATTRIBUTE_PRIVATE,
-		.flags = 0,
-	};
-	int ret;
-
 	pr_debug("%s gpa 0x%llx (size: %llu)",
 		 __func__,
 		 (unsigned long long)bank->guest_phys_addr,
 		 (unsigned long long)bank->size);
 
-	ret = ioctl(kvm->vm_fd, KVM_SET_MEMORY_ATTRIBUTES, &attr);
-	//if (ret || attr.size != 0)
-	if (ret) // TODO: might change
-		ret = -errno;
-
-	if (ret)
-		pr_warning("%s hva 0x%llx (size: %llu) failed with error %d",
-			   __func__,
-			   (unsigned long long)bank->host_addr,
-			   (unsigned long long)bank->size,
-			   ret);
-	return 0;
+	return set_guest_memory_attributes(kvm, bank->guest_phys_addr,
+					   bank->size,
+					   KVM_MEMORY_ATTRIBUTE_PRIVATE);
 }
 
 void map_guest_range(struct kvm *kvm, u64 gpa, u64 size)
@@ -678,6 +661,30 @@
 	kvm__for_each_mem_bank(kvm, KVM_MEM_TYPE_GUESTFD, set_guest_bank_private, NULL);
 }
 
+int set_guest_memory_attributes(struct kvm *kvm, u64 gpa, u64 size, u64 attributes)
+{
+	struct kvm_memory_attributes attr = {
+		.address = gpa,
+		.size = size,
+		.attributes = attributes,
+		.flags = 0,
+	};
+	int ret;
+
+	ret = ioctl(kvm->vm_fd, KVM_SET_MEMORY_ATTRIBUTES, &attr);
+	//if (ret || attr.size != 0)
+	if (ret) // TODO: might change
+		ret = -errno;
+
+	if (ret)
+		pr_warning("%s hva 0x%llx (size: %llu) failed with error %d",
+			   __func__,
+			   (unsigned long long)gpa,
+			   (unsigned long long)size,
+			   ret);
+	return ret;
+}
+
 int kvm__recommended_cpus(struct kvm *kvm)
 {
 	int ret;