Commit f43a9f18 authored by Christophe JAILLET's avatar Christophe JAILLET Committed by Alex Deucher

drm/amdkfd: Use bitmap_zalloc() when applicable

'kfd->gtt_sa_bitmap' is a bitmap. So use 'bitmap_zalloc()' to simplify
code, improve the semantic and avoid some open-coded arithmetic in
allocator arguments.

Also change the corresponding 'kfree()' into 'bitmap_free()' to keep
consistency.
Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 7324d02a
...@@ -873,8 +873,6 @@ int kgd2kfd_schedule_evict_and_restore_process(struct mm_struct *mm, ...@@ -873,8 +873,6 @@ int kgd2kfd_schedule_evict_and_restore_process(struct mm_struct *mm,
static int kfd_gtt_sa_init(struct kfd_dev *kfd, unsigned int buf_size, static int kfd_gtt_sa_init(struct kfd_dev *kfd, unsigned int buf_size,
unsigned int chunk_size) unsigned int chunk_size)
{ {
unsigned int num_of_longs;
if (WARN_ON(buf_size < chunk_size)) if (WARN_ON(buf_size < chunk_size))
return -EINVAL; return -EINVAL;
if (WARN_ON(buf_size == 0)) if (WARN_ON(buf_size == 0))
...@@ -885,11 +883,8 @@ static int kfd_gtt_sa_init(struct kfd_dev *kfd, unsigned int buf_size, ...@@ -885,11 +883,8 @@ static int kfd_gtt_sa_init(struct kfd_dev *kfd, unsigned int buf_size,
kfd->gtt_sa_chunk_size = chunk_size; kfd->gtt_sa_chunk_size = chunk_size;
kfd->gtt_sa_num_of_chunks = buf_size / chunk_size; kfd->gtt_sa_num_of_chunks = buf_size / chunk_size;
num_of_longs = (kfd->gtt_sa_num_of_chunks + BITS_PER_LONG - 1) / kfd->gtt_sa_bitmap = bitmap_zalloc(kfd->gtt_sa_num_of_chunks,
BITS_PER_LONG; GFP_KERNEL);
kfd->gtt_sa_bitmap = kcalloc(num_of_longs, sizeof(long), GFP_KERNEL);
if (!kfd->gtt_sa_bitmap) if (!kfd->gtt_sa_bitmap)
return -ENOMEM; return -ENOMEM;
...@@ -899,13 +894,12 @@ static int kfd_gtt_sa_init(struct kfd_dev *kfd, unsigned int buf_size, ...@@ -899,13 +894,12 @@ static int kfd_gtt_sa_init(struct kfd_dev *kfd, unsigned int buf_size,
mutex_init(&kfd->gtt_sa_lock); mutex_init(&kfd->gtt_sa_lock);
return 0; return 0;
} }
static void kfd_gtt_sa_fini(struct kfd_dev *kfd) static void kfd_gtt_sa_fini(struct kfd_dev *kfd)
{ {
mutex_destroy(&kfd->gtt_sa_lock); mutex_destroy(&kfd->gtt_sa_lock);
kfree(kfd->gtt_sa_bitmap); bitmap_free(kfd->gtt_sa_bitmap);
} }
static inline uint64_t kfd_gtt_sa_calc_gpu_addr(uint64_t start_addr, static inline uint64_t kfd_gtt_sa_calc_gpu_addr(uint64_t start_addr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment