2022-07-04 20:12:44

by Christophe JAILLET

[permalink] [raw]
Subject: [PATCH] KVM: arm64: Use the bitmap API to allocate bitmaps

Use bitmap_zalloc()/bitmap_free() instead of hand-writing them.

It is less verbose and it improves the semantic.

While at it, turn a bitmap_clear() into an equivalent bitmap_zero(). It is
also less verbose.

Signed-off-by: Christophe JAILLET <[email protected]>
---
arch/arm64/kvm/vmid.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/kvm/vmid.c b/arch/arm64/kvm/vmid.c
index d78ae63d7c15..f4612cdb60ff 100644
--- a/arch/arm64/kvm/vmid.c
+++ b/arch/arm64/kvm/vmid.c
@@ -47,7 +47,7 @@ static void flush_context(void)
int cpu;
u64 vmid;

- bitmap_clear(vmid_map, 0, NUM_USER_VMIDS);
+ bitmap_zero(vmid_map, NUM_USER_VMIDS);

for_each_possible_cpu(cpu) {
vmid = atomic64_xchg_relaxed(&per_cpu(active_vmids, cpu), 0);
@@ -182,8 +182,7 @@ int kvm_arm_vmid_alloc_init(void)
*/
WARN_ON(NUM_USER_VMIDS - 1 <= num_possible_cpus());
atomic64_set(&vmid_generation, VMID_FIRST_VERSION);
- vmid_map = kcalloc(BITS_TO_LONGS(NUM_USER_VMIDS),
- sizeof(*vmid_map), GFP_KERNEL);
+ vmid_map = bitmap_zalloc(NUM_USER_VMIDS, GFP_KERNEL);
if (!vmid_map)
return -ENOMEM;

@@ -192,5 +191,5 @@ int kvm_arm_vmid_alloc_init(void)

void kvm_arm_vmid_alloc_free(void)
{
- kfree(vmid_map);
+ bitmap_free(vmid_map);
}
--
2.34.1


2022-07-06 09:39:40

by Vladimir Murzin

[permalink] [raw]
Subject: Re: [PATCH] KVM: arm64: Use the bitmap API to allocate bitmaps

On 7/4/22 20:10, Christophe JAILLET wrote:
> Use bitmap_zalloc()/bitmap_free() instead of hand-writing them.
>
> It is less verbose and it improves the semantic.
>
> While at it, turn a bitmap_clear() into an equivalent bitmap_zero(). It is
> also less verbose.
>
> Signed-off-by: Christophe JAILLET <[email protected]>
> ---
> arch/arm64/kvm/vmid.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm64/kvm/vmid.c b/arch/arm64/kvm/vmid.c
> index d78ae63d7c15..f4612cdb60ff 100644
> --- a/arch/arm64/kvm/vmid.c
> +++ b/arch/arm64/kvm/vmid.c
> @@ -47,7 +47,7 @@ static void flush_context(void)
> int cpu;
> u64 vmid;
>
> - bitmap_clear(vmid_map, 0, NUM_USER_VMIDS);
> + bitmap_zero(vmid_map, NUM_USER_VMIDS);
>
> for_each_possible_cpu(cpu) {
> vmid = atomic64_xchg_relaxed(&per_cpu(active_vmids, cpu), 0);
> @@ -182,8 +182,7 @@ int kvm_arm_vmid_alloc_init(void)
> */
> WARN_ON(NUM_USER_VMIDS - 1 <= num_possible_cpus());
> atomic64_set(&vmid_generation, VMID_FIRST_VERSION);
> - vmid_map = kcalloc(BITS_TO_LONGS(NUM_USER_VMIDS),
> - sizeof(*vmid_map), GFP_KERNEL);
> + vmid_map = bitmap_zalloc(NUM_USER_VMIDS, GFP_KERNEL);
> if (!vmid_map)
> return -ENOMEM;
>
> @@ -192,5 +191,5 @@ int kvm_arm_vmid_alloc_init(void)
>
> void kvm_arm_vmid_alloc_free(void)
> {
> - kfree(vmid_map);
> + bitmap_free(vmid_map);
> }

FWIW

Reviewed-by: Vladimir Murzin <[email protected]>

Cheers
Vladimir

2022-07-08 19:01:39

by Oliver Upton

[permalink] [raw]
Subject: Re: [PATCH] KVM: arm64: Use the bitmap API to allocate bitmaps

July 4, 2022 12:10 PM, "Christophe JAILLET" <[email protected]> wrote:
> Use bitmap_zalloc()/bitmap_free() instead of hand-writing them.
>
> It is less verbose and it improves the semantic.
>
> While at it, turn a bitmap_clear() into an equivalent bitmap_zero(). It is
> also less verbose.
>
> Signed-off-by: Christophe JAILLET <[email protected]>

Reviewed-by: Oliver Upton <[email protected]>