From: Rik van Riel <riel@surriel.com>
To: "Paolo Bonzini" <pbonzini@redhat.com>
Cc: kernel-team@fb.com, kvm@vger.kernel.org,
linux-kernel@vger.kernel.org, "Radim Krčmář" <rkrcmar@redhat.com>
Subject: [PATCH] kvm: change KVM_REQUEST_MASK to reflect vcpu.requests size
Date: Tue, 21 May 2019 13:22:00 -0400 [thread overview]
Message-ID: <20190521132200.2b45c029@imladris.surriel.com> (raw)
The code using KVM_REQUEST_MASK uses a pattern reminiscent of a bitmask:
set_bit(req & KVM_REQUEST_MASK, &vcpu->requests);
However, the first argument passed to set_bit, test_bit, and clear_bit
is a bit number, not a bitmask. That means the current definition would
allow users of kvm_make_request to overflow the vcpu.requests bitmask,
and is confusing to developers examining the code.
Redefine KVM_REQUEST_MASK to reflect the number of bits that actually
fit inside an unsigned long, and add a comment explaining set_bit and
friends take bit numbers, not a bitmask.
Signed-off-by: Rik van Riel <riel@surriel.com>
---
include/linux/kvm_host.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index 79fa4426509c..d15fb43d7796 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -138,7 +138,8 @@ static inline bool is_error_page(struct page *page)
return IS_ERR(page);
}
-#define KVM_REQUEST_MASK GENMASK(7,0)
+/* Limit the bit numbers for set_bit etc to fit unsigned long vcpu.requests. */
+#define KVM_REQUEST_MASK (BITS_PER_LONG-1)
#define KVM_REQUEST_NO_WAKEUP BIT(8)
#define KVM_REQUEST_WAIT BIT(9)
/*
next reply other threads:[~2019-05-21 17:22 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-21 17:22 Rik van Riel [this message]
2019-05-21 18:28 ` [PATCH] kvm: change KVM_REQUEST_MASK to reflect vcpu.requests size Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190521132200.2b45c029@imladris.surriel.com \
--to=riel@surriel.com \
--cc=kernel-team@fb.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=rkrcmar@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.