Thread (5 messages) 5 messages, 3 authors, 2021-07-31

Re: [PATCH] KVM: const-ify all relevant uses of struct kvm_memory_slot

From: Peter Xu <peterx@redhat.com>
Date: 2021-07-30 20:19:30
Also in: lkml

Hi, Hamza,

On Mon, Jul 12, 2021 at 10:33:38PM -0400, Hamza Mahfooz wrote:
quoted hunk ↗ jump to hunk
@@ -1467,16 +1467,20 @@ rmap_walk_init_level(struct slot_rmap_walk_iterator *iterator, int level)
 
 static void
 slot_rmap_walk_init(struct slot_rmap_walk_iterator *iterator,
-		    struct kvm_memory_slot *slot, int start_level,
+		    const struct kvm_memory_slot *slot, int start_level,
 		    int end_level, gfn_t start_gfn, gfn_t end_gfn)
 {
-	iterator->slot = slot;
-	iterator->start_level = start_level;
-	iterator->end_level = end_level;
-	iterator->start_gfn = start_gfn;
-	iterator->end_gfn = end_gfn;
+	struct slot_rmap_walk_iterator iter = {
+		.slot = slot,
+		.start_gfn = start_gfn,
+		.end_gfn = end_gfn,
+		.start_level = start_level,
+		.end_level = end_level,
+	};
+
+	rmap_walk_init_level(&iter, iterator->start_level);
Here it should be s/iterator->//.
 
-	rmap_walk_init_level(iterator, iterator->start_level);
+	memcpy(iterator, &iter, sizeof(struct slot_rmap_walk_iterator));
 }
This patch breaks kvm/queue with above issue.  Constify of kvm_memory_slot
pointer should have nothing to do with this so at least it should need a
separate patch.  At the meantime I also don't understand why memcpy() here,
which seems to be even slower..

-- 
Peter Xu
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help